Wavetable synthesier

Web Audio API har en række forskellige oscillatorer, blandt andet de gængse: Sinus, trekant, firkant mfl. Desuden er der mulighed for at konstruere en lang række andre, og her har jeg eksperimenteret med wavetable syntese.

App’en loader to wavetables (fra Google’s eksempelsamling), som den “morfer” imellem – den venstre er et sunget “o”, den højre er en baslyd. Det er ikke det samme som at crossfade, fordi den blander de to synthlyde på en anden og mere fundamental måde, hvor den fletter overtonerne sammen.

Positionering i Web Audio API

Jeg har kigget på Web Audio API i nogle år og brugt det til et par små apps. Jeg tog det ikke særligt alvorligt som egentlig lydplatform, selvom jeg har set fine projekter – fx er der en gruppe som arbejder på at porterer Pure Data til Javascript via API’et.
Men jeg vil gerne lave apps. Ikke bare for at lave apps, men fordi jeg tror der er nogle oplevelsesmuligheder via den platform, et interaktivt element som apps er den eneste vej til.
Så jeg er begyyndt at studere API’et nærmere, og jeg er blevet temmeligt begejstret.
For eksempel er der mulighed for at positionere lydkilder i API’et. Ikke bare panorere dem, men placere dem i et tredimensionelt oplevelsesrum med x, y og z-akser.
Eller sådan er det beskrevet i API’et.
Her er et eksperiment med panorering i API’et. Det er set ovenfra, du er firkanten i midten og lydkilden cirkulerer rundt om dig. Det skal høres i hovedtelefoner for at få den fulde oplevelse.

Skærmbillede 2016-03-30 kl. 11.50.35

App’en er her.

Audio programming

Jeg har programmeret audio i mange år, faktisk skræmmende mange år. Siden engang i 1984, hvor min ven Lars købte en ZX 81, og vi prøvede at få den til at regne overtonespektrum i Bach-koraler ud. Dengang i Basic, med en masse peek- og pokekoder, som gik direkte ind og læste hukommelse og registre.

Basic er fortid, og det samme er mange af de andre sprog, som jeg har brugt. De sidste mange år har jeg hovedsageligt brugt specialiserede programmeringssprog til audio, især Pure Data, CSound og nogle g ange SuperCollider. De har hver deres styrker og svagheder, og de er rigtigt gode til atvsupplere hinanden.

Mit vigtigste værktøj har været Pure Data, som er et grafisk programmeringssprog, dvs at man tegner bokse og forbinder dem med linier. Det er hurtigt og effektivt til mindre ting, men bliver ret hurtigt uoverskueligt, sammenlignet med et traditionelt tekstbaseret programmeringssprog. Så efterhånden bruger jeg mest Pure Data til at kontrollere de andre systemer: CSound kan i.ndlejres som objekt i Pure Data, mens SuperCollider kører parallelt og bliver styret af OSC fra Pure Data.

Det er mit live setup, og det som jeg bruger når jeg spiller eller i.mproviserer sammen med live musikere eller andre elektronikere.