Max/MSPによるMIDIプログラミング

提供:kuhalaboWiki
2021年9月18日 (土) 03:15時点におけるKuha (トーク | 投稿記録)による版

移動: 案内, 検索

目次

概要

  • MIDIデータを自由にプログラミングし、音楽を自動生成させる。
  • キーボード、マウス、MIDIコントローラから情報を取得する。
  • MIDIコントローラからの入力をプログラミングし、リアルタイムに音楽演奏を変化させる。
Max/MSP+Jitterの。公式サポートサイト 書評
追加資料(サンプルパッチなど)

ノート

ノートとは音符のこと。
  • 音の高さ、音の強さ、音の長さで構成される。
    • 音の高さ note numberまたはpitch 0-127 ()
    • 音の強さ velocity 0-127 ()
    • 音の長さ note ONからnote OFFまでの時間 ミリ秒(ms)
  • noteoutにpitchとvelocityをメッセージとして送り、音を鳴らす。
    • velocityが1-127のとき、note ON
    • velocityが0のとき、note OFF
  • makenoteでduration(note ONとnote OFF)を作り、noteoutに送る。
  • noteinでMIDI Keyboardからノートを入力する。
notein
  • outlet
  1. pitch
  2. velocity
  3. channel チャネル (1から16)
noteout
  • inlet
  1. pitch
  2. velocity
  3. channel チャネル (1から16)
  • pitchとvelocity(>=1)がくると、音をだす。(note ON)
  • pitchとvelocity(=0)がくると、音を消す。(note OFF)
makenote
  • inlet
  1. pitch 音の高さ(0から127)
  2. velocity 音の強さ(0から127)
  3. duration 音の長さ(1から***) ミリ秒(ms=1/1000秒)で指定
  • outlet
  1. pitch 音の高さ(0から127)
  2. velocity note ON時の音の強さ(1から127)とNote OFF(velocity=0)
確認事項
  • note on とnote offの関連を理解する。 
    • note offは,velocity の値が 0 の note on のこと。
  • channel 10 はドラムセット

プログラムチェンジ

programとは、音色のこと。

0番から127番までの128種類の楽器番号で音色を指定する。 (1番-128番のこともある)

pgmout
楽器番号とチャネルを指定する。
  1. 楽器番号 ( 0から127 )
  2. channel
楽器番号(program) と音色の対応表
楽器は発音メカニズムによって大きく2つに分類できる。
  1. 減衰振動系
    • Note ON時に瞬時に音量が立ち上がり、Note OFFがなくても、やがて音が減衰して消える。
    • ピアノ、ギター、ハープ、シロフォン、打楽器など。
  2. 自励振動系
    • Note ONから徐々に音量が立ち上がり、Note OFFがくるまで音が持続して鳴り続ける。
    • オルガン、バイオリン、クラリネット、サックス、トランペットなど。


GM規格音色マップ

プログラムナンバー音色表(1-128)

