G-RECORD-MARK

G-RECORD

processingからOSCをreaktorに送ってパフォーマンスするときのシステムで、細かく見て行くとMIDIとして使うには少し手直しが必要だったのでそのあたりを。
maxやpuredataユーザの方は、もしかすると、こんな面倒なこと不要かもしれませんが…。

539577_10200682635291993_1209381204_n
まず上部パッチの左がOSCモジュールで外部OSCを受信:
GはGATE信号でIは0から始まる整数。
途中のGATE_SENSEとPITCHのmacroはおいといて、その隣にあるGATE/NOTEもジュールにOSCモジュールからの値を送ることでreatktor側でMIDI情報に変換。

その上部にあるPITCHモジュールの中身が下部パッチ
reaktorにはvalueモジュールがあり、僕はずっと、このモジュールはTrigに信号を受け取った間のみ値が通過する、と思っていたけれど、それは違っている可能性が。
っていうのが、Trigって書いてる以上はgateじゃなくてtriggerだから、最初に信号を受け取ってから次の信号まで開きっぱなしになり、値が通過しっぱなしになる。
※と考えると、gate信号にdelayかけるなり、1sample分遅延した信号送ればいいかもしれませんけど、何か違う気がする。

というので、今回、gate信号のみで、gateを受け取ったときのみ値が通過して、それ以外のときは最後の値が維持される、というパッチに変えました。
Router使って、gate信号が1のときにOSCから受け取った数値が通過し、gate信号が0のときには、Routerアウトから最後に出力された値をValueモジュールで維持し続ける、という仕組み。

その後のrange、baseは可変で、受け取った数値にbaseを加算し、rangeを設定することで、ある一定の範囲の値をPITCHとして送る、というだけです

たぶん、今回躓いた理由は、受け取ったOSCの値をreaktor側でふるいにかけ、GATE_SENSEというマクロのなかで、確率を決めたために起こったものなので、そのまま素直にOSCの値をreaktorで使用する分には、そんなに問題がないと思います。