使用supercollider我想要做一些實時聲音處理,我聽說supercollider與蟒蛇
它看上去很不錯,但我想堅持,只要「正常」的編程問題蟒蛇。
有什麼辦法加載python腳本作爲模塊supercollider或oposite?
這意味着將庫導入到我的python代碼並使用supercollider功能?
我沒有在網上找到關於它的很多信息,所以任何幫助都會很棒。
使用supercollider我想要做一些實時聲音處理,我聽說supercollider與蟒蛇
它看上去很不錯,但我想堅持,只要「正常」的編程問題蟒蛇。
有什麼辦法加載python腳本作爲模塊supercollider或oposite?
這意味着將庫導入到我的python代碼並使用supercollider功能?
我沒有在網上找到關於它的很多信息,所以任何幫助都會很棒。
我不知道SuperCollider的python實現,但是它很容易在SC和Python之間通過OpenSoundControl進行通信。下面是一些示例代碼,來自tutorial,這些代碼是我爲Art Center的一個班級撰寫的,介紹瞭如何將控制信息從Python發送到SC(在此用作音頻引擎)。首先,SC部分:
s.boot;
(
SynthDef(\sin, { | amp = 0.01, freq = 333, trig = 1 |
var env, sig;
env = EnvGen.kr(Env.asr(0.001, 0.9, 0.001), trig, doneAction: 0);
sig = LFTri.ar([ freq, freq * 0.999 ], 0.0, amp) * env;
Out.ar([ 0 ], sig * 0.6);
}).add;
h = Synth(\sin, [ \amp, 0.4 ]);
x = OSCFunc({ | msg, time, addr, port |
var pyFreq;
pyFreq = msg[1].asFloat;
("freq is " + pyFreq).postln;
h.set(\freq, pyFreq);
}, '/print');
)
現在的Python部分:
import OSC
import time, random
client = OSC.OSCClient()
client.connect(('127.0.0.1', 57120))
msg = OSC.OSCMessage()
msg.setAddress("/print")
msg.append(500)
client.send(msg)
所以,你仍然需要寫在SC(一些代碼來生成聲音的類型,以及對建立Python和SC之間的連接),但是你可以在Python中完成所有其他的工作。請參閱教程頁面的鏈接以獲得更深入的解釋(以及使用SC的基本解釋)。
非常感謝!和教程!我發現它,但你的鏈接需要更新。 =) –
很高興它是有益的,謝謝你指出鏈接被破壞! – caseyanderson
你也可以使用Python-osc。 (我真的很喜歡那個!)@caseyanderson是正確的沒有一個python實現。 你可以用PIP抓住它: pip install python-osc
和進口與import pythonosc
或從這裏抓取:https://pypi.python.org/pypi/python-osc
你已經知道[SC 0.3.1](https://pypi.python.org/pypi/SC/0.3 0.1)? – halex
另外,使用'python supercollider'搜索一些其他有趣的結果。 – Aya
將看起來兩個。即時通訊有點麻煩導入sc 0.3.1包,即時通訊使用mac os 10.8。將更新問題,如果解決方案會遇到 – Itzik984