JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://dks-portal.de/rc.min.js"></script>
<p>
Options: Sampling rate, samples per second: <select id="sr">
    <option value="48000">48000</option>
    <option value="44100" selected="selected">44100</option>
</select>
    Frequency, Hz: <input id="fr" value="1000"/>
</p>
Listen to the difference: <button id="o">Orginal</button><button id="m">Merged</button><br><br>

JavaScript

var merge, verg;
//Generate a continus sinus in 2 arrays
function buildBuffers(frequency, sampleRate){
    var buffer1 = [];
    var buffer2 = [];
    for(var i=0;i<16384;i++){
        if(i < 8192)
            buffer1.push(Math.sin(2*Math.PI*i*frequency/sampleRate));
        else
            buffer2.push(Math.sin(2*Math.PI*i*frequency/sampleRate));
    }
    //Encode and decode both arrays seperatly
    var en = Codec.encode(buffer1);
    var dec1 = Codec.decode(en);
    
    var en = Codec.encode(buffer2);
    var dec2 = Codec.decode(en);
    
    //Merge the arrays to 1 output array
     merge = [];
    for(var i in dec1)
        merge.push(dec1[i]);
    
    for(var i in dec2)
        merge.push(dec2[i]);
    
    //Generate one big array with the same data as in the two arrays above
    verg = [];
    for(var i=0;i<16384;i++)
        verg.push(Math.sin(2*Math.PI*i*frequency/sampleRate));
    
    //encode and decode the array hole in one
    var enV = Codec.encode(verg);
    var decV = Codec.decode(enV);
}
//-----------------
//Down under is only for playing the 2 different arrays
//-------------------
var audioCtx = new window.AudioContext || new window.webkitAudioContext;

$("#o").click(function() {
    options = getOptions();
    buildBuffers(options.frequency, options.sampleRate);

    var audioBuffer = audioCtx.createBuffer(1, verg.length, options.sampleRate);

    var bufferData = audioBuffer.getChannelData(0);
    bufferData.set(verg);
    
    var source = audioCtx.createBufferSource();
    source.buffer = audioBuffer;
    source.connect(audioCtx.destination);
    source.start();
});

$("#m").click(function() {
    options = getOptions();
    buildBuffers(options.frequency, options.sampleRate);

    var audioBuffer = audioCtx.createBuffer(1, merge.length, options.sampleRate);
    var bufferData = audioBuffer.getChannelData(0);
    bufferData.set(merge);
    
    var source = audioCtx.createBufferSource();
    source.buffer = audioBuffer;
   ...