使い方
var smf = new SMF();
smf.input(smfbuffer);
var gen = new WAGenerator();
var player = new WAPlayler(gen);
gen.setup(nChannel, nMultiprex);
gen.ready(); // ボタン/タッチイベントから
player.play();
機能
- input(smf);
- play()
- stop()
- suspend()
- resume()
- rewind()
- seek(delta)
- fadein(period)
- fadeout(period)
- setMultiplexMax(mmax);
- setVolume(vol);
他
オブジェクト
- WAPlayer.js
- WAGenerator.js (PCM と SoundFont 用、後で FM 音源も)
- WAModulator.js (主に pitchbend 用)
プロセス
- WSPlayer.loadSMF(smf);
- > 時系列のシーケンスデータを作成
- > 利用する楽器の数を記録
- WSPlayer.setup(nMultiprex)
- > 同じチャネル内で同時に鳴らせる数を指定
- > それを前提に WebAudio のノードを繋げる。
- > 但し、全 gain を 0 にして音が鳴らない状態で
ノート図
発火
- > ボタンを押された所で全 note を on にする。(そして off は WSPlayer のデストラクタが呼ばれるまでしない)
play
- > シーケンスデータから定期的に、かつ少し早いタイミングで AudioParam を設定していく。
- > 初めに全ノードを設定して使いまわすので、GC は要らない。
ブログ
関連