Upload
nao-tokui
View
1.390
Download
3
Embed Size (px)
Citation preview
’08 サウンドプログラミング演習 5/8
徳井直生
1
前回のトピック
• (再度) 授業の内容について (自己紹介含む)
• Maxプログラミング
• Max = 入力と出力の変換(マッピング)を行うもの
• タイミングの管理
• 様々なユーザインタフェースを使ってみる
• エクスターナルオブジェクト
• Videoピアノ - 鍵盤じゃなくてもいいじゃん!
• MIDIのルーティング (時間があれば) → 今日
2
Maxの役割
Max
変換
入力
例)
外部入力
(MIDI, センサー, ネットワーク)
コンピュータ内部のアルゴリズム
例)
音楽/サウンドアクチュエータ (モータ等)
出力
作品の肝 例)
何と何を対応させる?一定のルール?それとも可変?
ランダム性
3
今回のトピック
• ランダム性をてなずける!
• 一様分布、確率分布、遷移確率表
• メッセージの流れを理解する
• MIDIのルーティング
• 課題
4
5
メッセージは「右から左」←「下から上」↑の順番で伝わる
6
メッセージのルーティング
サウンドプログラミング演習 08 5/8
select 1 2 10
0
0
gate
0
0
門を開く閉じる
通す値
開く門を選ぶ
流れを変える
gate 3
00
0 0 0
必ずしも数字でなくても良い
select 4 kid
0
print 1 print 2 print 3
kid■ select オブジェクト
入力値がアーギュメントで指定された特定の値の時、対応するoutletからbangを出す。どれにもあてはまらなければ、一番右のアウトレットから入力値をそのまま出力。
■ gate オブジェクト
左インレットが1のとき、右インレットの入力をスルー。0のときはブロック。文字通り、ゲート(門)のような役割。�
値の比較�
== 5 > 5
0
0
0
0
7
サウンドプログラミング演習 08 5/8
random 10
0
■ random オブジェクト
bangを受けるたびに、0から(アーギュメント-1)の値の範囲で、ランダム(擬似乱数)な値を出力 �
ほんとにrandomオブジェクトはランダムな値を返すのか
おまけ
p
makenote 100 1000
■ makenote オブジェクト
ノートオフメッセージを生成してくれる
アーギュメント: ベロシティの初期値 音の長さ(ms)
noteout
(課題) 特定のオクターブの音を周期的にランダムに出力するパッチをつくる。(ヒント: 1オクターブは12の半音=MIDIノート12個分)�
seed 33
seed(乱数の生成に使う初期値)が同じなら、同じ乱数列になる
<< ダブルクリック�
単純なランダム
(課題) 小数の乱数を発生させるには?
(課題) �白鍵の音のみを出力させるには?
(課題) �ファの音以上の音のみを出力させるには?
8
table
■ tableオブジェクト
数値の列を保持する.ダブルクリックすると、格納されている値が表としてみられる
格納する数値の数と範囲を変更するときは、Get Info...�
table
0
「確率分布」の表としても使える
サウンドプログラミング演習 08 5/8
確率分布
確率分布とは、特定の事象の起りやすさを記述する
0
0
x: �
y:
bangを入力すると、tableを確率分布としてとらえ、その分布のもとでランダムな値を出力�
値の読み出し
table a
0 x: �
値の書き込み
0 :y
table b
pack 0 0
0 x: � 0 :y
区別するためにtableに名前を付ける事も出来る�
write load
tableのセーブ/ロード�
同じ名前のデータがセーブされていたら自動的にロードされる
(課題) 特定のオクターブの音を周期的に「ある確率分布に基づいて」ランダムに出力するパッチをつくる。�
(課題) 特定のコードの音のみを生成するようにしてみよう (音楽理論に詳しい人)
9
サウンドプログラミング演習 08 5/8
prob
anal
makenote 100 250
noteout
0
notein
metro 250
clear0
seq bach.mid
stop
start
stripnote
midiparse
0 0
1. � 適当に弾いてみる (和音はなし)
dump
1. � もしくはバッハの曲を再生 �
2. �遷移確率テーブルが作られる
3. �遷移確率テーブルに基づいた演奏 クリア
遷移確率テーブルにもとづく演奏
音Aの次にBがくる確率, Cがくる確率... の表を作る。その表をもとにランダムに再生�
確率テーブルの表示
10
ランダム性を手なずける
• 一口に「ランダム」といっても様々なランダムがありうる
• 作曲にランダム性をとりいれる意味を考えよう
• ランダム性をコントロールする = 意外性と必然性のバランスをとる
11
今後の授業- Max
×プログラミングの組み立て方
×インレットとアウトレット
×まずは四則演算
×外部入/出力 (MIDI, ビデオ)
×時間をコントロール
×様々なユーザインタフェースを使う
×エクスターナルの使い方を知る
×ランダム性をてなずける(0.5)
×メッセージの種類と流れを理解する(0.5)
•ネットワークを使ってみる(0.5)
次回以降
オーディオ!
12
5/15 休講6/12 休講
13
課題
• maxbasics.zipの中のパッチに一通り目を通す•これまでに使ったサンプルパッチなどをもとに自分なりの音楽生成パッチを作る•条件
•ランダム性をとりこむ•外部入力 (MIDI, カメラ, マウス, キーボード)でコントロールする
(maxbasics.zipのパッチにもヒントが...)
•提出: 次回の授業 5/22 が始まる前に
• [email protected] まで パッチを圧縮/添付して•工夫した点を簡単に書き添えて
14
告知
• Tokyo Max Users Group
• Max/MSP/Jitterユーザの自発的な集まり
•毎回、異なるジャンルのアーティスト/デザイナー/研究者のトークとディスカッション, ライブなど
•次回は, 5/10 デザインや広告の現場でMaxを使っている方のプレゼン
•詳しくは http://tokyomax.jp/
15
Tips
• オブジェクト
• Option(Mac) / Alt (Win) + クリックで「helpパッチを開く」
• Command (Mac) / Control (Win) + i で「オブジェクトの情報ウィンドウが開く」
• Option(Mac) / Alt (Win) + クリック + ドラッグで「オブジェクトの複製」
• 複数選んで Command (Mac) / Control (Win) + Y 「オブジェクトの整列」
16