Synth Studies: ALM Busy Circuits Akemie’s Castle

Basics & General Observations

Akemie’s Castle is a dual VCO built around the Yamaha YMF262 (OPL3) FM synthesis chip from 1990. This was a budget chip used in PC sound cards, capable of 4-operator FM synthesis but still fairly crude overall. There’s aliasing, lowish phase and level resolution, steppy modulation amounts and a generally variable noise floor… or as I like to think of it, it has vintage character.

Early FM synths were not exactly friendly to work with, due to the combination of unfamiliar technology, cramped and awkward user interfaces, unusual envelopes for level control, and complexity (6 operators and 32 algorithms on the DX7). Akemie’s Castle lets you just turn knobs and use your ears, and is a delight to work with.

FM Basics

An operator is just an oscillator plus a level control (VCA). Typically, FM operators use sine waves, but sometimes other shapes (often mostly derived from sines) are also used.

A carrier is an operator that is patched to the output and is directly audible. Its level is simply its volume.

A modulator is an operator patched to another operator; its level affects the timbre of its destination.

An algorithm is the map of how operators are connected — which ones are carriers, which are modulators and what they modulate.

Index is the level of a carrier; high index means stronger modulation and thus a brighter timbre.

Ratio is the relative frequency difference between modulator and carrier. Simple integer ratios like 1:1, 2:1, 1:3, etc. are more inclined toward clean, harmonic timbres, while fractional ratios such as 2:3, 5:7 or 1:1.1287189281 tend toward rougher, inharmonic or clangorous timbres. On the Castle, there are quantized frequency multiplier knobs which dialing in ratios easy just using your ears, but you’re unlikely to get a true bell sound of it.

But what is FM?

Frequency modulation is what happens if vibrato (intentional pitch wobble) is sped up to audio rates. If perfectly balanced on the “up” and “down” sides, it bends the shape of the wave into new timbres without changing the perceived pitch. (All of the stuff about exponential vs. linear vs. thru-zero FM relates to this balance.)

The Yamaha chips actually use phase modulation (PM). This effectively shifts the waves in time rather than frequency — but with sine waves it works out exactly the same as thru-zero FM. With squares, things can get weird, as I note below.

Yamaha chose this because they could implement PM with addition and a lookup table; no need for fancy math or the much higher precision demanded by “real” TZFM. This was a perfect choice for budget, low-power chips designed in the 80s.

FM vs Additive Synthesis

Subtractive synthesis takes a harmonically rich waveform and filters it to subtract harmonics. Some people assume that the opposite approach — taking a harmonically poor sine wave and doing something to it which generates extra harmonics, such as distortion/waveshaping or FM — must therefore be “additive synthesis.”

This is an incorrect assumption (and a pet peeve of mine).

Properly, additive synthesis is the technique of mixing a lot of sine waves at different frequencies and levels (and sometimes phases) in order to reproduce a more complex timbre. It’s really the opposite of spectral analysis, not subtractive synthesis.

It’s probably a good idea to look over the official manual. There are charts of waveshapes and chord settings I don’t reproduce here.

On the OPL3, the operator levels are controlled by 6-bit registers, meaning there are only 64 possible levels. This results in very noticeably steppy modulation as well as clicks in the output. These can be cleaned up somewhat by Izotope RX De-Click or similar tools. Izotope RX Elements includes De-Click, tends to go on sale frequently for cheap, and older versions work just fine at least back to version 6.

The Level knobs don’t reach the maximum possible level alone — they need external CV for that. You’re rarely going to want to max them anyway, to prevent clipping issues. With the Level knobs at minimum and the attenuverter maxed out, external CV can almost reach the max.

The Feedback control only affects operator 1. Note there are some algorithms where operator 1 is a carrier, so you can use it as a direct timbre control. While feedback only has 8 different levels (3 bits), it does interact with the operator 1 level, so you have a bit finer control that way. (You can also, if you want, independently CV the feedback level for Osc A and B but I’ve never actually done this in practice.)

In general, the VCO frequency can’t get low enough for a proper LFO, and doesn’t go above audio rates. And none of the CV inputs respond well to audio rate modulation.

Each operator has a frequency multiplier knob and CV input. The manual says the knob range goes from 1 to 15, but I’ve determined that it starts at 0.5x and it skips 11x, 13x and 14x. Mostly you don’t have to think about this and just choose multipliers/ratios by ear, but I like to set everything to 1x (along with zeroing the levels, waves, chord and feedback) as a sort of “init patch.”

Combining Oscillators

Osc A and Osc B have independent pitch controls, feedback and pitch CV inputs, and audio outputs. Osc A also has a Chord control, which can stack up to 5 of the OPL3’s 6 voices.

The two oscillators can be used independently, of course. But often I like to have them track the same pitch input and support each other. This works very well in stereo or mid/side encoding. It’s also handy when working with chords, as Osc B will hold only the root so you can emphasize it in your mix. Or, sequence both oscillators and let B walk around the scale while A plays the chords.

