Skip to main content
A series of FM sound chips which were very popular in DOS land. It was so popular that even Yamaha made a logo for it! Essentially a downgraded version of Yamaha’s other FM chips, with only 2 operators per channel. However, it also had a drums mode, and later chips in the series added more waveforms (than just the typical sine) and even a 4-operator mode. The OPL4 (Yamaha YMF278) retains the FM block from OPL3, but adds 24 sample channels on top! Samples are 44100 Hz, can be between 8, 12 or 16-bit, stereo (with 16 different levels) and can read PCM data from ROM or SRAM (up to 4 MB). Afterwards everyone moved to Windows and software mixed PCM streaming…

Effects

  • 10xx: set AM depth. The following values are accepted:
    • 0: 1dB (shallow)
    • 1: 4.8dB (deep)
    • This effect applies to all channels.
  • 11xx: set feedback of channel.
  • 12xx: set operator 1 level.
  • 13xx: set operator 2 level.
  • 14xx: set operator 3 level.
    • Only in 4-op mode.
  • 15xx: set operator 4 level.
    • Only in 4-op mode.
  • 16xy: set multiplier of operator.
    • x is the operator (1-4; last 2 operators only in 4-op mode).
    • y is the new MULT value.
  • 17xx: set vibrato depth.
    • 0: normal
    • 1: double
    • This effect applies to all channels.
  • 18xx: toggle drums mode.
    • 0 disables it and 1 enables it.
    • Only in drums chip.
  • 19xx: set attack of all operators.
  • 1Axx: set attack of operator 1.
  • 1Bxx: set attack of operator 2.
  • 1Cxx: set attack of operator 3.
    • Only in 4-op mode.
  • 1Dxx: set attack of operator 4.
    • Only in 4-op mode.
  • 2Axy: set waveform of operator.
    • x is the operator from 1 to 4; the last 2 operators only work in 4-op mode. A value of 0 means “all operators”.
    • y is the value.
  • 30xx: enable envelope hard reset.
    • This works by inserting a quick release and tiny delay before a new note.
  • 50xy: set AM of operator.
    • x is the operator from 1 to 4; the last 2 operators only work in 4-op mode. 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; the last 2 operators only work in 4-op mode. A value of 0 means “all operators”.
    • y is the value.
  • 52xy: set RR of operator.
    • x is the operator from 1 to 4; the last 2 operators only work in 4-op mode. A value of 0 means “all operators”.
    • y is the value.
  • 53xy: set VIB of operator.
    • x is the operator from 1 to 4; the last 2 operators only work in 4-op mode. 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; the last 2 operators only work in 4-op mode. A value of 0 means “all operators”.
    • y is the value.
  • 55xy: set SUS of operator.
    • x is the operator from 1 to 4; the last 2 operators only work in 4-op mode. 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.
    • Only in 4-op mode.
  • 5Axx: set DR of operator 4.
    • Only in 4-op mode.
  • 5Bxy: set KSR of operator.
    • x is the operator from 1 to 4; the last 2 operators only work in 4-op mode. A value of 0 means “all operators”.
    • y determines whether KSR is on.

Instrument Editor

This chip uses the FM (OPL) instrument editor for FM channels and the MultiPCM instrument editor for PCM channels. When two channels are joined for 4-op mode, the channel bar will show 4OP on a bracket tying them together. OPL4 maximum sample length is 65535.

Chip Configuration

The following options are available in the Chip Manager window:
  • Clock rate: Sets the rate at which the chip will run.
  • RAM Size: Sets the RAM size for sample storage.

Build docs developers (and LLMs) love