« sound over IP on Max/MSP II | メイン | SuperCollider 3 on Mac OSX »

2004年10月20日

SuperCollider 3 on Win32

昨日多摩美の授業後に久保田先生から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;

でサーバーを止める。複雑なことはやってないけど、とりあえずまともに使えるみたい:)。


投稿者 yasaka : 2004年10月20日 06:50

Trackback Pings

このエントリーのトラックバックURL:
http://blog.yasaka.com/cgi-bin/mt-tb.cgi/1

コメント

もっと新しいバージョンが

http://student-kmt.hku.nl/~anton/scwin32/

にあるらしい。早速ダウンロードしてみるか。

投稿者 yasaka : 2004年10月24日 11:57