Al mezclar dos buffers de audio, coloque uno en el fondo de otro utilizando la API de audio web

Quiero mezclar dos fuentes de audio poniendo una canción como fondo de otra en una sola fuente.

por ejemplo, tengo entrada:

<input id="files" type="file" name="files[]" multiple onchange="handleFilesSelect(event)"/>

Y script para decodificar estos archivos:

window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new window.AudioContext();
var sources = [];
var files = [];
var mixed = {};

function handleFilesSelect(event){
    if(event.target.files.length <= 1)
          return false;

     files = event.target.files;
     readFiles(mixAudioSources);
}

function readFiles(index, callback){
    var freader = new FileReader();
    var i = index ? index : 0;

    freader.onload = function (e) {     
        context.decodeAudioData(e.target.result, function (buf) {

            sources[i] = context.createBufferSource();
            sources[i].connect(context.destination);
            sources[i].buffer = buf;

            if(files.length > i+1){
                readFiles(i + 1, callback);
            } else {
                if(callback){
                    callback();
                }
            }
        });
    };

    freader.readAsArrayBuffer(files[i]);
}

function mixAudioSources(){
    //So on our scenario we have here two decoded audio sources in "sources" array.
    //How we can mix that "sources" into "mixed" variable by putting "sources[0]" as background of "sources[1]"
}

Entonces, ¿cómo puedo mezclar estas fuentes en una sola fuente? Por ejemplo, tengo dos archivos, ¿cómo puedo poner una fuente como fondo de otra y poner esta mezcla en una sola fuente?

Otro escenario: si leo el flujo de entrada del micrófono, por ejemplo, y quiero poner esta entrada en la canción de fondo (algún tipo de karaoke), ¿es posible hacer este trabajo en el cliente con soporte html5? ¿Qué pasa con el rendimiento? ¿Quizás una mejor manera de mezclar estas fuentes de audio en el lado del servidor?

Si es posible, ¿cuál es la posible implementación de la función mixAudioSources?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta