2015年1月5日月曜日

サイン波を生成する処理について

Core Audio の Remote IO Audio Unit でサイン波を鳴らす際に Callback 関数で以下のように書いた。が、sin 関数を使って変数 wave を生成する処理がよくわからなかったので少し調べた。


「サウンドプログラミング入門」という本を買って1〜2章を読んでみたところ、足りない知識(下の定義など)が補完されてすっきりとコードが理解できた。

デジタル信号のサイン波は時間n を変数とする関数で定義できる
音量 * sin(2.0 * M_PI * 周波数 * 時間n / サンプリングレート)



2点ほど補足
  • 上のコードでは sin に与える引数を phase に蓄積することで、時間n の代わりにしている
  • 2.0 * M_PI の意味は sin関数のグラフを見たらわかった

0 件のコメント :

コメントを投稿