Переключение структуры управления для OSC MSG - PullRequest
0 голосов
/ 14 мая 2019

Я новичок в SC и вообще в музыкальном программировании. Я сделал приложение на python, которое читает текст и посылает слово за словом в SC через OSC. В тексте только слова «миау» и «гуау», повторенные для забавы и для того, чтобы попробовать.

Еще одна странная вещь в том, что на консоли SC я получаю три раза одно и то же слово, чем на тексте и на терминале (этот питон печатает каждое слово). Поэтому для каждого «miau» на терминале txt / я получаю «miau miau miau» на консоли SC.

Связь OSC работает, но я не слышу звука. Я играл свои буферы отдельно, и они работают. Когда я играю в буферах или SynthDef, я слышу воспроизводимые семплы, поэтому я предполагаю, что проблема в переключателе.

s.boot;

~b0 = Buffer.read(s, "/path/to/bd/BT0A0A7.wav")
~b1 =Buffer.read(s, "/path/to/hh/000_hh3closedhh.wav")

~b0.play; 

(
SynthDef.new(\playbuf, {|amp=1, out=0, buf, da=2, rate =1|
var sig;
sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf) * rate, doneAction:da);
sig = sig*amp;
Out.ar(out, sig);
}).add;
)

Synth.new(\playbuf, [\buf, ~b1.bufnum]);

(
OSCdef.new("texto",{
    |msg, time, addr, port|
    msg[1].postln;
    switch(msg[1],
        "miau", {Synth.new(\playbuf, [\buf, ~b1.bufnum])},
        "guau", {Synth.new(\playbuf, [\buf, ~b0.bufnum])}
        );

},
'/supercollider',
)
)

Хотя он копирует текст, поэтому я знаю, что OSC работает, сэмплы не воспроизводятся. Любой отзыв приветствуется!

...