見出し画像

Ableton 以外のDAWからOSC(Open Sound Control)を扱ってみる。

Ableton Liveユーザーだがなんだか認めたくない。

私はOSCの機能やMax for liveが欲しくてAbleton Live suiteを買ってみました。しかしながらこのDAWでなければいけない。クリエイターたちの標準DAWみたいな雰囲気に納得できなくていろんな他のDAWを使ってオルタナティブを模索しています。そしてそんなことを繰り返すうちにAbletonがよくできたDAWだということに気付きます...

ってことでAbleton以外のDAWからOSC(Open Sound Control)を飛ばしたいと思います。

今回もLogic Pro Xを使うぞ!

理由は反抗心、たくさんのクリエイター等から最近は全然いけてないよね。と小言を言われるプラットフォームで遊んでみるかという程度の感じです。もちろんStudio OneでもCubaseでもReasonでもReaperでもなんでも大丈夫だと思います。

どうやってOSCの機能を追加するの?

多くの音楽家たちがDAWに音源やエフェクトを追加する際に”プラグイン”と呼んでいるアレを使います。ピアノロールに入力されたスコアの情報を読み取って楽器の音を出力したり、入力された音にエフェクトをかけて出力するプログラムをDAWに追加していくのが誰もが持っているプラグインへのイメージだと思います。

そこで、他のソフトと楽曲データ以外で通信するプラグインがあっていいじゃないか!!となるわけです。

プラグインのなかでよく見かけるメジャーな規格を挙げるとVST、VST3、AU(Audio Units)この三種でしょうか。

ということで、OSCの入出力に対応したプラグインをホストすればお手持ちのDAWからOSCを飛ばせるようになります。

IRCAM OSCar

フランスの音響・音楽研究機関であるIRCAMが公開しているプラグインを今回は使います。

このプラグインの存在は様々な音響プログラムを手がける岡安啓幸氏から教えて頂きました。ありがとうございます!

早速、DLしてみましょう。.dmg形式のファイルを展開すると以下のような構成になります。

スクリーンショット 2020-05-26 23.27.02

docにはこのプラグインの使い方PDF、チュートリアルムービー、OSCの送受信のサンプルファイルとなるmaxpatファイルが格納されています。au, vst3, aaxこれらにプラグインのプログラムが入っています。ご自身の環境に応じて中身のプログラムを適切なディレクトリに配置してあげましょう。

/Library/Audio/Plug-Ins/Components/OSCar.component

私の場合はMacの環境でLogicに使うために.componentのファイルをこのように配置しました。

VST3の場合はPlug-Insのフォルダの配下に専用の置き場所があります。

続いて、docのフォルダにあるoscar.xmlというファイルを自身のパソコンのドキュメントフォルダに以下のようなフォルダ構成で配置します。

/Users/ユーザー名/Documents/Ircam/oscar/oscar.xml

これで最初の準備は完了です。

Logicで動かしてみよう!

Logic Pro Xを起動する前に一点注意事項があります。OSCar 1.2.0の段階ではLogic Pro Xの起動時にAudio Unitsの互換性チェックで警告表示が出ます。実際の動作には影響はないのですがLogicを起動するたびに警告表示が出てしまうので注意が必要です。警告が嫌な場合はプラグインマネージャー からチェックマークを外すことで警告を消すことができますがその際にOSCarの機能が一部利用できなくなります。


Logicの環境設定→プラグインマネージャを起動して以下のようにoscarが認識されていれば利用できるようになります。※青色になっている真ん中あたりにあります。

スクリーンショット 2020-05-28 23.33.26

プラグインマネージャで見つからない場合はもう一度Logicを起動してみましょう。

プラグインがうまく認識されたら次は新規のプロジェクトを作り、プラグインを刺していきます。

スクリーンショット 2020-05-28 23.39.07

こんな感じで選べるようになります。OSCarのところでダブルクリックすれば大丈夫です。

スクリーンショット 2020-05-29 23.26.39

OSCarをトラックに刺した状態です。プラグインのインターフェイスを詳しく見てみましょう。

スクリーンショット 2020-05-29 23.26.43

ポンピデューセンターのロゴだ!IRCAMのロゴだ!これで僕も立派な音響やアートの表現の探求者だ!という気分になりますね。

さて、上から順番にPlugin ID, input port, output port, output IPとなっています。これらの初期値は値のところをクリックすると自分自身で変更することができます。IPアドレス127.0.0.1はコンピュータ内部でのやり取りを行う際に使います。

データの送信にチャレンジ

まずはLogicでパラメータを設けてオートメーション の値を他のソフトに送り出してみましょう。

スクリーンショット 2020-06-06 10.24.19

ささっとこんな感じの構成を組んでみました。Logic側ではトラック内部でオートメーション を使いスマートコントロールから動かしたいパラメータを選んでいます。ここではx, y, zの三種類を利用しました。

