VOICE[n] ATTACK/DECAY RATES REGISTER

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the Attack Envelope Profile. Chooses the Decay Envelope Profile.

u8 in IO at 0x5C called VOICEADRATESREG

76543210
AAAADDDD

A: RW Attack (Use EnvelopeRate)
D: RW Decay (Use EnvelopeRate)

enum EnvelopeRate

NameValueComment
ER_None0skip this portion of the envelope.
ER_2MS11.978961397 ms
ER_4MS23.463182445 ms
ER_6MS36.06056928 ms
ER_10MS410.60599624 ms
ER_18MS518.56049342 ms
ER_32MS632.48086348 ms
ER_57MS756.84151109 ms
ER_100MS899.47264442 ms
ER_175MS9174.0771277 ms
ER_300MS10304.6349735 ms
ER_500MS11533.1112037 ms
ER_1000MS12932.9446064 ms
ER_1500MS131632.653061 ms
ER_3000MS142857.142857 ms
ER_5000MS155000.000000 ms

Macro/Inline

// Supply EnvelopeRate values...
#define ATTACKDECAY(a,d) ((u8)( ((a)<<4) | (d) ))

VOICE[n] SUSTAIN VOLUME REGISTER

NOTE: [n] is chosen through the use of VOICEBANKREG Controls the volume of the voice while in the Sustain portion of the Envelope.

u8 in IO at 0x5D called VOICESUSTAINVOLUMEREG

76543210
xVVVVVVV

V: RW Volume (0..64)

VOICE[n] RELEASE RATE REGISTER

NOTE: [n] is chosen through the use of VOICEBANKREG Chooses the Release Envelope Profile.

u8 in IO at 0x5E called VOICERRATEREG

76543210
xxxxRRRR

R: RW Release (Use EnvelopeRate)

Macro/Inline

// Supply an EnvelopeRate value...
#define RELEASE(r) ((u8)(r))