No video

FM Synthesis with an Imaginary Index of Modulation (Modified FM)

  Рет қаралды 4,549

Lantertronics - Aaron Lanterman

Lantertronics - Aaron Lanterman

Күн бұрын

Пікірлер: 54
@MathHammer
@MathHammer Ай бұрын
Fun! I was my Ph.D. advisor's TA for "Signal Analysis and Transform Methods" back in the mid-late 1980's. I also love Bessel functions.
@moselle409
@moselle409 Ай бұрын
Another fascinating video. I added "spectrogram" to my TODO list.
@Calcprof
@Calcprof Ай бұрын
Euler lives! e^iθ = cos(θ) + i sin(θ). The imaginary sines and cosines are just the hyperbolic functions cosh and sinh. I love Bessel functions.
@MathHammer
@MathHammer Ай бұрын
Haha, me too. Cylinder functions and other "special functions of mathematical physis" have always been a joy to me. I have a well-worn copy of Watson's treatise on Bessel function.
@kwgm8578
@kwgm8578 25 күн бұрын
I ran into J(s), the Bessel functions. I thought I had left the planet for a few weeks, but then something clicked, and a new world was opened before me. This was a class named Advanced Engineering Math and for the first time in my engineering student career, I earned an A in a math class. I did a lot of Control theory in my Masters program. I'll look at your recommendation. That first FM bass sound was the best - a nice Moog Mini bass, but the dual FM harmonic a few tries later had promise. It sounded like a good Vth. Too many modulation cycles and it gets very brassy, too. The "alternative" never sounded good. Thank you. I dont have time to read your code now, but I hope to next year, after I get taxes filed and get my life ready for some intense spine surgery and rehab afterwards. Again, I enjoyed this.
@Elizabeth-vh6il
@Elizabeth-vh6il Ай бұрын
Nice! Thanks for the introduction. It would be really interesting to hear this applied in context with the kind of instrument patches that you're more likely to use in a real song, to get a comparison of what's possible in modified FM vs regular FM.
@fnytnqsladcgqlefzcqxlzlcgj9220
@fnytnqsladcgqlefzcqxlzlcgj9220 Ай бұрын
Yeah was hoping for something applied rather than just theory with a sample of the nature of the function
@ravelite
@ravelite Ай бұрын
Thank you, Prof. Lanterman. This series on FM variants is amazing!
@Lantertronics
@Lantertronics Ай бұрын
Thank you for your kind words!
@DrSynth
@DrSynth Ай бұрын
Fun stuff Aaron. Definitely curious what the sonic differences would be with the modified FM in multiple Modulator configurations. Setting various Modulator indices and ratios to leverage the standard Bessel function behaviors is one of the subtle arts of (standard) FM.
@possible-realities
@possible-realities Ай бұрын
Nice video! So it seems that the end result is basically that you are multiplying a (co)sine wave with f(t) = exp(-a) * exp(a*cos(om*t)) = exp(a*(cos(om*t)-1)). When a is no too small, what you get is basically a periodically repeated gaussian, or a spike train convoluted by a gaussian. (Only the part close to the peak matters, and there the (co)sine wave looks like a quadratic function). In the frequency domain, that's a gaussian spectrum multiplied by a spike train (so that only the harmonics remain). Multiplying by a sine wave shifts the spectrum up and down, basically moving the peak of the gaussian in the spectrum (and creating some interference between the copy that moved up and down). This kind of approximation to a gaussian pulse train definitely has its uses in sound synthesis. A nice thing is that gaussians are solutions to the diffusion equation. You can imagine a string that is initiatially plucked with a spike. The spike bounces back and forth, while the damping coould be described by a diffusion equation (pretty much what Karplus-Strong does if I remember correctly, but numerically, and with different initial conditions). If you change a so that the variance of the gaussian (e g measured as the inverse of the second derivative at the peak) increases linearly over time, you should get some kind of natural damping.
@vikenemesh
@vikenemesh Ай бұрын
The modified FM Timbre is really much smoother to control, Thank you for introducing us! But it is also kind of lacking in the harmonics - from a musical point of view at least - is there a way to remove the "bessel-swirl" that does not remove as much spectral content?
@boptillyouflop
@boptillyouflop Ай бұрын
FM synthesis feedback loops is the classic way to get less swirly and more consistent harmonics. Another alternative is that you can use phase distortion synthesis on the modulator.
@vikenemesh
@vikenemesh Ай бұрын
@@boptillyouflop I will be looking into those, thank you!
@Lantertronics
@Lantertronics Ай бұрын
I think if you want more harmonics in the modified version you can just crank up the index. With a bit of work one would probably make a rule of thumb for mapping indices from one technique to the other.
@815TypeSirius
@815TypeSirius Ай бұрын
Now rotate them in real time.
@Lantertronics
@Lantertronics Ай бұрын
You mean, like, make the index of modulation rotate on a circle in the complex plane?
@815TypeSirius
@815TypeSirius Ай бұрын
@@Lantertronics did my comment get deleted? I linked to the video. kzbin.info/www/bejne/qquzeXqYlN-caaMsi=6h8edr3sG_FQVpop
@eliasknaapinen
@eliasknaapinen Ай бұрын
​@@Lantertronics He's probably referring to the guy who uploaded a bunch of "spectral rotation" trickshot techniques a short while ago. In a nutshell: manipulate an audio signal in such a way, that its image on the spectogram appears rotated. You'll likely find it on a quick search of audio spectral rotation.
@morgan0
@morgan0 Ай бұрын
something else this reminded me of, phase shifting sines thru min(max(a, b), -min(a, b)), a continuous xor, has a bit of a fm sound imo, but different. in surge, i implemented it and 8 others part of a generalized system of describing limited gradient two input scale invariant functions, extending what i listed and min, max, etc. the one i listed is the lowest order unless you consider f(x, y)=0 to be valid, four that are one order higher, and another four that are the next higher order, except it is missing simpler stuff like min(x, 0), x, and anything that could be achieved by swapping and/or negating inputs isn’t there. however surge doesn’t have phase shift on oscillators which i think is dumb but slightly detuning two sines will at least sweep thru phases. i think i had made something modulating the phase of sines thru the simplest 5 modes (i only implemented the following 4 in surge) and used it to be the synth parts for a sega genesis midi. later i can try to find the relevant formulas tho i will double check with what’s in surge, after i find where it is in the surge code nowadays. i haven’t done anything with it in a while but i came up with a system for categorizing and describing two input functions, how to do so for three inputs broke my brain when i tried lol.
@morgan0
@morgan0 Ай бұрын
ah if you use two external instrument oscillators in surge, those could be left and right coming from another synth that does have modulatable phase
@morgan0
@morgan0 Ай бұрын
oh and i should probably say how to get to it in surge. right click on the ring mod sliders in the voice mixer
@zmix
@zmix Ай бұрын
Excellent exploration Aaron.. I think that these 'semi - 'failed' experiments are so interesting. I have so many tweaks I'd like to try in order to understand more, like why the index shifts so much between the two methods. I've got a request: I have always been fascinated by the dynamic tonal difference between Yamaha's implementation of FM and NED's implementation, especially the sorts of things that happen when the modulation index changes slowly as in the NED factory Timbre "Dr Floyd" as heard in the soundtrack to the 2001 a space odyssey sequel "2010", so maybe you could have a look / listen? The Synergy on the other hand sounds nearly identical to the Yamaha method, might be worth a 'comparo' video? Thanks again.
@Lantertronics
@Lantertronics Ай бұрын
The thing I don’t know is how numbers in a Synclavier map to actual indices of modulation, whereas the Yamaha DX mappings are very well documented. The DX mapping is exponential, which is kind of built into how it uses log and anthology tables to turn multiplication into addition, whereas the Synclavier uses actual digital multipliers.
@zmix
@zmix Ай бұрын
@@Lantertronics Like Synergia the Arturia Synclavier is running Cameron Jones' actual code, so it's a valid example to play with.
@cheater00
@cheater00 Ай бұрын
hey Aaron, I think you really missed an opportunity there. at 4:20 (nice) where you replaced a with -ja, rather than make it a constant (a or -ja), make it a point that constantly rotates on the circle of radius a around the origin. It will start out at a+0j, then continue counter clockwise to ja, -a, and -ja. If you do that, I think you could get some interesting results if the frequency of how quickly that number goes around the circle is really slow, like 0.2 hz or something. so again, in that formula at 4:20, instead of having -ja, you would have a * j^(2*pi*fj) where fj is a new parameter like fc or fm. would you mind terribly trying it out and recording what you get? you're basically morphing between standard and "modified" FM synthesis.
@Lantertronics
@Lantertronics Ай бұрын
I actually did that! The problem I ran into is that while regular FM is constant envelope the envelope of modified FM changes drastically with the index. I couldn’t figure out a way to consistent handle the amplitude compensation, and without any such thing, morphing between original and modified as you described just sounded like slow amplitude modulation. Definitely worthy of further thought.
@cheater00
@cheater00 Ай бұрын
@@Lantertronics I don't think you need to do that envelope fixing thing at all. But anyways, your examples seem to be rendered offline, so maybe just do a curve fit on the loudness contour.
@G8tr1522
@G8tr1522 Ай бұрын
man this is cool
@Lantertronics
@Lantertronics Ай бұрын
Thanks!
@Don-ev5ov
@Don-ev5ov Ай бұрын
To oversimplify, the normalized modified Bessel In are less bumpy than the Jn? Also, the In result from using an imaginary argument in the Bessel equation? Just my understanding at the moment -not really asking. Well explained.
@Lantertronics
@Lantertronics Ай бұрын
You are right on all counts.
@vrixphillips
@vrixphillips Ай бұрын
HELL YEAH! GO TECH :D
@Lantertronics
@Lantertronics Ай бұрын
Thanks!
@zaphhood4745
@zaphhood4745 Ай бұрын
Basicly all the music from Eye of the Beholder.
@juno6
@juno6 Ай бұрын
Very interesting experiments. How about feedback? How does it sound in this scheme?
@Lantertronics
@Lantertronics Ай бұрын
Good question! That would be trickier to implement, I’d need to write a loop processing a sample at a time instead of writing it all vectorized like I did.
@franksheeran9243
@franksheeran9243 Ай бұрын
I think in all these graphs I'm hearing changes above 3000 that aren't visible on the graph. The spectrogram suggests the sound mostly isn't changing, but ears say otherwise. At my age I trust my eyes more than my ears, usually, though...
@Lantertronics
@Lantertronics Ай бұрын
Oh there definitely is stuff up there; I somewhat arbitrarily set the top of the plot at 3000. If I was doing a less off-the-cuff video I would have customized it for each plot.
@h0verman
@h0verman Ай бұрын
it's interesting how with the modified FM and the lack of oscillating bands you can much more clearly hear what i presume is your editing software compensating for the decreasing amplitude in discrete stages
@Lantertronics
@Lantertronics Ай бұрын
Not sure what’s going on really, but Camtasia adjusts from clip to clip. It doesn’t do any compressor type adjustments within each clip (without me running a compressor effect in Camtasia; which I’m not).
@seisette
@seisette Ай бұрын
I was thinking, a series on the Electro-Smith Daisy Seed would be phenomenal. It's a great tool for DSP.
@Lantertronics
@Lantertronics Ай бұрын
I have a student experimenting with the Daisy Seed: kzbin.info/www/bejne/oHy9mK1uablnndk
@artpinsof5836
@artpinsof5836 Ай бұрын
🤯🤯🤯
@Lantertronics
@Lantertronics Ай бұрын
Thanks! :)
@raph151515
@raph151515 Ай бұрын
at 11:35, weird I feel an old "prince of persia" video game vibe
@Lantertronics
@Lantertronics Ай бұрын
Interesting!
@atomictraveller
@atomictraveller Ай бұрын
i'm too important to think here much but it sounds like there may be an implicit unfitness for inharmonic ratios, sounds like cancellation is just faster/all over the place. thanls for reminding folks you can just put stuff in an audio loop and try it and get all kinds of insight into dsp. rofl dude is asking you to try stuff next "30 years later"
@mak533
@mak533 Ай бұрын
Aaron -- is there a quick record function in Octave/MATLAB to capture synthesized sounds? File type specification / setting paths, etc.
@Lantertronics
@Lantertronics Ай бұрын
You want to use the audiowrite function.
@mavisbavingson2299
@mavisbavingson2299 Ай бұрын
can someone explain why digital FM implementations use phase modulation ?
@Lantertronics
@Lantertronics Ай бұрын
Check out this reddit post: www.reddit.com/r/synthesizers/comments/4xnzbs/how_fm_is_actually_pm/?rdt=56978
@Lantertronics
@Lantertronics Ай бұрын
Look for the long comment on that post by x2mirko.
@Lantertronics
@Lantertronics Ай бұрын
The main problem that comes in with a straightforward implementation of raw FM is that if one of the modulators is spitting out a DC offset (which you can get from a chain of modulators), then the carrier its driving will seem out of tune, whereas with phase modulation, that DC offset won't be heard as a problem.
Coding Adventure: Sound (and the Fourier Transform)
43:31
Sebastian Lague
Рет қаралды 317 М.
The Coolest Radio You've Probably Never Heard Of
11:54
Tom the Dilettante
Рет қаралды 3,7 МЛН
Kind Waiter's Gesture to Homeless Boy #shorts
00:32
I migliori trucchetti di Fabiosa
Рет қаралды 11 МЛН
Pool Bed Prank By My Grandpa 😂 #funny
00:47
SKITS
Рет қаралды 19 МЛН
Survive 100 Days In Nuclear Bunker, Win $500,000
32:21
MrBeast
Рет қаралды 160 МЛН
Designing a TR-606 style hi-hat from scratch
36:44
Moritz Klein
Рет қаралды 361 М.
The Beauty of Mathematics Part 1 // Math in VCV Rack
7:22
Your Pal Rob
Рет қаралды 2,9 М.
FM Synthesis: A New Explanation - Synth Clips 30 -Daniel Fisher
36:28
The World Depends on 60-Year-Old Code No One Knows Anymore
9:30
Coding with Dee
Рет қаралды 746 М.
An intro to FM acid (like Daniel Avery & Kris Wadsworth)
11:53
Underdog Electronic Music School
Рет қаралды 96 М.
The REAL Difference Between FM AM and SSB
5:17
DXCommander
Рет қаралды 10 М.
i made a robot that picks locks WITHOUT A PICK
16:50
Sparks and Code
Рет қаралды 340 М.
Kind Waiter's Gesture to Homeless Boy #shorts
00:32
I migliori trucchetti di Fabiosa
Рет қаралды 11 МЛН