Add Frequency Modulation (FM) input in Grid Oscillators

Frequency modulation (FM) can be a nice addition for broadening sound design capabilities in the Grid.

Theoretically, PM can emulate everything FM can do. FM can be seen as modulating rate of
phase change, whereas PM modulates phase directly. Same analogy as acceleration and velocity in physics. But practically it’s difficult to get the PM version of a waveform that results in the same sound as FM. In real life use cases, PM tends to give more digital and metallic sound whereas FM has more of a natural and warm quality.

This feature could be implemented adding an FM input in grid oscillators.

image image

The new green slot on the right is the FM modulation input, works the same as PM.

What problem(s) would this feature resolve?

Bitwig currently only support phase modulation (PM) in grid oscillators. There is no easy way to do FM in Grid.

How does this feature fit in Bitwig as a product?

Improves the sound design capabilities of the Grid.

Is there already an alternative way to achieve this on Bitwig?

Currently it is possible to emulate FM with a bunch of modules, but it is cumbersome and limited.

FM modulation via LFO device and pitch modulation.

Also, this video shows another way of doing it:

Could it be implemented using Bitwig components or APIs, without Bitwig team’s support?


Could it be provided by a VST or something else reasonably integrated with Bitwig?


Are there other products that offer this feature?

Yes, Phase Plant. Although it is not the same modular environment like the Grid, it offers an easy way to do FM.

By modulating, frequency SHIFT, it will do FM, whereas, in the Grid, modulating frequency shift at the bottom right of OSCs would change frequency offset.

Relevant links (optional)


You can currently do true FM in the Grid, It’s just a bit involved. Here is a video about it:


Both my take and his take have limitation and unneccessary amount of work. You already know why I wrote the draft. It would be nice if we can just do FM as simple as PM.

4 posts were split to a new topic: [Draft discussion] Add Frequency Modulation (FM) input in Grid Oscillators

Is this preset by @artsense relevant here?

BItwig Poly Grid 🤖 - Self Modulating FM Patch 🎲 for Deep Ambient Feeling 😵‍💫 (HQ) - YouTube

I was kinda busy and couldn’t look into it deep, and now the video is deleted :frowning:

I might as well add FM → Pitch Modulation device thing too, but probably in the weekend.

1 Like

I’ve missed this topic, but I think we need clarification here. What’s needed is Linear FM capability, and I think we don’t need to add additional input for oscillators, instead we need ‘frequency to pitch’ conversion module with normalized or integer input scales. in normalised mode you could input another oscillator and output will be scaled to pitches that match linear frequency modulation. Modulating pitch is in fact frequency modulation, it’s just in very different (roughly exponent) scale.


I have updated the link above.

Although the details are above my understanding, I understand what you are proposing. It sounds like a more elegant solution indeed. I see @lokanchung has :heart: the comment. Who wants to update the description?

yeah, plus with 2 modes as I mentioned it would also solve a lot of hassle when you just want to convert specific frequency to pitch value. currently despite Pitch module having Hz display mode, it doesn’t actually allow to enter a frequency in it. so you can’t be precise with it.


I found something interesting.
Simply using the fact that

P = 0.1 * log2(F/C)
* P = pitch
* F = frequency
* C = frequency of C3

I was able to achieve FM with pitch modulation.
But as modulation gets deeper, it started to sound different from other FM synths, and I found the reason.
With deeper modulation, modulated frequency can have negative value. Negative frequency means that phase runs backwards.

(Sawtooth modulated by x0.25 square wave. Top waveform is the result.)

And since this involves phase, we can’t get proper sounding FM simply by converting frequency offset to pitch offset.

At this point, I can think of the phase device as originally suggested by @icaria36 which takes input signal and produces integral of it, but now OSCs can have a switch whether to use Phase input as PM modulator or lookup index (like modules in Data categories).

I’m more leaned towards to extra FM input, though. A bit bloated, but simple, no headache with technical limitations.

1 Like

I think it’s due to fact that pitch range in Grid doesn’t get to 0hz, lowest value is about 0.2hz, so instead of going negative frequency by overshooting the -1 range limit, it just hits the wall. to be honest, I think it would be interesting if they implemented a possibility to get beyond -1 into negative frequencies for pitch values.

Since pitch is logarithmic it’s impossible to map with negative frequencies. Outside of [-1, 1], for example, -1.1 would map to 0.1hz.

FM via phase modulation (this case I used Scaler for phase integration) seems possible. Here’s proof of concept.

I converted input pitch to frequency and did the modulation, and calculated the ratio, then modulated Rate parameter in Scaler. Negative frequency is supported by reversing input phase.
It’s just PoC and still has limitation as Rate is limited to [0, 32]. Also, it has some artefact.

1 Like