Max/MSPによるオーディオプログラミング

提供:kuhalaboWiki
(版間での差分)
移動: 案内, 検索
(カメラから動きを検出する)
(色の検出)
 
(1人の利用者による、間の17版が非表示)
148行: 148行:
 
**キーのアスキーコードを整数で取得する。
 
**キーのアスキーコードを整数で取得する。
  
== カメラ動画を使ったインタラクション ==
+
== カメラ入力を使ったインタラクション ==
 +
=== 動き検出 ===
 
#jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。
 
#jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。
 
#jit rgb2lumaを使ってカラーをモノクロに変換。
 
#jit rgb2lumaを使ってカラーをモノクロに変換。
157行: 158行:
 
[[ファイル:Camera_diff01.jpg|600px]]
 
[[ファイル:Camera_diff01.jpg|600px]]
  
検出された動きの平均値と最大値からアナログシンセで音を生成する。
+
;検出された動きの平均値と最大値からアナログシンセで音を生成する。
 
# diff_maxとdiff_meanを受け取り、
 
# diff_maxとdiff_meanを受け取り、
 
# zmapで値を変換して
 
# zmapで値を変換して
163行: 164行:
  
 
[[ファイル:Camera_diff2synth.jpg|600px]]
 
[[ファイル:Camera_diff2synth.jpg|600px]]
 +
 +
 +
=== 色の検出 ===
 +
 +
# '''jit.findbounds'''で、画像の中の特定の色を検出して、その領域を含む矩形の座標を得る。
 +
# '''jit.lcd'''で、得られた矩形を囲う長方形を描く。
 +
 +
下記の例では、赤色の部分を検出し、面積を計算している。
 +
 +
[[ファイル:Color_detect_maxpat.png|600px]]
 +
 +
* 座標は、x軸が右向き、y軸が下向き。
 +
* 得られる座標は、左上と右下。対角線上の頂点。
 +
 +
[[ファイル:Zahyou.jpg|300px]]
 +
 +
;検出された色からFM合成で音を生成する。
 +
# 赤色を検出し、赤の領域の面積を求める、
 +
# FM合成のキャリア周波数に面積に基づいていられた値を入力。
 +
 +
[[ファイル:Color_detect_synth_maxpat.png|900px]]
  
 
== 参考リンク ==
 
== 参考リンク ==

2024年8月28日 (水) 01:53時点における最新版

目次

[編集] 音の物理的3要素

通常、音の3要素とは、「高さ、強さ、音色」であるが、ここでは、「音色」の代わりに「長さ」を考慮する。

高さ
周波数, 音高
強さ
音量, ボリューム
長さ
時間, 空間

[編集] オシレータ

  • 発振器のこと。振動を発生させる器械のこと。
  • サイン波 cycle~, ノコギリ波 phasor~
  • 周波数
  • adc~(マイク) dac~(スピーカー)
    • a : アナログ:空気の振動
    • d : デジタル:PCの中の数値
    • c : コンバート
  • 音量操作 *~
  • 加算合成 +~

複数の周波数を足していくと、波形が変わっリ、音色が変わる。

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(エンベロープ)

  • 時間軸における音量変化。楽器ごとに個性がある。
  • ピアノ、ギターなどはアタックが早く立ち上がるが、ストリングスはアタックがゆっくり立ち上がる。
  • Maxではfunctionパッチを使って、音量変化を描く。
    • クリックで点が増える。シフトクリックで点を消す。

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

[編集] マウスを使ったインタラクション

世界初の電子楽器 テルミン

[編集] マウステルミン

[編集] マウスの値をシンセに入力

mousestatでマウスの位置と速度の値を取得し、アナログシンセの変数に入力
  • マウスのボタンのON/OF
  • マウス位置のx座標
  • マウス位置のy座標
  • マウス速度のx成分
  • マウス速度のy成分

Synth20131210v1s.png

[編集] zmapを使って値を変換

  • AからBに変化する値を、XからYに変化する値に変換する。
zmap A B X Y
  • 0から255に変化する値を、0.0から1.0に変化する値に変換する。
zmap 0 255 0. 1.

Zmap.png

Zmap2.png

FM合成とAM合成のパラメータをマウスの状態から入手

MouseTerumin02.png

[編集] キーボードのキーの値を取得

  • key
    • キーのアスキーコードを整数で取得する。

[編集] カメラ入力を使ったインタラクション

[編集] 動き検出

  1. jit.grabを使ってカメラ画像を取得。qmetroでサンプリング間隔を指定。
  2. jit rgb2lumaを使ってカラーをモノクロに変換。
  3. t l l (triger list list)を使って、動画のフレームデータの連続したリストを得て、順番を入れ替える。
  4. jit.opのabsdiff(差の絶対値)を使って、2つのフレームの差分をとる。動きが検出される
  5. jit.3mで差分の平均と最大値を取得し、diff_meanとdiff_maxに送信

Camera diff01.jpg

検出された動きの平均値と最大値からアナログシンセで音を生成する。
  1. diff_maxとdiff_meanを受け取り、
  2. zmapで値を変換して
  3. オシレータとLFOの周波数に入力している

Camera diff2synth.jpg


[編集] 色の検出

  1. jit.findboundsで、画像の中の特定の色を検出して、その領域を含む矩形の座標を得る。
  2. jit.lcdで、得られた矩形を囲う長方形を描く。

下記の例では、赤色の部分を検出し、面積を計算している。

Color detect maxpat.png

  • 座標は、x軸が右向き、y軸が下向き。
  • 得られる座標は、左上と右下。対角線上の頂点。

Zahyou.jpg

検出された色からFM合成で音を生成する。
  1. 赤色を検出し、赤の領域の面積を求める、
  2. FM合成のキャリア周波数に面積に基づいていられた値を入力。

Color detect synth maxpat.png

[編集] 参考リンク

[編集] 関連項目

[編集] 参考

作曲演習

個人用ツール
名前空間

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