[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] Fourier sync problem
hi, here is the rewrite:
// Fourier Synthesis: square
(
f = { arg freq = 330;
var size = 14; // try different sizes of the sine stack
var a = Array.series(size, 1, 2).postln; // a list with the odd numbers
a.collect({|it, i|
SinOsc.ar(freq * it, 0, 1/it);
}).sum // mix
/ size // loudness scale
}
)
x = f.play;
x.set(\freq, exprand(100, 5000));
x.free; x= f.scope;
f.freqscope(1);
f.plot(5/440)
bests, H
On 16-Dec-2014, at 7:16 AM, user_weego wrote:
> If I was at a real computer I coult test it and try to rewrite the code to be a bit more concise.
> Since I hardly believe that 4 sines dont synch, i'd suspect that you are executing the synth 3 times, _almost_ at once. See inline comments below
>
> On Dec 7, 2014, at 19:30, vdkunz@xxxxxxxxxxxx wrote:
>
>>
>> Dear All,
>>
>> The following code snippet does not synchronise and result in a "near" square wave with overshoots:
>>
>> // Fourier Synthesis: square
>> (
>> var a, b, c, d, e, f, freq;
>> freq = 440;
>> a = {SinOsc.ar(freq: freq, phase: 0, mul: 1)};
>> b = {SinOsc.ar(freq: (freq*3), phase: 0, mul: (1/3))};
>> c = {SinOsc.ar(freq: (freq*5), phase: 0, mul: (1/5))};
>> d = {SinOsc.ar(freq: (freq*7), phase: 0, mul: (1/7))};
>> e = {SinOsc.ar(freq: (freq*9), phase: 0, mul: (1/9))};
>> f = {4/pi*(a + b + c + d + e) * 0.5};
> // why the signal * 4/pi*0.5? That is ca. 6.28 x louder than normal.
>> f.play;
>> f.freqscope.scope(1);
>> f.scope(1);
> // These 3; only one shd be executed at a time.
>> )
>>
>> Anyone knows why and how to solve it? For the purpose of demonstration I would hold on to the concept of adding sine waves.
>>
>> I also found that, if I do not multiply the f variable by 0.5, I get quite some distortion.
>>
>> Furthermore, what could be done to trigger the scope to show one to five cycles?
> .plot(5/440) instead of .scope should do that.
>>
>> Many thanks in advance
>> Dominik
>
> Hth,
> Hannes
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/