De Zwarte Steen

Serie over Digitale Audiosignaalverwerking,

verschenen in Music Maker

 

 

Biljarten met Geluid

Aflevering 5,

mei 2000

 

@ Rutger Teunissen

 

Chorus, Flanger, Phaser, Reverb. Elke muzikant kent de effecten waarmee je geluid "nat" kunt maken. Ze zijn allemaal opgebouwd rond één en dezelfde basisbewerking: de tijdverschuiving (delay). Zo'n verschuiving is niet alleen heel gemakkelijk langs digitale weg te realiseren, maar vormt tevens een van de hoekstenen van Audio-DSP.

 

Een geluid komt maar zelden alleen. Meestal wordt het gevolgd door een lawine van reflecties, sommige hard, sommige zacht, soms duidelijk van elkaar gescheiden (echo's), soms aaneengeweven tot een deken van galm. Als je in een geluidsdode kamer staat, waarvan de wanden elke trilling absorberen, besef je het pas goed: bij afwezigheid van reflecties klinkt alles onwerkelijk; het is alsof je watjes in je oren hebt en je je eigen stem alleen maar "van binnen" hoort. Als er in zo'n reflectieloze ruimte ook nog eens geen licht is, dan kun je roepen of in je handen klappen zoveel je wilt, maar je krijgt daardoor geen enkel idee van de afmetingen ervan. Een vleermuis zou er harde tijden in beleven.

Als het om geluidsreflecties gaat, denk je automatisch "in 't groot": je stelt je allerlei ruimtes voor waar je je in kunt bewegen, zoals zalen, viaducten, badkamers, kerken. Veel minder vlug ben je geneigd te denken aan piepkleine "zaaltjes", zoals de klankkast van een viool, de mondholte, de gehoorbuis, waarin evenzo goed reflecties optreden, en die evenzo goed kenmerkend zijn voor die ruimtes. Dat je bijv. een geluid onmiddellijk als spraak herkent, ligt onder andere aan de typische reflectiepatronen van mond- en keelholten. Ook het verschijnsel dat je niet meer zo goed de richting van een geluidsbron kunt schatten als je de ribbels en glooiingen in je oorschelp met stopverf glad boetseert, wordt veroorzaakt door het feit dat bepaalde reflecties dan niet meer kunnen optreden.

In een eerdere aflevering werd opgemerkt dat elk concreet, tastbaar voorwerp, of 't nu groot of klein is, "iets" met geluid doet, en daarom de naam signaalverwerker mag dragen. Dat verwerken kun je gerust lezen als: het veroorzaken van reflectiepatronen. Elke ruimte, elk muziekinstrument, elke stem en oorschelp, ontleent er z'n "akoestische handtekening" aan. Vandaar dat ook in Audio-DSP het begrip reflectie een centrale plaats inneemt.

In Afl. 2 en 3 hebben we verteld wat je zoal kunt doen door respectievelijk signalen met elkaar te vermenigvuldigen (versterken, verzwakken, in- en uitfaden) en signalen bij elkaar op te tellen (mixen, additieve synthese van boventonen). In deze en volgende afleveringen zullen we zien dat je zowat alle audio-signaalverwerking kunt doen door die twee simpele bewerkingen, vermenigvuldigen en optellen, ook uit te voeren op reflecties van een geluid. Effecten die je aantreft in "gitaarpedalen" en effectprocessoren, zoals delay, chorus en flanger, zijn daar de bekendste voorbeelden van. Maar ook filters, die in Audio-DSP volledig de dienst uitmaken en dan ook vanaf de volgende aflevering voortdurend voor 't voetlicht staan, zijn ondenkbaar zonder dat fundamentele begrip uit de akoestiek: reflectie.

 

Echo en Delay

Je kent 'm ongetwijfeld, de beroemde echo-zin: "Wat is de koning van Wezel?" Als je die in een weiland vanaf zo'n 100-150 meter afstand in de richting van een bosrand roept, dan klinkt even later het enigszins bedeesde antwoord: "…(w)ezel". Waarschijnlijk is alleen dat laatste woord van de echo goed te horen, want het gedeelte dat eraan vooraf gaat wordt al gauw overstemd door het directe geluid. Toch hoor je bij echo in principe altijd een mix, (dus een additieve synthese) van twee geluiden: het directe geluid en de reflectie. De laatste heeft de afstand naar de bosrand afgelegd, is daar gedeeltelijk geabsorbeerd en wordt gedeeltelijk teruggekaatst. Een reflectie is dus een zwakker klinkende "kopie" van het directe geluid en heeft bovendien een zeker oponthoud gehad door de "reistijd" naar de bosrand en terug. Dat oponthoud wordt in handleidingen van muziekapparatuur en in Audio-DSP-boeken de tijdverschuiving (delay) genoemd.

Met een bandrecorder kun je gemakkelijk een echo maken, doordat de opname- en de weergavekop op twee verschillende plaatsen zitten. De tijd die elk punt op de band nodig heeft om van opname- naar weergavekop te bewegen is de delay-tijd. Net zoals bij de bosrand ontstaat hier het echo-effect door de mix van het directe geluid bij de opnamekop en de tijdverschoven kopie daarvan bij de weergavekop.

Veel flexibeler en preciezer is het echo-effect dat je met DSP kunt maken. Daarvoor moet het signaal enkele bewerkingen doorlopen die links in Fig. 1 zijn weergegeven. In dit Echo-circuit zijn de drie basisbewerkingen van Audio-DSP, nl. Delay, Gain en Mix, elk in de vorm van een eigen icoontje vertegenwoordigd.

Bij Input betreden de samples het circuit. Onder de Input vertakt het circuit zich in tweeën. Eén tak, die het directe geluid voorstelt, gaat rechtdoor naar de Mixer (cirkel met plusteken erin). Dat directe geluid is dus het Inputsignaal dat rechts in de figuur is weergegeven in de blauwe golfvorm.

De andere tak is de zogenaamde Delay-lijn. Die bestaat uit twee bewerkingen: Delay en Gain. De Delay houdt elke sample gedurende een bepaalde tijd (in dit geval 1000 msec.) vast, en stuurt 'm dan door. Zo wordt de tijdverschuiving van de reflectie gesimuleerd. Daarna wordt elke sample met een bepaalde factor, Gain, vermenigvuldigd. Als Gain groter is dan 1 is er sprake van een versterking; als Gain kleiner is dan 1, zoals in de figuur, dan wordt het signaal verzwakt. Het resultaat van Delay en Gain is de rode golfvorm. De tijdverschuiving wordt grafisch zichtbaar als een verschuiving van het signaal naar rechts en de Gain van 0,6 komt tot uitdrukking in amplitudewaarden die kleiner zijn dan die van de oorspronkelijke blauwe golfvorm. Met Gain kun je dus de mate van absorptie van de reflectie instellen.

In de Mixer komen de beide takken weer samen. De inputsamples worden er opgeteld bij die van de Delay-lijn en zo krijg je dan het Outputsignaal, dat rechtsonder in zwart is weergegeven.

Een echo-effect is dus met DSP heel makkelijk te maken. Je hoeft er niets meer voor te doen dan samples te schuiven, te vermenigvuldigen en op te tellen. Allerlei vervormingen die bij analoge apparaten optreden zijn simpelweg afwezig.

 

Kamfilter

Als je een synthesizer aansluit op een Delay-apparaat, kom je al gauw voor vreemde verschijnselen te staan. Soms hoor je tijdens het spelen bepaalde tonen nauwelijks, terwijl andere veel harder doorkomen. Verander je vervolgens de Delay-tijd, dan blijkt dat een toets die tevoren amper hoorbaar was, plotseling veel sterker klinkt. Maar welke toetsen harder dan wel zachter worden, en hoe dat samenhangt met de Delay-tijd die je gekozen hebt, is niet direct duidelijk. Toch kun je het raadsel vrij gemakkelijk oplossen als je de bewerkingen die in het echo-circuit plaatsvinden braaf volgt.

Een voorbeeld. Stel de Delay-tijd in op 4 milliseconde, de Gain op 1 en zet de toongenerator van de synthesizer op de sinus-golfvorm (zie Afl. 3). Op de Input van het Echo-circuit komen dan sinustonen en in Fig. 2 zie je wat er gebeurt.

Als je de b-toets (geel) aanslaat, dan maakt de synth een sinustoon van 247 Hz. Die heeft een periodetijd die zo goed als 4 milliseconde is, en dus ongeveer gelijk aan de Delay-tijd. Onderaan rechts is te zien dat de (gele) "pieken" van het directe geluid worden opgeteld bij de (zwarte) pieken van de reflectie. Datzelfde gebeurt met de "dalen" van beiden. Daardoor krijgt het Outputsignaal ‘n twee maal zo grote amplitude en klinkt het dus ook luider dan het directe geluid uit de synth.

Herhaal je de proef met een toon die precies een octaaf lager ligt, dus de B van 123 Hz (groene toets), dan gebeurt er iets heel anders. Omdat de reflectie nu zowat een halve periode later komt, zal de Mixer alle (groene) pieken van het directe geluid optellen bij de dalen van de reflectie en omgekeerd. Het resultaat is dat beide signalen elkaar bijna helemaal uitdoven, zodat je zo goed als niets meer hoort! Hoe sterk de tussenliggende toetsen klinken is in de figuur door de rode staven boven het "keyboard" aangegeven.

Natuurlijk kun je in plaats van toetsen aanslaan ook het Pitch-Bend wiel naar voren draaien, terwijl je op de synth een toets ingedrukt houdt. Er wordt dan een toon geproduceerd die geleidelijk omhoog gaat (als een sirene) en waarvan het volume steeds gelijk blijft. Maar door de Delay wordt die toon ook steeds harder en weer zachter, afhankelijk van de toonhoogte. Dat volumeverloop is aangegeven door de blauwe lijn die een soort booggewelven vormt.

Het is dus wel duidelijk dat een echo-circuit frequentiegevoelig reageert: sommige toonhoogten worden nauwelijks doorgelaten, andere op ongeveer hetzelfde volume, weer andere worden versterkt. Apparaten die zoiets doen heten filters. Een echo-circuit is een bijzonder filter, vanwege die heel regelmatige structuur van "booggewelven". Als je nog meer

toetsen in beeld zou brengen, of de Pitch-Bender tot aan de gehoorgrens van 20 kHz zou doordraaien dan krijg je het plaatje van helemaal bovenaan in Fig. 2, de zogenaamde frequentiekarakteristiek. De gewelven zijn hier dicht op elkaar gedrukt weergegeven en aan deze vorm dankt het echo-circuit z’n naam Kamfilter. De pieken liggen op regelmatige afstanden van elkaar; de grootte van die afstanden hangt af van de delay-tijd. Hoe langer de delay-tijd is, hoe dichter de pieken op elkaar staan.

Let wel: elk echo-effect heeft de frequentiekarakteristiek van een kamfilter! Niet alleen digitale echo-circuits, maar ook stenen muren, wanden en plafonds van studio's. Bovendien vormt het echo-circuit van Fig. 1 de basis van elk filter, want door een listige combinatie van Delay-lijnen kun je elke denkbare frequentiekarakteristiek construeren. Dat betekent tevens dat een filter zonder delay simpelweg niet te realiseren is.

 

Waterlabyrint

De muzikale "toepassing" van echo is de canon: een melodie die in additieve synthese met een of meerdere tijdverschoven kopieën goede samenklanken en akkoorden oplevert.

Sommige canons, zoals het Vader Jacob, zijn meerstemmig: je kunt de melodie op maar liefst vier verschillende plaatsen inzetten. Tussen de inzetten van de verschillende stemmen bestaat dan een vaste delay-tijd: als de tweede stem precies 4 seconde na de eerste inzet, dan zal de derde stem precies 4 seconde na de tweede inzetten.

Zo'n reflectiepatroon met vaste delay-tijden tref je soms ook bij bouwwerken aan. Een heel mooi voorbeeld daarvan is het Nijmeegse Waterlabyrint van beeldend kunstenaar Claus van de Locht (Fig. 3).

Het bestaat uit een cirkelvormige vijver met daarin een lang wandelpad over een stenen muurtje dat in vele cirkelvormige kronkels naar een centrum loopt. Als je daar in je handen klapt, hoor je een bijzonder geluidseffect. Door de cirkelvormen ontstaat de werking van een soort akoestische lens die de reflecties in het middelpunt van het labyrint focusseert. Omdat de cirkels waarover het pad loopt op gelijke afstand van elkaar liggen, bestaan er vaste delay-tijden tussen de reflecties van de handklap, die dus met regelmatige tussenpozen, periodiek, in je oor aankomen. Daarom hoor je de reflecties als een korte toon. De hoogte daarvan kun je achterhalen met een stemvork, maar je zou natuurlijk ook een duimstok kunnen pakken, waarmee je de vaste afstand tussen de muurtjes opmeet. Die blijkt 1.40 meter te zijn, zodat bij een geluidssnelheid van 340 m per seconde het vaste verschil tussen de delay-tijden 8,24 milliseconden bedraagt. Dat correspondeert met een toon van ongeveer 121 Hz, dus bij benadering een B op de A-snaar van een gitaar (of de groene toets in Fig. 2).

Het effect van zo'n repeterende echo is te realiseren met een Echo-Feedback-circuit. In Fig. 4 is dat getekend.

In tegenstelling tot het Echo-circuit van Fig. 1 wordt hier niet de Input naar de Delay gestuurd, maar de Output. Zo ontstaat dus terugkoppeling. Het signaal blijft ten eeuwigen dage door het circuit lopen. Met Gain kun je het signaal dat uit de Delay komt harder of zachter zetten alvorens het samen met de Input wordt gemixt. Zet je de Gain op nul, dan is er geen terugkoppeling en hoor je dus alleen het directe geluid. Als Gain groter is dan 1, jaag je het signaal volledig over de hump, want bij elke terugkoppeling wordt het geluid dan weer verder versterkt. Als Gain precies gelijk is aan 1, dan zal bijvoorbeeld een eenmalige handklap eindeloos lang met constant volume worden herhaald in een tempo dat je met de parameter Delay-tijd instelt. Als Gain kleiner is dan 1, dan zal een kort Input-geluid wegsterven, langzaam of snel.

Het Echo-Feedback-circuit is dus een soort Superlabyrint waarvan je het aantal muurtjes met Gain kunt regelen en hun onderlinge afstand met Delay-tijd. Je kunt er bijvoorbeeld ook een toongenerator mee simuleren. Wil je een toon van 100 Hz maken, dan zet je een puls-achtig geluid (handklap) op de input en zet Gain = 1 en Delay-tijd = 10 msec.

 

Inverteren

Een van de vele ijzersterke kanten van digitale signaalverwerking, in tegenstelling tot de analoge, is niet alleen dat je bewerkingen ongedaan kunt maken ("Undo"), maar vooral ook dat je ze kunt inverteren. Optellen en aftrekken zijn elkaars inversen. Stel je hebt met een sample-editprogramma een soundtrack gemaakt met de naam "straatmuzikant", die uit een mix van twee andere tracks bestaat: "straatgeluiden" en "studiomuzikant". En stel dat je "studiomuzikant" per ongeluk van schijf hebt gewist. Je kunt nu simpelweg de track "straatgeluiden" sample-gewijs aftrekken van de mix-track "straatmuzikant". Dan krijg je die "studiomuzikant" weer op de Output! Zo ook kun je een versterkt signaal weer z'n oorspronkelijk volume geven door alle samples te delen door de versterkingsfactor, want vermenigvuldigen en delen zijn eveneens elkaars inversen.

Neem nu eens aan dat je een echo-effect hebt toegevoegd aan een spraaksignaal. Wat te doen als je dat oorspronkelijke spraaksignaal per ongeluk gewist hebt, maar nog wel beschikt over de echo-versie? Is die laatste weer te inverteren tot het droge, oorspronkelijke geluid? Dat blijkt inderdaad mogelijk, want een echo-circuit en een echo-feedback-circuit zijn elkaars inversen!! Het enige wat je bij het inverteren in de gaten moet houden is dat je de Gain van teken verwisselt. In een latere aflevering leggen we uit hoe dat allemaal zit.

Zoals gezegd is een echo-circuit een filter. En een echo-circuit heeft een inverse in de vorm van een echo-feedback-circuit. Het blijkt dat elk filter een inverse heeft. Als je weet met welk filter een signaal is gefilterd, dan kun je met de inverse van dat filter het oorspronkelijke signaal weer onvervormd tevoorschijn toveren uit dat gefilterde signaal. Dat is een "hoofdwet" van DSP, die talloze toepassingen in de muziek heeft.