🎹【1. MIDI信号の構造】(MIDI Note Number → Frequency)
MIDIでは、各音高に対応する**ノート番号(Note Number)**が0〜127で定義されています。
たとえばA4(ラ音)はMIDIノート番号69で、周波数440Hzです。
🔢 MIDIノート番号から周波数への変換式:
f = 440 × 2^((n - 69) / 12)
-
f
:周波数(Hz) -
n
:MIDIノート番号 -
69
:基準(A4 = 440Hz) -
12
:1オクターブあたりの半音数
🎛【2. 波形合成の基本式】
シンセサイザでは、時間に応じて変化する波形関数 y(t) を生成します。
音色は波形の形状で決まり、以下のような代表的波形があります:
① 正弦波(Sine Wave)
y(t) = A × sin(2πft)
- A:振幅(音量)
- f:周波数(音の高さ)
- t:時間(秒)
→ 最も純粋な音。倍音を含まず、クラリネットなどに近い。
② 矩形波(Square Wave)
y(t) = A × sgn(sin(2πft))
-
sgn(x)
:符号関数(正→+1、負→−1)
→ 偶数次倍音を含まない。クラシックなゲーム音やリード系に多い。
③ 鋸波/ノコギリ波(Sawtooth Wave)
y(t) = 2A × (t/T - floor(t/T + 0.5))
- T:周期(T = 1/f)
-
floor()
:切り捨て関数
→ すべての倍音を含み、ストリングスやシンセブラスに使用。
④ 三角波(Triangle Wave)
y(t) = (2A/π) × arcsin(sin(2πft))
→ 倍音は奇数次のみ、音色は柔らかい。
🧠 応用:FM合成の例(Frequency Modulation)
y(t) = A × sin(2πf_ct + I × sin(2πf_mt))
-
f_c
:キャリア周波数(基本音) -
f_m
:変調周波数(モジュレーター) -
I
:変調指数(倍音の強さ)
→ 複雑な音色(エレピ、金属音)を作る。