• The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
* 使い方 [#je236c98]

 var smf = new SMF();
 smf.input(smfbuffer);
 var gen = new WAGenerator();
 var player = new WAPlayler(gen);
 gen.setup(nChannel, nMultiprex);
 gen.ready(); // ボタン/タッチイベントから
 player.play();

* 機能 [#function]

- loadSMF
- input(smf);
- play()
- stop()
- suspend()
- resume()
- rewind
- seek(diff)
- rewind()
- seek(delta)
- fadein(period)
- fadeout(period)

- setMultiplexMax(mmax);
- setVolume(vol);


** 他 [#c07419e0]

- destroy() # デストラクタ

* オブジェクト [#object]

- WAPlayer.js
- WAGenerator.js (PCM と SoundFont 用、後で FM 音源も)
- WAModulator.js (主に pitchbend 用)

- SMF.js, MFi.js, MML.js

* プロセス [#process]

- WSPlayer.loadSMF(smf);
-- > 時系列のシーケンスデータを作成
-- > 利用する楽器の数を記録
- WSPlayer.setup(nMultiprex)
-- > 同じチャネル内で同時に鳴らせる数を指定
-- > それを前提に WebAudio のノードを繋げる。
-- > 但し、全 gain を 0 にして音が鳴らない状態で

** ノート図 [#u55b255e]

- 例) 2チャンネルで、3多重(1つのチャネルでの最大同時発声数)
             osc3+
 osc2 --- osc - gain ---- gain2
      |          |      |
      |          |      |
      |-- osc - gain --|
      |          |      |
      |          |      |
      +-- osc - gain --|
                        |
             osc3+      |
 osc2 --- osc - gain---|
      |          |      |
      |          |      |
      |-- osc - gain --|
      |          |      |
      |          |      |
      +-- osc - gain --+
 osc2 -- osc -- gain --- gain2
                      |
             osc3+    |
 osc2 -- osc -- gain -|
                      |
        ...           |
             osc3+    |
 osc2 -- osc - gain --+
 
 - osc => 音程そのもの
 - osc2 => ビブラート (音程を揺らす)
 - osc3 => トレモロ (音量を揺らす)
 - gain => ADSR 的なの
 - gain2 => 全体の音量指定 (fadein, faceout もココで)

* 発火 [#fire]
** 発火 [#fire]

-- > ボタンを押された所で全 note を on にする。(そして off は WSPlayer のデストラクタが呼ばれるまでしない)

* play [#cb9ce049]
** play [#cb9ce049]

-- > シーケンスデータから定期的に、かつ少し早いタイミングで AudioParam を設定していく。
-- > 初めに全ノードを設定して使いまわすので、GC は要らない。

* ブログ [#blog]

* 関連 [#rel]


Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes