2013-04-18 19 views
10

chcę zrobić niektóre przetwarzania dźwięku w czasie rzeczywistym i słyszałem o supercolliderKorzystanie supercollider z pytona

i wygląda świetnie, ale chcę, aby trzymać z Pythonem miarę „normalne” programowanie jest problem.

Czy istnieje sposób na załadowanie skryptu Pythona jako modułu do supercollider lub oposite?

czyli importowanie biblioteki do mojego kodu Pythona i korzystanie z funkcji supercollider?

Nie znalazłem zbyt wielu informacji na ten temat w Internecie, więc każda pomoc będzie świetna.

+1

Czy już wiesz [SC 0.3.1] (https://pypi.python.org/pypi/SC/0.3 .1)? – halex

+1

Ponadto, szukanie w Google dla 'python supercollider' daje inne interesujące wyniki. – Aya

+0

Będzie wyglądać zarówno w górę. mam kłopoty z importowaniem pakietu sc 0.3.1, im przy użyciu mac OS 10.8. zaktualizuje pytanie, jeśli pojawi się rozwiązanie – Itzik984

Odpowiedz

12

Nie jestem świadomy realizacji Pythona SuperCollider, jednak bardzo łatwo jest komunikować się między SC i Python z OpenSoundControl. Oto przykładowy kod od tutorial wzdłuż tych linii, które napisałem dla klasy w Art Center, która pokazuje, jak wysyłać informacje kontrolne z Python do SC (używane tutaj jako silnik audio). Pierwsza część 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'); 
) 


Teraz część 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) 


Tak, to trzeba jeszcze napisać kod w SC (do generowania rodzaj audio, jak również do ustanowić połączenie między Python i SC), ale możesz zrobić wszystko inne w Pythonie. Zobacz link do strony samouczka, aby uzyskać bardziej szczegółowe wyjaśnienie (jak również podstawowe objaśnienie pracy z SC).

+1

Dziękuję bardzo za to! i samouczek! Znalazłem to, ale twój link wymaga aktualizacji. =) –

+0

Cieszę się, że to było pomocne, dzięki za wskazanie, że link został zerwany! – caseyanderson

0

Możesz także użyć Python-osc. (Naprawdę podoba mi się ten!) @caseyanderson ma rację, nie jest to implementacja pytona. można pobrać go z pip: pip install python-osc i import z import pythonosc lub pobrać stąd: https://pypi.python.org/pypi/python-osc