Prof.Dr.Godfried-Willem RAES

Kursus Experimentele Muziek: Boekdeel 3: Vormleer

Hogeschool Gent : School of Arts


<Terug naar inhoudstafel kursus>

   

3130: Shepard Tonen

 

Een akoestisch verschijnsel dat zowel musici als muzikologen al sedert de oudste tijden heeft beziggehouden is de equivalentie van de oktaafsprong in de muziek.

Het audiospektrum is audioperceptorisch gezien inderdaad niet zomaar te beschouwen als een kontinuum, (een alsmaar stijgende of dalende lijn) maar veeleer als een cyclische spiraal. Voor andere parameters van de audioperceptie geldt iets dergelijks niet: de geluidsterkte wordt door ons wel degelijk als een normaal kontinuum waargenomen, ook al verloopt het eigenlijk grosso modo logaritmisch.

Deze vaststelling heeft een aantal wetenschappers en musici ertoe gebracht een koncept ‘tonigheid’ als muzikale parameter in te voeren naast het klassieke koncept ‘toonhoogte’. Om dit koncept experimenteel te onderzoeken zocht men naar klanken die hierdoor zouden worden gekenmerkt dat zij geen toonhoogte hebben doch wel een duidelijke tonigheid. In muzikantentaal: men poogde een ‘do’ -klank te maken waarvan de oktaafligging onbepaalbaar was. Ook onder de ‘normale’ muzikale klanken was het fenomeen niet helemaal onbekend: beiaardklokken en aangeslagen buizen zoals gebruikt in buisklokken bvb.hebben soortgelijke eigenschappen. Een van de belangrijkste systematische onderzoekers in dit gebied was de muzikoloog R.Shepard, naar wie dit soort tonen werden genoemd. Hij genereerde hen in de elektrronische muziek studio in 1964. Inderdaad, met zuiver akoestische middelen is het zo goed als onmogelijk om de verschillende parameters van de klank in de hand te houden. De additieve synthese, het centrale paradigma voor spektrumopbouw uit die jaren, werd hiervoor het ideale werktuig.

Een Shepard toon nu bestaat uit een reeks gelijktijdige sinustonen in opeenvolgende oktaven gespreid over het gehele audiogebied waarbij elke oktaafkomponent een intensiteit krijgt zo dat de sterkste komponenten steeds in het gebied 500-1000Hz vallen. In dit gebied blijkt ons oor het gevoeligst te zijn voor de bepaling van toonhoogte. De intensiteitsverdeling van de verschillende oktaaftonen wordt bereikt door de berekening van wegingsfaktoren.

Hier is een klankvoorbeeld.

De omhullende van deze spektraalverdeling is meestal een gausskurve, maar andere kurves zijn ook mogelijk. Hoewel deze verdeling niet meer lijkt dan een spelletje rond akoestische illusies (we horen immers een eindeloos stijgende toon, wanneer we deze shepard tonen als een kromatische reeks afspelen) wortelt ze in het eerder genoemde psychoakoestisch onderzoek naar ‘tonigheid’: dit is het de eigenschap hebben van een bepaalde noot te zijn van een klank. (Het Do karakter van een do zouden we kunnen zeggen). Dit maakt het mogelijk klanken naar toon (op een cirkel) te projekteren in plaats van op een spiraal die het hele audiogebied doorloopt. Een van de wetenschappelijke perspektieven vanwaaruit dit onderzoek werd opgezet heeft te maken met de gewenste datareduktie bij het opzetten van muzikale harmonische syntaxen. Immers, indien dit zou lukken, dan konden wij ons bij het bepalen en vastleggen van een harmonisch verloop beperken tot een reduktie van het muzikaal materiaal tot een enkel oktaaf omschrijfbaar als een vektoriele cirkel.

DO SI DO# SIb RE LA MIb LAb MI SOL FA FA#

 

Intervallen worden geduid als stijgend of dalend, al naargelang de richting van de kortste weg op de cirkel tussen de respektievelijke tonen. Het tritonus interval is ongedefinieerd en kan zowel als dalend dan als stijgend worden gehoord. Het blijkt louter individueel verschillend te zijn.

Typische ambigue shepard toonreeksen zijn:

 

Mi La# Fa# Do Re# La Sol Do#

Zij worden door verschillende luisteraars als een verschillend melodisch verloop waargenomen. Onderzoek wees uit dat de wijze waarop het gestalt wordt waargenomen onafhankelijk is van de muzikale vorming van de luisteraar.

Om dit alles experimenteel en praktisch duidelijk te maken schreven we een klein programma waarmee we shepard tonen op de komputer kunnen genereren. Voor de weergave hebben we beslist een synthesizer nodig die minstens 10 noten tegelijkertijd kan weergeven!