八つごとに太字にしてあります。

  1. Acoustic Grand Piano
  2. Bright Acoustic Piano
  3. Electric Grand Piano
  4. Honkey-tonk Piano
  5. Electric Piano 1
  6. Electric Piano 2
  7. Harpsichord
  8. Clavi
  9. Clelesta
  10. Glockensipel
  11. Music Box
  12. Vibraphone
  13. Marinmba
  14. Xylophone
  15. Tubular Bells
  16. Dulcimer
  17. Drawbar Organ
  18. Percussive Organ
  19. Rock Organ
  20. Church Organ
  21. Reed Organ
  22. Accordion
  23. Harmonica
  24. Tango Accordion
  25. Acoustic Guitar (nylon)
  26. Acoustic Guitar (steel)
  27. Electric Guitar (jazz)
  28. Electric Guitar (clean)
  29. Electric Guitar (muted)
  30. Overdrive Guitar
  31. Distortion Guitar
  32. Guitar Harmonics
  33. Acoustic Bass
  34. Electric Bass (finger)
  35. Electric Bass (pick)
  36. Fretless Bass
  37. Slap Bass 1
  38. Slap Bass 2
  39. Synth Bass 1
  40. Synth Bass 2
  41. Violin
  42. Viola
  43. Cello
  44. Contrabass
  45. Tremolo Strings
  46. Pizzicato Strings
  47. Orchestra Harp
  48. Timpani
  49. String Emsamble 1
  50. String Emsamble 2
  51. Synth String 1
  52. Synth String 2
  53. Choir Aahs
  54. Voice Oohs
  55. Synth Vox
  56. Orchestra Hit
  57. Trumpet
  58. Trombone
  59. Tuba
  60. Muted Trumpet
  61. French Horn
  62. Brass Section
  63. Synth Brass 1
  64. Synth Brass 2
  65. Soprano Sax
  66. Alto Sax
  67. Tenor Sax
  68. Baritone Sax
  69. Oboe
  70. English Horn
  71. Bossoon
  72. Clarinet
  73. Piccolo
  74. Flute
  75. Recorder
  76. Pan Flute
  77. Blown Bottle
  78. Shakuhachi
  79. Whistle
  80. Ocarina
  81. Lead 1 (square)
  82. Lead 2 (sawtooth)
  83. Lead 3 (calliope)
  84. Lead 4 (chiff)
  85. Lead 5 (charang)
  86. Lead 6 (voice)
  87. Lead 7 (fifths)
  88. Lead 8 (bass+lead)
  89. Pad 1 (new age)
  90. Pad 2 (warm)
  91. Pad 3 (polysynth)
  92. Pad 4 (choir)
  93. Pad 5 (bowed)
  94. Pad 6 (metallic)
  95. Pad 7 (halo)
  96. Pad 8 (sweep)
  97. Fx 1 (rain)
  98. Fx 2 (soundtrack)
  99. Fx 3 (crystal)
  100. Fx 4 (atmosphere)
  101. Fx 5 (brightness)
  102. Fx 6 (goblins)
  103. Fx 7 (echoes)
  104. Fx 8 (sci-fi)
  105. Sitar
  106. Banjo
  107. Shamisen
  108. Koto
  109. Kalimba
  110. Bag Pipe
  111. Fiddle
  112. Shanai
  113. Tinkle Bell
  114. Agogo
  115. Steel Drums
  116. Woodblock
  117. Taiko
  118. Melodic Tom
  119. Synth Drum
  120. Reverse Cymbal
  121. Guitar Fret Noise
  122. Breath Noise
  123. Seashore
  124. bird Tweet
  125. Telephone Ring  
  126. Helicopter  
  127. Applause  
  128. Gunshot

</td> </tr> </table>

時間制御

metro メトロノーム
  • inlet
  1. トグル 1=ON, 0=OFF
  2. interval (ms)
  • outlet
  1. bang バング
bang バング
鉄砲玉のように「バン」とアクションを起こす
tempo
  • inlet
  1. トグル 1=ON, 0=OFF
  2. BPM
  3. 倍率
  4. ビート拍
  • outlet
  1. bang バング
delay
  • inlet
  1. bang
  2. 遅延時間 (ms)
  • outlet
  1. bang
pipe
  • inlet
  1. メッセージ
  2. 遅延時間 (ms)
  • outlet
  1. メッセージ

乱数(ランダム)

  • パッチ random, drunk
random 乱数を発生させる
  • bang
  • 発生させる数値の最大値
drunk
  • bang
  • 発生させる数値の最大値
  • 発生させる数値の揺れ幅

算術演算

  • パッチ + - * / % mod
+ 足し算
  •  左 + 右
- 引き算
  •  左 - 右
* 掛け算
  •  左 × 右
/ 割り算
  •  左 / 右
% 剰余算(あまり)
  •  左を右で割った余り

条件分岐

  • パッチ gate, sel, switch, if, route
sel
  • inlet
  1. message ( if )
  • outlet
  1. message ( then )
gate
  • inlet
  1. ゲート(出口)番号
  2. message
  • outlet
  1. message 1,2,3,4...
switch
  • inlet
  1. スイッチ(入口)番号
  2. message 1,2,3,4...
  • outlet
  1. message

サブパッチ

  • パッチ p パッチ名
  • inlet インレットで入り口をあける
  • outlet アウトレットで出口をあける

コントロールチェンジ

  • パッチ ctlin, ctlout
  • コントロール値, コントロール番号, channel

ピッチベンド

  • パッチ bendin, bendout ピッチをシフトする(ピッチベンド)
bendout
  • inlet
  1. Pitch Bend値(–8192~8191)
  2. channel

ループカウント制御

  • パッチ counter, uzi

キーボードとマウス

  • パッチ key, mousestate

値の設定、プリセット

  • パッチ loadbang 起動時に自動的にbangを発生させる。
  • パッチ preset 現パッチの数値、状態をボタンにセーブ(Shift+Click)、ロード(Click)ができる。

PresetMax.JPG

保存した値を呼び出して再生

  • パッチ coll, table

マトリクス制御、スライダーなど

  • matrixctrl, pictslider

MIDIシーケンス録音、再生

自動作曲パッチの例

notein noteout

  • noteinは、MIDIキーボードから、叩いた鍵盤の情報を入力値として受け取る
  • noteinから得られる情報は、note number(pitch), velocity, channelである。nouteoutに渡すと、音が鳴る。

