Curious to see what you're going to say next time - about making FM and pitch. I was wondering if you also use PMOsc sometimes. I remember David Cottle said there wasn't really any noticeable difference between making an fm synth and PMOsc - I think there's also something similar in Curtis Roads book. Anyhow, I'm having plenty of fun with your great tutorial ideas - a bit Autechre even. Thanks.
Hey, glad to hear it. Yes, PMOsc will be featured in the next video. Very handy if it's classic FM synthesis you're after, but it's also good to know the DIY approach in case you want to customize the basic recipe, e.g. use non-sine waves, create multiple modulators/carriers, etc. In a digital context, frequency modulation and phase modulation are practically indistinguishable. Most digital oscillators are wavetable oscillators (this is true of SinOsc) because it's more efficient for a computer to look up values in a table, rather than calculate them on-the-fly. So, when we specify frequency, we're actually controlling the speed of a pointer that moves through the table, i.e. phase offset. PM and FM have different implementations, but the results are the same.
Yes - you can collect over the Pbind and store each event in a data structure, essentially intercepting the data before it is played. ( ~data = []; p = Pbind( \instrument, \fm, \dur, 1/8, \carHz, Pexprand(20, 10000), \modHz, Pexprand(20, 10000), \modAmp, Pwhite(0, 10000), \amp, Pexprand(0.1, 0.5), \atk, Pexprand(0.001, 0.05),
el, Pexprand(0.05, 1.2), \pan, Pwhite(-1.0, 1.0), ).collect({ |event| ~data = ~data.add(event); event; }).play; ) p.stop; Once stopped, you can review the data. For example, here's an array containing the sequence of 'modHz' values: ~data.collect({ |event| event[\modHz] }); //sequence of modHz values It would be a lot of work to manually re-create the random sequence by inputting all these data points. Instead, you might consider seeding SC's random number generator. This way, you can get the exact same random sequence each time, but you don't have to know all the numbers: ruclips.net/video/HvLYFbyc2rY/видео.html
No, because I don't know the exact technical details of how Ryoji Ikeda creates his sounds. From what I've heard, it sounds like the majority of his work involves precise rhythmic control of white noise and very high/low sine tones. I can't say I've ever heard anything by Ikeda that sounds unambiguously like FM synthesis.
i type everything line for line, checked the syntax and it doesnt work :( server is booted. i've tried 4-5 times now retyping out and rechecking syntax/typos.
I'm always happy to help, but I can't help at all if you don't paste your code and/or tell me more information about the failure, e.g. the error message it produces, or if your code fails silently with no errors, etc.
Oh yay, thanks for continuing this series!
Gratitude and congratulations for your clear and pedagogical explanations
Been waiting the whole series for you to get to FM stuff, even just this randomised code sounds amazing :)
thanks so much for continuing with your tutorials, Eliiii!!!!
Great, thank you! Looking forward to the next one!
Always love seeing these tutorials! Thanks for the work you put in. This is valuable.
Amazing tutorial...
I can't wait for the second part!
YEAH ! new tutorials
welcome back
Curious to see what you're going to say next time - about making FM and pitch. I was wondering if you also use PMOsc sometimes. I remember David Cottle said there wasn't really any noticeable difference between making an fm synth and PMOsc - I think there's also something similar in Curtis Roads book. Anyhow, I'm having plenty of fun with your great tutorial ideas - a bit Autechre even. Thanks.
Hey, glad to hear it. Yes, PMOsc will be featured in the next video. Very handy if it's classic FM synthesis you're after, but it's also good to know the DIY approach in case you want to customize the basic recipe, e.g. use non-sine waves, create multiple modulators/carriers, etc.
In a digital context, frequency modulation and phase modulation are practically indistinguishable. Most digital oscillators are wavetable oscillators (this is true of SinOsc) because it's more efficient for a computer to look up values in a table, rather than calculate them on-the-fly. So, when we specify frequency, we're actually controlling the speed of a pointer that moves through the table, i.e. phase offset. PM and FM have different implementations, but the results are the same.
Thanks, very useful !
is there a way to see which random numbers were chosen, to recreate that sound?
Yes - you can collect over the Pbind and store each event in a data structure, essentially intercepting the data before it is played.
(
~data = [];
p = Pbind(
\instrument, \fm,
\dur, 1/8,
\carHz, Pexprand(20, 10000),
\modHz, Pexprand(20, 10000),
\modAmp, Pwhite(0, 10000),
\amp, Pexprand(0.1, 0.5),
\atk, Pexprand(0.001, 0.05),
el, Pexprand(0.05, 1.2),
\pan, Pwhite(-1.0, 1.0),
).collect({ |event|
~data = ~data.add(event);
event;
}).play;
)
p.stop;
Once stopped, you can review the data. For example, here's an array containing the sequence of 'modHz' values:
~data.collect({ |event| event[\modHz] }); //sequence of modHz values
It would be a lot of work to manually re-create the random sequence by inputting all these data points. Instead, you might consider seeding SC's random number generator. This way, you can get the exact same random sequence each time, but you don't have to know all the numbers: ruclips.net/video/HvLYFbyc2rY/видео.html
Thanks, always informative, do you know how to create FM sounds based on the style of Ryonji Ikeda?
No, because I don't know the exact technical details of how Ryoji Ikeda creates his sounds. From what I've heard, it sounds like the majority of his work involves precise rhythmic control of white noise and very high/low sine tones. I can't say I've ever heard anything by Ikeda that sounds unambiguously like FM synthesis.
good one, thanks
great!! Thanks!!
i type everything line for line, checked the syntax and it doesnt work :( server is booted. i've tried 4-5 times now retyping out and rechecking syntax/typos.
I'm always happy to help, but I can't help at all if you don't paste your code and/or tell me more information about the failure, e.g. the error message it produces, or if your code fails silently with no errors, etc.
👌🏾