与蟒蛇
使用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