昨日多摩美の授業後に久保田先生からSuperCollider3のWin版にPythonで書かれたsclangが登場した、というので早速ダウンロード。
http://sourceforge.net/project/showfiles.php?group_id=54622
なんだ、今月の7日にすでにリリースされていたのね…。もっと早く気がつくべきだった。SC3-WIN32-2004-10-07-00h59.zipをダウンロードして解凍し、readme_win32.txtを見てみると、PythonとwxPythonをインストールするように書かれているので、早速ダウンロード。
http://www.python.org/ftp/python/2.3.4/Python-2.3.4.exe
http://prdownloads.sourceforge.net/wxpython/wxPythonWIN32-2.5.2.8u-Py23.exe
あとなぜか、dllのいくつかを入れるように書かれているけど、僕のWinXP Proではすでにc:\windows\system32内にあったので特に気にせず。ない人は
http://www.dll-files.com/
からとってこれる、とか。で、PythonとwxPythonをインストールし、sc3内にあるPySCLang.pyd というファイルを指示通り、c:\python23\Lib\site-packagesにコピーする。Pythonインストール時に特に変な今年なければ場所はこのままになるはず。
これで準備完了。早速、SCSpawn.exeを起動する。ここでは、どのオーディオデバイスを使うかと選択。僕の場合は
Windows DirectSound : USB Audio CODEC (7) (2 ins 0 outs)
を入力に、出力に
Windows DirectSound : USB Audio CODEC (10) (0 ins 2 outs)
を選択。できればASIOを使ってほしいと書いてあるけどまずは音がでるかどうかの確認。注意してほしいのは、オーディオデバイスの一覧の中で同じように見えて入力だけのと出力だけのと二つ存在していること。それぞれ適切に選択しないと、Launch SC3 and closeボタンをクリックしたときにエラーが出てしまう。
問題なく設定できてLaunch SC3 and closeボタンをクリックすると、コマンドプロンプトが出てきて
SuperCollider 3 server ready..
という文字列が出てきて起動完了。
サーバーが起動したら、Scope.pyをダブルクリックしてsclang部分を実行。まっさらなウィンドウが出てきたら、FileメニューからNew Code Windowを選択。
ちょっと特殊なのが、最初に必ず1回だけs.initTree;を実行しないといけない、と書かれているところ。いずれ自動化されるとのことだけど、とりあえずウィンドウ内に
s.initTree;
と入力してControl+Enterで実行。すると、裏のコマンドプロンプトに
a Server
と表示される。問題なし。さて、じゃあ実際に。
s.boot;
とやってみる。コマンドプロンプトでは
booting 57110
a Server
と出て問題なさそう。じゃあ次にTutorial.rtfにある
(
SynthDef("sine", { arg freq=800;
var osc;
osc = SinOsc.ar(freq, 0, 0.1); // 800 Hz sine oscillator
Out.ar(0, osc); // send output to audio bus zero.
}).writeDefFile; // write the def to disk in the default directory synthdefs/
)
を入れてみますか。コピーペーストしてコードを選択してControl+Enter。無事、
a SynthDef
と返ってくる。さて、続いて
s.sendSynthDef("sine");
でサーバーに送信する。こちらも問題なし。
s.sendMsg("/s_new", "sine", x = s.nextNodeID, 1, 1);
で音を出してみる。おお、ちゃんと音出るじゃないですか。すてき。
s.sendMsg("/n_free", x);
で処理止めて、
s.quit;
でサーバーを止める。複雑なことはやってないけど、とりあえずまともに使えるみたい:)。