h6. [[SoundChannels]] h6(. » [[SoundChannels SWI Calls|SWI Calls]] h6((. » [[Sound_InstallVoice]] h2. Voice Generator |_<^{width:4em}. Offset |_<^. Contents| |>^. +0 |<^. B [[Sound Voice Generator Fill|Fill]]| |>^. +4 |<^. B [[Sound Voice Generator Update|Update]]| |>^. +8 |<^. B [[Sound Voice Generator GateOn|GateOn]]| |>^. +12 |<^. B [[Sound Voice Generator GateOff|GateOff]]| |>^. +16 |<^. B [[Sound Voice Generator Instantiate|Instantiate]]| |>^. +20 |<^. B [[Sound Voice Generator Free|Free]]|| |>^. +24 |<^. LDR PC, [R13], #4 (was Install)| |>^. +28 |<^. Offset from start of voice generator block to voice name| h4. Notes The Fill, Update, GateOn and GateOff entries provide services to fill the DMA buffer at different stages of a note. The Instantiate and Free entries provide facilities to attach or detach the Voice Generator to or from a channel. The Install entry was originally to be called when a Voice Generator was initialised. Since Voice Generators are now implemented as Relocatable Modules, which offer exactly this service in the form of the Initialisation entry point, this field is not supported and simply returns to the caller (LDR PC,[R13],#4 above). The voice name is used by the Channel Handler voice table. It should be both concise and descriptive. The offset must be positive relative - that is, the voice name must be after the header. h4. See also * [[Sound_Configure]], [[Sound_InstallVoice]]