Wie de experimenten ‘historisch’ wil uitvoeren, dient zijn synthesizer in te stellen op zuivere sinustonen. De kurve voor de scaling van de velocities moet lineair zijn. Een andere mogelijkheid bestaat erin de volumekontrollers te gebruiken, mits dan wel voor elke oktaaftoon een verschillend midikanaal wordt gekozen.

  SHEPARD.BAS Wiskundig model ********************

‘ deklaraties voor de midi-support module MIDI.BAS (kode elders in de kursus terug te vinden)

CONST Madr% = &H330

DECLARE SUB MpuUart ()

DECLARE SUB ResetMpu ()

DECLARE SUB Uit (byte%)

 

MpuUart

Pi# = 4 * ATN(1)

‘ bereken een frekwentie-reeks voor de shepard tonen:

DIM Shf&(0 TO 11, 0 TO 9): ‘ dim1 = note

‘ dim2 = komponent van die noot

‘ 0= aandeel laagste komponent

‘ 9= aandeel hoogste komponent

‘ bereken de amplitudereeks (verdeling van de amplitudes over de oktaven)

DIM Shv%(0 TO 11, 0 TO 9)

‘ berekening van de frekwentie-reeks voor 12 tonen:

Fmin = 27.5 / 2 ‘ frekwentie voor de laagste komponent (d.i. een la)

FOR n% = 0 TO 11

FOR c% = 0 TO 9

f = Fmin * 2 ^ ((c% * 12 + (n%)) / 12)

Shf&(n%, c%) = INT(f)

Vmin% = 1

Vmax% = 127

Ang# = 2 * Pi# * ((c% * 12) + n%) / (12 * 10)

