60
SSAW08 第2回 音のしくみ Max/MSP入門 II 2008年4月22日

Ssaw08 0422

Embed Size (px)

Citation preview

Page 1: Ssaw08 0422

SSAW08 第2回

音のしくみMax/MSP入門 II2008年4月22日

Page 2: Ssaw08 0422

今日の内容

• 「音のしくみ」について• Max/MSPを基礎から学ぶ

Page 3: Ssaw08 0422

音とは何か?

• 疑問:• もし、誰もいない森の中で1本の樹が倒れたとする。そこに果たして音は存在するのだろうか?

Page 4: Ssaw08 0422

音とは何か?

• 2つの観点

• 心理的な観点• 音とは我々が聞くもの• 脳に聞こえの感覚を生み出すもの

• 物理的な観点• たとえ音を聞く人がいなくても、音は存在する• 音は物理現象• 振動する音源と、音を伝える媒質

Page 5: Ssaw08 0422

音波

• 波の種類• 縦波:波の進行方向に振動する

• バネの伸縮による振動• 音波

• 横波:波の進行方向に直交して振動する• 水面の波紋• 弦の振動

• 音波はどちらの波か?

Page 6: Ssaw08 0422

音波は縦波

• 音波 = 空気の粗密波→縦波

高密度 低密度

音源

進行方向

Page 7: Ssaw08 0422

波形とは

• ある一点に置ける空気の密度の変化をプロット• 音の特徴を厳密にとらえるための、便宜的な表示

時間

Page 8: Ssaw08 0422

音の3要素

• 音の大きさ = 音圧• 音の高さ = 音程• 音の聞こえ方 = 音色

Page 9: Ssaw08 0422

音の強さ(音圧)とは

• 音圧 = 空気の圧力変動の度合い• 音圧の変化が小さい:小さな音• 音圧の変化が大きい:大きな音

音圧

時間

音圧

時間

音圧小さい 音圧大きい

Page 10: Ssaw08 0422

• 一定の高さの音 → 波形が周期的に繰り返す• 周波数:1秒あたり何回振動を繰り返すか

• 単位:Hz(ヘルツ)• 振動数が多い = 周波数が高い = 高い音• 振動数が少ない = 周波数が低い = 低い音

音の高さ(音程)とは

音圧

時間

音圧

時間

低い周波数 = 低い音 高い周波数 = 高い音

Page 11: Ssaw08 0422

Sin波

• Sin波、正弦波、• 全ての波形の基本となる、単一の周波数しかもたないもっとも純粋な音。純音。

• 疑問:なぜ、全ての基準となる波の形と、三角関数が関係あるのだろうか?• 「ばね」の性質と関連している

Page 12: Ssaw08 0422

• フックの法則• 多くの弾性体では変形の量が小さい限り復元力と変形量の間に比例関係がある

振動を繰り返す(単振動)

0

x

F = -kxma = -kx

x = -sinmk t