Ex001 notein noteout.png

  • note ON(鍵盤を押す)とnote OFF(鍵盤を離す)に注意する。velocity の値が0の時、note OFF
  • 複数の数値を半角スペースで区切り、ひとまとめにして送ることができる。
    • 複数の値をまとめたものをリストという。

Ex001 noteOn Off.png

makenote

  • makenoutでnote OFFを自動で出力する。makenoteには、デフォルトのvelocityとduration(msec)を指定する。

Ex001 mokenote noteout.png

metro random

  • metroでビートを発生させる。
  • randomでランダムに数字を発生させる。ピッチを0-128の間でランダムに発音させている。
  • pgmoutで楽器を選択する。

Ex002 metro random makenote.png

  • 算術演算子 + を使って、randomで発生させる数字を、調整している。

Ex003 metro random calc makenote.png

channel

  • channel 1とchannel 2 の2チャンネルでアンサンブルをする。
  • s (send)と r (recieve)で変数を使い、数値を送受信(send recieve)している。
    • 結線が複雑に絡み合うことを回避できる。
  • loadbangでプログラム起動時に自動的にbangを送り、チャネルの初期値を設定している。
  • channelを10に指定すると、ドラムセットになる。

Ex004 metro random calc makenote 2ch.png

音程

  • +演算子を使い音程を指定して、2つ音を重ねて発生させる。

Interval maxpatch.png

和音

  • pipeを使って、3和音の発音タイミングをずらして鳴らす。

3chord maxpat.png

  • 3和音の2つ目の音程と3つ目の音程に乱数で揺らぎを与える。

Chord02 maxpat.png

スケール

  • selを使って、発音するピッチを特定のスケールに限定している。
  • instrumental selectを使って、楽器を選択する。

Ex006 metro random scale makenote.png

コード進行

  • counterを使って、ビートを刻む。
  • selを使って、コードを選択する。
  • 1625コード進行(C,Am,Dm,G)を生成するパッチの例

ChordProgress1625 maxpatch.png

ビート

  • tempoを使って、ビートを発生する。
  • matrix controlを使って、発音ビートのタイミングを指定する。
    • tempoは、(BPM, 倍数,単位音符)を引数として指定する。
    • BPMは、Beats Per Minuteの略で、1分間にビートがいくつあるかを示す。例えばBMP=120だと、1分間に4分音符が120個あるので、4分音符1個の時間は0.5秒になる。

Ex007 metro random scale matrixcntl makenote.png

  • 複数行のmatrix controlを使用して、複数のビートパターンを指定する。
  • ビートパターンをメッセージで数値で入力するには、(列番号,行番号,0[off]か1[on])で指定する。
  • switchを使って、流れてくる信号の入り口を切り替える。
  • randomで、信号の切り替えをランダムにする。
  • unpackはリスト内の複数の数値を個々に分解する。

Ex008 metro random scale matrixcntl2 makenote.png

  • switchを2つ使用し、1つをピッチのビート、もう1つをvelocityの強さの値を指定している。
  • loadbangで、ビートパターンの初期値を設定している。
  • presetで値を保存して、呼び出すことができる。
matrixcntlを使ったドラムシーケンス

Drumseq maxpat.png

サブパッチ

パッチ内にサブのパッチを作ることができる。

ドラムにピアノとベースパートを追加
  • p でピアノパート(p piano)とベースパート(p bass)のsubpatchを作る。
  • 全体のパッチ

3partsBlues maxpat.png

  • ピアノパート(p piano)のサブパッチ
    • メロディはブルーススケールを使用
    •  % 10 は10で割った余り(剰余系)が返ってくる。(sel 0 1 2 3 4 5 6) となっているので、0から6の場合は、それぞれの数値のoutletにbangが出力されるが、7,8,9の場合は、その他のoutletにbangが出力される。出力先にノート番号が割り当たっていると音符になり、それ以外は休符の扱いとなる。この例では、音符と休符が、7:3の比率で出力される。

PfpartsBlues maxpat.png

  • ベースパート(p bass)のサブパッチ

BspartsBlues maxpat.png

gateで特定のメッセージを止めたり、流したりする。

Gate maxpat.png

Tips

日本語フォントの文字化け対策

Macintoshで書かれたMaxパッチの日本語コメントは,Osakaフォントであることが多く、Windowsでは文字化けする。対処方法は以下のとおり。

  • 各コメントを選んで,適当なWindowsのフォント(例:MS Pゴシック)を指定。
  • Maxをインストールしたフォルダ内の[Cyclin'74]フォルダ内の[init]フォルダにあるmax-fontmappings.txtに以下の一文を追加して、フォントを一括置換。
max system windows genericfontmap Osaka "MS Pゴシック";

参考リンク

関連項目

個人用ツール
名前空間

変種
操作
案内
ツールボックス