[01] はじめに&セットアップ
こちらの記事の続きというか2回目。
http://qiita.com/hisahayashi/items/7f3d76709908a2e04308
今回は Ableton Live 9 で作ったMIDIデータを、Maxで読み取りOSCでoFに取り込んでみます。
Ableton Live とは
Ableton Live はDTM用のシーケンスソフトですが、即興性の高いライブなどにも使われる素晴らしいツールです。EDMのDJから、ジャズピアニストまで様々なアーティストからも指示を得ているようです。
https://www.ableton.com/ja/pages/artists/artist_quotes/
制作環境
- Mac OSX 10.10.1 Yosemite
- XCode 6.1.1
- Max 7
- openFrameworks 0.8.4
- Ableton Live 9
インストール
MaxとoFについては前記事で触れているので省略します。
Liveはこちらから体験版がDLできます。
通常のアプリケーションなので特に難なくインストール出来ると思います。(結構容量食うかもなのでそこだけ注意)
https://www.ableton.com/ja/trial/
[02] LiveでMIDIデータを作成
まず元ネタとなるMIDIデータを作成します。
DTMの経験がある方は難なく作成できるかもしれませんが、難しい方はGitHubにLiveのデータを上げているので、よかったらお使いくださいー。
→ GitHub: Live Max oF MIDI Receive
Liveの使い方をここで説明すると恐ろしく長くなりそうなので、ここではMaxにMIDIデータを送る要点だけ記載します。
こことかをご覧下さい。
http://www.h-resolution.com/ableton/Movie.html
LiveでMIDIデータを送る時の要点
まず、環境設定から MIDI Sync を選び、Output to Max 1 のトラックの欄をオンにします。
黄色くなってるところですね。
このトラック、同期、リモートというのがそれぞれどんな切り分けなのかイマイチわかっていないので、ここは追って調べてみます。
次に送りたいトラックの MIDI To を to Max 1 にします。
この時、環境設定でトラックをオンにしていない場合は to Max 1 という表示が出ないのでご注意下さい。
このサンプルの場合はMIDI Fromで別のトラックを指定し、主な3つのトラックのMIDIデータをMaxへ送信するようにしています。
to Max 1 の下にチャンネル設定があるのですが、これを**Ch.1, 2, 3...**と変えることで複数のMIDIデータを送信することが出来ます。
またこの際に、MIDIデータを送りたいトラックのアームボタン(録音可能にするボタン、赤くなってるところ)がオンになっていないと送信されないのでご注意を。
(ちょっと変な操作したりするとすぐオフるので、ここ固定とかに出来る方法があったら知りたい...)
[03] MaxでMIDIデータを受け取る
まず出来上がった画面はこんな感じです。
notein
でチャンネル毎にpitchとvelocityを取得しています。
左がpitchで、右がvelocityです。
その後、sprintf
でOSC用のアドレスと結合して、udpsend
でOSC送信を行っています。
print
はデータのチェック用に置いてあるのでなくても大丈夫です。
ただprint
よりももっと良いデバッグの出し方がある気がするけど..。
-notein
:
-number
sprintf
print
▼ 参考ページ
https://cycling74.com/docs/max5/vignettes/core/max_and_other_apps.html
https://www.ableton.com/ja/articles/synchronizing-live-midi/
https://www.ableton.com/ja/manual/routing-and-i-o/
[04] oFでデータを受け取る
下記記事とコード自体はあまり変わってませんが、アドレス形式のOSCをoFSplitString()
で切り取り、チャンネル毎とpitch or velocityに分けています。
左からCh1,2,3、上の黒丸がpitchで、ここでは見えていませんがその下がvelocityの値を円の半径として使用しています。
[05] GitHub
Max7用のパッチとoFのXcodeプロジェクト、それにAbleton Live9のプロジェクトデータをアップしました。
https://github.com/hisahayashi/Live-Max-oF-MIDI-Receive
以上
初稿: 2015.01.25