2013-04-18 10 views
10

Ich möchte einige Echtzeit-Sound Verarbeitung zu tun ist und ich zu supercolliderMit Supercollider mit Python

und es sieht gut aus, aber ich möchte halten, so weit Python als ‚normale‘ Programmierung ist die Frage.

Gibt es eine Möglichkeit einen Python-Skript als Modul zu laden oder die oposite zu Supercollider?

was bedeutet, eine Bibliothek zu meinem Python-Code zu importieren und die Supercollider Funktionen verwenden?

Ich habe nicht viel Information darüber im Internet gefunden, also wird jede Hilfe groß sein.

+1

Kennen Sie schon [SC 0.3.1] (https://pypi.python.org/pypi/SC/0.3 .1)? – halex

+1

Googling für 'Python Supercollider' liefert auch einige andere interessante Ergebnisse. – Aya

+0

Wird beide nach oben schauen. Ich habe ein bisschen Probleme beim Importieren des Sc 0.3.1 Pakets, ich benutze Mac OS 10.8. wird die Frage aktualisieren, wenn eine Lösung auf – Itzik984

Antwort

12

Mir ist keine Python-Implementierung von SuperCollider bekannt, aber es ist sehr einfach zwischen SC und Python mit OpenSoundControl zu kommunizieren. Hier ist ein Beispielcode, von einem tutorial entlang dieser Zeilen schrieb ich für eine Klasse im Art Center, die zeigt, wie Steuerinformationen von Python an SC gesendet werden (hier als Audio-Engine verwendet). Zunächst wird der SC Teil:

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'); 
) 


Nun ist der Python Teil:

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) 


Also, würden Sie müssen noch einige Codes in SC schreiben (die Art von Audio zu erzeugen, sowie stelle die Verbindung zwischen Python und SC her, aber du könntest alles andere in Python machen. Auf dem Link zur Tutorial-Seite finden Sie eine ausführlichere Erklärung (sowie eine grundlegende Erklärung zur Arbeit mit SC).

+1

kommen wird Vielen Dank dafür! und das Tutorial! Ich habe es gefunden, aber Ihr Link muss aktualisiert werden. =) –

+0

Ich bin froh, dass es hilfreich war, danke, dass du darauf hingewiesen hast, dass die Verbindung unterbrochen wurde! – caseyanderson

0

Sie können auch Python-Osc verwenden. (Ich mag das wirklich!) @caseyanderson hat recht damit, dass es keine Python-Implementierung gibt. Sie können es mit pip greifen: pip install python-osc und Import mit import pythonosc oder von hier greifen: https://pypi.python.org/pypi/python-osc