0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ピアノの音

Posted at

🎹 ピアノ音の再現式(加算合成+エンベロープ付き)

✅ 基本構造(加算合成)

ピアノの音は、基音と多数の倍音の重ね合わせです:

x(t) = Σ A_n * sin(2π * n * f₀ * t + φ_n)
  • f₀: 基音(例:A4=440Hz)
  • A_n: 第n倍音の振幅(通常A₁ > A₂ > A₃…と減衰)
  • φ_n: 各倍音の位相(ランダム or 0)
  • n: 倍音番号(1〜20程度)

✅ 時間変化(エンベロープ)

ピアノの音は「立ち上がりが鋭く」「減衰が自然」です。これをエンベロープ関数 E(t) で表します:

E(t) = A * exp(-α * t)
  • A: 最大音量(通常1.0)
  • α: 減衰係数(鍵盤の強さによって変わる)

したがって、実際の音は以下のように表せます:

y(t) = E(t) * Σ A_n * sin(2π * n * f₀ * t + φ_n)

✅ 例:A4(ラ、440Hz)ピアノ音の近似(5倍音まで)

y(t) = e^(-αt) * [1.0 * sin(2π * 440 * t)
                + 0.5 * sin(2π * 880 * t)
                + 0.3 * sin(2π * 1320 * t)
                + 0.2 * sin(2π * 1760 * t)
                + 0.1 * sin(2π * 2200 * t)]
  • α ≈ 3〜5 程度(秒⁻¹)で減衰速度調整

✅ ピアノらしさの追加要素(上級)

要素 技術的補足
打鍵ノイズ 立ち上がり時にノイズ(ホワイトノイズ)を少量加算
弦の共鳴 他弦の共鳴を追加: + β * sin(2π * f_res * t)
ハンマー非線形性 倍音ごとに微妙な位相・音量ゆらぎを入れる
サンプリング再生 実音を録音し、ピッチ変換で再現(WAVテーブル)

🔉 Pythonや音響合成ソフトとの接続例

  • Python + NumPy:上記の式をループで合成可能(Waveファイル生成も可)
  • PureData / MaxMSP:エンベロープ×加算合成パッチで再現可
  • Audacity:「生成→トーン→カスタム倍音」で手入力も可能

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?