In the first two algorithms, each oscillator has two operators, and (very likely) will have different timbres. That can make them truly independent, or you can take advantage of it to reinforce weak points in the spectrum or emphasize the fundamental.

Algorithm 1

(They’re not “officially” numbered, but I count them in “reading order” from the top left, for convenience.)

Algo 1 with Osc A is a great into to this module’s flavor of 2-op FM, without getting into deeper complexity. Op1 acts as the modulator, Op2 as carrier. (Op3 and Op4 both lack modulation and act as simple oscillators in parallel/unison on the Osc B output.)

With all knobs initially set fully counterclockwise, monitor Osc A’s output and turn up Op2’s level. You should hear a sine wave — not a particularly clean one. The grunge is the result of low resolution of the phase accumulator and sine lookup table, among other things. You might also hear some influence from Op1 even with it turned down all the way. Sometimes trying different frequency ratios and wave settings can reduce or mask this effect.

Turn down the Op2 level knob again and patch an envelope or LFO to its CV input instead. You’ll most likely hear “zipper noise” or clicks as the amplitude changes; this is the 6-bit level resolution I mentioned above.

AUDIO EXAMPLE:

Here we have 4 notes where the level is modulated by Make Noise Function. Then four more, but processed with Izotope RX7 De-Click to clean it up a bit. (Since we’re only playing a sine wave, I could have used a lowpass filter it to clean it further.) Then four more, where instead of the internal VCA, I’ve patched Osc A through a Xaoc Tallin instead. (The different envelope shape illustrates that the internal VCAs don’t have a linear response.)

Try switching the CV to Op1’s level instead (and manually turn up Op2 so it’s audible again). The zippering noises are much more pronounced here, and are not cleaned up as readily by Izotope RX. (It still makes quite a difference.) A more effective way to mask this noise is with reverb, a granular smoothing effect, or something like Arturia Refract or Melda MUnison. And of course those things sound awesome anyway. 🙂

This is a good time to pull out the CV modulation and just play with different ratios and indexes to get a feel for the sound possibilities. The feedback too.

Envelopes into Mult can give a fun retro video game feel, since the ratios descend through quantized states as a sort of harmonic arpeggio.

This is also a good time to try out the other:

Waves

Sines are the standard for FM, but the OPL3 chip also produces different waves by inverting or offsetting the lookup table indices or results according to the quadrant. Some of them are rectified, which means they’ll sound as if they’re an octave above the sine.

The “half-sine” waveshape, found at about 1 o’clock on the knob, strikes me as particularly nice for carriers with a sine modulator and inharmonic or extreme ratios. You get a sort of “bumpy” texture but it’s not overly rough.

The square wave is a special case. Since it jumps between two output levels, at some level settings it has almost no impact on the carrier at all, regardless of the ratio. This is proof that the chip is doing phase modulation. If the high level represents +180 degrees and the low level represents -180, the difference between them is 360, which is the same as 0. There are three points on the Level knob where this almost happens — a useful trick to silence an operator you don’t want, or to flip FM on and off with a CV signal.

The final waveshape consists of very narrow spikes; with a weak fundamental, it’s kind of “edgy but innocent” as a modulator and bright and buzzy as a carrier.

What about Osc B? It’s worth exploring a bit too, with Op3 and Op4 in parallel (potentially in unison). The different waves and mixing can give you a little bit of variety (and of course, you can still use external wavefolders, filters etc. to spice it up).

Something to experiment with here in relative phase. Each operator’s phase is independent, and though there’s no sync, you can still influence the phase by briefly nudging the multiplier to something else and back — what I call the “phase bump”. Try setting Op3 and Op4 to a somewhat bright waveshape, choosing the same multiplier setting for both, and patching a fast decay envelope into one of their Mult CVs. If it’s fast enough (but not too fast), when the envelope is triggered there’ll be a bit of a click or glitch, and a lasting change in their relative phases. This will change the phase cancellation/reinforcement between the two operators. (If you’re modulating the level control or an external VCA with an envelope, you could do this between notes to mask the “glitch.”)

AUDIO EXAMPLE:

In Algo1, Osc B, Op3 and 4 are both set to the 4th waveshape and the same multiplier. Op4’s mult is modulated by an envelope from Make Noise Function, triggered by a steady clock.

Algorithm 2

This one is very similar to Algo 1, but its inverse. Op1 and 2 are parallel on Osc A, and Op3 and Op4 form a 2-op FM pair on Osc B.

There are a couple of reasons why you might choose this over Op1. The first is direct use of feedback on Op1 to alter its timbre. Feedback tends to push a sine toward something more saw-like, though if you go too far you’ll get noise. (I think this is a result of resolution limits introducing errors?)

