Max/MSPによるMIDIプログラミング
提供:kuhalaboWiki
目次 |
概要
- MIDIデータを自由にプログラミングし、音楽を自動生成させる。
- キーボード、マウス、MIDIコントローラから情報を取得する。
- MIDIコントローラからの入力をプログラミングし、リアルタイムに音楽演奏を変化させる。
- 工芸大図書館蔵書検索
- トランスMaxエクスプレス
- 前の版。プログラミングの手法、MIDI処理、オーディオ処理までなら、大体同じ。映像処理Jitterの記述がない。
- 2061:Maxオデッセイ
ノート
- ノートとは音符のこと。
- 音の高さ、音の強さ、音の長さで構成される。
- makenoteでノートを作り、noteoutで発音する。
- makenote
- inlet
- pitch 音の高さ(0から127)
- velocity 音の強さ(0から127)
- duration 音の長さ(1から***) ミリ秒(ms=1/1000秒)で指定
- outlet
- pitch 音の高さ(0から127)
- velocity 音の強さ(0から127)
- noteout
- pitch
- velocity
- channel チャネル (1から16)
- pitchとvelocity(>=1)がくると、音をだす。(note ON)
- pitchとvelocity(=0)がくると、音を消す。(note OFF)
- 確認事項
- note on とnote offの関連を理解する。
- note offは,velocity の値が 0 の note on のこと。
- channel 10 はドラムセット
プログラムチェンジ
- programとは、音色のこと。
0番から127番までの128種類の楽器番号で音色を指定する。 (1番-128番のこともある)
- pgmout
- 楽器番号とチャネルを指定する。
- 楽器番号 ( 0から127 )
- channel
- 楽器番号(program) と音色の対応表
- GM規格音色リスト( Program Number 0-127 )
- GM規格音色リスト( Program Number 1-128 )
- GM規格ドラムマップ( Note Number Channel 10 )
- 楽器は発音メカニズムによって大きく2つに分類できる。
- 減衰振動系
- Note ON時に瞬時に音量が立ち上がり、Note OFFがなくても、やがて音が減衰して消える。
- ピアノ、ギター、ハープ、シロフォン、打楽器など。
- 自励振動系
- Note ONから徐々に音量が立ち上がり、Note OFFがくるまで音が持続して鳴り続ける。
- オルガン、バイオリン、クラリネット、サックス、トランペットなど。
時間制御
- metro メトロノーム
- inlet
- トグル 1=ON, 0=OFF
- interval (ms)
- outlet
- bang バング
- bang バング
- 鉄砲玉のように「バン」とアクションを起こす
- tempo
- inlet
- トグル 1=ON, 0=OFF
- BPM
- 倍率
- ビート拍
- outlet
- bang バング
- delay
- inlet
- bang
- 遅延時間 (ms)
- outlet
- bang
- pipe
- inlet
- メッセージ
- 遅延時間 (ms)
- outlet
- メッセージ
乱数(ランダム)
- パッチ random, drunk
- random 乱数を発生させる
- bang
- 発生させる数値の最大値
- drunk
- bang
- 発生させる数値の最大値
- 発生させる数値の揺れ幅
算術演算
- パッチ + - * / % mod
- + 足し算
- 左 + 右
- - 引き算
- 左 - 右
- * 掛け算
- 左 × 右
- / 割り算(少数有り)
- 左 / 右
- % 割り算(整数のみ)
- 左 ÷ 右
- mod 剰余算(あまり)
- 左を右で割った余り
条件分岐
- パッチ gate, sel, switch, if, route
- sel
- inlet
- message ( if )
- outlet
- message ( then )
- gate
- inlet
- ゲート(出口)番号
- message
- outlet
- message 1,2,3,4...
- switch
- inlet
- スイッチ(入口)番号
- message 1,2,3,4...
- outlet
- message
コントロールチェンジ
- パッチ p パッチ名
- inlet インレットで入り口をあける
- outlet アウトレットで出口をあける
コントロールチェンジ
- パッチ ctlin, ctlout
- コントロール値, コントロール番号, channel
ピッチベンド
- パッチ bendin, bendout ピッチをシフトする(ピッチベンド)
- bendout
- inlet
- Pitch Bend値(–8192~8191)
- channel
ループカウント制御
- パッチ counter, uzi
キーボードとマウス
- パッチ key, mousestate
値の設定、プリセット
- パッチ loadbang 起動時に自動的にbangを発生させる。
- パッチ preset 現パッチの数値、状態をボタンにセーブ(Shift+Click)、ロード(Click)ができる。
[ファイル:PresetMax.JPG]
保存した値を呼び出して再生
- パッチ coll, table
マトリクス制御、スライダーなど
- matrixctrl, pictslider
MIDIシーケンス録音、再生
- パッチ seq, midiformat, midiin, midiout
- MIDIメッセージをテキスト保存、再生
自動作曲パッチの例
- noteinからnote number, velocityを入力して、nouteoutに渡し、発音する。
- note ON(鍵盤を押す)とnote OFF(鍵盤を離す)に注意する。velocity の値が0の時、note OFF
- 複数の数値を半角スペースで区切り、ひとまとめにして送ることができる。
- 複数の値をまとめたものをリストという。
- makenoutでnote OFFを自動で出力する。makenoteには、デフォルトのvelocityとduration(msec)を指定する。
- metroでビートを発生させる。
- randomでランダムに数字を発生させる。ピッチを0-128の間でランダムに発音させている。
- pgmoutで楽器を選択する。
- 算術演算子 + を使って、randomで発生させる数字を、調整している。
- channel 1とchannel 2 の2チャンネルでアンサンブルをする。
- s (send)と r (recieve)で変数を使い、数値を送受信(send recieve)している。
- 結線が複雑に絡み合うことを回避できる。
- loadbangでプログラム起動時に自動的にbangを送り、チャネルの初期値を設定している。
- +演算子を使って、和音を発生させる。
- pipeを使って、発音タイミングをずらす。
- selを使って、発音するピッチを特定のスケールに限定している。
- matrix controlを使って、発音ビートのタイミングを指定している。
- tempoを使って、ビートを発生させている。
- tempoは、(BPM, 倍数,単位音符)を引数として指定する。
- 複数行のmatrix controlを使用して、複数のビートパターンを指定している。
- switchを使って、流れてくる信号の入り口を切り替えている。
- randomで、信号の切り替えをランダムにしている。
- unpackはリスト内の複数の数値をバラしている。
- switchを2つ使用し、1つをピッチのビート、もう1つをvelocityの強さの値を指定している。
- loadbangで、ビートパターンの初期値を設定している。
Tips
日本語フォントの文字化け対策
Macintoshで書かれたMaxパッチの日本語コメントは,Osakaフォントであることが多く、Windowsでは文字化けする。対処方法は以下のとおり。
- 各コメントを選んで,適当なWindowsのフォント(例:MS Pゴシック)を指定。
- Maxをインストールしたフォルダ内の[Cyclin'74]フォルダ内の[init]フォルダにあるmax-fontmappings.txtに以下の一文を追加して、フォントを一括置換。
max system windows genericfontmap Osaka "MS Pゴシック";
参考リンク
- はじめてのMax/MSP(徳井直生)
- 徳井先生は、メディアアート表現学科3年後期サウンドデザインも担当しています。お奨め講義です。
- Wiiを使ったライブ演奏ムービの例:遠藤綾香氏の作品例(NIME2008に出展)
- MACOPISM 音が可視化されており操作できる作品。黒バックのグラフィックはどれも鮮やかな色で、音に反応していくので、音が光っているように感じる
- d.v.d d(ドラム)+v(ヴィジュアル)+d(ドラム)という形態で、映像とドラムを融合させたパフォーマンスを展開するオーディオ・ヴィジュアル”ユニット
- Chikashi Miyama: "Angry Sparrow" http://www.youtube.com/watch?v=6U-TVZDaryE