[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] sync osc




Am 21.12.2004 um 02:41 schrieb nonprivate:

why is it that only SinOsc can have its phase modulated?


/*
Instead of an answer here comes a spooky little synth for christmas
*/

Server.default = s = Server.internal;
s.boot;

// allocate buffers 117 - 122
s.listSendBundle(nil, Array.fill(6, { |i| ["/b_alloc", 117 + i, 1024 ] }););


(
// fill buffers and play
s.performList(\sendMsg, "/b_gen", 117, "sine1", 7,
	Array.fill(128, { |i| (i + 1).reciprocal }));
s.performList(\sendMsg, "/b_gen", 118, "sine1", 7,
	Array.fill(128, { |i| (i + 1).reciprocal }).neg );
s.performList(\sendMsg, "/b_gen", 119, "sine1", 7,
	Array.fill(128, { |i| (i + 1).reciprocal.rand }));
s.performList(\sendMsg, "/b_gen", 121, "sine1", 7,
	Array.fill(128, { |i| (i + 1).reciprocal.rand }));
s.performList(\sendMsg, "/b_gen", 120, "sine3", 7, Array.fill(128,
	{ |i| if (i.even) { [i + 1, (i + 1).squared.reciprocal, pi.rand]  ;}
	{ [0, 0, 0] } }).flat; );
s.performList(\sendMsg, "/b_gen", 122, "sine3", 7, Array.fill(128,
	{ |i| if (i.even) { [i + 1, (i + 1).squared.reciprocal, pi.rand]  ;}
	{ [0, 0, 0] } }).flat; );

{
	var freq = 55, lfo, lfo2;
	lfo = LFNoise1.kr(0.11, 0.5, 0.5);
	lfo2 = Lag.kr(TRand.kr(0.1, 0.9, Dust.kr(0.1)), 0.3);
	
	VOsc.ar(
		[119 + lfo, 122 - lfo],
		freq,
		VOsc.ar(
			[117 + lfo2, 118 - lfo2],
			MouseX.kr(freq * 0.2, freq * 5, \exponential),
			0,
			MouseY.kr(333, [0.5, 0.7], \exponential)
				* LFNoise2.kr(0.06, 0.2, 1.0)
		),
		0.3
	)
}.scope(2);
)