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.
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.
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.
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.
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.
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 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.
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.
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.