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

Re: [sc-users] SynthDef>VirtualRoom



I don't know what you are trying to do.

I'm just trying to play a synth that I trigger in MIDI through a VirtualRoom.

You can play the output of any pattern or synth into a proxy by setting \out to proxy.index.

(
x = NodeProxy.audio(s, 1);
x.source_(\FMae1);
x.index.postln;
)

x.index returned 16. If I put the out arg of my SynthDef to 16 and execute the code with .play, I don't hear anything, which this is normal since I have only 14 active outputs on my soundcard. But when I exectute the whole code below, my synth outputs through bus 0 (0 only, even with this line: v.out.playN([0, 1]); ) and virtualRoom has no effect.

Thanks again for your help, I guess I'm still missing something about the proxies...
c


(
s.options.blockSize_(128);
s.options.memSize_(8192 * 16);
Server.local.options.device = "MOTU 828mk3";
s.boot;
)

(
SynthDef(\FMae1,
{
arg out = 16, freq = 110, gate = 0, sustain = 0, attack = 0.001, depth = 100;
var carmod1, mod1, e1, envcar;
e1 = EnvGen.ar(Env.asr(attack, 1.0, 0.02), gate);
envcar = EnvGen.ar(Env.asr(0.01, sustain*0.8, 0.2), gate, doneAction:2);
mod1 = SinOsc.ar(freq/2, 0, e1*(depth*2000));
carmod1 = SinOsc.ar((freq + mod1), 0, envcar);

Out.ar(out, carmod1)
}).send(s);
)

(
x = NodeProxy.audio(s, 1);
x.source_(\FMae1);
x.index.postln;
)

(
VirtualRoom.kemarPath = "KemarHRTF/";
v = VirtualRoom.new;
v.init;
)

(
v.revGain = 0.9;
v.hfDamping = 0.1;
v.refGain = 0.8;
)

v.room = [0, 0, 0, 5, 8, 5];
v.out.playN([0, 1]);

v.listener.source = { |x=2.5, y=4, z=2.5, o=0| [ x, y, z, o] };

(
~vFMae = Voicer(5, \FMae1);
~msFMae = VoicerMIDISocket(0, ~vFMae, 37, 59);
~msFMae.noteOnArgsPat = Pbind(\sustain, Pkey(\velocity) * 0.00315, \freq, Pkey(\midinote), \attack, Pfunc( { a.slots[3].at( 48 ).value } ));
)

(
~hidbus = SharedBus.newFrom(a.slots[3].at( 49 ).bus, 'me');
~vFMae.mapGlobal(\depth, ~hidbus, spec: a.spec);
)

v.addSource(x, \space, [1, 2, 2.5]);

v.sources[\space].setn(\xpos, [2.5, 3, 2.5]);



(
~vFMae.free;
~msFMae.free;
~hidbus.releaseBus;
v.removeSource(\space);
v.free;
x.clear;
)