ファイル構成
- dft.html : 本体
- WebkitPlayer.js : 音像化ライブラリ
- vcanvas.js : 仮想座標対応描画ライブラリ
本体です. 以下のメソッドを持っています. ただし,簡単化のためグローバル化それに近い変数に直接値を代入しています.
基本周波数をベースとして,倍率と振幅を受け取り波形を合成するメソッド.合成した波形は配列dataに直接代入する.
変数名 | 型 | 意味 |
---|---|---|
freq | 整数 | 基本周波数 |
amp | 整数 | 振幅 |
member | ハッシュ | 周波数ごとの振幅.基本周波数に対する倍率をkey,振幅をvalueとする |
sec | 整数 | 秒数(通常は1) |
isLoop | boolean | ループさせるか |
配列dataに含まれている波形データをフーリエ変換して,配列data2に入れるメソッド.実際にフーリエ変換するデータ数はdftareaで与える.
var samplerate = 44100; // サンプリングレート
var data; // データを入れておく変数
// 440Hzを基本周波数とし,基本振幅0.5,周波数1で振幅0.5の波と周波数2で振幅0.5の波の合成,1秒分
waves( 440, 0.5, {1:0.5, 2:0.5}, 1 );
var player = new WebkitPlayer( samplerate, 1 );
// 配列data内の数列を音として鳴らす
player.playData( data, 1 );
本リポジトリで使用しているWebkitPlayerは,参考文献より拝借しました.