Itz*_*984 12 python audio mp3 sound-synthesis supercollider
我想做一些实时的声音处理,我听说过supercollider
它看起来很棒,但我想坚持使用python,因为"普通"编程是个问题.
有没有办法将python脚本作为模块加载到supercollider或oposite?
意味着将库导入我的python代码并使用supercollider功能?
我没有在网上找到太多关于它的信息,所以任何帮助都会很棒.
cas*_*son 12
我不知道SuperCollider的python实现,但是使用OpenSoundControl在SC和Python之间进行通信非常容易.下面是一些示例代码,来自我在艺术中心为类编写的这些专题的教程,展示了如何将控制信息从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' );
)
Run Code Online (Sandbox Code Playgroud)
现在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)
Run Code Online (Sandbox Code Playgroud)
因此,您仍然需要在SC中编写一些代码(以生成音频类型,以及建立Python和SC之间的连接),但您可以在Python中执行其他所有操作.有关更深入的解释(以及使用SC的基本说明),请参阅教程页面的链接.