Detailní popis registrů CPF Current Pitch and Fractional Adress +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Current Pitch |Fractional Adress | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Current Pitch Definuje aktuální rozladění/výšku oscilátoru. Hodnota 4000h je nula = 44100 Hz Frac. Adress Tento registr je stále obnovován aktuální hodnotou, ale bohužel nevím jakou, protože jsem to nikdy nezkoumal. PTRX Pitch Target, Reverb Send, Aux Byte +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Pitch Target |Reverb Send |Aux Byte | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Pitch Target Tento registr je stále obnovován aktuální hodnotou přicházející z generátoru obálky a LFO. Definuje výšku / frekvenci oscilátoru Reverb Send Udává velikost Reverb efektu Aux Byte Nemá využití. Kdesi jsem ale viděl, že se do něj zapisuje negovaná hodnota Pan CVCF Current Volume and Filter Cutoff +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Current Volume |Current Filter Cutoff | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Current Volume Definuje aktuální hodnotu hlasitosti oscilátoru C. Filter Cutoff Definuje aktuální hodnotu Cutoff filtru VTFT Volume and Filter Cutoff Targets +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Volume Target |Filter Cutoff Target | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Volume Target Registr je obnovován z generátoru obálky a LFO Filter Cutoff T. Registr je obnovován z generátoru obálky a LFO PSST Pan Send and Loop Start Adress +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Pan |Loop Start | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Pan Udává panning oscilátoru. 00h=vpravo, 0FFh=vlevo a 80h=doprostřed Loop Start Definuje start opakování samplu CSL Chorus Send and Loop End Adress +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Chorus |Loop End | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Chorus Udává velikost chorus efektu Loop End Definuje konec opakování samplu CCCA Q Factor, Control Bits, Current Adress +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |QFactor|0|D|W|R|Current Adress | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ QFactor Udává velikost rezonance u filtru. 0=bez rezonance, 0Fh=24dB rezonance. Jedná se ovšem o faktor rezo - nance u cutoff filtru (normálně je to LowPass, ale lze jej přeprogramovat na BandPass) a ne o rezoná- tor. Nemyslete si, že by z toho byla nějaká 303. D (DMA) Jestliže je jedničkový, oscilátor je v DMA režimu W (Write) 1 = Write (zápis), 0 = Read (čtení) R (Right) 1 = Right, 0 = Left; volí Left nebo Right DMA HWCF4 Configuration DoubleWord 4 HWCF5 Configuration DoubleWord 5 HWCF6 Configuration DoubleWord 6 HWCF7 Configuration DoubleWord 7 Používají se při inicializaci a programování efektového procesoru. HWCF7 je neoficiální a nedokumentovaný. SMALR Sound Memory Adress for "Left" SM Reads SMARR Sound Memory Adress for "Right" SM Reads +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E|0|0|0|0|0|0|0|Sound Memory Adress | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ E (Empty) Pokud je nastaven na nulu, tak může být čtena další data Sound Mem. Adress Určuje adresu pro čtení z paměti. Podle použitého registru pro "Left" nebo "Right" DMA. SMALW Sound Memory Adress for "Left" SM Writes SMARW Sound Memory Adress for "Right" SM Writes +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |F|0|0|0|0|0|0|0|Sound Memory Adress | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ F (Full) Pokud je nastaven na nulu, mohou být zapisována další data Sound Mem. Adress Určuje adresu pro zápis do paměti. Podle použitého registru pro "Left" nebo "Right" DMA. SMLD Sound Memory "Left" Data SMRD Sound Memory "Right" Data Spolu s SMAxx slouží k přenosu dat do nebo z DRAM EMU. Více informací je v kapitole Paměťový interface. WC Sample Counter Tento registr je inkrementován 44100x za sekundu. K jeho přetečení dohází každou 1.486 sekundy. Používá se například pro přesné časování a synchronizaci. HWCF1 Configuration Word 1 HWCF2 Configuration Word 2 HWCF3 Configuration Word 3 Používají se při detekci a inicializaci. INIT1 Initialization Array 1 INIT2 Initialization Array 2 INIT3 Initialization Array 3 INIT4 Initialization Array 4 Používají se k přesunu inicializačních polí do EMU a při programování efektového procesoru. ENVVOL Volume Envelope Delay Určuje velikost Delay u hlasitostní obálky. Hodnota 8000h znamená, že delay není aktivní, hodnoty menší než 8000h znamenají délku delay v krocích po 725 mikrosekundách. ENVVOL = 32768 - (Delay*1000/725) Delay [msec] DCYSUSV Volume Envelope Sustain and Decay +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|Sustain |O|Decay/Release| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ P Určuje, jestli je do registru zapisována hodnota pro Decay (0) nebo pro Release (1). Sustain Určuje velikost Sustain. 7Fh je bez útlumu, 00h reprezentuje maximální útlum - ticho. Jednotky jsou v 3/4 dB. O (Off) Pokud je jedničkový, jsou vypnuty generátory obálek a LF oscilátory. Decay/Release Určuje délku Decay nebo Release (podle bitu P). DCY = 2*log(0.5)*log(23756/Decay) Decay [msec] Vzorec platí také pro Release. ENVVAL Modulation Envelope Delay Totéž co ENVVOL, avšak pro modulační obálku. DCYSUS Modulation Envelope Sustain and Decay Totéž co DCYSUSV, avšak pro modulační obálku. Bit O není implementován a je stále nastavený na nulu. ATKHLDV Volume Envelope Hold and Attack Bity 14-8 určují délku Hold. Bity 6-0 určují délku Attack. Hodnoty registrů lze vypočítat podle následujících vzorců: HLD = 127-(Hold_ms/92) Hold [msec] U Attacku je to trošku složitější: if Attack>=360 then ATK:= 11878/Attack - 1; if (Attack<360) and (Attack<>0) then ATK:= 32 + (16/log(0.5)) * log(360/Attack); if Attack = 0 then ATK:=7Fh; LFO1VAL LFO #1 Delay Totéž co ENVVOL, avšak pro LFO #1 ATKHLD Modulation Envelope Hold and Attack Podobně jako u ATKHLDV, ale pro modulační obálku. LFO2VAL LFO #2 Delay Totéž co ENVVOL, avšak pro LFO #2 IP Initial Pitch Určuje výšku tónu generovaného oscilátorem při použití modulace. Hodnota 0E000h reprezentuje 44.1kHz. Jedna oktáva je 4096 = 1000h. Jak jste si asi všimli, tak frekvence přehrávání je shora omezena na 176kHz. IFATN Initial Filter Cutoff and Attenuation Vyšší byte tohoto registru určuje frekvenci Cutoff filtru v rozsahu 100Hz až 8kHz. Frekvence je udávána v krocích po 125Hz. Nižší byte určuje útlum. 0 je "plný výkon" (0dB), 255 je ticho (96 dB). Útlum se udává v krocích po 3/8 dB. PEFE Pitch and Filter Envelope Heights Vyšší byte tohoto registru určuje vliv modulační obálky na výšku / frekvenci oscilátoru. Hodnota je v rozsahu -128 až +127 (signed). Minimální hodnota reprezentuje -1 oktávu a maximální hodnota +1 oktávu. Nižší hodnota určuje vliv obálky na Cutoff filter. Hodnota je opět 8-bitový signed. FMMOD Vibrato and Filter Modulation from LFO #1 Podobně jako u PEFE, avšak pro LFO #1. LF oscilátor má sinusový průběh. Záporná hodnota v registru určuje, že oscilátor začíná oscilovat do kladné záporné půlvlny. Vyšší byte určuje vibrato - vliv na výšku / frekvenci oscilátoru. Nižší byte určuje wah-wah - vliv na Cutoff filter. TREMFRQ LFO #1 Tremolo Amount and Frequency Vyšší byte registru určuje tremolo - vliv LFO na útlum signálu. Hodnota je opět 8-bit signed a tremolo může pracovat v rozsahu +/-12dB. Nižší byte udává frekvenci LF oscilátoru. Frekvence se zadává v krocích po 0.042Hz. FM2FRQ LFO #2 Vibrato Amount and Frequency Vyšší byte registru určuje vibrato - vliv LFO na výšku / frekvenci oscilátoru. Hodnota je 8-bit signed a vibrato může pracovat v rozsahu +/- 1 oktáva. Nižší byte je shodný jako u registru TREMFRQ. výheň