サウンドプログラミング基礎

Last Change:23-May-2016.
Author:qh73xe
Reference:http://floor13.sakura.ne.jp/book03/book03.html

このページでは C 言語を利用してサウンドプログラムを行う 基礎的な内容をメモします。

基本的には上記のレファレンスを参考に勉強をしています。 この文章では、音声信号処理を行う際の最低限の知識と、 それを表現するサンプルスクリプトを示します。

参考にしている本は プログラミング畑の人間が音声信号処理に触れるためには、 とてもよい入門書であると思います。

このサイトでは基本的に、上記参考書を使って、 論理的背景の説明を行い、C による実装をします。 単純にサウンドプログラミングの基本的な部分を押さえたい場合、 以下のページを読むのが一番直感的かと思います。

一方で、教本をなぞるだけでは面白くないので、 各章で説明した事柄に関して Haskell を使用して 再実装してみようと思います。

これは単純に私自身が Haskell に興味を持って学習をしたいと考えているというのが一つと、 個人的には信号処理って関数型の言語の方が相性が良い気がするというのが主な理由です。

  • なお、本人的には前者の意味合いが強いです。

Haskell での実装に関しては 以下のページに記述して置きます。

第3章: 音を響かせる

 3.1 ディレイ  3.2 リバーブ  コラム3 エフェクタ  コラム4 VSTプラグイン

第4章: 音を歪ませる

 4.1 ディストーション  4.2 オーバードライブとファズ

第5章: 音を揃える

 5.1 リミッタ  5.2 コンプレッサ  コラム5 サンプリングとリッピング

第6章: 音を分離する

 6.1 FIRフィルタ  6.2 IIRフィルタ  6.3 フレーム単位のフィルタリング  6.4 周波数領域のフィルタリング  コラム6 音声の生成メカニズム

第7章: 音を強調する

 7.1 イコライザ  7.2 ワウ  コラム7 Windows Media Playerのイコライザ  コラム8 ボコーダ

第8章: 音を揺らす

 8.1 トレモロ  8.2 ビブラート

第9章: 音を広げる

 9.1 コーラス  9.2 フランジャ  9.3 オートパン  9.4 擬似ステレオ化

第10章: 音を削る

 10.1 ノイズゲート  10.2 ノイズサプレッサ  10.3 ボーカルキャンセラ  コラム9 無音圧縮

第11章: 音を伸縮する

 11.1 早送り再生  11.2 スロー再生  コラム10 話速変換

第12章: 音を上下させる

 12.1 リサンプリング  12.2 ピッチシフタ  12.3 ボイスチェンジャ  コラム11 NAMM ShowとMusikmesse