Shv%(n%, c%) = Vmin% + (Vmax% - Vmin%) * ((1 - COS(Ang#)) / 2)

PRINT Shf&(n%, c%); Shv%(n%, c%)

NEXT c%

PRINT

NEXT n%

‘ uitsturing van de reeks als een akoestische illuzie:

DIM oldnoot%(0 TO 9)

DO

FOR n% = 0 TO 11

FOR c% = 0 TO 9

‘ vorige noten uitschakelen:

IF oldnoot%(c%) THEN Uit 144: Uit oldnoot%(c%): Uit 0: oldnoot%(c%) = 0

‘ noten doen klinken:

Uit 144: Uit n% + (12 * c%): Uit Shv%(n%, c%)

oldnoot%(c%) = n% + (12 * c%)

NEXT c%

SLEEP 1

NEXT n%

LOOP UNTIL INKEY$ <> ""

 

‘disciplinaire uitschakeling en reset aan het einde:

FOR c% = 0 TO 9

IF oldnoot%(c%) THEN Uit 144: Uit oldnoot%(c%): Uit 0: oldnoot%(c%) = 0

NEXT c%

ResetMpu

 

Dit wiskundig model kan ook aangepast worden voor meer dan 12 tonen per oktaaf en zelfs veralgemeend worden tot het gebruik van ‘permanent stijgende’ glissandi. ‘ Mooie akoestische illuzies kunnen worden verkregen door dit te kombineren met een ruimtelijk draaieffekt.

Muzikale toepassingen van dit soort algoritmiek vinden we terug in heel wat elektronische muziek sedert de jaren zestig. Een van de eerste voorbeelden werd geleverd door James Tenney (‘For Ann: Rising’ uit 1971). Latere voorbeelden: o.m. J.Risset.

Ook in instrumentale muziek -uiteraard komt vooral orkestmuziek in grote symfonische bezettingen hiervoor in aanmerking- vonden deze algoritmische koncepten ruimschoots toepassing. Hun toepassing vergt een grondige kennis van instrumentatie en orkestratie. Voorbeeld: Clarenz Barlow.

Uit het werk van Risset putten we volgende akkoordsekwens, die mits uiteraard gespeeld met uitsluitend Shepard tonen, het oor volkomen in de war brengt. Wil je het zelf programmeren, bedenk dan wel dat je synthesizer 3 x 9= 27 tonen simultaan moet kunnen produceren!

We geven de akkoorden als midi getallen:

 

67 69 71 69 71 69 71

64 66 68 65 67 64 66

60 62 64 60 62 61 63

 

Akkoorden opgebouwd uit Shepard tonen, noemen we Shepard-akkoorden. Zij hebben deze heel bijzondere akoestische en muzikale eigenschap, dat zij geen omkeringen kennen! Dit maakt hen bij uitstek geschikt voor implementaties van algoritmische harmonie-systemen, omdat we de ligging van de toegepaste akkoorden in eerste instantie volledig buiten het systeem kunnen houden.

Ook voor orkestratie (zowel akoestische, traditionele als elektronische en synthetische) is het bijzonder nuttig een praktische ervaring op te doen met de onderliggende principes. Immers, los van het bereiken van zuivere akoestische illuzies -toch wel wat beperkt tot toverkunstjes- werken de Shepard principes ook wel wanneer we hen vereenvoudigen tot oktaafsamenklanken van minder dan 5 tonen.

Zij worden een van de vele technieken die vandaag thuishoren in het pallet van de komponist.

Algemeen berust het principe op het benadrukken van de frekwenties in het gebied tussen 250 en 2000Hz volgens een klokkurve (de top moet liggen in het oktaaf tussen 500 en 1000Hz).

 

Risset-illuzies:

 

De franse komponist Risset heeft, uitgaand van de Shepard tonen nog heel wat meer akoestische illuzies ontworpen. Zo stelde hij in de studio een toon samen bestaande uit volgende sinuskomponenten:

 

49 102 211 435 896 1843 3788Hz

 

Alle komponenten zijn in de toon in gelijke sterkte aanwezig.

Transponeer de toon nu een oktaaf omhoog (bvb. door de band waarop hij werd opgenomen aan de dubbele snelheid af te spelen), en wat blijkt...: de geoktaveerde toon klinkt nu lager dan de niet geoktaveerde toon... We horen een onmiskenbaar dalend interval.

Ook hier weer kan het effekt worden verklaard uit de ligging van tonen in het gebied 500-2000Hz die klaarblijkelijk in de audioperceptie voor het toonhoogtegevoel aansprakelijk zijn.

Merk op dat je dit experiment niet kan uitvoeren met ‘midi’-noten! Het kan wel op een synthesizer worden geimplementeerd, mits gebruik wordt gemaakt van pitch-bend instrukties. (cfr. Hoofdstuk 1 van deze kursus, mikrotonaliteit en andere toonsystemen en hun programmering).

 

Leon Van Noorden

Een van de belangrijkste auteurs (ook experimenteel komponist overigens) die over dit onderwerp onderzoek hebben gedaan en publiceerden is de Nederlander Leon Van Noorden. Hij werkte een fysiologisch perceptie model uit voor de toonhoogtewaarneming waarbij uitgegaan wordt van twee kanalen:

Het akoestisch signaal, drager van toonhoogteinformatie, wordt op twee wijzen gekodeerd:

a.:via de stimulering van specifieke plaatsen op het basilair membraan waarop zich neuronen bevinden voor de perceptie van ‘scherpte’, ‘timbre’ of spektrale toonhoogte.

b. via tijdsstimulering van neurale impulsen voor de perceptie van lage tonen (basistoonhoogte)

cfr.: Leon Van Noorden, ‘Two Channel pitch perception’

in: ‘Music, Mind and Brain - the neuropsychology of Music’

ed.: Manfred Clynes, Plenum 1982Press, London

 

In mijn eigen werk worden shepard tonen en akkoorden gebruikt in de produkties ‘Mach’96’ en ‘Winter’97’ waar ze worden toegepast op de player-piano. Gezien de ruime tessituur van dit instrument, is een zinnige implementatie van het effekt hier inderdaad mogelijk, ook al dienen de aanslagsterkten zorgvuldig in funktie van het gebruikte mechanisme (cfr. hoofdstuk organologie, player-piano ontwerp) te worden gemapt. Het is voor de toepassing in dit werk dat we een universeel bruikbare procedure schreven waarmee eender welke notenreeks als een shepardakkoord kan worden gespeeld. De specifieke mapping nodig voor de player piano lieten we in het hiernavolgende kodevoorbeeld achterwege.

De kode stamt nog uit vorige eeuw en kan vandaag in de GMT omgeving, gebruik makend van haar biblioteekfunkties, heel wat eenvoudiger worden geschreven. 

‘ *************************************************************************

‘ * Universele Shepard Midi-uitstuurroutine *

‘ * Dr.Godfried-Willem Raes *

‘ *************************************************************************

‘ 24.06.1996: tested and debugged.

‘ in order to play 4-voice music, the synthesizer should have at least 4 x NrOkt% polyphony!

CONST False = 0

CONST True = NOT False

CONST Pi2! = 2 * 3.141593

CONST NrOkt% = 7: ‘ aantal oktaaftonen Max= 9 !!!, minimum = 4 voor werkend effekt

CONST Madr% = &H330

DECLARE SUB MpuUart ()

DECLARE SUB ResetMpu ()

DECLARE SUB Uit (byte%)

DECLARE SUB ShepOut (channel%, note%, velo%) : ‘ shepout procedure

MpuUart

‘ test - aug5th’s - diminuendo:

FOR vol% = 120 TO 0 STEP -12

FOR n% = 48 TO 59

FOR k% = 0 TO 2: ShepOut k%, n% + (k% * 4), vol%: NEXT k%

SOUND 20000, 10

NEXT n%

NEXT vol%

 

SUB MpuUart

UART% = &H3F ‘ = 0011 1111 (63) =UART-command

Cp% = Madr% + 1

InitUART:

IF INP(Cp%) AND 128 THEN

WAIT Cp%, 64, 64: OUT Cp%, UART%

ELSE

DO : dummy% = INP(Madr%) :LOOP UNTIL INP(Cp%) AND 128

GOTO InitUART

END IF

END SUB

 

SUB ResetMpu

ResMpu% = &HFF: ‘ = 1111 1111 (255)= Reset-command

Cp% = Madr% + 1

DO :dummy% = INP(Madr%) :LOOP UNTIL INP(Cp%) AND 128

WAIT Cp%, 64, 64 : OUT Cp%, ResMpu%

END SUB

 

SUB ShepOut (channel%, note%, velo%)

STATIC OldShepNote%(), ShepSwitch%, LowOkt%, HighOkt%, Vmin%

‘ channel% = midi channel used for the output

‘ note% = nominal note-name for the shephard tone

‘ velo% = global velocity for the shephard-constellation

‘ Scaling is relative to velo%

IF ShepSwitch% = False THEN ‘ eenmalige initialisatie:

DIM OldShepNote%(0 TO 15, 0 TO 127):

LowOkt% = 5 - (NrOkt% / 2): IF LowOkt% < 1 THEN LowOkt% = 1

HighOkt% = LowOkt% + NrOkt%

IF HighOkt% > 9 THEN HighOkt% = 9 ‘ tessituurlimit midi

Vmin% = 0 ‘ set minimum velocity

ShepSwitch% = NOT ShepSwitch%

END IF

nt% = note% MOD 12

DIM Shvel%(LowOkt% TO HighOkt%)

‘ calculate the velocity scaling:

FOR c% = LowOkt% TO HighOkt%: ‘ 1 TO NrOkt% - 1

Ang! = Pi2! * ((c% * 12) + nt%) / (12 * NrOkt%)

Shvel%(c%) = Vmin% + (velo% - Vmin%) * ((1 - COS(Ang!)) / 2)

NEXT c%

‘ switch previous notes off:

FOR ij% = 0 TO 127

IF OldShepNote%(channel%, ij%) THEN

Uit 144 + channel% :Uit ij% : Uit 0

OldShepNote%(channel%, ij%) = False

END IF

NEXT ij%

‘ output the shepard tone in increasing order of velocity in order to overcome potential synthesizer-polyphony limitations

c% = LowOkt%

cnt% = 0

DO

ptr% = (HighOkt% + 1) - c%

IF c% < ptr% THEN

cnt% = cnt% + 2

IF Shvel%(ptr%) THEN

Uit 144 + channel%

Uit (ptr% * 12) + nt%

Uit Shvel%(ptr%)

OldShepNote%(channel%, (ptr% * 12) + nt%) = True

END IF

IF Shvel%(c%) THEN

Uit 144 + channel%

Uit (c% * 12) + nt%

Uit Shvel%(c%)

OldShepNote%(channel%, (c% * 12) + nt%) = True

END IF

ELSE

cnt% = cnt% + 1

IF Shvel%(c%) THEN

Uit 144 + channel%

Uit (c% * 12) + nt%

Uit Shvel%(c%)

OldShepNote%(channel%, (c% * 12) + nt%) = True

END IF

END IF

c% = c% + 1

LOOP UNTIL cnt% = NrOkt%

END SUB

 

SUB Uit (byte%)

' in nieuwe versies van GMT vervalt deze procedure en is ze vervangen door de mPlay instruktie.

Cp% = Madr% + 1

IF INP(Cp%) AND 128 THEN

WAIT Cp%, 64, 64: OUT Madr%, byte%

ELSE

WHILE INP(Cp%) < 128: dummy% = INP(Madr%): WEND

WAIT Cp%, 64, 64: OUT Madr%, byte%

END IF

END SUB

 

Recentere eigen komposities waarin van shepard tonen gebruik wordt gemaakt zijn o.m. 'Slones', (2012) waarvoor alle monofone blaasinstrumenten van mijn robot otkest worden gebruikt.


Filedate: 970928 / 2012-11-26

Terug naar inhoudstafel kursus: <Index Kursus>

Naar homepage dr.Godfried-Willem RAES