MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

AudioContext.createScriptProcessor()

AudioContext の createScriptProcessor() メソッドを利用することで、ダイレクトな音声処理ができる ScriptProcessorNode オブジェクトを作成できます。

注意: このノードの利用方法に関しては ScriptProcessorNode をご覧ください。

構文

 ScriptProcessorNode             createScriptProcessor (optional unsigned long bufferSize = 0 , optional unsigned long numberOfInputChannels = 2 , optional unsigned long numberOfOutputChannels = 2 );

createScriptProcessor()の利用例は以下の通りになります。Web Audio API が提供する機能では望む音声処理を実現できない場合に、このメソッドを利用します。これを利用することで、どの様な音声処理でも記述できます。

SineWave = function(context) {
  var that = this;
  this.x = 0; // Initial sample number
  this.context = context;
  this.node = context.createScriptProcessor(1024, 1, 1);
  this.node.onaudioprocess = function(e) { that.process(e) };
}

SineWave.prototype.process = function(e) {
  var data = e.outputBuffer.getChannelData(0);
  for (var i = 0; i < data.length; ++i) {
    data[i] = Math.sin(this.x++);
  }
}

SineWave.prototype.play = function() {
  this.node.connect(this.context.destination);
}

SineWave.prototype.pause = function() {
  this.node.disconnect();
}

引数

bufferSize
サンプルフレームを単位としたバッファのサイズです。指定する場合は、次のいずれかの値でなくてはなりません: 256, 512, 1024, 2048, 4096, 8192, 16384 。指定されない場合、もしくは 0 が指定された場合、環境における最適な値が設定されます。この値はノードが生存する限り同じ値が利用され、その値は 2 の冪上です。
この値は audioprocess イベントの発生頻度と、イベントごとに渡されるサンプルフレームの大きさを決めます。小さい値を指定すると低遅延となり、大きな値を指定すると音声の破損やグリッチを避けられます。この値は自分で決めず、実装に決めさせることが遅延と品質の面から推奨されます。
numberOfInputChannels
入力のチャンネル数を整数で指定します。デフォルト値は 2 で、最大 32 チャンネルまでサポートします。
numberOfOutputChannels
出力するチャンネル数を整数で指定します。デフォルト値は 2 で、最大 32 チャンネルまでサポートします。

Important: Webkit currently (version 31) requires that a valid bufferSize be passed when calling this method.

注意: numberOfInputChannelsnumberOfOutputChannels の両方に 0 を指定することはできません。

返り値

A ScriptProcessorNode.

ブラウザ互換性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit
35 (unprefixed)
25.0 (25.0)  Not supported 15.0webkit
22 (unprefixed)
6.0webkit
createStereoPanner() 42.0 37.0 (37.0)  Not supported Not supported Not supported
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support Not supported 37.0 (37.0)  2.2 Not supported Not supported Not supported (Yes)

仕様

Specification Status Comment
Web Audio API
The definition of 'AudioContext' in that specification.
Working Draft  

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: fscholz, nshimizu
 最終更新者: nshimizu,