- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想做一些实时声音处理,我听说了 supercollider
它看起来不错,但我想坚持使用 python,因为“正常”编程是个问题。
有什么方法可以将 python 脚本作为模块加载到 supercollider 或 oposite?
意思是将一个库导入我的 python 代码并使用 supercollider 功能?
我没有在网上找到太多关于它的信息,所以任何帮助都会很棒。
最佳答案
我不知道 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" );
)
现在是 Python 部分:
import pyOSC3
import time, random
client = pyOSC3.OSCClient()
client.connect( ( '127.0.0.1', 57120 ) )
msg = pyOSC3.OSCMessage()
msg.setAddress("/print")
msg.append(500)
client.send(msg)
因此,您仍然需要在 SC 中编写一些代码(以生成音频类型,以及在 Python 和 SC 之间建立连接),但您可以在 Python 中完成其他所有操作。请参阅教程页面的链接以获得更深入的解释(以及使用 SC 的基本解释)。
关于python - 在 python 中使用 super 对撞机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086667/
我正在尝试制作一款基本游戏,在该游戏中,玩家通过击中一个物体而失去生命。按照我编写代码的方式,每次对象和玩家接触时都会发生这种情况。我希望玩家只失去一条生命,而不是全部。知道如何解决吗?谢谢 vo
我想做一些实时声音处理,我听说了 supercollider 它看起来不错,但我想坚持使用 python,因为“正常”编程是个问题。 有什么方法可以将 python 脚本作为模块加载到 superco
我是一名优秀的程序员,十分优秀!