furnace/papers/doc/7-systems/opl.md
2022-03-26 19:55:20 +01:00

2 KiB

Yamaha OPL

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 original OPL (Yamaha YM3526) was present as an expansion for the Commodore 64 and MSX computers (erm, a variant of it). it only had 9 two-operator channels and drums mode.

its successor, the OPL2 (Yamaha YM3812), added 3 more waveforms and was one of the more popular chips because it was present on the AdLib card for PC. later Creative would borrow the chip to make the Sound Blaster, and totally destroyed AdLib's dominance.

the OPL3 (Yamaha YMF262) added 9 more channels, 4 more waveforms, rudimentary 4-operator mode (pairing up to 12 channels to make up to six 4-operator channels), quadraphonic output (sadly Furnace only supports stereo) and some other things.

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 (OPL3).
  • 15xx: set operator 4 level.
    • only in 4-op mode (OPL3).
  • 16xy: set multiplier of operator.
    • x is the operator (1-4; last 2 operators only in 4-op mode).
    • y is the mutliplier.
  • 17xx: set vibrato depth. the following values are accepted:
    • 0: normal
    • 1: double
    • this effect applies to all channels.
  • 18xx: toggle drums mode.
    • 0 disables it and 1 enables it.
    • only in drums system.
  • 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 (OPL3).
  • 1Dxx: set attack of operator 4.
    • only in 4-op mode (OPL3).