« Return to Thread: fm with feedback

Re: fm with feedback

by volker böhm :: Rate this Message:

Reply to Author | View in Thread


On 22 Apr 2009, at 12:11, Matthew Yee-King wrote:

> Hello!
>
> Can anyone suggest how to create a simple FM circuit with modulator  
> feedback?
>
> I've come up with this, but the pitch does not remain constant  
> (well that's the whole point, but you know what I mean):
>
> SynthDef("fm_fb", {arg b_freq = 440;
>   var chain, freq;
>   freq = b_freq + (LocalIn.ar(1) * MouseX.kr(0, 10) * b_freq);
>   chain = SinOsc.ar(freq, mul:0.3);
>   LocalOut.ar(chain);
>   OffsetOut.ar(0, chain);
>   //Out.ar(1, SinOsc.ar(b_freq, mul:0.1));
> }).play(s);

if you are still interested in this -
you could try to modulate phase instead of freq to avoid the drift.

something like this:

SynthDef("fm_fb", {arg b_freq = 440;
   var chain, phas, sr, freq, fb;
    freq = MouseY.kr(50, 1000, 'exponential');
    sr = SampleRate.ir;
    fb = OnePole.ar( (LocalIn.ar(1) * MouseX.kr(0, 1.5)), 0.91);
    phas =  Phasor.ar(0, freq/sr) + fb;
    chain = SinOsc.ar(0, phas*2pi, 0.5);
    LocalOut.ar(chain);
    OffsetOut.ar(0, chain);
}).play(s);

the lowpass is just in there to dampen the high freq energy of the  
modulation signal a little.
experiment with the coef, or throw it out if you are looking for this  
very harsh sound.

because of the signal feedback the results depend heavily on the  
block size.
for minimum delay one would have to write a dedicated ugen, and i bet  
someone has already done this.

hope this helps,
volker.



_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/

 « Return to Thread: fm with feedback