|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
fm with feedback
by Matthew Yee-King-2
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message 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); cheers Matthew _______________________________________________ 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/ |
|
|
Re: fm with feedback
by volker böhm
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message 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/ |
| Free embeddable forum powered by Nabble | Forum Help |