[chuck-users] phase modulation and hard sync?

mario.buoninfante mario.buoninfante at gmail.com
Sun Jun 4 12:59:01 EDT 2017


Hi Alexandre,

If you look at the complete formula here (under "spectral analysis" - for sure it is better then my explanation):
https://en.wikipedia.org/wiki/Frequency_modulation_synthesis?wprov=sfla1

You can see that alongside the Carrier Frequency there's the phase. This one is a sine wave (that goes from -1 to 1). Now we can consider SinOsc on ChucK, the same that the first sin in the formula above. Everything is feeding SinOsc in ChucK can be considered the same that all the stuff into parenthesis. Thus the argument you pass to SinOsc ( oscil.freq(certainFreq) ) is the Carrier Frequency (a fixed argument) and the the signal coming out from the Fm oscillator (scaled with a given value Am/Fm or ModInd, it is the same) is modulation factor that makes the Carrier Freq oscillate.
Now 2pi is needed only if you deal with a ramp, with a phasor. Cause Phasor*2pi gives you a sine. If you already have a sine there is no need to use 2pi.

Cheers,
Mario

Sent from my Wiko ROBBYOn Jun 4, 2017 17:20, Alexandre Torres Porres <porres at gmail.com> wrote:
>
> 2pi is already there if you are using a phase input, cause it seems the phase is normalized (0 to 1 instead of 0 - 2pi) in Chuck.
>
> What I mean is how to implement the same result with both frequency and phase modulation in a Chuck code, using SinOsc.
>
> All these things have to be adjusted
>
> But if the phase input wasn't normalized to 0-1, like is the case with SuperCollider, you don't need it.
>
> cheers
>
> 2017-06-04 13:09 GMT-03:00 mario.buoninfante <mario.buoninfante at gmail.com>:
>>
>> Hi Alexandre,
>>
>> In my implementation there's​ no need to use 2pi. That is required if you're using a phasor (in math terms). In that case you need 2pi to have the angular frequency. But if you're using instead a Sine wave there's no need, cause 2pi is already there. 
>> Looking at the formula I posted before, the Fm oscillator is the phase parameter, while the Cm is the frequency. You can consider them as an offset (Cm) and an deviation from it (Fm).
>> The index mod is equal to Am/Fm, but of course the parameter that you can use with an oscillator is the amplitude (Am), thus from the previous one you have Am = Fm*modInd
>>
>> Cheers,
>> Mario
>>
>> Sent from my Wiko ROBBY
>>
>> On Jun 4, 2017 16:39, Alexandre Torres Porres <porres at gmail.com> wrote:
>>>
>>> btw, for adjusting the index, you're just multiplying the frequency to the index, you should also multiply it by 2pi (like Jean found out by accident).
>>>
>>>
>>> 2017-06-04 12:29 GMT-03:00 Alexandre Torres Porres <porres at gmail.com>:
>>>>
>>>>
>>>>
>>>> 2017-06-04 4:24 GMT-03:00 mario buoninfante <mario.buoninfante at gmail.com>:
>>>>>
>>>>> this is the simplest modulation, that usually is considered as FM, but in the end is a PM.
>>>>
>>>> Well, as I see it, it should be either FM or PM, it can't be one but in the end is something else. And your code is can only (not usually) be considered FM.
>>>>
>>>> But it seems you're saying both are related, without getting into details - which is something we've already discussed here, and I've also pointed out (with no details either). But the bottom line is that they're different, and the same input parameters generate different results. Though I've said before the parameters can be "converted"/"adjusted" to sound the same.
>>>>
>>>> Namely, the same modulation index does not generate the same result (Jean noticed that), and I can add the detail that the same modulating signal/waveform generate different results too. For example, a triangular wave modulating the phase is the same as a square wave modulating the frequency. So, they're quite different. 
>>>>
>>>> In terms of sine waves, what we've been doing so far, if you modulate the phase with a sine wave, you need to modulate the frequency with a cosine wave.
>>>>
>>>> Like I pointed before, if you're going for a phase modulation implementation, you should just modulate the phase instead of trying to replicate it via frequency modulation, cause it's just more convenient to do directly via phase modulation if you want it to behave like that.
>>>>
>>>> And that not
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20170604/f57e75a5/attachment-0004.html>


More information about the chuck-users mailing list