# ESS ESFM an enhanced version of Yamaha's OPL3, adding many features which weren't present on the original chip, such as 4-op on all channels, coarse/fine detune, per-op panning, envelope delay, noise generator and advanced modulation routing (no more algorithms!). the technology was present in many of ESS' sound cards (the ES1xxx series in particular). ## effects - `10xy`: **set AM depth.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is either `0` (1dB, shallow) or `1` (4.8dB, deep). - `12xx`: **set operator 1 level.** - `13xx`: **set operator 2 level.** - `14xx`: **set operator 3 level.** - `15xx`: **set operator 4 level.** - `16xy`: **set multiplier of operator.** - `x` is the operator (1-4). - `y` is the new MULT value.. - `17xy`: **set vibrato depth.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is either `0` (normal) or `1` (double). - `19xx`: **set attack of all operators.** - `1Axx`: **set attack of operator 1.** - `1Bxx`: **set attack of operator 2.** - `1Cxx`: **set attack of operator 3.** - `1Dxx`: **set attack of operator 4.** - `20xy`: **set panning of operator 1.** - `x` determines whether to output on left. - `y` determines whether to output on right. - `21xy`: **set panning of operator 2.** - `x` determines whether to output on left. - `y` determines whether to output on right. - `22xy`: **set panning of operator 3.** - `x` determines whether to output on left. - `y` determines whether to output on right. - `23xy`: **set panning of operator 4.** - `x` determines whether to output on left. - `y` determines whether to output on right. - `24xy`: **set output level of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `25xy`: **set modulation input level of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `26xy`: **set envelope delay of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `27xx`: **set operator 4 noise mode.** - `0`: noise off - `1`: square + noise - `2`: ring mod from operator 3 + noise - `3`: ring mod from operator 3 + double pitch modulation input - note: emulation issues. subject to change! - `2Axy`: **set waveform of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `2Exx`: **enable envelope hard reset.** - `2Fxy`: **set fixed frequency block (octave).** - `x` is the operator from 1 to 4. - `y` is the block/octave from 0 to 7. - `3xyy`: **set fixed frequency f-num.** - `x` contains operator number and high bits of f-num may be any of the following: - `0` to `3` for operator 1 - `4` to `7` for operator 2 - `8` to `B` for operator 3 - `C` to `F` for operator 4 - `y` are the lower bits of f-num. - `40xx`: **set operator 1 detune.** - `41xx`: **set operator 1 detune.** - `42xx`: **set operator 1 detune.** - `43xx`: **set operator 1 detune.** - `50xy`: **set AM of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` determines whether AM is on. - `51xy`: **set SL of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `52xy`: **set RR of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `53xy`: **set VIB of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` determines whether VIB is on. - `54xy`: **set KSL of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` is the value. - `55xy`: **set SUS of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` determines whether SUS is on. - `56xx`: **set DR of all operators.** - `57xx`: **set DR of operator 1.** - `58xx`: **set DR of operator 2.** - `59xx`: **set DR of operator 3.** - `5Axx`: **set DR of operator 4.** - `5Bxy`: **set KSR of operator.** - `x` is the operator from 1 to 4. a value of `0` means "all operators". - `y` determines whether KSR is on. ## info this chip uses the [FM (ESFM)](../4-instrument/fm-esfm.md) instrument editor.