ダイアルの音色をつくるのはとても簡単。ちょっとスパイスを足してキーパッドで数字を押してダイアルするようにしてみよう。
これがDTMF/CCITTで使われてる周波数のペアのリスト。
1209 1336 1477 1633
-------------------------------------------
697 | 1 2 3 A
770 | 4 5 5 B
852 | 7 8 9 C
941 | * 0 # D
9の音色を得るためには、1477Hzに852Hzを加える。そのため最終的な音はそれぞれ与えられた周波数に2つの成分をもつことになる。サイン波が使われてるのは重要で、サイン波やコサイン波は固有の周波数しかもたないことを思い出して欲しい。純粋なんだ。純粋なサイン波の重ね合わせはスペクトラムの理解が簡単で、結果はただ入力した二つの成分に過ぎない。これは正直な加算合成だ。シグナルを歪ませない限り、二つの成分は互いに干渉し合うことはない。化学の類推例で言えば水と油だったり溶液中の反応しない溶液みたいなもの。また後でフィルタリングとかその他のテクニックを使ってミックスされた状態から元に戻す。今回のはどの番号も純粋なサイン波の信号だ。
上記の表を使って僕らはDTMFダイアラを作ることができるようになった。サウンドカードをボイスモデムデバイスにつなげば実際に機能する。キーパッド上のキーは固有の行き先にbangメッセージを送り、それぞれの行き先は二つの周波数のリストメッセージをダイアラーパッチに送る。[unpack f f]要素はリストを二つの浮動小数点に分割し、それぞれオシレータに渡す。加算機能はシンメトリカルなので実際はどの値がどのオシレータに行こうが関係ない。1234Hz+789Hz=789Hz+1234Hzってこと。全部の機能がこうやって実現される訳じゃないってのは覚えておいて欲しい、けど加算と積算は全くこの通り。パッチをダウンロードするか実例を聴いてみて欲しい。
ピュアデータファイル .pd
オーディオ.mp3
Telephone bell synthesis 1
Practical Synthetic Sound Design
0 件のコメント:
コメントを投稿