お得なFire HD 8 タブレットとMobMuPlatで作る!LemurやTouch OSCのような自分仕様のOSCコントローラーを自作する方法

投稿日:2017-09-23



ナカジ(@cp_nakajun)です。

僕のPureDataで作るジェネレーティブ音楽パッチももう少しで一区切りできそうなところまで出来てきました。

で、実際に音を鳴らし始めたのですが「やっぱりキーボードとマウスだけの操作だと演奏しにくい…コントローラー欲しい!」となりまして

ちょうどFireHD8タブレットを購入しましたので前々から注目している「MobMuPlat」で自分仕様のOSCコントローラーを自作しました

FireHD8タブレットの価格を考えると、この価格でOSCコントローラーが手に入るのはお得ですよねー。

僕の都合と近況はみなさまにはあまり関係ないと思いますので、これぐらいにしておいて

MobMuPlatをざっくり説明すると、以前の記事で僕は

PureDataのパッチをスマホで実行するアプリ」なのですがPureDataはOSC通信ができるので、要は簡単にコントロールインターフェースが自作できる訳です。

と、紹介しているのですが

良く言えば「Lemur」とか「Touch OSC」みたいなのを自分で作って実行できるアプリです。

以下、MobMuPlat関連の記事(よかったら読んでください)

で、先に書きましたが「自分用」に作ってみまして、その際に必要な「OSC通信」関連の処理の部分を記録しておきたいと思います。

MobMuPlatでPureDataをコントロールする

まずはMobMuPlatが送信側でPureDataが受信側を作ります。

MobMuPlatのエディターで下記のようなフェーダーコントローラを作りました。

バーティカルスライダーを並べるだけですね。
(16chなのは僕のPDパッチの仕様に合わせただけです)

送信側のMobMuPlatの制作作業



で各フェーダーのプロパティにそれぞれ
「Address」の項目に「/tr-vol-1」〜「/tr-vol-16」と設定します。
これがOSC通信のラベルになります。



とりあえずコレでMobMuPlat側のインターフェース部分ができたとします。

次はMobMuPlat側の動作部分、PureDataで作るプログラム部分です。

下の画像のような感じになります。

「receive fromGUI」でインターフェースからデータを取得し「send toNetwork」でネットワーク上にデータを送信します。


受信側のPureDataの制作作業

次はMobMuPlatからのOSCデータをPureDataで受信する方法です。

「dumpOSC」オブジェクトにポート番号を設定しておけばデータを受信することができます。



その後、受信したデータを切り分ける為に「OSCroute」オブジェクトで切り分けて、好きなパラメーターに振り分ければオッケーです。



値の範囲が受信したデータとパラメータで違う場合でもPD側で処理しちゃう方が使い勝手がいいように思います。
(例えば、受信データは「0~1」でもMIDI値として使いたいので「0~127」で使いたいような場合)

PureDataからMobMuPlatをコントロールする

これはPureDataパッチの初期値をMobMuPlatに送るような場合です。

今回の僕のケースですとMixerの設定値をリコール時にコントローラーであるMobMuPlatに反映させる。
というようなケースです。

これには先ず、MobMuPlatのインターフェースファイルと一緒にスマホなりタブレットに入れるPureDataで記述する動作ファイル(pdファイル)に以下の部分があれば大丈夫です。



で、PureDataの送信側にはOSCでデータを送り出す為の「sendOSC」オブジェクト。

送り先を指定する為の「connect」メッセージ。
connectメッセージのパラメーターは「MobMuPlatが立ち上がってる端末のIPアドレス」と「ポート番号」です。

あとは「send」の後にGUI作成時にAddress項目にしていしたパラメータの名前と「値」を「sendOSC」に送るとGUIに反映されます。


MobMuPlatのIPアドレスとポート番号の確認方法

これまでの説明の中に「IPアドレス」と「ポート番号」を指定する部分があったかと思いますが
MobMuPlatでの確認方法を記載しておきます。

MobMuPlatアプリを立ち上げ、ファイルをロードする画面に「NetWork」の項目があります。
ここを確認すると、「IPアドレス」と「ポート番号」がそれぞれ確認できます。


MobMuPlatのOSCコントローラー動作確認映像

手持ち撮影ですいませんm(_ _)m

と、ここまでで作成したMobMuPlatのOSCコントローラーが動いているところを見てもらいたくて撮影しました。



ちなみに反応速度(レスポンス)はネットワークの能力にけっこう依存します

反応がおっせーなぁ〜と思ったら無線LAN環境を検討してみてください。

PureDataの貴重な書籍



おすすめのクリエイティブ・コーディング関連カテゴリー

クリエイティブコーディング系 講座


ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します