20091121

SuperCollider メモ

SC3.3.1日本語版+Leopardでは便利だったヘルプ機能が使えない...
これは開発能率が激しく落ちる…
対策としてパッケージの中のJapanese.lprojを適当にリネームしてやったら
⌘+Dでヘルプにとべるようになった。
(もちろんメニューとかは英語になります。)

そしてmonome+BBCut2ですが
BBCut2気軽にオサレな感じのbeat作れるけど自由度低いなー
ていうか音量変えたいときとかどうすんの!?
ヘルプ見ても書いてないし!って思って少し萎えてました

そんななかふと⌘+Jでクラス定義みたらちゃんとありました。変える方法が。



(
~tempoClock = TempoClock(3);
~bbClock= ExternalClock(~tempoClock).play;
~bbClock.tempoclock.tempo_(90/60.0);
)

~sf= BBCutBuffer("sounds/break",8);
~cb= CutBuf1(~sf);
~cp= BBCutProc11.new;
~bb= BBCut2(~cb,~cp);
~bb.play(~bbClock);

~bb.amp_(0.2);

~cp= SQPusher1.new;
~bb.proc_(~cp);

~bb.end;


テンポ変えたいときは~bbClock.tempoclock.tempo_()
音量はbb.amp_()
ビートの刻み方(?)は~bb.proc_()

それぞれリアルタイムに変えられる模様

hoge_()ってのはSCでは一般的な書き方なんだろうか?

ヘルプはちゃんと見ましょう。見てわかんなかったとしても
クラス定義みたら幸せになれるかもよ?って話でした。

これでmonomeとのインタラクティブな連携の形が見えて来た(かも)


しかしSuperColliderはポートlangPort(デフォルトでは57120)以外では
monomeSerialの出すようなOSCは受け取れないのね…問題無いっちゃ無いけど…

20091103

SuperCollider + monome 1

久しぶりの更新
monome + ChucKは公式のappliにサンプルがあるので割と簡単に出来たけど、
SuperCollider使ってる人は少ない。
なんでだろう?
やっぱりmax/mspとかChucKに比べてもSCは敷居が高いのだろうか?

はまったところをメモ:

  • SCでポート指定して立てれるServerは基本的には決まった命令(s_new etc...)しか受け取れない。

  • 決まった命令はServer-Command-Reference.html参照。

  • monomeSerialからの命令を受け取るのはLang Portからうけとるのがよい。

  • Lang Portはデフォルトで57120と決まっている。

  • Lang Portで受け取る際の方法はOSCresponderとrecvOSCfuncの二通り?


以上の用な事を踏まえた上で便利ライブラリを作ってくれている人がいる。
http://wiki.monome.org/view/SupercolliderClasses
SCのライブラリ
'/Applications/Software.localized/SuperCollider/SCClassLibrary'
'/Users/yamada/Library/Application Support/SuperCollider/Extensions'
につっこめばmonome classとしてつかえる。

monomeとコミュニケーションするところまでは無事出来た。
あとはどういう命令をmonomeにさせるか。
monomeのインタラクティブさをいかすならJIT Lib.とか使って行くんだと思うが
いまいちどうしたらいいのかわかってない。

ちなみにSCも3.3になるとライブラリが豊富で憧れのあんなことやこんなことが手軽に出来てすごい。
複雑なブレイクビーツ作成やらグラニュラやらサンプル見ながら簡単に出来る。
とりあえずBBCut2とグラニュラは使って行きたいなあ