みかづきブログ その3

本ブログは更新を終了しました。通算140万ユーザーの方に観覧頂くことができました。長い間、ありがとうございました。

👆

引越し先はこちらです!

Web Audio API の基本の基 その4 (ChannelSplitterNodeをつかってチャンネルを分ける)

今回は ChannelSplitterNode をつかって入力を分けてみます。
具体的にはLとRに分解し、左右を入れ替えて再生してみましょう。

f:id:kimizuka:20160703222231p:plain

この音( http://jsrun.it/assets/a/0/D/c/a0Dco.mp3 )をLRで分解し、左右を入れ替えて再度くっつけます。

JavaScript

"use strict";

var audioCtx = new AudioContext(),
    splitter = audioCtx.createChannelSplitter(2),
    merger   = audioCtx.createChannelMerger(2),
    request  = new XMLHttpRequest();;

audioCtx.destination.channelCount = 2;

splitter.connect(merger, 0, 1); // LをRに
splitter.connect(merger, 1, 0); // RをLに

merger.connect(audioCtx.destination, 0);

request.open("GET", "http://jsrun.it/assets/a/0/D/c/a0Dco.mp3", true);
request.responseType = "arraybuffer";

request.onload = function() {
    audioCtx.decodeAudioData(request.response, function(evt) {
        var source = audioCtx.createBufferSource();
        
        source.buffer = evt;
        source.loop   = true;
        
        source.connect(splitter);
        source.start();
    });
};

request.send();
}

無事に左右が入れ替わりました。

DEMO