Since Feedback and Level interact, using an envelope on Level while the feedback is high can act as a sort of lowpass gate, smoothing the sawtooth back into a sine.

If you want to intentionally generate noise, crank up the feedback, level and pitch. There will likely be repeating patterns; you can break those up by modulating the pitch (perhaps self-patching the output to the V/OCT input through an attenuator, though an LFO should also work reasonably well).

With high feedback on Op1, mixing in a sine (or other shape) from Op2 can help reinforce the fundamental or a subharmonic, for a more solid sound.

The second reason for this mode is:

Chords

Not only can you have somewhat “cleaner” chords without the FM, but you can have parallel sets of chords by using different multipliers for Op1 and Op2. You’ll sometimes get some lovely frequency beating between the two operators. (Try the “phase bump” with this too.)

The manual has a list of chords. The last couple of “chords” are actually unison detuning — and it’s a lot of detuning, not at all subtle. I find that having two operators in parallel can smooth out that unison a bit more.

For all of the non-unison chords, positive voltages into the Inv input will selectively shift some voices down an octave (or consonant near-octaves in the case of some of those 7th/9th chords). This can be especially effective with the Octaves setting, since you get very close unison between two voices.

(Inv with the unison modes results in weird inharmonic combinations… might be useful for some things though!)

You may want to turn down levels a bit when using chords, since the voice stacking increases the total volume and it can easily clip.

Algorithm 3

Here we dive right in to maximum FM complexity (at least on this module). We have serial FM: Op1 modulates Op2, which modulates Op3, which modulates our single carrier Op4.

Serial FM introduces order of operations as another timbral variable. Op3 has the greatest influence — turning down its level lowers the amplitude of all previous modulation. But a strong index generates many sidebands, which cut through audibly even at a weaker amplitude.

I don’t have a lot of insight to offer here — there’s a lot to explore, and usually I limit my techniques to simplify it. I treat it like it’s 2-op FM but with a little extra seasoning. Or I just start turning knobs and stop when I hear something cool.

AUDIO EXAMPLE:

Just because there are 4 operators in serial doesn’t mean it has to be harsh, overly bright and extreme. Here’s a patch sequenced by Marbles, with envelopes from Just Friends into Op1-Op3 levels. The two oscillators are in stereo (with the width decreased a bit) and there’s a bit of Native Instruments Raum reverb. (I think if I were producing an actual track with this, I would also have worked with some EQ and limiting to tame it further.)

Algorithm 4

The nicely balanced, 2×2 configuration. Op1 modulates Op2, Op3 modulates Op4. I find this one really pleasant in general: easy to work with since you can isolate a pair, and you can find timbres that complement and balance each other. This is really great for drones and pads (which is most of what I use Akemie’s Castle for). Fading in one modulator while fading out the other… nice stuff.

In a more typical classic FM synthesis patch, you might use one pair for the “body” of a sound — say an electric piano or mallet instrument — while the other pair provides a brighter, sharper attack. For patches like this it’s good to have at least two envelope generators, preferably more — you might want a separate envelope for one of the carriers and also on external VCAs for Osc A and Osc B. Of course for drones, LFOs, or slow looping envelopes, or slow envelopes triggered by gate patterns, are called for.

For me the rule of thumb in FM is “always keep moving.” FM indices should always be shifting, and if you’ve got multiple carriers, their levels should be constantly changing relative to each other. (In contrast, frequency ratios will usually be set-and-forget, unless you want to sequence them…)

Algorithm 5

Here we have Op1 on its own beside a 3-op serial chain. This is probably my least-used configuration, but realizing that makes me want to explore it more.

I find this works nicely for moderately bright and complex chords. You can combine strong feedback on Op1 with a healthy dose of FM index on Op2 and Op3. Combinations of multipliers, chords, and separate tuning for Osc A and Osc B can make things really rich, covering the whole frequency spectrum. Of course, if it’s too much you can tame it with filter or EQ afterward. You really don’t have to be an FM purist. But without filters, using a little restraint and more than a little reverb, you can get some very nice cathedral-filling pipe organ sounds out of it too.

Algorithm 6

Imagine turning Algo 5 90 degrees inside out (or something like that). Now we have three carriers: one with feedback, one with a modulator and one on its own.

This one makes me want to seek out gentler tones. Starting from three sines, maybe add just a touch of feedback and a hint of FM modulation. Have some gentle LFO modulation of their levels for a little ebb and flow. You can create chords just from their multiplier knobs (and mixing both oscs) without getting the Chord knob involved.

Of course if you do use Chord too, you can have an 18-voice chorus singing together in one massive, busy cluster.

Another thing I love to do is to take a few judiciously tuned sines, and blast them through some wavefolding or distortion (and then maybe a filter afterward to keep it in line). Power chords and intermodulation distortion are lovely stuff, and this algorithm is the one to turn to for that.