Web Audio API simple demo

HTML

<div onclick="playClick()">Play sound</div>

CSS

div {
    width: 200px;
    height: 150px;
    border: 1px solid black;
    background-color: #ccc;
    font-size: 40px;
    line-height: 150px;
    text-align: center;
}

JavaScript

var UnprefixedAudioContext = window.AudioContext || window.webkitAudioContext;

var context;
var volumeNode;
var soundBuffer;

context = new UnprefixedAudioContext();
volumeNode = context.createGain();
volumeNode.connect(context.destination);
volumeNode.gain.value = 120.1;

context.decodeAudioData(base64ToArrayBuffer(getTapWarm()), function (decodedAudioData) {
    soundBuffer = decodedAudioData;
});

function play(buffer) {
    var source = context.createBufferSource();
    source.buffer = buffer;
    source.connect(volumeNode);
    (source.start || source.noteOn).call(source, 0);
};

function playClick() {
    play(soundBuffer);
}

function base64ToArrayBuffer(base64) {
    var binaryString = window.atob(base64);
    var bytes = new Uint8Array(binaryString.length);
    for (var i = 0; i < binaryString.length; i++) {
        bytes[i] = binaryString.charCodeAt(i);
    }
    return bytes.buffer;
}

function getTapWarm() {
        return...