C++ で WAVE デコーダー/エンコーダーを作成しています。さまざまなサンプル サイズ (8、16、32) の間で正しく変換できましたが、チャネルと周波数については助けが必要です。
チャネル:
ステレオからモノラルに変換したい場合:
- 1 つのチャネルからデータを取得するだけですか (1 と 2 のどちらですか?)。
- または、モノチャネルのチャネル 1 と 2 から平均を取りますか。
モノラルからステレオに変換したい場合: (これはあまり科学的ではないことはわかっています)
- シングル チャンネルのサンプルを両方のステレオ チャンネルに単純に追加できますか?
- これを行うためのより科学的な方法はありますか (例: 補間)?
サンプルレート:
サンプル レートを変更する (リサンプル) 方法は次のとおりです。例: 44100 Hz から 22050 Hz へ:
- 新しい (より低い周波数の) 値の 2 つの連続したサンプルの平均を取るだけですか?
- これのためのより科学的なアルゴリズムはありますか?