Som många säkert vet så har jag sysslat lite med circuitbending, där man modifierar leksaker och elektroniska instrument så för att få fram olika effekter. För att spara godbitarna till en annan gång och räcker det med att säga att det finns två skolor när det gäller circuitbending, en där man provar sig fram slumpmässigt och en annan där man försöker förstår sig på hur kretsen och letar systematiskt.
Som ni säkert förstår så kräver den första metoden nästintill ingen elektronikkunskap medan den andra kräver metoden kräver nästintill ingenjörskunskaper för att kunna utövas fullständigt. En av dessa är Christian Oliver (aka. CYBERYOGI) från Tyskland som även har skrivit en väldigt informativ FAQ.
LänkEtt intressant avsnitt handlar om olika pulsvågar som enda ljudkälla. Oliver förklarar att många billiga keyboards och dylikt enbart använder sig av pulsvågor, vilket är fantastiskt enkelt att generera ljud digitalt.
Definitionen av pulsvåg är att ljudvågen bara har två lägen. Detta kan därför beskrivas enkelt binärt med ettor och nollor då 1 är till och 0 är från. Till exempel kan jag ha en pulsvåg i upplösningen 8 och har då åtta möjligheter på mig under vågens gång att bestämma om den ska vara till eller från.
Den absolut enklaste pulsvågen är fyrkantsvågen, där tidsperioden mellan till och från är lika lång. Binärt kan den då beskrivas som 10 (ettnoll) eller som inverterad 01 (nollett), eller varför inte som 1111000 och 00001111 om nu upplösningen är 8.
FyrkantsvågFyrkantsvågen används flitigt inom digitaltekniken som styrklocka och reglerar hur fort processorer ska jobba, stora som små. Den används också till att skapa andra vågor som sågtand, triangel och sinus, som är de vanligaste vågformerna i analogsynthar. Sågtand och triangelvåor används också till ström och spännigsreglering, men det är en annan historia.
En annan enkel variant av pulsvågen liknar fyrkantsvågen men tidsperioden mellan till och från är inte lika långa. Binärt kan den beskrivas 11100000 eller 1000000 beroende på vad man vill ha för karaktär. Kortare till-period ger ett spädare ljud medans längre ger ett bastantare.
PulsvågMen pulsvågen kan bli mycket mer komplex än så. Vad som är viktigt att tänka på är att pulsvågen har en möjlighet att växla mellan till och från mycket snabbt. Detta gör att vågen sällan kan ritas ut perfekt och det är inte heller något man vill. Man kan faktiskt med en pulsvåg simulera nästan vilka ljud man om bara har en tillräckligt hög upplösning. Om man skapar en signal med 10101010 som matas mycket snabbt (utanför utanför lyssnarens frekvensområde) så hamnar snarare signalen på en jämn (tyst) signal med värdet 0,5. Man kan på samma sätt ändra ration mellan ettor och nollor och därmed skapa olika värden.
Med detta i åtanke tänkte jag att man kunde bygga en helt digital pulsvågssynteziser med midi in, audio ut och en rad med strömbrytare som skulle visa om vågen skulle vara till eller från under tidsperioden. Jag tänkte mig då en pulsvåg med upplösningen 8 eller 16 för att det skulle vara praktiskt användbart.
Min bror hjälpte mig att skriva ihop ett enkelt program för att kunna experimentera i datorn innan för att se om man kunde få ut nåt vettigt av det. Men det visade sig vara svårare än vad jag trodde och ljuden man fick fram lät mer eller mindre likadant. Till sist satt jag med 64 i upplösning och istället för bara två steg; 1 och 0, så hade jag tre steg; 1, 0 och -1. Först då började det bli nåt vettigt.
Visst var det svårt att använda men om man tänker på instrument som använder pulsvåg är det väldigt minneseffektiv sätt att spara instrument. Min upplösning på 64 i tre nivåsteg hade kunnat ersättas med en upplösning på 128 och två steg (1 som 1, -1 som 0 och 0 simulerat genom växling av 1 och 0). Och 128 bitars minnesutrymme för ett instrument är ju verkligen inte mycket, även om det är svårt att skapa från grunden.
Pulsvåg med negativ pulsvåg som försöker efterlikna en sinusvåg
Men mitt experimenterande var inte förgäves eftersom lärde mig förstå hur ljud från digitala ljudenheter som datorer eller mp3-spelare genererar ljud. När det gäller CD-ljud så ljudet en samplingfrekvens på 441ooHz och en bit-upplösning på 16bitar. Vad som då står beskrivet i ljudfilen är var högtalarmembranet ska befinna sig vid vilken tid. Samplinsfrekvensen är hur ofta membranets position ska uppdateras, alltså var 1/44100-dels sekund. Under den här lilla stunden ska datorn visa var membranet ska befinna sig med en noggrannhet på 16-bitar, dvs 2¹⁶ = 65536 steg. Hur som helst så skickar en krets genom 16 ben (en för varje bit) via en
resistorstege (som fungerar som en inverterad spänningsdelare). Nackdelen med denna metod är att det är svårt att få exakt värde då skillnaden mellan den minsta och största steget i spänningsstegen teoretiskt är 1 till 32768, men med resistorer som inte är mycket exaktare än 1% är denna metod inte exakt.
En annan modernare och enklare metod är att klämma in en binär sekvens på 65536 under den här 1/44100-dels sekunden för att sedan mata signalen genom ett lågpassfilter, alltså nästan exakt samma sak som jag beskrev med leksakssyntharna. Skillnaden är att vi är har ett konstant binärt flöde av (65536*44100) drygt 2,89GHz (jämfört med leksakssynthens ungefärliga 32kHz), vilket givetvis kräver enormt mycket av hårdvaran. Men o andra sidan ger denna metod en mycket exaktare signal än med förra metoden
Uhhja... Nä känner jag att jag tjatat alldeles för mycket om pulsvågor, men jag hoppas ändå att jag har lyckats roa nån där ute. Det är inte jätteintressant, men eftersom det används överallt är det ändå lite fascinerande med att man kan skapa så pass mycket endast med till och från.