47 lines
982 B
Plaintext
47 lines
982 B
Plaintext
|
|
||
|
// 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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|