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

提供:kuhalaboWiki
2015年10月13日 (火) 02:01時点におけるKuha (トーク | 投稿記録)による版

移動: 案内, 検索

目次

概要

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

ノート

ノートとは音符のこと。
  • 音の高さ、音の強さ、音の長さで構成される。
  • makenoteでノートを作り、noteoutで発音する。
makenote
  • inlet
  1. pitch 音の高さ(0から127)
  2. velocity 音の強さ(0から127)
  3. duration 音の長さ(1から***) ミリ秒(ms=1/1000秒)で指定
  • outlet
  1. pitch 音の高さ(0から127)
  2. velocity 音の強さ(0から127)
noteout
  1. pitch
  2. velocity
  3. 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
楽器番号とチャネルを指定する。
  1. 楽器番号 ( 0から127 )
  2. channel
楽器番号(program) と音色の対応表
楽器は発音メカニズムによって大きく2つに分類できる。
  1. 減衰振動系
    • Note ON時に瞬時に音量が立ち上がり、Note OFFがなくても、やがて音が減衰して消える。
    • ピアノ、ギター、ハープ、シロフォン、打楽器など。
  2. 自励振動系
    • Note ONから徐々に音量が立ち上がり、Note OFFがくるまで音が持続して鳴り続ける。
    • オルガン、バイオリン、クラリネット、サックス、トランペットなど。

時間制御

metro メトロノーム
  • inlet
  1. トグル 1=ON, 0=OFF
  2. interval (ms)
  • outlet
  1. bang バング
bang バング
鉄砲玉のように「バン」とアクションを起こす
tempo
delay
pipe

乱数(ランダム)

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

算術演算

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

条件分岐

  • パッチ gate, sel, switch, if, route
gate
  • inlet
  1. トグル 1=ON, 0=OFF
  2. message
sel
  • inlet
  1. message ( if )
  • outlet
  1. message ( then )
switch

コントロールチェンジ

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

ピッチベンド

  • パッチ bendin, bendout
  • Pitch Bend値(–8192~8191), channel

ループカウント制御

  • パッチ counter, uzi

キーボードとマウス

  • パッチ key, mousestate

値の設定、プリセット

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

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

  • パッチ coll, table

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

  • matrixctrl, pictslider

MIDIシーケンス録音、再生

自動作曲パッチの例

  • noteinからnote number, velocityを入力して、nouteoutに渡し、発音する。

Ex001 notein noteout.png

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

Ex001 noteOn Off.png

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

Ex001 mokenote noteout.png

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

Ex002 metro random makenote.png

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

Ex003 metro random calc makenote.png

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

Ex004 metro random calc makenote 2ch.png

  • +演算子を使って、和音を発生させる。
  • pipeを使って、発音タイミングをずらす。

Ex005 metro random calc chord makenote.png

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

Ex006 metro random scale makenote.png

  • matrix controlを使って、発音ビートのタイミングを指定している。
  • tempoを使って、ビートを発生させている。
    • tempoは、(BPM, 倍数,単位音符)を引数として指定する。

Ex007 metro random scale matrixcntl makenote.png

  • 複数行のmatrix controlを使用して、複数のビートパターンを指定している。
  • switchを使って、流れてくる信号の入り口を切り替えている。
  • randomで、信号の切り替えをランダムにしている。
  • unpackはリスト内の複数の数値をバラしている。

Ex008 metro random scale matrixcntl2 makenote.png

  • switchを2つ使用し、1つをピッチのビート、もう1つをvelocityの強さの値を指定している。
  • loadbangで、ビートパターンの初期値を設定している。

Ex009 metro random scale matrixcntl3 makenote.png

オシレータ

  • サイン波 cycle~, ノコギリ波 phasor~
  • 周波数
  • adc~ dac~
  • 音量操作

Sinwav.png

  • line~によるなめらかな変化

Sinline.png


  • MIDIのpitchを周波数に変換 mtof~

Sinemix.png

LFO

Low Frequency Oscillator(低周波発振器)
  • LFOで、音源オシレータにモジュレーション(変調)をかける。
  • AMとFMの違い
  • 演算子(「*」 や「+」)の位置は、オシレータ(cycle~)の前か後のどちらか?。
AM (Amplitude Modulation)合成
  • 波形(シグナル)を乗算する
  • 波形の振り幅が変わる。すなわち、音量が変わる。
    • トレモロ効果
    • 振り幅変化の周期と深さを変える。

05-07-01amSynth.png


FM (Frequency Modulation) 合成
  • 周波数(数値メッセージ)を加算する
  • 波形の周波数が変わる。すなわち、音高が変わる。
    • ビブラート効果
    • 周波数変化の周期と深さを変える。

05-08-01 fmSynth.png

Envelope(エンベロープ)

  • 時間軸における音量変化。楽器ごとに個性がある。
  • ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。

05-03-30envelope.png

フィルター

  • 特定の周波数帯域をカットする。つまり、特定の周波数帯域のみを通す(パスする)。
    • lowpass (highcut)
    • hightpass (lowcut)
    • bandpass
    • bandstop
  • 周波数構成が変わるので、音質が変わる。
  • イコライザーの一種
  • Max/MSPでは、biquad~とfiltergraph~を使う。

05-03-33filters.png

フィルターを実装したパッチの例

05-03-34filter.png

ディレイ Delay

  • 原音を時間を遅らせて再生する。エコー、やまびこ効果のこと。
  • 耳に聞こえてくる音は、原音以外に、壁や天井から跳ね返ってくる反響音が必ず含まれている。
  • Max/MSPでは、tapin~とtapout~を使う。

基本的なディレイ

05-12-01BasicDelay1.png

  • 原音を dry ディレイ音を wet と呼ぶ。

dry, wetをLRに分配

05-12-01BasicDelay2.png

delayを入力に戻す(FeedBack)

05-12-04DelayFeedBack.png

delayタイムの異なる複数種類のwetを合成

05-12-02DelayMulti.png

  • Reverb : 原音に余韻,残響感を付加する。Delayの集合体。

Delayの応用エフェクト

delayタイムに手動で変化を加えて、ディレイ音を揺らがせる。

05-12-06DelayYuragi.png

delayタイムにLFOで変化を加えて、ディレイ音を揺らがせる。
  • Chorus : Delay音が弱め。Feedbackが少なめ。
  • Flanger : Delay音が強め。Feedbackが多め。

05-12-10Chorus.png

Tips

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

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

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

参考リンク

関連項目

個人用ツール
名前空間

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