VOICE[n] WAVETABLE BASE ADDRESS REGISTER (Low Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the base address of the sample in WaveTable RAM, to be played (assuming the voice is configured for sample playback)

u8 in IO at 0x53 called VOICEWAVEBASEADDRLREG

76543210
BBBBBBBB

B: RW WaveTable Sample Base Address (Low Byte)

VOICE[n] WAVETABLE BASE ADDRESS REGISTER (High Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the base address of the sample in WaveTable RAM, to be played (assuming the voice is configured for sample playback)

u8 in IO at 0x54 called VOICEWAVEBASEADDRHREG

76543210
BBBBBBBB

B: RW WaveTable Sample Base Address (High Byte)

Macro/Inline

// Compute actual addresses within the WaveTable RAM.
#define WAVEBASEADDR2AUDIOBANK(baseAddr,offset) (((baseAddr)+(offset))>>13)
#define WAVEBASEADDR2AUDIOBANKOFFSET(baseAddr,offset) (((baseAddr)+(offset))&((1<<13)-1))

VOICE[n] WAVETABLE LENGTH REGISTER (Low Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the length of the sample in WaveTable RAM, to be played

u8 in IO at 0x55 called VOICEWAVELENLREG

76543210
LLLLLLLL

L: RW WaveTable Sample Length (Low Byte)

VOICE[n] WAVETABLE LENGTH REGISTER (High Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the length of the sample in WaveTable RAM, to be played

u8 in IO at 0x56 called VOICEWAVELENHREG

76543210
LLLLLLLL

L: RW WaveTable Sample Length (High Byte)

VOICE[n] WAVETABLE LOOP-START OFFSET REGISTER (Low Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the offset within the sample where the sound loops to, each time it has played to the end. A value of zero causes the entire sample to play again.

u8 in IO at 0x57 called VOICEWAVELOOPSTARTLREG

76543210
LLLLLLLL

L: RW Sample Loop Start Offset (Low Byte)

VOICE[n] WAVETABLE LOOP-START OFFSET REGISTER (High Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the offset within the sample where the sound loops to, each time it has played to the end. A value of zero causes the entire sample to play again.

u8 in IO at 0x58 called VOICEWAVELOOPSTARTHREG

76543210
LLLLLLLL

L: RW Sample Loop Start Offset (High Byte)

VOICE[n] WAVETABLE LOOPED LENGTH REGISTER (Low Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the length of the sample in WaveTable RAM, on the second and subsequent loops to be played

u8 in IO at 0x59 called VOICEWAVELOOPLENLREG

76543210
LLLLLLLL

L: RW WaveTable Looped Sample Length (Low Byte)

VOICE[n] WAVETABLE LOOPED LENGTH REGISTER (High Byte)

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the length of the sample in WaveTable RAM, on the seconds and subsequent loops to be played

u8 in IO at 0x5A called VOICEWAVELOOPLENHREG

76543210
LLLLLLLL

L: RW WaveTable Looped Sample Length (High Byte)

const VOICEWAVEDATA_BANK


VOICEWAVEDATA_BANK = 49152