Mivel hang dolgokban egy gepnel sem volta sohasem toppon elarulhatna valaki, hogy mit jelent az EP-n a "torzitas" fogalma, az konkretan mit csinal?
Ez nem "analóg" nemlineáris torzítást jelent (de erre négyszögjelnél egyébként sem igazán van lehetőség), hanem gyakorlatilag rövid periódussal ismétlődő "zajt" generál a négyszögjel helyett. Egészen pontosan így működik:
- a torzításhoz használandó álvéletlenszám-generátor folyamatosan fut fix nagy órajel frekvencián
- a hanggenerátor a számlálójának a lefutásakor nem invertálja a kimenetét (ami a normál négyszögjelet eredményezné), hanem a nagy frekvenciájú zajgenerátor aktuális kimenetét mintavételezi, és az lesz az új kimenet a számláló újabb lefutásáig
Egy részletes példa:
- a 4 bites polinom számláló az 100010011010111 (
itt található a pontos algoritmus, amely a sorozatot előállítja) sorozatot ismételgeti végtelenítve 250 kHz-es órajel frekvenciával
- a torzítandó hanggenerátor frekvencia kódja 8, tehát 250000 / (8 + 1) Hz frekvenciával történik a polinom számláló mintavételezése
100010011010111100010011010111100010011010111100010011010111100010011010111100010011010111
* * * * * * * * * *
111111111000000000000000000111111111000000000111111111000000000000000000111111111000000000 - minden karakter egy 250 kHz-es ciklus. A felső sorban a polinom számláló kimenete látható, a középsőben a mintavételezések időpontjai, az alsóban pedig a torzított hanggenerátor kimenete (ha nem lenne torzítás, akkor 9 "1" és 9 "0" váltakozna) található
- érdemes megfigyelni, hogy csak 5 bit hosszúságú sorozat (10010) ismétlődik a kimeneten 15 helyett. Ez azért van, mert a polinom számláló és a mintavételezés periódusának van közös osztója (15, illetve 9, mindkettő osztható 3-al). Valójában 15-el osztható mintavételezési periódusnál nem is lenne hallható hang
A szuro fogalmat meg ertem, tanultam Furier transzoformaciot stb, szoval meg matematikailag is fel tudom fogni, de ez a "torzitas", hogy pontosan mit jelent EP-n, azt passz ....
A DAVE szűrőinek nem sok közük van az analóg szűrőkhöz, valójában ezek is csak egyszerű bináris műveleteket jelentenek:
- a felüláteresztő szűrő az órajelnek használt csatorna lefutó éleinél 0-ra állítja a szűrt csatorna kimenetét, tehát gyakorlatilag a kitöltési tényező csökkentésével ér el "felüláteresztő" hatást
- az aluláteresztő szűrő (csak a zajcsatornánál van) az órajel csatorna lefutó éleinél mintavételezi a bemenetét, és ezt tárolja
- a gyűrűmoduláció XNOR kapu. Ez még meg is felel az analóg gyűrűmodulációnak előjeles négyszögjelek között:
0 XNOR 0 = 1 -1 * -1 = 1
0 XNOR 1 = 0 -1 * 1 = -1
1 XNOR 0 = 0 1 * -1 = -1
1 XNOR 1 = 1 1 * 1 = 1
A DAVE 0-2, azaz normál hangcsatornáinak a részletes működése:
- a frekvencia kód (0-4095) egy számlálót vezérel, amely a beírt értéktől lefelé számol 0-ig, tehát 250000 / (N + 1) Hz frekvenciát állít elő (a hanggenerátorok órajele 250 kHz, de ha a BFh I/O porton 12 MHz-es bemeneti órajel van beállítva, akkor 166.67 kHz lesz helyette). A 0 frekvencia kóddal egyébként nem működnek megbízhatóan a hanggenerátorok, így a legnagyobb frekvencia nem állítható elő igazi gépen
- a hanggenerátor lényegében egy flip-flop, amelyen a számláló minden lefutásakor a következő műveletek egyike történik:
- ha nincs torzítás, akkor a kimenet egyszerűen átbillen a másik állapotba (125000 / (N + 1) Hz-es négyszögjel)
- ha van torzítás, akkor a választott polinom számláló aktuális kimenetét mintavételezi, és az lesz az új kimenet
- ha az A7h I/O porton az adott csatornához a szinkronizáció bit be van állítva, akkor az a számlálót folyamatosan a programozott értéken tartja (nem fut), és a flip-flop kimenetét 0-ra állítja
- a felüláteresztő szűrő az órajelének használt csatorna kimenetének a lefutó éleinél 0-ra állítja a flip-flop kimenetét (ez egyébként négyszögjelnél kétszerezheti a frekvenciát)
- a gyűrűmoduláció (XNOR kapu) az utolsó művelet a kimeneten, ha engedélyezett
Minden effektus, amely másik csatornával végez műveletet, a másik csatorna végleges, gyűrűmoduláció (ha van) utáni kimenetét használja.
A zajcsatornánál az effektusok sorrendje: aluláteresztő szűrő, felüláteresztő szűrő, gyűrűmoduláció. A zajcsatornához használt polinom számláló nem fix 250 kHz-en fut, hanem a választott zaj órajelen (31.25 kHz, vagy valamelyik hangcsatorna kimenetének a lefutó élei).
A hanggenerátor megszakítás a hanggenerátor számlálójának a lefutásakor történik, tehát erre nincs hatása a különböző effektusoknak.