Это видео недоступно.
Сожалеем об этом.
FM Synthesis -- Max MSP Tutorial
HTML-код
- Опубликовано: 17 авг 2024
- In this video we learn what exactly is fm synthesis and how to program an fm synthesizer at the basic level. If you enjoyed please like and subscribe and consider checking out my patreon as well!
Patreon: / andrews_art_project
Instagram: @andrews_art_project
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 :)
Thank you for clarifying this!
Clear and consise, as always. The possibilities you suggest are thrilling, to say the least!
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 🎉
Love it. Wish we could get more thorough theory as well. Thanks!
That’s good to know. Thanks
Thanks for sharing!
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?
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: ruclips.net/video/9-R8ZxpXt7Y/видео.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.
Love it thanks!
thank you
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.???
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
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.