ChucKで前々から作ってたやつの演奏動画をアップしました。
http://www.youtube.com/watch?v=bSrLV8zcZm4
しかし機能の一部しか使ってないので紹介動画としては微妙。
そして画質も微妙。HDな録画環境が欲しいけど
最近GR3やらAbleton Liveやら立て続けに買った上に
年末アメリカまでライブ観に行ってかなり金遣い荒い感じなので当分我慢かな…
20100124
ChucKにおけるFileIO
いつかやろうと思っていた自作monome用のソフトへの
簡易的なFile入出力機能をようやく実装した。
着手してみると特に引っかかる所なく出来た。すごく簡単。
(簡単なんだけど簡単なものに限って
面倒くさくて後回しにしてしまうのは悪い癖)
ChucKの持っているFileIOやstringクラスは
当然の事ながらP言語なんかと比べると笑っちゃうくらい貧弱。
実装できる保存形式もStringTokenizerクラスで分割出来るのはspaceだけ(?)だから
space-separated valueしか無いよね?ってくらい
しかしながらChucKで少し使うくらいの機能としては
これで十分なんだと割りきってリリースしてるんだろうと思う。
(実際自分が実装したい機能も十分実装出来た。)
このあたりの割り切りはChucKのおもしろくてかわいい所だと思います。
簡易的なFile入出力機能をようやく実装した。
着手してみると特に引っかかる所なく出来た。すごく簡単。
(簡単なんだけど簡単なものに限って
面倒くさくて後回しにしてしまうのは悪い癖)
ChucKの持っているFileIOやstringクラスは
当然の事ながらP言語なんかと比べると笑っちゃうくらい貧弱。
実装できる保存形式もStringTokenizerクラスで分割出来るのはspaceだけ(?)だから
space-separated valueしか無いよね?ってくらい
しかしながらChucKで少し使うくらいの機能としては
これで十分なんだと割りきってリリースしてるんだろうと思う。
(実際自分が実装したい機能も十分実装出来た。)
このあたりの割り切りはChucKのおもしろくてかわいい所だと思います。
ラベル:
ChucK
20091213
ChucK 1.2.1.3
何時の間にやらファイル入出力がサポートされたらしい。
これでずっと前作ったシーケンサーに入出力機能が作れそう。
そしてChucKで全然別件だがはまったのでメモ
ChucKを使ってmidi note 36〜85までのエンベロープ付サイン波のwave file自動生成を行った
その際にWvOutを使って出力したwaveファイルが何回やっても
再生時間などの情報を持たないファイルになり再生出来ない。
もちろんShredは終了しているのにも関わらず。。。
相当何時間も試行錯誤したのだが、
結論だけ言うとVirtual Machineを止めないと
最終的な出力ファイルのヘッダ情報(?)は書き込まれない模様
miniAudicleの[Stop Virtual Machine]を押してからプレビューすると普通に再生された。
最終的にマニュアルを読んでてふと思いついたが、これはわからん!ちゃんと書いといて!!
これでずっと前作ったシーケンサーに入出力機能が作れそう。
そしてChucKで全然別件だがはまったのでメモ
ChucKを使ってmidi note 36〜85までのエンベロープ付サイン波のwave file自動生成を行った
その際にWvOutを使って出力したwaveファイルが何回やっても
再生時間などの情報を持たないファイルになり再生出来ない。
もちろんShredは終了しているのにも関わらず。。。
相当何時間も試行錯誤したのだが、
結論だけ言うとVirtual Machineを止めないと
最終的な出力ファイルのヘッダ情報(?)は書き込まれない模様
miniAudicleの[Stop Virtual Machine]を押してからプレビューすると普通に再生された。
最終的にマニュアルを読んでてふと思いついたが、これはわからん!ちゃんと書いといて!!
ラベル:
ChucK
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は受け取れないのね…問題無いっちゃ無いけど…
これは開発能率が激しく落ちる…
対策としてパッケージの中の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は受け取れないのね…問題無いっちゃ無いけど…
ラベル:
SuperCollider
20091103
SuperCollider + monome 1
久しぶりの更新
monome + ChucKは公式のappliにサンプルがあるので割と簡単に出来たけど、
SuperCollider使ってる人は少ない。
なんでだろう?
やっぱりmax/mspとかChucKに比べてもSCは敷居が高いのだろうか?
はまったところをメモ:
以上の用な事を踏まえた上で便利ライブラリを作ってくれている人がいる。
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とグラニュラは使って行きたいなあ
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とグラニュラは使って行きたいなあ
ラベル:
monome,
SuperCollider
20090805
Context Free Art
少し音楽関連のプログラムを休憩して前々から気になっていたContext Freeをいじってみた。
なかなか面白い。
使う上で覚えなきゃならない事は少ない
↓に集約される。
http://www.contextfreeart.org/mediawiki/index.php/Reference_Card
そして動画出力が手軽。
VJとかのネタ作りにいいんじゃないかな?
monomeでVJみたいな事も出来るし↓
http://vimeo.com/768204
覚えておいて損はないかも
本筋が発散しない程度にいじって行ってみようと思う。
ラベル:
Context Free Art
20090802
ChucKでSemi-auto sequencer for monome スケッチ
自分仕様のシーケンサを作成中。
実装->テスト->仕様変更の繰り返し
現在の仕様は
セミオートなシーケンサ
発音のタイミングは自分で決めても音程はある程度乱数を使って発生させる(自分で決めることも可能)
input mode/control modeの切り替えでループの中でのタイミングをリアルタイムに指定可能(mlr)
・bpm
・音量
・音色(楽器)
・reverb
・pan
等も指定可能(無指定の場合ランダム)。
ToDo
・octave指定(現在はトラック毎固定)
・保存(ただしChuckにはTextファイルなんかを保存する機構がないのでどうしようか思案中)
音楽教育が中学で止まっているがゆえの乱数に頼った仕様。
最初出来る事はひたすらランダム発生させたnoteを鳴らすだけだったので
出来る事(自由度)は広がっていっている。
しかし自由度が広がりすぎると逆に奏でる音楽そのものはごちゃごちゃしがちになってしまって
最初の良さが少し失われたような気がする(聞き飽きたという説もあり)
音楽は難しいね。
バンドスタイルだとその辺ある程度解決されるのかな?
フジロックいったばっかりってこともあるかもしれんけどやっぱバンド憧れるな〜
実装->テスト->仕様変更の繰り返し
現在の仕様は
セミオートなシーケンサ
発音のタイミングは自分で決めても音程はある程度乱数を使って発生させる(自分で決めることも可能)
input mode/control modeの切り替えでループの中でのタイミングをリアルタイムに指定可能(mlr)
・bpm
・音量
・音色(楽器)
・reverb
・pan
等も指定可能(無指定の場合ランダム)。
ToDo
・octave指定(現在はトラック毎固定)
・保存(ただしChuckにはTextファイルなんかを保存する機構がないのでどうしようか思案中)
音楽教育が中学で止まっているがゆえの乱数に頼った仕様。
最初出来る事はひたすらランダム発生させたnoteを鳴らすだけだったので
出来る事(自由度)は広がっていっている。
しかし自由度が広がりすぎると逆に奏でる音楽そのものはごちゃごちゃしがちになってしまって
最初の良さが少し失われたような気がする(聞き飽きたという説もあり)
音楽は難しいね。
バンドスタイルだとその辺ある程度解決されるのかな?
フジロックいったばっかりってこともあるかもしれんけどやっぱバンド憧れるな〜
登録:
投稿 (Atom)