Loving all these tutorials! As an instrumental musician my mind is extremely "analog", but these videos make me actually understand stuff while still encouraging some intuitive tweaking. Thanks!!
In fact, just for the record, that’s not pure FM, as you multiply the signals of both cycle objects (which is ring modulation) before feeding it to the modulated FM. But it’s still a cool idea :)
I have a feeling this isn't true FM. But the tones you produce sound similar. Not sure though. I'm not Max fluent, and I'm just starting to learn the math behind FM (and not just the concept). I've been experimenting in Desmos. - A standard wave would be y=cos(wx) (where w is the frequency). - Ideally, you would modulate w to achieve FM. - For a standard sine sound, a non-FM sound, you would adjust w to simply change the pitch of the sine wave. Imagine a knob. Higher values mean higher pitch, and lower values is lower pitch. - For FM, ideally, you would do the same thing, but your 'pitch knob' would be going up and down in the manner of a sine wave. If it's sub-audio (sub 20Hz), it would behave like a LFO modulating the pitch (ie, vibrato). But above 20Hz, you would get FM tones. You are 'twisting' your virtual pitch knob back and forth at a constant rate. - But if you try to just replace w (in y=cos(wx)) with a sine/cosine function (ie, w=sin(Ax) or something) you get y=cos(sin(Ax)*x). If you try to do this, you will not get FM. You actually won't even get a periodic waveform. You something that looks kinda like a 'squeeze function' (ie, y=1/sin(x) ). - Instead, you must _add_ to the original cosine argument. Ie, y=cos(wx + Bsin(Ax)). - you now have three parameters: w aka frequency, A aka modulator frequency (eg, 'ratio' if you're thinking of a DX7), and B aka modulator amplitude. - if you don't believe me, and if you think that this would end up being Phase Modulation, here's a video which explains how this is NOT phase modulation: ua-cam.com/video/9-R8ZxpXt7Y/v-deo.html . Warning: basic calculus is required to 100% understand the video. But you can still see the resulting formula at 8:00. Replace m(t) with a cosine function, and you get y= cos( wx + B*integral(m(x)) ) = cos(wx + Bsin(Ax)). I'm not 100% sure about this. I'm still wrapping my head around the math. But i think what I described above is correct. So my guess is that if you want to make a max patch do FM like this, you would need to use the cycle~ object, and use the phase attribute. In y=cos(wx + Bsin(Ax), the 'cos' would be your first cycle~ object, and the inner 'Bsin(Ax)' would 'plug into' the phase attribute of this first cycle~ object. Ie, 'plug in' a cycle~ object into the phase attribute of the first cycle~ object to get a modulator-carrier/2 operator FM. Not sure. I have more studying to do. But thanks for reading. I'm mostly writing this just to help myself understand how to do this in Max, but I hope i can help someone else understand too. I can provide a link to my Desmos graph if you want to see. If I don't respond, you have permission to spam this thread.
Actually the first bit wasn't hard at all, but "musical" tones? Not so much; I can hear the sound changing for different keys, and it seems to follow some sort of formula, presumably the harmonic series. I would just like to know how hard it is to link this FM Synthesis patch to a controller and create with it ...
I wanna create a better Mp3 encoder and I need to look at every numerical data and analyze it according to certain rules I make with MAX objects. what would be the best objects to use to analyze the samples.???
2:30 the output of cycle object goes from -1 to 1 so you are basically adding a number from -1 to 1 to the pitch frequency, how can it work? I tried it by myself and it produces a completely different sound
The -1 to 1 value from the cycle~ is the amplitude of the waveform. When we add the signal value back we’re adding the pitch of the sound, I.e how fast the cycle~ is oscillating between -1 and 1. No matter what the pitch is the output will always oscillate between -1 and 1 but the sound changes because were controlling how fast that oscillation occurs. I hope this answers your question.
@@mattiafurlanetto2113 yes of course, the modulation is barely audible. the guy in the tutorial is probably clipping the output so you can hear the modulation, you have to multiply for some number the modulating signal to make it work. however if you replicate the whole patch it works pretty well
The "harmonic" value is a ratio so it wouldn't have to be at an audible rate. Think of that as the "additive" part e.g., a ratio of 1 will give you a saw wave and and a 2 will yield a square. However, in this setup it's not modulating the amplitude of the oscillator but the amp of the first converted number value. It's a super fun modulation patch but I'd recommend the Max tutorial on FM Synthesis to better understand how the concept really works.
you're the man thank you
Loving all these tutorials! As an instrumental musician my mind is extremely "analog", but these videos make me actually understand stuff while still encouraging some intuitive tweaking. Thanks!!
Clear and consise, as always. The possibilities you suggest are thrilling, to say the least!
In fact, just for the record, that’s not pure FM, as you multiply the signals of both cycle objects (which is ring modulation) before feeding it to the modulated FM. But it’s still a cool idea :)
Thank you for clarifying this!
Love it. Wish we could get more thorough theory as well. Thanks!
nice, this is a ring modulated fm synth. I try this patch on my Max and put this to my modular. Thank you.
OMG 😳 blew my mind 😮🤯🚀
This video is the game changer for my audio on Max 8 MSP 🎉
I have a feeling this isn't true FM. But the tones you produce sound similar. Not sure though. I'm not Max fluent, and I'm just starting to learn the math behind FM (and not just the concept).
I've been experimenting in Desmos.
- A standard wave would be y=cos(wx) (where w is the frequency).
- Ideally, you would modulate w to achieve FM.
- For a standard sine sound, a non-FM sound, you would adjust w to simply change the pitch of the sine wave. Imagine a knob. Higher values mean higher pitch, and lower values is lower pitch.
- For FM, ideally, you would do the same thing, but your 'pitch knob' would be going up and down in the manner of a sine wave. If it's sub-audio (sub 20Hz), it would behave like a LFO modulating the pitch (ie, vibrato). But above 20Hz, you would get FM tones. You are 'twisting' your virtual pitch knob back and forth at a constant rate.
- But if you try to just replace w (in y=cos(wx)) with a sine/cosine function (ie, w=sin(Ax) or something) you get y=cos(sin(Ax)*x). If you try to do this, you will not get FM. You actually won't even get a periodic waveform. You something that looks kinda like a 'squeeze function' (ie, y=1/sin(x) ).
- Instead, you must _add_ to the original cosine argument. Ie, y=cos(wx + Bsin(Ax)).
- you now have three parameters: w aka frequency, A aka modulator frequency (eg, 'ratio' if you're thinking of a DX7), and B aka modulator amplitude.
- if you don't believe me, and if you think that this would end up being Phase Modulation, here's a video which explains how this is NOT phase modulation: ua-cam.com/video/9-R8ZxpXt7Y/v-deo.html . Warning: basic calculus is required to 100% understand the video. But you can still see the resulting formula at 8:00. Replace m(t) with a cosine function, and you get y= cos( wx + B*integral(m(x)) ) = cos(wx + Bsin(Ax)).
I'm not 100% sure about this. I'm still wrapping my head around the math. But i think what I described above is correct.
So my guess is that if you want to make a max patch do FM like this, you would need to use the cycle~ object, and use the phase attribute. In y=cos(wx + Bsin(Ax), the 'cos' would be your first cycle~ object, and the inner 'Bsin(Ax)' would 'plug into' the phase attribute of this first cycle~ object. Ie, 'plug in' a cycle~ object into the phase attribute of the first cycle~ object to get a modulator-carrier/2 operator FM.
Not sure. I have more studying to do. But thanks for reading. I'm mostly writing this just to help myself understand how to do this in Max, but I hope i can help someone else understand too. I can provide a link to my Desmos graph if you want to see. If I don't respond, you have permission to spam this thread.
Thanks for sharing!
That’s good to know. Thanks
thanks Andrew!
at 2:38 can you explain why changing the harmonic frequency wont do anything to the sound and why we need to add extra code?
Love it thanks!
thank you
Is it hard to connect to MIDI keyboard and get musical tones from it, please?
Actually the first bit wasn't hard at all, but "musical" tones? Not so much; I can hear the sound changing for different keys, and it seems to follow some sort of formula, presumably the harmonic series. I would just like to know how hard it is to link this FM Synthesis patch to a controller and create with it ...
I wanna create a better Mp3 encoder and I need to look at every numerical data and analyze it according to certain rules I make with MAX objects. what would be the best objects to use to analyze the samples.???
2:30 the output of cycle object goes from -1 to 1 so you are basically adding a number from -1 to 1 to the pitch frequency, how can it work? I tried it by myself and it produces a completely different sound
The -1 to 1 value from the cycle~ is the amplitude of the waveform. When we add the signal value back we’re adding the pitch of the sound, I.e how fast the cycle~ is oscillating between -1 and 1. No matter what the pitch is the output will always oscillate between -1 and 1 but the sound changes because were controlling how fast that oscillation occurs. I hope this answers your question.
@@AndrewRobinson26 yes i mean that you are modulating the frequency in the rage of 2hz (from f-1 to f+1), it should not be even audible lol
@@matteopillon9885 same problem here, the sound I get is a pure sinewave!
@@mattiafurlanetto2113 yes of course, the modulation is barely audible. the guy in the tutorial is probably clipping the output so you can hear the modulation, you have to multiply for some number the modulating signal to make it work. however if you replicate the whole patch it works pretty well
The "harmonic" value is a ratio so it wouldn't have to be at an audible rate. Think of that as the "additive" part e.g., a ratio of 1 will give you a saw wave and and a 2 will yield a square. However, in this setup it's not modulating the amplitude of the oscillator but the amp of the first converted number value. It's a super fun modulation patch but I'd recommend the Max tutorial on FM Synthesis to better understand how the concept really works.
Hi Andrew, I am taking a sound and code class at my university and was wondering if you would be able to tutor? Please let me know.
cool