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

提供:kuhalaboWiki
(版間での差分)
移動: 案内, 検索
(フィルター)
(Keyを使って音階を鳴らす)
 
(1人の利用者による、間の146版が非表示)
5行: 5行:
  
 
* 工芸大図書館蔵書検索
 
* 工芸大図書館蔵書検索
*;[http://www-lib.t-kougei.ac.jp/opac/opac_details.cgi?lang=0&amode=11&place=&bibid=1001007489&key=B138180185932762&start=1&srmode=0 トランスMaxエクスプレス]:前の版。プログラミングの手法、MIDI処理、オーディオ処理までなら、大体同じ。映像処理Jitterの記述がない。
+
*;[https://www-lib.t-kougei.ac.jp/search/detail?rowIndex=0&method=detail&bibId=1001007489 トランスMaxエクスプレス]:前の版。プログラミングの手法、MIDI処理、オーディオ処理までなら、大体同じ。映像処理Jitterの記述がない。
*;[http://akamatsu.org/aka/max/2061maxodyssey/ 2061:Maxオデッセイ]
+
*[http://akamatsu.org/aka/max/2061maxodyssey/ 2061:Maxオデッセイ]
 
:Max/MSP+Jitterの。[http://akamatsu.org/aka/max/2061maxodyssey/ 公式サポートサイト] [http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=120 書評]
 
:Max/MSP+Jitterの。[http://akamatsu.org/aka/max/2061maxodyssey/ 公式サポートサイト] [http://www.kuhalabo.net/kxoops/modules/d3blog/details.php?bid=120 書評]
:[http://max.iamas.ac.jp/2061/?page_id=31 追加資料](サンプルパッチなど)
+
:[http://akamatsu.org/aka/max/2061maxodyssey/%e8%bf%bd%e5%8a%a0%e8%b3%87%e6%96%99/#2061_sample_browser 追加資料](サンプルパッチなど)
*[http://www.s-musiclab.jp/mmj_docs/index.html Max/MSP/Jitterドキュメント日本語版]
+
*[https://www.s-musiclab.jp/max_docs/mmj_docs/index.html Max/MSP/Jitterドキュメント日本語版]
*[http://crca.ucsd.edu/~tapel/software.html Max/MSP Externals]
+
*[http://vud.org/max/ Max/MSP Externals]
 
*[http://www.kuhalabo.net/~kuha/dokuwiki/doku.php?id=maxmspjitter Max/MSPに関する情報]
 
*[http://www.kuhalabo.net/~kuha/dokuwiki/doku.php?id=maxmspjitter Max/MSPに関する情報]
 
*[http://www.maxobjects.com/ Max Objects DataBase]
 
*[http://www.maxobjects.com/ Max Objects DataBase]
  
 +
== ノート ==
 +
;ノートとは音符のこと。
 +
* 音の高さ、音の強さ、音の長さで構成される。
 +
**音の高さ note numberまたはpitch 0-127 ([http://www.kuhalabo.net/wiki/images/6/63/Notenumber1.png 図])
 +
**音の強さ velocity 0-127 ([http://www.kuhalabo.net/wiki/images/0/0f/Velocity.png 図])
 +
**音の長さ 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
 +
# pitch
 +
# velocity
 +
# channel チャネル (1から16)
  
;課題
+
;noteout
:上記のテクニックを利用して、Interactive and Algorithmic Live Music Composition Systemを作成する。
+
*inlet
 +
# pitch
 +
# velocity
 +
# channel チャネル (1から16)
 +
*pitchとvelocity(>=1)がくると、音をだす。(note ON)
 +
*pitchとvelocity(=0)がくると、音を消す。(note OFF)
  
== ノート ==
+
;makenote
* パッチ notein, noteout, makenote, stripnote, flush, sustain
+
*inlet
* 値 pitch, velocity, channel, duration
+
# pitch 音の高さ(0から127)
 +
# velocity 音の強さ(0から127)
 +
# duration 音の長さ(1から***) ミリ秒(ms=1/1000秒)で指定
 +
*outlet
 +
# pitch 音の高さ(0から127)
 +
# velocity note ON時の音の強さ(1から127)とNote OFF(velocity=0)
 +
 
 +
;確認事項
 
* note on とnote offの関連を理解する。 
 
* note on とnote offの関連を理解する。 
** note offは,velocity の値が 0 の note on のこと。 
+
** note offは,velocity の値が 0 の note on のこと。
 
* channel 10 はドラムセット
 
* channel 10 はドラムセット
  
== コントロールチェンジ ==
+
== プログラムチェンジ ==
* パッチ ctlin, ctlout
+
;programとは、音色のこと。
* コントロール値, コントロール番号, channel
+
0番から127番までの128種類の楽器番号で音色を指定する。 (1番-128番のこともある)
  
== ピッチベンド ==
+
; pgmout
* パッチ bendin, bendout
+
:楽器番号とチャネルを指定する。
* Pitch Bend値(–8192~8191), channel
+
# 楽器番号 ( 0から127 )
 +
# channel
  
== プログラムチェンジ ==
+
;楽器番号(program) と音色の対応表
* パッチ pgmin, pgmout
+
* [[GM規格音色リスト]]( Program Number 1-128 )
* 楽器番号, channel
+
* [[GM規格ドラムマップ]]( Note Number Channel 10 )
* [http://cb6.media.t-kougei.ac.jp/cgi-bin/ag.cgi?page=FileView&gid=&fCID=73499&fFID=99187&cp=fl 楽器リスト]
+
 
# 音色(program) 1番から128番までの128種類 (0番-127番のこともある)
+
;楽器は発音メカニズムによって大きく2つに分類できる。
#* [http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/sound1/gmlist.html GM規格音色リスト]( Program Number 0-127 )
+
# 減衰振動系
#* [http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/sound1/gmmap19.html GM規格音色リスト]( Program Number 1-128 )
+
#* Note ON時に瞬時に音量が立ち上がり、Note OFFがなくても、やがて音が減衰して消える。
#* [http://blossom.media.t-kougei.ac.jp/~kuha/tutorial0/sound1/gmmap10.html GM規格ドラムマップ]( Note Number Channel 10 )
+
#* ピアノ、ギター、ハープ、シロフォン、打楽器など。
* 楽器は発音メカニズムによって大きく2つに分類できる。
+
# 自励振動系
*# 減衰振動系
+
#* Note ONから徐々に音量が立ち上がり、Note OFFがくるまで音が持続して鳴り続ける。
*#* Note ON時に瞬時に音量が立ち上がり、Note OFFがなくても、やがて音が減衰して消える。
+
#* オルガン、バイオリン、クラリネット、サックス、トランペットなど。
*#* ピアノ、ギター、ハープ、シロフォン、打楽器など。
+
*# 自励振動系
+
*#* Note ONから徐々に音量が立ち上がり、Note OFFがくるまで音が持続して鳴り続ける。
+
*#* オルガン、バイオリン、クラリネット、サックス、トランペットなど。
+
  
 
== 時間制御 ==
 
== 時間制御 ==
* パッチ metro, tempo, delay, pipe
 
  
== ランダム ==
+
; metro メトロノーム
* パッチ random, drunk, decide
+
* 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
  
== ループカウント制御 ==
+
;+ 足し算
* パッチ counter, uzi
+
* 左 + 右
 +
 
 +
;- 引き算
 +
* 左 - 右
 +
 
 +
;* 掛け算
 +
* 左 × 右
 +
 
 +
;/ 割り算
 +
* 左 / 右
 +
 
 +
;% 剰余算(あまり)
 +
* 左を右で割った余り
  
 
== 条件分岐 ==
 
== 条件分岐 ==
* パッチ sel, route, switch, gate, if
+
* パッチ 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
  
 
== キーボードとマウス ==
 
== キーボードとマウス ==
71行: 188行:
 
* パッチ loadbang 起動時に自動的にbangを発生させる。
 
* パッチ loadbang 起動時に自動的にbangを発生させる。
 
* パッチ preset 現パッチの数値、状態をボタンにセーブ(Shift+Click)、ロード(Click)ができる。
 
* パッチ preset 現パッチの数値、状態をボタンにセーブ(Shift+Click)、ロード(Click)ができる。
 +
[[ファイル:PresetMax.JPG]]
  
 
== 保存した値を呼び出して再生 ==
 
== 保存した値を呼び出して再生 ==
82行: 200行:
 
* [http://cb6.media.t-kougei.ac.jp/cgi-bin/ag.cgi?page=FileView&gid=&fCID=73499&fFID=158274&cp=fl MIDIメッセージをテキスト保存、再生]
 
* [http://cb6.media.t-kougei.ac.jp/cgi-bin/ag.cgi?page=FileView&gid=&fCID=73499&fFID=158274&cp=fl MIDIメッセージをテキスト保存、再生]
  
== オシレータ ==
+
== 自動作曲パッチの例 ==
* サイン波 cycle~, ノコギリ波 phasor~
+
=== notein noteout ===
* 周波数
+
* noteinは、MIDIキーボードから、叩いた鍵盤の情報を入力値として受け取る
* adc~ dac~
+
* noteinから得られる情報は、note number(pitch), velocity, channelである。nouteoutに渡すと、音が鳴る。
* MIDIのpitchを周波数に変換 mtof~
+
[[ファイル:Ex001 notein noteout.png]]
* 音量操作
+
* line~によるなめらかな変化
+
  
== LFO ==
+
* note ON(鍵盤を押す)とnote OFF(鍵盤を離す)に注意する。velocity の値が0の時、note OFF
* AM合成
+
* 複数の数値を半角スペースで区切り、ひとまとめにして送ることができる。
* FM合成
+
** 複数の値をまとめたものをリストという。
 +
[[ファイル:Ex001 noteOn Off.png]]
  
==[[Envelope]](エンベロープ)==
+
=== makenote ===
*時間軸における音量変化。楽器ごとに個性がある。
+
* makenoutでnote OFFを自動で出力する。makenoteには、デフォルトのvelocityとduration(msec)を指定する。
*ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。
+
[[ファイル:Ex001 mokenote noteout.png]]
  
== フィルター ==
+
=== metro random ===
*特定の周波数帯域をカットする。つまり、特定の周波数帯域のみを通す(パスする)。
+
* metroでビートを発生させる。
** lowpass (highcut)
+
* randomでランダムに数字を発生させる。ピッチを0-128の間でランダムに発音させている。
** hightpass (lowcut)
+
* pgmoutで楽器を選択する。
** bandpass
+
[[ファイル:Ex002 metro random makenote.png]]
** bandstop
+
*周波数構成が変わるので、音質が変わる。
+
*イコライザーの一種
+
*Max/MSPでは、biquad~とfiltergraph~を使う。
+
  
== ディレイ ==
+
* 算術演算子 '''+''' を使って、randomで発生させる数字を、調整している。
*原音を時間を遅らせて再生する。エコー、やまびこ効果のこと。
+
[[ファイル:Ex003 metro random calc makenote.png]]
*耳に聞こえてくる音は、原音以外に、壁や天井から跳ね返ってくる反響音が必ず含まれている。
+
 
*Max/MSPでは、tapin~とtapout~を使う。
+
=== 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]]
 +
 
 +
== Keyを使って音階を鳴らす ==
 +
 
 +
;Key
 +
キーボードの押されたキーの[https://ja.wikipedia.org/wiki/ASCII アスキーコード]を10進数で返す。
 +
 
 +
キーボードの2段目の並びのキー'''asdfghjkl'''を'''ドレミファソラシドレ'''に対応させ、'''makenote,noteout'''で音を鳴らす。
 +
 
 +
[[ファイル:Key noteout.png|500px]]
  
 
== Tips ==
 
== Tips ==
123行: 312行:
  
 
== 参考リンク ==
 
== 参考リンク ==
*[http://www.sonasphere.com/max/ はじめてのMax/MSP(徳井直生)]
+
*[https://github.com/naotokui/MaxMSP_Objects/ naotokui/MaxMSP_Objects]
** 徳井先生は、メディアアート表現学科3年後期[http://www.t-kougei.ac.jp/arts/subject/subject1_602.html サウンドデザイン]も担当しています。お奨め講義です。
+
*[http://www.kuhalabo.net/~kuha/nime/wiimu/ Wiiを使ったライブ演奏ムービの例]:遠藤綾香氏の作品例([http://nime2008.casapaganini.org/ NIME2008]に出展)
*[http://www.media.t-kougei.ac.jp/wiimu/ Wiiを使ったライブ演奏ムービの例]:遠藤綾香氏の作品例([http://nime2008.casapaganini.org/ NIME2008]に出展)
+
* Chikashi Miyama: "Angry Sparrow"  http://www.youtube.com/watch?v=6U-TVZDaryE
*[http://www2u.biglobe.ne.jp/~macopism/ MACOPISM] 音が可視化されており操作できる作品。黒バックのグラフィックはどれも鮮やかな色で、音に反応していくので、音が光っているように感じる
+
 
*[http://www.dvd-3.com/ d.v.d] d(ドラム)+v(ヴィジュアル)+d(ドラム)という形態で、映像とドラムを融合させたパフォーマンスを展開するオーディオ・ヴィジュアル”ユニット
+
* Life Game Orchestra http://www.kuhalabo.net/~kuha/nime/lifegorch/
 +
 
 +
* VT Piano http://www.kuhalabo.net/~web/vtp/
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[Technical Workshop]]
+
 
* [[インタラクティブアート領域]]
+
== 参考 ==
* [http://cb6.media.t-kougei.ac.jp/cgi-bin/ag.cgi?page=FileIndex&fCID=73499 久原研サンプルパッチ]
+
[[作曲演習]]
  
 
[[Category:授業|授業]]
 
[[Category:授業|授業]]

2024年9月1日 (日) 02:23時点における最新版

目次

[編集] 概要

  • 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がくるまで音が持続して鳴り続ける。
    • オルガン、バイオリン、クラリネット、サックス、トランペットなど。

[編集] 時間制御

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

[編集] Keyを使って音階を鳴らす

Key

キーボードの押されたキーのアスキーコードを10進数で返す。

キーボードの2段目の並びのキーasdfghjklドレミファソラシドレに対応させ、makenote,noteoutで音を鳴らす。

Key noteout.png

[編集] Tips

[編集] 日本語フォントの文字化け対策

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

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

[編集] 参考リンク

[編集] 関連項目

[編集] 参考

作曲演習

個人用ツール
名前空間

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