Delexander Algomorph — an FM Algorithm module — alpha

I’ve been working on a few different modules over the past few months, but haven’t gotten any of them in a releasable state. To break that trend, I’m releasing this module in an alpha state. Functionally it is essentially complete, but it is lacking a display widget that is going to take some time to implement as I envision. So, rather than keep it under wraps, here is the source and builds for your enjoyment.

Algomorph is a VCV Rack module for constructing FM algorithms using up to 4 operators.

It is intended for use in conjunction with oscillators capable of linear through-zero FM such as Bogaudio FM-OP, Nysthi µOPERATOR/TZOP, and Squinky Labs Kitchen Sink.

It allows for reconfiguring an algorithm using only button presses rather than having to rewire cables. Eventually, it will also have a pretty display in order to visualize the current algorithm (the display in the image above is a mock-up).

More interestingly, it allows for storing up to 3 different algorithms which can be instantly recalled by pressing the buttons labeled 1, 2, and 3.

Further, it features a Morph knob and CV input which allow for cross-fading between the stored algorithms.

Getting started:

  • Connect the output of up to four operators to the Operator Inputs.
  • Connect the same number of Modulation Outputs from Algomorph to the linear through-zero FM inputs of the operators.
  • Connect the Sum output to your audio device or a mixer. This output delivers the sum of all carriers.
  • Press an Operator Button followed by a Modulation Button to connect one operator to another. Repeat until you have built a desired algorithm.
  • After you have finished building your algorithm, press Algorithm Button 1 or 3 to build new algorithms.
  • The Morph knob allows for cross-fading between the stored algorithms:
    12 o’clock is the currently selected algorithm,
    7 o’clock is one algorithm to the left, and
    5 o’clock is one algorithm to the right.
  • The CV input can also be used instead of (or in addition to) the knob, accepting +/-5V.

I am surprised to find that an audio-rate oscillator patched into the Morph CV input, when tracking the same V/Oct as the operators, creates a pleasing result: seemingly something like a 4th algorithm related to the 3 component algorithms.

Builds for Linux, Mac, and Windows are available. To install one of these, follow these instructions.

16 Likes

you should increase the “MOD INDEX” in the TZOP(µOP) to have the FM

1 Like

In that image, the algorithm is a stack of four: 4 -> 3 -> 2 -> 1. TZOP is #4, so that’s why its MOD INDEX is set to zero. But it should definitely have some value added there if the either of the other stored algorithms had TZOP being modulated by another operator. :grinning:

1 Like

Super good idea ! This is going to be really useful to people who have an FM synth in their Rack template :smiley: !

2 Likes

Thanks. Just to say I could install and run this (Linux) without issues. Maybe the Readme page could use a link to https://vcvrack.com/manual/Installing#installing-plugins-not-available-on-the-vcv-library for the laziest users :slight_smile:

1 Like

Further exploring this phenomenon, I constructed an unusual patch. Three oscillators are patched into Algomorph’s Operator Inputs, but none of the Modulation Outputs are connected. Instead, three algorithms are assembled such that only one oscillator is a carrier in each:

image

This way, the Morph Knob serves to simply cross-fade between the three oscillators. When one of the three oscillators is additionally patched into the Morph CV Input via a VCA, some interesting harmonics are produced. I suppose this is some sort of “phased amplitude modulation” across three oscillators?

Soft-clipping the modulating oscillator plays nicely into the effect.

Done :+1:

2 Likes

Nice!

1 Like

Well, if it’s doing a sort of AM synthesis, why not ring modulation?

I’ve added an option called “Ring Morph” to the module’s context menu. When activated, turning the knob to the left or right will also fade-in inverted versions of the carriers and and modulation output found at the opposite end of the dial.

That is, if algorithm 2 is selected and Ring Morph is on, 7 o’clock on the Morph Knob yields both the Carrier Sum Output and Modulation Output of algorithm 3 as well as the inverted Carrier Sum Output and Modulation Output of algorithm 1.

Thus, ring modulation on the adjacent algorithms (in this case 1 and 3)!

To get pure ring modulation without AM on the currently selected algorithm, you can silence the currently selected algorithm on the Sum Output by patching all of its Operator Inputs to Modulator Outputs (so that there are no carriers) like so:

image

2 Likes

Though I never mentioned it, Algomorph has always supported polyphony on its Operator Inputs and Modulator Outputs.

Now, polyphony is also supported on the Morph CV Input. This allows for some cool things like morphing across algorithms using independent note envelopes as well as continuous per-note algorithm morphing using an MPE controller!

The builds linked in the original post have been updated.

Because all of the FM Operator modules have their own feedback knobs, it doesn’t make much sense to route operators into themselves via Algomorph. So, to best support the above use-case and others, I’ve now configured the module so that when an operator is routed to its own modulation output the operator is “disabled” for the current algorithm and does not get routed to any modulation output or to the Sum output.

I may eventually add a clearer visual cue to indicate that an operator is disabled (red light?).