furnace/doc/7-systems/es5506.md
Electric Keet 81ab2acb2c Lots of little cleanup.
Trying for more consistency and clarity, especially for quick reference.
2023-06-25 00:05:30 -07:00

41 lines
1.9 KiB
Markdown

# Ensoniq ES5506 (OTTO)
sample-based synthesis chip used in a bunch of Taito arcade machines and PC sound cards like Soundscape Elite. a variant of it was the heart of the well-known Gravis Ultrasound.
it supports a whopping 32 channels of 16-bit PCM and:
- real time digital filters
- frequency interpolation
- loop start and stop positions for each voice (bidirectional and reverse looping)
- internal volume multiplication and stereo panning
- hardware support for envelopes
# effects
- `10xx`: **set waveform.**
- `11xx`: **set filter mode.** values are `0` through `3`.
- `120x`: **set pause (bit 0).** pauses the sample until the bit is unset; it will then resume where it left off.
- `14xx`: **set filter coefficient K1 low byte.**
- `15xx`: **set filter coefficient K1 high byte.**
- `16xx`: **set filter coefficient K2 low byte.**
- `17xx`: **set filter coefficient K2 high byte.**
- `18xx`: **set filter coefficient K1 slide up.**
- `19xx`: **set filter coefficient K1 slide down.**
- `1Axx`: **set filter coefficient K2 slide up.**
- `1Bxx`: **set filter coefficient K2 slide down.**
- `20xx`: **set envelope count.**
- `22xx`: **set envelope left volume ramp.**
- `23xx`: **set envelope right volume ramp.**
- `24xx`: **set envelope filter coefficient K1 ramp.**
- `25xx`: **set envelope filter coefficient K1 ramp (slower).**
- `26xx`: **set envelope filter coefficient K2 ramp.**
- `27xx`: **set envelope filter coefficient K2 ramp (slower).**
- `3xxx`: **set coarse filter coefficient K1.**
- `4xxx`: **set coarse filter coefficient K2.**
- `81xx`: **set panning (left channel).**
- `82xx`: **set panning (right channel).**
- `88xx`: **set panning (rear channels).**
- `89xx`: **set panning (rear left channel).**
- `8Axx`: **set panning (rear right channel).**
- `9xxx`: **set sample offset.** resets sample position to `xxx * 0x100`.
- `DFxx`: **set sample playback direction.**