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

提供:kuhalaboWiki
2024年8月27日 (火) 10:15時点におけるKuha (トーク | 投稿記録)による版

移動: 案内, 検索

目次

音の物理的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.findboundesで、画像の中の特定の色を検出して、その領域を含む矩形の座標を得る。
  2. jit.lcdで、得られた矩形を囲う長方形を描く。

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

Color detect maxpat.png

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

Zahyou.jpg

参考リンク

関連項目

参考

作曲演習

個人用ツール
名前空間

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