Max側では[udpreceive]を利用してOSCarから4002のポートに送り出されたデータを取り出しています。[route]オブジェクトは各種パラメータを分離するために利用しています。詳しくはぜひMAXのヘルプファイルを開いてチェックしてみてください。

スクリーンショット 2020-06-06 10.43.06

送信に関する注意事項として、logicのトラックから送り出したデータで精度を確保できるのはどうやら小数点二桁までが限度のようです。それ以下の桁になるとLogic上では0.0と表示されていても、0.0013のような値が他のソフトに送られていたりします。ですので、精度の確保するために受信側でパラメータのroundをしたり切り捨てるなどの必要がありそうです。ここではMAXで小数点二桁以下を切り捨てる処理をしています。

個人的にワクワクするポイントとしてはやはりDAWから演奏以外の情報を送り出せることだと思います。送り出した値を他のソフトで受信できるのは大きな魅力だと思います。

データの受信にチャレンジ

今度はLogicのトラック側で外部の信号を受信して記録してみたいと思います。

データの送信トラックとは別に受信用のトラックをもう一つLogicに作成します。使うプラグインはもちろんOSCarです。

スクリーンショット 2020-06-06 11.15.48

二つのトラックでOSCarを刺した状態です。2個目のOSCarのインスタンスではPlugin IDに2番が割り振られます。次に受信用を行うために、前半の解説で用意したoscar.xmlを編集します。このxmlファイルにはoscarで使うパラメータ名が収められており、設定内容を編集することで送信する内容や数値の最大値と最小値を定義することができます。

<oscar version="1.0">	
   <parameter index="1" name="x" pattern="/source/1/x" min="-20" max="20" default="0"/>
   <parameter index="2" name="y" pattern="/source/1/y" min="-20" max="20" default="0"/>
   <parameter index="3" name="z" pattern="/source/1/z" min="-20" max="20" default="0"/>
   <parameter index="4" name="pres" pattern="/source/1/pres" min="0" max="120" default="40"/>
   <parameter index="5" name="bril" pattern="/source/1/bril" min="0" max="50" default="25"/>
   <parameter index="6" name="warm" pattern="/source/1/warm" min="0" max="50" default="25"/>
	<parameter index="7" name="prm0" pattern="/source/1/prm0" min="0" max="100" default="0"/>
   <parameter index="8" name="prm1" pattern="/source/1/prm1" min="0" max="100" default="0"/>
   <parameter index="9" name="prm2" pattern="/source/1/prm2" min="0" max="100" default="0"/>
	<parameter index="10" name="r_prm0" pattern="/source/2/r_prm0" min="0" max="100" default="0"/>
   <parameter index="11" name="r_prm1" pattern="/source/2/r_prm1" min="0" max="100" default="0"/>
   <parameter index="12" name="r_prm2" pattern="/source/2/r_prm2" min="0" max="100" default="0"/>
</oscar>

これが編集したxmlファイルになります。

<parameter index="10" name="r_prm0" pattern="/source/2/r_prm0" min="0" max="100" default="0"/>

indexはパラメータを編集して追加した際にID番号として割り振って足していきます。pattern以下項目の"/source/2/r_prm0"これはOSCとして送受信される内容になります。2と言うのはplugin IDの2番で使うパラメータと言う意味です。

ここで一旦Logicのプロジェクトを保存して閉じてからもう一度開きましょう。OSCarがもうxmlファイルをリロードしてパラメータを使えるようにしてあげる必要があります。

次はMax側でOSCを送るプログラムを作ります。

スクリーンショット 2020-06-06 11.36.22

一番下に配置した[udpsend]オブジェクトにIPアドレスと送信先である4001番のポートを指定します。トラックに送りたい値とoscar.xmlから抽出したpatternをマージして送ります。このシステムの全体像を見てみましょう。

スクリーンショット 2020-06-06 12.03.36

Logicの録音・再生モードを走らせた状態でMaxを操作するとオートメーション の値がトラックに記録されていきます。人がMIDIコントローラのつまみをひねる動作の記録をプログラムでエミュレートしているイメージと言えるかもしれません。

Logic ProとMAXで相互にデータをやり取りする仕組みが出来上がりました。


これってどんなことに使えるの?

DAWを利用した音楽ライブで決められた演出をポン出ししてみたり、VJシステムに映像を変化させるパラメータを送るというような用途が期待できそうです。

他にも曲の音楽の演奏やダンスの中でセンサーを用いて記録したデータを記録して他のソフトに送り出すと言うような用途も考えられます。今までAbleton一択だったクリエイティブ用途のDAWに一石を投じるようなプラグインであることは間違いないと思います。

今回の記事での質問やご指摘事項等ございましたら気兼ねなくコメントをいただけるととても嬉しいです。

最後まで読んでくださりありがとうございます。


この記事が気に入ったらサポートをしてみませんか?