Max/MSPによるオーディオプログラミング
提供:kuhalaboWiki
(版間での差分)
(→カメラから動きを検出する) |
(→カメラから動きを検出する) |
||
148行: | 148行: | ||
**キーのアスキーコードを整数で取得する。 | **キーのアスキーコードを整数で取得する。 | ||
− | === | + | === カメラから動きを検出し、音を生成する === |
#jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。 | #jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。 | ||
#jit rgb2lumaを使ってカラーをモノクロに変換。 | #jit rgb2lumaを使ってカラーをモノクロに変換。 | ||
159行: | 159行: | ||
検出された動きの平均値と最大値からアナログシンセで音を生成する。 | 検出された動きの平均値と最大値からアナログシンセで音を生成する。 | ||
# diff_maxとdiff_meanを受け取り、 | # diff_maxとdiff_meanを受け取り、 | ||
− | # | + | # zmapで値を変換して |
# オシレータとLFOの周波数に入力している | # オシレータとLFOの周波数に入力している | ||
2024年8月24日 (土) 09:01時点における版
目次 |
音の物理的3要素
通常、音の3要素とは、「高さ、強さ、音色」であるが、ここでは、「音色」の代わりに「長さ」を考慮する。
- 高さ
- 周波数, 音高
- 強さ
- 音量, ボリューム
- 長さ
- 時間, 空間
オシレータ
- 発振器のこと。振動を発生させる器械のこと。
- サイン波 cycle~, ノコギリ波 phasor~
- 周波数
- adc~(マイク) dac~(スピーカー)
- a : アナログ:空気の振動
- d : デジタル:PCの中の数値
- c : コンバート
- 音量操作 *~
- 加算合成 +~
複数の周波数を足していくと、波形が変わっリ、音色が変わる。
- line~によるなめらかな変化
- MIDIのpitchを周波数に変換 mtof~
LFO
- Low Frequency Oscillator(低周波発振器)
- LFOで、音源オシレータにモジュレーション(変調)をかける。
- AMとFMの違い
- 演算子(「*」 や「+」)の位置は、オシレータ(cycle~)の前か後のどちらか?。
AM (Amplitude Modulation)合成
- 波形(シグナル)を乗算(掛け算)する
- 波形の振り幅が変わる。すなわち、音量が変わる。
- トレモロ効果
- 振り幅変化の周期と深さを変える。
FM (Frequency Modulation)合成
- 周波数(数値メッセージ)を加算(足し算)する
- 波形の周波数が変わる。すなわち、音高が変わる。
- ビブラート効果
- 周波数変化の周期と深さを変える。
Envelope(エンベロープ)
- 時間軸における音量変化。楽器ごとに個性がある。
- ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。
- Maxではfunctionパッチを使って、音量変化を描く。
- クリックで点が増える。シフトクリックで点を消す。
フィルター
- 特定の周波数帯域をカットする。つまり、特定の周波数帯域のみを通す(パスする)。
- lowpass (highcut)
- hightpass (lowcut)
- bandpass
- bandstop
- 周波数構成が変わるので、音質が変わる。
- イコライザーの一種
- Max/MSPでは、biquad~とfiltergraph~を使う。
フィルターを実装したパッチの例
ディレイ Delay
- 原音を時間を遅らせて再生する。エコー、やまびこ効果のこと。
- 耳に聞こえてくる音は、原音以外に、壁や天井から跳ね返ってくる反響音が必ず含まれている。
- Max/MSPでは、tapin~とtapout~を使う。
基本的なディレイ
- 原音を dry ディレイ音を wet と呼ぶ。
dry, wetをLRに分配
delayを入力に戻す(FeedBack)
delayタイムの異なる複数種類のwetを合成
- Reverb : 原音に余韻,残響感を付加する。Delayの集合体。
Delayの応用エフェクト
- delayタイムに手動で変化を加えて、ディレイ音を揺らがせる。
- delayタイムにLFOで変化を加えて、ディレイ音を揺らがせる。
- Chorus : Delay音が弱め。Feedbackが少なめ。
- Flanger : Delay音が強め。Feedbackが多め。
インタラクション
- 世界初の電子楽器 テルミン
- テルミン
- テルミン https://www.mandarinelectron.com/theremin/
- Don't Worry, Be Happy on theremin
- Moog Music Introduces Polyphonic Theremin
マウステルミン
マウスの値をシンセに入力
- mousestatでマウスの位置と速度の値を取得し、アナログシンセの変数に入力
- マウスのボタンのON/OF
- マウス位置のx座標
- マウス位置のy座標
- マウス速度のx成分
- マウス速度のy成分
zmapを使って値を変換
- AからBに変化する値を、XからYに変化する値に変換する。
zmap A B X Y
- 0から255に変化する値を、0.0から1.0に変化する値に変換する。
zmap 0 255 0. 1.
- FM合成とAM合成のパラメータをマウスの状態から入手
キーボードのキーの値を取得
- key
- キーのアスキーコードを整数で取得する。
カメラから動きを検出し、音を生成する
- jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。
- jit rgb2lumaを使ってカラーをモノクロに変換。
- t l l (triger list list)を使って、動画のフレームデータの連続したリストを得て、順番を入れ替える。
- jit.opのabsdiff(差の絶対値)を使って、2つのフレームの差分をとる。動きが検出される
- jit.3mで差分の平均と最大値を取得し、diff_meanとdiff_maxに送信
検出された動きの平均値と最大値からアナログシンセで音を生成する。
- diff_maxとdiff_meanを受け取り、
- zmapで値を変換して
- オシレータとLFOの周波数に入力している
参考リンク
- Wiiを使ったライブ演奏ムービの例:遠藤綾香氏の作品例(NIME2008に出展)
- Chikashi Miyama: "Angry Sparrow" http://www.youtube.com/watch?v=6U-TVZDaryE