NOTE: [n] is chosen through the use of VOICEBANKREG Chooses what kind of sound to create. Chooses whether the sound is starting or stopping. Chooses whether the sound is restarting from the beginning of the sample, or continuing from were it was last located.
u8 in IO at 0x50 called VOICECTRLREG
76543210
GROSPxxM
G: RW Gate (1=Play Attack/Decay/Sustain, 0=Play Release)
R: .W Reset (1=Reset the sample counter to the beginning of the sample! 0=continue as normal)
O: .W OneShot (1=Voice will auto-stop at end of the sample. 0=Voice will loop. Can control length of Noise as well, if you assign a VOICEWAVELEN to it!)
S: .W Silence (1=Kill the sound, even if there was a release to do! 0=continue as normal)
P: RW Pause (1=Pause the sound. 0=Don't pause the sound)
M: RW Mode (VoiceMode: 1=WaveTable, 0=Noise)
Name | Value | Comment |
VCS_Play | 128 | Cause the Attack, Decay, Sustain portions of the envelope to play. |
VCS_Release | 0 | Cause the Release portion of the envelope to play. |
VCS_RestartSample | 64 | Cause sample to restart from beginning. Does not affect the current state of the Envelope. |
VCS_ContinueSample | 0 | Cause sample to continue from where it currently is (i.e. do not RESTART) |
VCS_OneShot | 32 | Cause voice to auto-stop at the end of the sample. Envelope release will not be used. Attack/Decay may even be cut short. Gate will return to G_Stop automatically. |
VCS_Loop | 0 | WaveTable's typical operation - sample is looped as often as needed to play the entire envelope. |
VCS_Silence | 16 | Instantly kills the voice's sound. GATE goes 0. The envelope resets. There is no release. The sample offset is not modified. |
VCS_Pause | 8 | Instantly pauses the voice's sound. Voice state is otherwise unaffected. Unpausing the sound causes it to resume from where it left off. BUG: Occasionally, the hardware will buz when the channel is resumed. |
Name | Value | Comment |
VCM_Noise | 0 | |
VCM_WaveTable | 1 |