LoginSignup
40

More than 5 years have passed since last update.

Live+Max+oFでMIDIを扱う

Posted at

[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 のトラックの欄をオンにします。
黄色くなってるところですね。
このトラック、同期、リモートというのがそれぞれどんな切り分けなのかイマイチわかっていないので、ここは追って調べてみます。
001.png

次に送りたいトラックの MIDI Toto Max 1 にします。
この時、環境設定でトラックをオンにしていない場合は to Max 1 という表示が出ないのでご注意下さい。
002.png
このサンプルの場合はMIDI Fromで別のトラックを指定し、主な3つのトラックのMIDIデータをMaxへ送信するようにしています。
to Max 1 の下にチャンネル設定があるのですが、これをCh.1, 2, 3...と変えることで複数のMIDIデータを送信することが出来ます。
またこの際に、MIDIデータを送りたいトラックのアームボタン(録音可能にするボタン、赤くなってるところ)がオンになっていないと送信されないのでご注意を。
(ちょっと変な操作したりするとすぐオフるので、ここ固定とかに出来る方法があったら知りたい...)

ちなみにアレンジビューでの見え方はこんな感じです。
003.png

[03] MaxでMIDIデータを受け取る

まず出来上がった画面はこんな感じです。

004.png

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に分けています。

005.png

左からCh1,2,3、上の黒丸がpitchで、ここでは見えていませんがその下がvelocityの値を円の半径として使用しています。

[05] GitHub

Max7用のパッチとoFのXcodeプロジェクト、それにAbleton Live9のプロジェクトデータをアップしました。
https://github.com/hisahayashi/Live-Max-oF-MIDI-Receive

以上

初稿: 2015.01.25

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40