見出し画像

Max for Live 体験記 2

前回のトランスポーズを作り終わった後にこれを並列に並べてハーモナイザーを作ってみました。(図1)Max を初めて触った日のものです。配線がとても見づらいのですが何もしないとこうなるという見本で・・・

図1初めて作ったハーモナイザー

分かりにくい上に多少不具合があったので後ほど改良してみたのがこちらです。(図 2)

図2 ハーモナイザー(改良版)

一番の違いはsend(略称 s )、receive(略称 r )、patch(略称 )の使用です。

send (水色に色をしてみました。)は与えられたメッセージを、同じ引数で名付けられた receive(黄緑色にしてみました。にパッチコードなしで送信します。今回はmidi_note、reser、processing_noteという引数で3系統使用してます。

patchはサブパッチを作成するオブジェクトです。今回はtranceposeというサブパッチ(図2の右側)を作成しています。最上段の緑色の三角のついた1から4までの数字が書いてあるものがInletというメインのパッチからデータを受け取るオブジェクトです。今回は
1  midi信号の中から取り出した(pitch , velocity)のリストを入力
2 トランスポーズ量を設定するダイアル(-12〜12の整数)
3 velocityを調節するためのダイアル(0〜1の浮動小数展)
4 mute スイッチ(0,1のトグル)
というデータを受け取り、1つ目のインレットの信号はunpackオブジェクトでnoteとvelocityに分けnoteには2つ目のインレットの値を足して、velocityには3つ目のインレットの値を掛けています。その後にpackオブジェクトでpitchとvelocityを再びリスト化し、それをggateオブジェクトで4番目のインレットの値によって出力先を切り替えています。一番下の段がoutletというメインのパッチにデータを戻すオブジェクトです。

メインのパッチの方では前回使っていたxnoteinxnoteoutの替わりにmidiparsemidiformatを使用してみました。前者はリリースベロシティーに対応していますが、対応機器が少ないのでベロシティー0の信号をノートオフとして使用する後者の方がシンプルになりました。

あと注意が必要な部分はpitch用のダイアルは左側のアウトレットから出力していますがvelocity用のダイアルは右側のアウトレットから出力しています。左側からはレンジで設定したダイアル下に表示されている値が、右からは0〜1の浮動小数点の値が出ていますのでvelocityの方は0〜100%の表示で0〜1.0を取り出しているので変換せずにそのまま掛けることができます。

パッチングモードで薄いピンク色で囲まれているオブジェクトがプレゼンテーションモードで表示されるものです。必要なものはインスペクターでInclude in Presentationにチェックを入れて下さい。プレゼンテーションモードで位置を調整してOpen in Presentationにチェックを入れるとLive上で以下のように表示されます。

図3

興味のある方はダウンロードして試してみて下さい。


頂いたサポートは作品制作の為に使用させて頂きます