1
0
Fork 0
Rhizosphere/dev/octoPanOut.scd

47 lines
982 B
Plaintext
Raw Normal View History

// developement of 8-speaker output - notes, sketches...
// use it in a synth def
SynthDef(\testOcto, {
arg x= 0, y = 0, fact;
var son = WhiteNoise.ar(1) ;
y = SinOsc.kr(0.1).range(0,1);
//x = SinOsc.kr(0.4).range(0,1);
Out.ar(0,~octoPanOut.value(son, x, y, fact));
//Out.ar(1,son);
}).add;
)
x = Synth(\testOcto, [\fact, 100]);
x.free
//////////////////////////////////////////////////////////////////////////////////////////////////////////
// pseudo-UGen proposition by 'elgiano'
// https://scsynth.org/t/simple-spatialisation-function-synthdef-pseudo-ugen-or-ugen/1783/5
OctoPan : MultiOutUGen {
classvar <>speakers = #[
[0,0],[0,360],[0,720],[0,1080],[650,1260],[650,900],[650,540],[650,180]
];
*ar { arg in,x=0,y=0,speakers;
^this.multiNew('audio', in,x,y);
}
*new1 { arg rate,in,x,y;
var amps = this.speakers.collect{|coords|
var dist = coords - [x,y];
1/(1+dist[0].hypot(dist[1]))
};
^in*amps;
}
}