fyi: an elegant random FM instrument generator, coded in SuperCollider by James McCartney.

7 Likes

Forgive this naive question - but is there a difference between linear / exponential FM between two analog oscillators and the smooth DX-7 FM that most of what we’re talking about here? It’s all just FM, right? Just different levels of control? Same principal as FM radio? Two frequencies modulating one another? Analog FM almost always sounds like noise, DX-7 sounds glorious. If we had an infinite amount of control over our analog gear, could we recreate DX-7 sounds?

1 Like

There is one big difference between linear and exponential FM, namely that linear FM retains the fundamental pitch of the carrier, and so is much more “musically” useful.

Mathematically, this is because with linear FM, the area under the curve of frequency vs time above the fundamental is equal to the area under the curve under the fundamental, so they sort of even each other out. With exponential FM, the area under the curve above the fundamental outweighs the area under the curve under it, which means as the modulation gets deeper, the perceived fundamental increases.

John Chowning was the pioneer of this technique, and wrote pretty extensively on it if you want to learn more

2 Likes
  • if you have enough oscillators
  • if the modulation is through-zero
  • if the modulation targets phase and not frequency directly
  • if the modulation is linear
  • if the oscillators implement some method of phase sync
  • if the oscillators can be set to track each others pitch sufficiently accurately for your tastes

then yes.

i guess i just have different tastes because i find digital FM to be useful, but not exactly interesting. whereas analog FM is like some kind of window into the seething mysterious depths of the clockless universe. maybe i just like “noise”

anyway, dx-7, et al also has aliasing

23 Likes

There is an interesting patch in the Strange book where he uses a ring modulator as a multipler to compensate for the pitch shift in expo fm. I’ve had good results with it and I also discovered my homemade ring mod has inverted outputs.

6 Likes

So what you’re saying is…yesssss. Got it, I’ll start working on it.

I moved a bunch of my modules into a skiff to teach a ‘class’ but also to get my ten year old into modular. I’ve tried a few times in the past, but it never clicked for him and I think I dropped way too much theory on him. This time I backed off, walked him through a simple patch, then turned him loose. He did things I would have considered “mistakes” that ended up making noises i’ve never heard come from my modules before.

Last night we FM’d the STO from that skiff with a Makenoise DPO (both A & B oscillators), so that when he made a change, or I made a change it got realllll noisy. We added in modulation from cold mac, rene and wogglebug…it was super fun. This morning, when I dropped him off at school, I said “hey, last night we really created a whole lot of noise, it’s entirely possible we opened a rift in the universe and unleashed some sort of interdimensional being, so watch your back today.” So. Yes. “seething mysterious depths of the clockless universe” nailed it.

15 Likes

Thanks, will check him out!

That’s the beauty of embodied cognition. Think with your hands…

Then, think with your modules! (extended cognition…)

5 Likes

probably off topic :grinning:
here’s an art video we made back in the day
shown at usc fisher museum- laura’s art


tracks made with the mpc, and an goodwill mac with a scsi port that could run recycle into an s2000 akai sampler, and an orbit module (updated classic keys)… anyways

well if i understand it correctly, make noise DPO is more or less similar to the buchla 259, two of which (plus VCA matrix) perform the study linked above.

so they both are tricore with waveshaping, and have hard sync between carrier and mod oscs.

259 additionally has a sort of analog “soft sync” where instead of resetting the mod osc phase on the carrier sawtooth, it reverses its direction.

i think these sync mechanisms are important if you want very “stable” FM sounds.

and i think you can get these metallic timbres in analog that are relatively stable, but with that extra organic drift. and there is a wider harmonic palette because, really, it is easy to push dx- and tg- series into heavy aliasing, and its become part of “that sound.” bandlimited FM is just not an easy thing to do even on todays digital hardware; all you can do is constrain the modulation as a function of the input waveforms (heres a paper [edit: woop, nevermind, that’s a kind of different thing. what i had in mind was computing the bessel function and limiting mod depth, or bandlimiting mod signal, to constrain output of bessel func. this requires integrating the modulator so it’s not easy. deep rabbit hole.]).

then there is just they way that these systems actually converge on, or orbit around harmonic stability with the right settings, making glissandos and macro oscillations. in digital we can approximate with slews, delay, filtering, and added noise… but yeah, not the same.

i think if someone were to design an analog dual osc that was designed for “digital-like” fm synthesis, one thing that might help is a trigger input for sync. so at the start of a note you force the mod and carrier to be in sycnhronous phase, then let them go their merry way. is that a thing yet? if not, why not?


