Test Patch (updated v5): Linear FM & Phase Modulation VCOs with External Sync

I updated the original post with a new patch file and video. Happy holidays!

Edit to add: I can’t believe I missed the opportunity to add triangle-core Terrorform. I’ll get that fixed soon.

Second edit: both posts have been updated to include the triangular terror.

BTW, I have to say totally agree that simple FM patches can be so super nice. I can easily find myself entranced by the sound of a single sine wave, a bit of modulated feedback FM, and some reverb. The “simple” math of it is really gorgeous, I think!

But! I also find myself with a serious obsession gazing out at the horizon of possibility in FM synthesis when all these tools (courtesy of Chowning, Yamaha, and many more) are combined in new ways thanks to modern technology. Korg has done some really cool things with the interface and modes available in the OPSIX, and Yamaha’s AI-powered Smart Morph is also a direction of which I’m very interested (I hear they are full-steam-ahead with this AI thing… Can’t wait to see what’s next).

Personally, as a fan of the noise genre, for me it nearly becomes a call of the void with this stuff. Infinite possibility! But I endeavor to keep the patches in this thread not-so-noisy. :grinning:

With Algomorph, it’s possible to set each algorithm to something very musical and then with the twist of a knob find yourself in-between in some place unexpected. And when sequencing algorithms via CV, a particular algorithm can be used to define a fine detail within an animated sound: like using a noisy algorithm just for a transient, or performing speech synthesis via an extended sequenced of phonemes.

I’m excited to hear the sounds that people will find with the help of Algomorph and Algoseq!

Perhaps more simple and classic FM, I recently acquired Octocell for Ableton - A really nice synth, worth (EUR 59) checking out if you have Ableton Live Suite. And perhaps worth imitating in VCV.

From the manual:

"The OctoCell is a new synthesizer designed by Michel Geiss – musician, long-time collaborator of Jean-Michel Jarre and designer of hardware instruments; and Jean Lochard – musician, collaborator of the famous Ircam (the Parisian music research institute), and co-designer of the Ircamax 1 and 2 collections.

The OctoCell is a hybrid multi-synthesizer. It’s compatible with Live 11 running Max for Live. It combines several types of synthesis: additive, FM and subtractive. The device really shines when you combine very “analog” timbres such as the T0X preset, with very FM timbres like the T0Y preset. You can find these in the Tutorials folder.

Its original concept and expressiveness, including MPE (MIDI Polyphonic Expression) compatibility, make the OctoCell a unique and versatile instrument that can be used in all forms of music.

Basically, the OctoCell synthesis engine consists of an additive structure of eight oscillators, each with its own amplitude envelope. Since these eight oscillators are organized into additive synthesis elements, they’re referred to as Partials. For each oscillator, you have a choice of three waveforms: sine, sawtooth and square. When in sine mode, each oscillator has its own frequency modulation oscillator, with its own envelope. It’s a set of eight synthesis cells, hence the name “OctoCell”

https://www.octocell.net/

https://www.youtube.com/channel/UCoMxWi7dlm_UTTXYB-Er7Lg/videos?view=0&sort=dd&shelf_id=0

1 Like

Oh, I love the OPSIX and it’s on my wishlist for a while, but I simply do not have the space for it. I really hope Korg will release a desktop module… (btw. the sound design videos of Oscillator Sink are awesome)

For me one big part of FM is the clever use of envelopes to shape the sound. And I am not talking ADSR, which is IMHO the most useless envelope in terms of FM (and in modular patches in general). Triggerable, delayable, invertable, loopable envelopes with hold stages and end levels are just so much more fun (BOGaudio DADSR(H)+ for example). I am pretty sure, that when the FM-OP or the kitchen sink would not have an envelope integrated, that there would be more interesting patches out there. It is just so convenient to use the built-in envelope (often reduced to AD)…

That said, here is a feature request for your algomorph advanced for the auxiliary-inputs, when used as an envelope input: “Inverted Modulator Attenuverter”. And a question while looking at it, is the input polyphonic or is the “modulator attenuvertion” applied to all modulators?

2 Likes

look handsome :joy:

sorry about that , I had to say

1 Like

You mean FM-OP? I think the internal feedback sounds better, and it has that fractional ratio. That’s all I know of.

yes fm op is more handsome , the look is important to some of us (I say us so as not to feel superficial, I’m sure that the majority cares more about the other thing that you have said)

Oh, I know there are people for whom panel looks is very important. I guess in this case I’m slightly surprised because while I love the functionality of the bogaudio modules, I hate their panels.

For me reading words on their sides is more difficult, the the very small LED you need to click on are difficult for me to hit.

Also, although I like it, I thought the “flat look” was very unpopular here?

Do you set the FM-OP to the dark panel?

1 Like

