コンテンツにスキップ

Modulation

Modulation は, 各振動子の出力振幅を時間方向に変調する振幅変調 (AM) 機能である. 全振動子に共通の係数列を一定周期でサンプリングしながら適用し, Pattern が作る音場の強度を時間的に変化させる.

各サンプルは 8 bit の振幅係数 で, 振動子の出力振幅に乗算され, その後 255 で割られる.

バッファの各サンプルは, Modulation::new に渡す SamplingConfig の周期で順に適用される. 波形計算関数の Option が持つ sampling_config は波形の長さ (サンプル数) を決めるためのもので, Modulation::new に渡す SamplingConfig と一致させる必要がある. たとえば SamplingConfig::FREQ_4K (4 kHz, サンプリング周期 250 µs) の場合, 200 Hz の正弦波 1 周期は 20 サンプルになる.