don't click here

Four FM operators being used as four separate sound channels

Discussion in 'Technical Discussion' started by Yalecsa, Oct 27, 2018.

  1. Yalecsa


    So, the PC-88 was a popular Japanese home computer during the 80's, and like the Mega Drive, used a Yamaha four-operator FM synth chip for its sound. It had only three FM synth channels, as well as three SSG channels. So, only six sound channels total. Unless a special mode was active, in which the third FM channel goes a bit weird. You can hear it here:

    The intro is done entirely on the third FM channel, but uses four voices. Each of the four operators is being used as a unique voice, rather than combined to shape a waveform. Here's a picture of this in action via Hoot, a music player with a nice visualisation of the channels being played.

    So, being that the Mega Drive used a later, more advanced Yamaha FM synth chip, I was wonder if it's possible to enable this mode? I'm aware that the third FM synth channel on the MD's sound chip can do some other rather weird things; the FM Drive VST has both "special"* mode and "CSM"** mode as options, both of which are only possible on channel 3. It'd be really interesting to see some MD hacks use this mode if it's possible; it might only be four basic tones rather than the usual complex instruments that FM synth is know for, but sometimes you just need more channels for a complex soundscape! Does anyone with a more intimate knowledge of the Mega Drive's sound chip know if this is possible?

    *("Special" mode description from the FM Drive user manual: Under special mode each operator on channel 3 can have a different root frequency setting, allowing special effects and more inharmonic sounds.)
    **("CSM" mode description from the FM Drive user manual: CSM stands for COMPOSITE SINE WAVE MODELING aka early speech synthesis system.)
  2. MarkeyJester


    Nothing's Impossible Resident Jester
    The YM2612 in the Mega Drive has 8 algorithms, each algorithm will control which operators are a carrier and which ones are modulators, and in which order they are fed into each other:

    Code (Text):
    1.     0   =   ->'1'--->'2'--->'3'--->[4]
    2.             ^  |
    3.             |  v
    4.             |<--
    6.     1   =   ->'1'->| '2'--->'3'--->[4]
    7.             ^  |   |      ^
    8.             |  v   v      |
    9.             |<--   ------>|
    11.     2   =   ->'1'->| '2'--->'3'--->[4]
    12.             ^  |   |             ^
    13.             |  v   v             |
    14.             |<--   ------------->|
    16.     3   =   ->'1'--->'2'->| '3'--->[4]
    17.             ^  |          |      ^
    18.             |  v          v      |
    19.             |<--          ------>|
    21.     4   =   ->'1'--->[2]    '3'--->[4]
    22.             ^  |
    23.             |  v
    24.             |<--
    26.     5   =   ->'1'->| [2]    [3]    [4]
    27.             ^  |   |  ^      ^      ^
    28.             |  v   v  |      |      |
    29.             |<--   ---|------|----->|
    31.     6   =   ->'1'--->[2]    [3]    [4]
    32.             ^  |
    33.             |  v
    34.             |<--
    36.     7   =   ->[1]    [2]    [3]    [4]
    37.             ^  |
    38.             |  v
    39.             |<--
    Each number is an operator, the operators surrounded by '#' are modulators, and the ones surrounded by [#] are carriers.

    • Algorithms 0 to 3 have operators 1 to 3 being modulators and feed finally into the carrier operator 4 for the resulting sound.
    • Algorithm 4 has operator 1 being a modulator and feeding into operator 2 being a carrier, likewise operator 3 modulator feeding into operator 4 carrier.
    • Algorithms 5 and 6 have operators 2 to 4 being carriers while operator 1 is a modulator, and feed into the other channels in various ways.
    • Algorithm 7 has all four operators as carriers with no modulators.

    You can uniquely control the carrier operators independently of other carriers without affecting them, so realistically algorithms 0 to 3 have only one output, algorithm 4 has two outputs, algorithms 5 and 6 have three outputs, and algorithm 7 has four outputs. (It should be noted that operator 1 can feed back into itself up to 3 times over, so it'll act as a modulator 3 times then the fourth time either a modulator or a carrier).

    Each operator has a "multiplier" register which can control the frequency of its sinewave, however, it is done in logarithmic steps, you'll find from 00 to 01 it'll go up by about an octave's worth, 01 to 02 would go up by about half an octave, and so on. So you cannot control the exact frequency/pitch of these carriers, but you do have some measure of control at least. These "multipliers" are added relative to the channel's frequency.

    However, like you mentioned (and I'm assuming this is the same mode in relation here), FM channel 3 does have a mode of which when enabled, the "multiplier" register is ignored and instead, the channel's frequency only controls one of the operators, and the other three operators get their own frequency slot within the chip which can be controlled 100% independently, complete with the octave slot of the frequency.

    Regardless of whether you use FM 3's frequency mode or just one of the other FM channels, depending on the algorithm you can control the operators independently of each other and treat them as if they were a unique instrument of their own. Algorithm 4 would likely be the most popular of the all, since it allows you effectively two outputs, but also allows you to modulate the carrier uniquely in some way so it's not a standard boring sinewave.

    I hope this information is helpful to you.