[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の予定.