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ň