Thanks for the suggestion, I’m going to think about it. To have the input simply inverted, couldn’t you just place something like an 8vert in front? Though maybe I could see adding an Aux Knob for “Modulator % CV Attenuversion”, or maybe even a “Envelope Strength” CV input that would attenuate both Modulator Attenuverter CV and Sum Attenuverter CV. Just spitballing…

All of the Aux Input modes are polyphonic except the Trigger modes:

  • Clock
  • Reverse Clock
  • Reset
  • Run
1 Like

Not an 8vert, but an offset with +10V and negative scaling would work, sure. It was just a suggestion, but absolutely not necessary. I don’t think the additional Aux Knobs are necessary, it is already a big module and I like the clean look.

1 Like

yeah, it looks really good.

1 Like

The little knob in the middle of the big knob on Algomorph Advance is called the Auxiliary Knob. By default it acts as an attenuverter for Morph CV input (as I hope you might first suspect), but also in the module’s right click menu you can choose what that knob does:

The trick here is that each of those “modes” is actually an entirely separate knob (parameter in dev speak), and selecting among them really just selects which is visible. This provides two benefits:

  • Each mode has built-in memory; each mode’s knob stays where you leave it
  • Each mode can be separately mapped via VCV MIDI Map or stoermelder MIDI-CAT/CV-MAP/CV-PAM

Also, this allows me to add additional knobs (modes) without taking up any panel space. :grinning:

Thanks, both of you, I really appreciate that!

@mosphaere a clarification, because I think I misread you before. A Modulator Attenuverter Aux Input is applied to all modulators equally. However it’s also polyphonic, so it will affect Channel 1 of all Modulator Outputs separately from Channel 2 of those outputs.

1 Like

After watching this video from @DaveVenom, I learned that the Fundamental oscillators perform true frequency modulation rather than phase modulation. This explains the unique behavior that’s been on display here. Even more interestingly, while the Wavetable VCO’s LFM is through-zero, the standard VCO’s is not.

In light of this, I decided to add Terrorform’s true FM mode into the mix. I’ve also rearranged the demo order like this:

  1. PM (Sine)
  2. PM (Triangle)
  3. FM (Sine)
  4. FM (Triangle)

That brings the total to 14 oscillators! Four of them are Terrorform. Soon I’ll need another MixMaster.

Both videos posted above have been updated, as well as the patch file in the original post.

1 Like

Submarine Free include the PO-204 oscillators, but they have no anti-aliasing at all. 4 synced PM oscillators, but no option to externally sync.

There’s a quad ADSR to go with them in a separate module.

1 Like

I really like these modules. I think they make such a nice package together with Algomorph, and in fact if I were to design my own operators for my plugin then I imagine the design would look something similar:

It’s good to know that they do have internal sync. I’m considering to have a second version of this patch with all oscillators patched to match the sync arrangement of PO-204 and no wildcard oscillator (the current patch essentially features 5-operator algorithms). The current patch has sync set up like this:

  • Operators 1, 2, and 3 → Sync to Operator 4
  • Operator 4 and WC Operator → Sync to global trigger at patch load

So long as there’s no WC operator, I think that the external sync on patch load can probably be removed without “invalidating” the comparisons between oscillators.

Here is a significant new version of the test patch.

I’ve now added Instruō Neóni to the FM rotation. My configuration for this patch uses Neóni in Traditional mode and also DC coupling.

Like other Instruō modules in VCV, Neóni features simulation of the analog variance between the physical eurorack modules. This analog variance is stored in the module’s preset, and so it can be studied and modified, and if a module is duplicated then there is no analog variance between the duplicate and the original. So, I took some care not only to ensure that all 5 instances were the same, but additionally I rounded off some of the numbers in the preset in order to arrive at some kind of specific testing unit. Here is the preset that can be pasted onto any Neóni module in order to turn it into one such testing unit (parameters will not be changed):

{
  "plugin": "Instruo",
  "model": "neoni",
  "version": "2.0.0",
  "data": {
    "deviations": {
      "frequency": {
        "minimum": 4.8246350288391113,
        "maximum": 37240.65625,
        "fine": 295.11865234375,
        "vpo_error": 0.0,
        "fm_bias": 0.0
      },
      "amplitudes": [
        4.5,
        4.5,
        4.5,
        4.5,
        7.5
      ],
      "wavefolder": {
        "minimum": 0.62463122606277466,
        "maximum": 0.85045909881591797
      },
      "waves": {
        "sawtooth": {
          "bias": 1.031604528427124,
          "invert_level": -0.19921243190765381
        },
        "sine_shape": 1.5
      }
    }
  }
}

This addition of Neóni (in both sine and triangle forms) brought me to a full MixMaster, but also overburdened my CPU. (To be clear, I don’t blame Neóni at all; 80 oscillators is a lot for one patch!) So now I’ve split the patch in two: one for phase modulation and one for frequency modulation.

While testing Neóni alongside the other FM oscillators, I found a curious dichotomy: for this particular sequence of algorithms, hard sync leads Neóni to sound rather clicky but conversely soft sync makes Terrorform start clicking. So, because all of the FM oscillators have both hard and soft sync, I decided to double up the patch and share both versions.

