我是 SC 和整个音乐编程的新手。我已经完成了一个 python 应用程序,它读取文本并通过 OSC 逐字发送到 SC。文字只是为了好玩和尝试而重复的单词“miau”和“guau”。
发生的另一件奇怪的事情是,在 SC 控制台上,我得到的相同单词是文本和终端上的三倍(python 打印每个单词)。因此,对于 txt/终端上的每个“miau”,我在 SC 控制台上得到“miau miau miau”。
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 正在工作,但样本不会播放。任何提示表示赞赏!