x = Csin(!t + ")

ばねの性質(フックの法則)

Page 13: Ssaw08 0422

単振動

• ばね質量系(ばね伸び縮みの、空気の粒子)のような弾性を持った物体にみられる運動

• 単振動とは、等速円運動の正射影の運動

Page 14: Ssaw08 0422

単振動 → 波へ

• 等速円運動の上下の動きを縦軸(y)• 時間を横軸(x)• 時間経過による動きをプロットしてみる• 波になる

P0

P1 P3P3

P4P4

P5P5

P6P6

P7P7

P1

P2 P2

P0

Page 15: Ssaw08 0422

等速円運動の変化を関数化する

• 等速円運動における上下の位置の変化を関数で表すにはどうすれば良いか?

• 三角関数を思い出してみる

a

cb

α

sinα = b / ccosα = a / ctanα = b / a

Page 16: Ssaw08 0422

等速円運動 = sin関数

• 半径1の円を描く• 中心角θの際のY軸方向の高さは?

• sinθ• 等速園運度の投射はsin関数と等しい

θ

1 高さx 三角関数の定理よりsinθ = x / 1よって、x = sinθ

Page 17: Ssaw08 0422

sin波(正弦波、純音)

• あらゆる音の基本となる最も基本的な波形• x = Asin(ωt + φ)

• A;振幅 … 物体の最大の変位• ω;角振動数(固有振動数)• φ;初期位相

0 π 2π

音圧

時間

Page 18: Ssaw08 0422

音波のパラメータ

• 周期 ・振幅・位相

音圧

時間

周期

振幅

位相

Page 19: Ssaw08 0422

• 波の振幅と周波数で、音の「大きさ」「高さ」は決定される• しかしもう一つ重要な要素を忘れていないだろうか?

• 全ての音がサイン波だったら、音楽は成り立たない• 「音色 (おんしょく)」:音のキャラクター• 音の3要素:「大きさ」「高さ」「音色」の3つ

• では「音色」な何によって特定されるのだろうか?

もう一つ重要な要素「音色」

Page 20: Ssaw08 0422

• ちょっと実験、Max/MSPで下のパッチを作成する• sin波を合成する簡単なパッチ

音色に関する実験

Page 21: Ssaw08 0422

• それぞれの位相 (cycle~の第2インレットの値) を変化させてみる• 波形が変化してないか?• 音色は変化したか?

音色に関する実験

Page 22: Ssaw08 0422

• 波形が変化したのに、音色の変化を聴き取ることができない• 我々はいったい何を聴いているのか?

• 波形ではなさそう

• 人間の耳は、音に含まれる「周波数成分」を分解してい聴いている• つまり耳には天然の「周波数分析装置」!!• 耳の内部、内耳にある蝸牛で周波数の分解をしている

音色に関する実験

Page 23: Ssaw08 0422

• 耳の構造

音色に関する実験

Page 24: Ssaw08 0422

• 波形を凝視しても、聴こえる音を想像することは難しい• 「音色」を調べるには、音を「周波数成分 (スペクトラム)」に分解して、各成分の強さを調べなくてはならない

• どうやったら、耳が聴いているように音を分析することができるのだろうか?

• 数学的な処理をすることで、音の周波数成分を知ることができる• フーリエ級数展開• フーリエ変換・逆変換• 短時間フーリエ変換

音色を分析するには

Page 25: Ssaw08 0422

• 全ての複合波(正弦波でないあらゆる音波)は、振幅、周波数、位相の異なる正弦波の足し合わせにより構成されている。

• 異なる位相をもった正弦波の組み合わせにより、あらゆる音色を再現できるはず

• 「加算合成」の理論的根拠

フーリエ級数展開

Page 26: Ssaw08 0422

• フーリエ級数展開の基本周期T0を0~無限大にとると、波形に含まれる連続する周波数の分布と位相の情報が得られる

• これがフーリエ変換• 波形 → スペクトラム

• 連続する周波数成分と位相の情報から、元の波形を復元することができる• これがフーリエ逆変換• スペクトラム → 波形

フーリエ変換・逆変換

Page 27: Ssaw08 0422

• サイン波 → 1本の縦線

波形とスペクトラムの関連

時間 →

音圧 →

周波数→パワー →

Page 28: Ssaw08 0422

• 周期的に繰り返す波 → 基本周波数と整数倍の複数の倍音

波形とスペクトラムの関連

時間 →

音圧 →

周波数→パワー →

Page 29: Ssaw08 0422

• ホワイトノイズ → 全ての周波数帯域が含まれる

波形とスペクトラムの関連

時間 →

音圧 →

周波数→パワー →

Page 30: Ssaw08 0422

• インパルス → 全ての周波数帯域が含まれる

波形とスペクトラムの関連

時間 →

音圧 →

周波数→パワー →

Page 31: Ssaw08 0422

• 現実世界では「無限大」の長さの波形など存在しない• コンピュータで実際に周波数成分の時間変化を見る際には、信号を「窓関数」を用いてある範囲(サンプル数)だけとりだして分析している

• これを、(離散時間における)短時間フーリエ変換という

短時間フーリエ変換

窓関数のひとつ「ハミング窓」

Page 32: Ssaw08 0422

• 時間の経過に従って変化する、スペクトラムを分析することが可能となる• 「波形 → スペクトラム」「 スペクトラム → 波形」相互に変換可能

• 分析再合成

短時間フーリエ変換

バイオリンのスペクトラム (Spectrogram)

Page 33: Ssaw08 0422

コンピュータで音を扱うには

• 音波:連続した波→アナログ信号• そのままでは、コンピュータで扱えない• アナログ信号をデジタルへ

• ADC:Analog Digita Converter• デジタル信号をコンピュータで処理• 処理した結果を再びアナログ信号に再変換

• DAC:Digital Analog Converter

Page 34: Ssaw08 0422

• 連続する信号を一定間隔で区切って、その数値を読み取っていく→サンプリング• 時間方向の目盛りの細かさ:サンプリングレイト• 振幅の分割の目盛りの細かさ:量子化ビット数

コンピュータで音を扱うには

アナログ信号 サンプリング→デジタル信号

01100101000101001010011101...

Page 35: Ssaw08 0422

• 音波:連続した波→アナログ信号• そのままでは、コンピュータで扱えない• アナログ信号をデジタルへ

• DAC:Digital Analog Converter• デジタル信号をコンピュータで処理• 処理した結果を再びアナログ信号に再変換

• ADC:Analog Digita Converter

デジタルオーディオ

マイクロホン

ローパスアンチエイリアシング

フィルタ

ADC

メモリ

DAC

ローパス平準化フィルタ

アンプ

スピーカ

録音

記録

再生

アナログ信号

(電圧)

デジタル信号

(数値)

アナログ信号

(電圧)

Page 36: Ssaw08 0422

Max/MSPをつかって実験

• ここまでやってきた、音の性質を、Max/MSPを用いて実際に聞きながら実験してみる!

Page 37: Ssaw08 0422

Max/MSP起動

• アプリケーションの起動• 「アプリケーション」→「MaxMSP 4.3」フォルダ内の「MaxMSP 4.3.app」を起動

• 注意:「MaxMSP Runtime 4.3.app」の方ではない。Runtimeは既存のプログラムを実行するだけのもの

Page 38: Ssaw08 0422

Max/MSP基本構成

• Maxウィンドウ• 処理結果やエラーなどのテキスト情報を表示

Page 39: Ssaw08 0422

Max/MSP基本構成

• オブジェクトパレット• パッチウィンドウの上部にある• プログラムのパーツやユーザインタフェイスとなるオブジェクトを選択して、配置する

Page 40: Ssaw08 0422

Max/MSPプログラムの基本

• オブジェクトパレットから、オブジェクトを選択してパッチウィンドウに配置する

• オブジェクト同士をパッチコードで接続することでプログラムが作成される

• ウィンドウをロックすると、実行モードになる• パッチ右上のボタンを押してロック/ロック解除• メニュー“View”→”Edit”でロック/ロック解除• コマンド-Eでロック/ロック解除

Page 41: Ssaw08 0422

Max/MSPプログラムの基本

• オブジェクトとパッチコード

オブジェクトパッチコード

ロック/ アンロックのスイッチ

Page 42: Ssaw08 0422

Max/MSPプログラムの基本

• インレットとアウトレット• インレット:オブジェクトへデータを入力• アウトレット:オブジェクトからデータを出力

インレット

アウトレット

Page 43: Ssaw08 0422

Max/MSPプログラムの基本

• 処理の流れ

1. ユーザーがナンバーボックスに83.0という数字を入力

2. 83.0という数字がパッチコードに流れる

3. * オブジェクトが入力された数字を2.0倍する

4. パッチコードに166.0という数字が流れる

5. ナンバーボックスに入力された数字166.0を表示する

83.0

166.0

Page 44: Ssaw08 0422

Max/MSPプログラムの基本

• 今日、最低限憶えたいオブジェクト

オブジェクトボックス:最も汎用的なオブジェクト

メッセージボックス:メッセージ(数字、文字列、bangなど)の表示と送信

ボタン:クリックすると"bang"を送出、"bang"を受信して光る

トグルボタン:クリックでONとOFFを切り替える

ナンバーボックス(整数):整数の数字を入力・表示

ナンバーボックス(浮動点少数):浮動点少数を入力・表示

Page 45: Ssaw08 0422

音を出してみる!

• 一番シンプルな音響生成プログラム• 突然大きな音が出るので、コンピュータのボリュームを下げておくこと!

• スピーカのボタンを押して、ON/OFF切り替え

Page 46: Ssaw08 0422

音を出してみる!

• 名前に”~”(チルダ)がつくオブジェクトは、オーディオ信号を扱うオブジェクトの印

• パッチコードの色が黄色と黒の縞模様になる• 黄色いパッチコードのなかには連続するデジタル信号の数値のストリームが、DACをOFFにするまでは、絶え間なく流れ続けている

Page 47: Ssaw08 0422

DACオブジェクト

• スピーカのアイコンは、DACを行うオブジェクトを視覚的に表したもの• ノーマルオブジェクトに”dac~”と書き込んでも同じ• “dac~”はウィンドウごとにも再生ができる• “dac~”はマルチチャンネルにも対応

Page 48: Ssaw08 0422

波形をモニターする

• signal scopeオブジェクトを追加• 選択した状態で、Object → get infoを選択• Buffer per Pixelを4、Buffer Sizeを110に調整

Page 49: Ssaw08 0422

• cycle~から出力される信号の値全てに対して、一定の値をかけ算することで、振幅が変えられるはず!

音量を変化できるように改造

全てのサンプルに0.5をかけ算する

Page 50: Ssaw08 0422

音量を変化できるように改造

• “*~” オブジェクトで信号のかけ算が出来る• 普通の*とは違うことに注意!

Page 51: Ssaw08 0422

周波数を変化させる

• “cycle~” オブジェクトの第1インレットに数値を入力すると、周波数が変化する

Page 52: Ssaw08 0422

音を混ぜる

• 2つの”cycle~”の音を足し合わせるにはどうするか• 単純に2つのパッチコードをひとつのインレットに入れてあげればOK

Page 53: Ssaw08 0422

ちなみにPdだと…

• 同じような機能をPdで作成するとこんな感じ

Page 54: Ssaw08 0422

音律について探る

• 左側のオシレータの周波数を基準にして、次の音程になるように右側のオシレータの周波数を合わせてみる• オクターブ(ドと上のド)• 5度(ドとソ)• 4度(ドとファ)• 3度(ドとミ)

• それぞれはどのような関係にあるか?

Page 55: Ssaw08 0422

音律について探る

• 音律 = 2つの音の整数比できまる(純正律の場合)

比率 音階 半音の数

1:1 ド 0

1:2 ド(オクターブ) 12

2:3 ソ 7

3:4 ファ 5

4:5 ミ 4

5:6 ミ♭ 3

Page 56: Ssaw08 0422

ハーモニーを視覚化してみる

• オシレータ1をX軸、オシレータ2をY軸にして、プロットしてみる

Page 57: Ssaw08 0422

ハーモニーを視覚化してみる

• 協和的な響きの比率では、シンプルな図形に• 不協和な響きの比率では、複雑な図形に• リサージュ曲線:• 互いに直交する二つの単振動を合成して得られる軌跡が描く平面図形のこと。それぞれの振動の振幅、振動数、初期位相の違いによって、多様な曲線が描かれる。

Page 58: Ssaw08 0422

FFT (高速フーリエ変換)を用いて音を分析する

• 前半で解説したフーリエ変換を、Max/MSPで実装してみる• 色々な波形をフーリエ変換して、その形状を観察してみる• FFT = 高速フーリエ変換

• 離散フーリエ変換 (Discrete Fourier Transform, DFT) を計算機上で高速に計算するアルゴリズム

Page 59: Ssaw08 0422

FFT (高速フーリエ変換)を用いて音を分析する

Page 60: Ssaw08 0422

FFT : Pd版