This version sees the dawn of Full Detach Mode in TZOP (thanks very much @synthi!). No more gaps there. :grinning:

This is also using the latest release of Algomorph, featuring carrier averaging at the Carrier Sum output. This means that you may notice less volume fluctuation across all of these tests going forward, no matter the sequence of algorithms.

I’ve changed the algorithms for the first time. Let’s get more interesting! Higher modulation depth! Here’s the new setup:

Operator 4: [Freq - 65.407 Hz, i.e. Octave -2 & Ratio x1] [Mod Depth - 10.506%]
Operator 3: [Freq - 196.22 Hz, i.e. Octave -2 & Ratio x3] [Mod Depth - 8.3494%]
Operator 2: [Freq - 163.52 Hz, i.e. Octave -3 & Ratio x5] [Mod Depth - 13.843%]
Operator 1: [Freq - 114.46 Hz, i.e. Octave -4 & Ratio x7] [Mod Depth - 49.494%] [Osc Amplitude - 35%]

Wildcard:   [Freq - 16.352 Hz, i.e. Octave -4 & Ratio x1] [Mod Depth - N/A]     [Osc Amplitude - 0.20482%]

Also, I added melody. Because why not?

Note: the modulation depths for NYSTHI TZOP have been doubled and those of µOPERATOR have been quadrupled. This brings their sound more in line with those from other developers, and they sound much more similar to each other now too. The amplitude of µOPERATOR is also boosted by 6dB in MixMaster.

I think this one is pretty cool! Every oscillator here has its own character.

To recap, these are the included oscillators. Sin indicates sine wave output and tri indicates triangle wave:

  • Phase Modulation

    • Bogaudio VCO (sin)
    • Bogaudio VCO (tri)
    • NYSTHI TZOP
    • NYSTHI µOPERATOR
    • Squinky Labs Kitchen Sink (sin)
    • Squinky Labs Kitchen Sink (tri)
    • Valley Terrorform (sin)
    • Valley Terrorform (tri)
  • Linear Frequency Modulation (all VCOs both sine & triangle)

    • Fundamental VCO
    • Fundamental WT VCO
    • Instruō Neóni
    • Valley Terrorform

The following videos were recorded with the Rack engine running at 48 kHz using VCV Rack Pro 2.0.5 and the following plugin versions:

  • Bogaudio 2.0.39
  • Fundamental 2.0.3
  • Instruo 2.0.0
  • NYSTHI 2.0.14
  • Squinky Labs 2.1.3
  • Valley 2.0.2

Stay for the ensemble performance during the fade-out of each video! I enjoy the sounds that come from layering different oscillators together. There are some really cool chorusing effects to be found in this way.

AlgomorphVCO_TestPatch_PM_Octahedron.vcv
image
(11.1 KB)

AlgomorphVCO_TestPatch_FM_Hard_Octahedron.vcv
image
(14.7 KB)

AlgomorphVCO_TestPatch_FM_Soft_Octahedron.vcv
image
(14.7 KB)

4 Likes

Super nice! But… where is Algomorph? can you post some builds for it?

1 Like

I intend to sell Volume 1 as a premium open source plugin on the VCV Library. This may be on the way, and for that reason I haven’t released any public builds of the plugin for Rack 2. Unfortunately I don’t have any news to share on that front.

In the meantime, I’m continuing to work on Algoseq and I do have news there to share. While fleshing out the interface, I couldn’t help but rethink some fundamental elements of the design. I think I’ve got it nailed down now, but development and testing time has increased due to some added complexity. Algoseq will not only be capable of storing up to 4 separate sequences of differing length, but additionally it will be possible to crossfade between these sequences just as it is possible to crossfade between algorithms (steps) within a sequence.

Basically, it’s now a two-dimensional phase sequencer. Because the last step & sequence crossfade back to the first as phase approaches maximum, you can think of it as a sort of toroidal sequencer. In dimensional terms: I think of movement across “Time” for the steps within a sequence, and movement across “Space” when traversing between sequences.

This design process for me has been reminiscent of that which produced Algomorph Advance and then later Algomorph Pocket, so… There could be some sort of miniature Algoseq in the future, but I make no promises.

Once I’ve got this module wrapped up, I intend to revisit this test patch and produce another revised version. In particular I’d like to spend more time trying to show off the best in all of the LFM oscillators (Fundamental, Instruo, Valley). I’m also keen to look into measuring oscillator and modulation depth amplitudes between these oscillators, to make sure that all levels are set appropriately (see above: my correction for the NYSTHI oscillators in the v5 patch update).

Sincerely, thank you for checking in. Your interest helps keep me coding.

3 Likes

it sound great, i hope you have soon some news :slight_smile:

1 Like

Really happy to see some love for advanced FM here lately! Happy to help with testing, if you need some.

1 Like