[Diary/2011/February]

一発しか出ないトリガー / 2011-02-03 (木)

今日

朝〜午前中,SuperColliderのPbindで,他のフレーズと同期してOSCを送信する部分のテスト.色々悩む.
通常はImpulseで周波数指定してplayすることでメトロノームとして使うわけだが,Pbindでトリガーを制御しようとすると,一発しか出ないトリガー信号が必要になる.
んで,トリガー信号の定義は,コントロールレートで0から正の値へ動く動作,らしい.
なので最終的にはこんな感じ.

~guiAddr = NetAddr("localhost", 5800);
OSCresponder(nil, '/foo', {arg time, responder, message;
      message[3].post;"-".post;message[4].postln;
      //~guiAddr.sendMsg("/cb",message[3]);
}).add;

SynthDef(\trigerSender, {arg cb=0, prm=0;
      SendReply.kr(Impulse.kr(0), '/foo', [cb, prm] );
}).store;

Pbind(
      \instrument, \trigerSender,
      [\cb, \prm], 
      Pseq([ [2,1], [1,2], [1,3], [1,4], [1,5], [1,6], [1,7], [1,8] ], inf),
      \dur, 2
)

チカシが見つけてきたのが,Impulse.kr(0)というやつ.
周波数0Hzだと,トリガーが一発しか出ないそうな.

午後から夜,Mutasynth型模擬育種IECプロシージャの細かい部分の実装.
変数をOSCで外部からの取りこみ,MultiLevelIdentityDictionaryに保存しておいて,評価時に場所に応じて取り出してくる部分など.
明日にはリズムパターンをGPで進化させる部分は出来るかな.
そしたら次はGUI部分だ.これはProcessingの予定.


[Diary/2011/February]

sclangのクセ / 2011-02-02 (水)

今日

午前中,立川駅前で用事を済ませる……はずが問題解決せず.10日前までの申し込みか.今度は頭に入れておこう.

午後から夜,SuperColliderでのLinear GPのCrossoverの実装の続きとMutation, Initializerの実装と,Mutasynth型の対話型模擬育種的プロシージャを使ったReproductionの設計と実装.

SuperColliderのsclangでは,ifの条件文は小括弧で囲む,whileの条件文は中括弧で囲む(つまり関数扱い?),であり,見た目が統一されていないことがわかった.
納得できなくはないが(whileが繰り返す度に条件判定関数インスタンスを作るのは,条件文の中の値が更新されるからだろう.エラーメッセージにもそれっぽいのが出てくる),書く方には分かりづらい.


[Diary/2011/February]

非ランダムパターン生成 / 2011-02-01 (火)

今日

午前中,昨日の続きで,SuperColliderのPbind用のリズムパターンのシーケンスの生成・制御部分.
各楽器のパターンは動的なランダム生成ではなく,関数オブジェクト生成時に同時に毎回同一のものを生成してストックしておく方法を書いているが,結構めんどい.
取り得る限りのパターンを生成するなら楽なんだけど,音楽的に成立しつつ且つ通常は考えつかないフレーズのみを生成する必要があるので.

昼,書類書き.

午後,午前の続き.パターンの生成アルゴリズムの設計をひねくり回す.

夜から朝,Crossoverの実装.

[ ツッコミの受付は終了しています ]
この記事のリンク元 | 1 |