PS: speaking of chowning/stanford/yamaha, here’s a pretty fun piece my mom made, with max mathews performing. it uses tg77. she was really into fractal waveforms and made some kind of wild system of taking FFT of a fractal and turning it into tg77 sysex for additive waveforms. then using (approximately) irrational mod/carrier ratios related to the fractal dimensions and stuff. i think it’s quite musical but also not what we typically think of as “dx7 sound”

the 90s

17 Likes

interesting point! so I wonder how different ‘DX7 FM’ sounds with something crazy like 16x oversampling…

2 Likes

Not noted yet is Yamaha’s FM-X, available on the Montage. 8 ops and some spectral stuff I can’t remember plus knobs.

heavy oversampling is the typical way in softsynth-land, i think

The Cylonix Shapeshifter uses an internal sample rate of 2 MHz (it’s implemented with an FPGA). FM is one of my favorite things about it, but as you mentioned earlier, it’s way more stable (clinical?) and less organic sounding than the drift FM analog.

1 Like

yeah seems like the crazy 2MHz sampling rate of cyclonix is consistent with the sytrus softsynth (up to 64x oversampling).

So 16x is hardly overkill - might not even cut it… That’s nuts!

A link for sytrus that @rick_monster mentioned above. Windows only, alas.

A couple softsynths with capable FM implementations that are Mac compatible are NI’s FM8 and Arturia’s Synclavier V.

But I bet there’s some fantastic stuff in the Max and Pd worlds… (well, there certainly is, I just don’t have the links at my fingertips right this minute)

1 Like

I dunno. I have absolutely no backup for this statement, but my mathematical spidey-sense says that each modulator would require a doubling of the sample rate to avoid aliasing. Thus using all 6 operators stacked is 64x oversampling (2^6).

4 Likes

definitely true for A.M! cos (w t) * cos (w t) = 1/2 + cos(2w t).

So what’s the expansion of cos(w t + pi cos(w t)) ? time to crack out the fft - here be dragons when it comes to working through the math I think!

4 Likes

well halfway between:

&

one could try a semi-brute-force approach!

So how about a more manageable 8x oversampling throughout the algorithm, with 22kHz iir filters inserted to every modulation point? Obviously won’t have the ‘organic’ quality of analogue, but I feel like this would solve most of the aliasing problem without fully descending down said rabbit hole.

1 Like

yeah but a doubling isn’t enough. (it would be for AM.) each modulation point adds equally spaced sidebands at multiples of the modulation index (sorry, frequency), out to infinity i think. (negative-frequency sidebands are reflected though 0, which gives you the “chorusing” effects.) the amplitudes of the sidebands is a bessel function of the first kind, with mod index as argument.

sorry its just a google away, but this looks like a good walkthrough of the math using snd (and lisp!)
https://ccrma.stanford.edu/software/snd/snd/fm.html
its a good companion to the chowning paper. which i dunno has actually been linked yet in this thread but here it is:
(https://people.ece.cornell.edu/land/courses/ece4760/Math/GCC644/FM_synth/Chowning.pdf)

but! what gets really hard to handle is when the modulator is more complex than a sine wave. chowning doesn’t go there. i think you can just repeat the process for each component and sum the spectra? not sure right now.


(i feel like there’s some kind of version of godwin’s law for audio DSP, where bessel == hitler. like, as soon as we bring up bessel functions this thread is gettin locked)


just looking through that bill schottstaedt writeup again thought i’d excerpt some relevant bits (forgot that he is also very funny)

As the index sweeps upward, energy is swept gradually outward into higher order side bands; this is the originally exciting, now extremely annoying “FM sweep”. The important thing to get from these Bessel functions is that the higher the index, the more dispersed the spectral energy — normally a brighter sound.

There is a rule of thumb, Mr Carson’s rule, about the overall bandwidth of the resultant spectrum (it follows from our description of the Bessel functions): Roughly speaking, there are fm-index+1 significant sidebands on each side of the carrier, so our total bandwidth is more or less

2 * modulator-frequency * (fm-index + 1)

This is a good approximation — 99% of the signal power is within its limits. To turn that around, we can reduce the danger of aliasing by limiting the FM index to approximately (srate/2 - carrier_frequency) / modulator_frequency; use srate/4 to be safer. (Mr Carson’s opinion of FM: “this method of modulation inherently distorts without any compensating advantages whatsoever”).

10 Likes