16

リアルタイムのサウンド処理をしたいのですが、スーパーコライダーについて聞きました

それは素晴らしいように見えますが、「通常の」プログラミングが問題である限り、Pythonに固執したいと思います。

スーパーコライダーまたは反対のモジュールとしてpythonスクリプトをロードする方法はありますか?

私のpythonコードにライブラリをインポートし、スーパーコライダー機能を使用することを意味しますか?

私はウェブでそれについて多くの情報を見つけられなかったので、どんな助けも素晴らしいでしょう.

4

7 に答える 7

16

SuperCollider の Python 実装については知りませんが、SC と Python の間でOpenSoundControlを使用して通信するのは非常に簡単です。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 の操作に関する基本的な説明) については、チュートリアル ページへのリンクを参照してください。

于 2013-04-23T20:57:34.437 に答える
-1

私の教授は何人かの仲間の学生と共に、このライブラリ sc3nb を開発しました。これは、Python から SuperCollider をアドレス指定、コーディング、および操作するために使用できます。OSC で動作しますが、より簡単な構文です。

図書館コード

チュートリアル

例 (詳細はチュートリアルで):

import sc3nb as scn
sc = scn.startup()  # startup sc3 sclang, boot server, load

#easy communication with Server Command Refs
sc.cmd(r"""
             #your SuperCollider-code here
       """)
sc.msg(...)
sc.bundle(...)
于 2019-04-15T09:57:02.327 に答える