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)
Name | Value | Comment |
ER_None | 0 | skip this portion of the envelope. |
ER_2MS | 1 | 1.978961397 ms |
ER_4MS | 2 | 3.463182445 ms |
ER_6MS | 3 | 6.06056928 ms |
ER_10MS | 4 | 10.60599624 ms |
ER_18MS | 5 | 18.56049342 ms |
ER_32MS | 6 | 32.48086348 ms |
ER_57MS | 7 | 56.84151109 ms |
ER_100MS | 8 | 99.47264442 ms |
ER_175MS | 9 | 174.0771277 ms |
ER_300MS | 10 | 304.6349735 ms |
ER_500MS | 11 | 533.1112037 ms |
ER_1000MS | 12 | 932.9446064 ms |
ER_1500MS | 13 | 1632.653061 ms |
ER_3000MS | 14 | 2857.142857 ms |
ER_5000MS | 15 | 5000.000000 ms |
// Supply EnvelopeRate values...
#define ATTACKDECAY(a,d) ((u8)( ((a)<<4) | (d) ))
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)
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)
// Supply an EnvelopeRate value...
#define RELEASE(r) ((u8)(r))