Skip to content

Instantly share code, notes, and snippets.

@Pmmlabs
Created December 20, 2015 17:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Pmmlabs/3f897246c58333b433d0 to your computer and use it in GitHub Desktop.
Save Pmmlabs/3f897246c58333b433d0 to your computer and use it in GitHub Desktop.
<html>
<head>
<meta charset="UTF-8"/>
<script type="text/javascript" src="src/mad.js"></script>
<script type="text/javascript" src="src/rq_table.js"></script>
<script type="text/javascript" src="src/imdct_s.js"></script>
<script type="text/javascript" src="src/huffman.js"></script>
<script type="text/javascript" src="src/bit.js"></script>
<script type="text/javascript" src="src/stream.js"></script>
<script type="text/javascript" src="src/layer3.js"></script>
<script type="text/javascript" src="src/frame.js"></script>
<script type="text/javascript" src="src/synth.js"></script>
<script type="text/javascript" src="src/bytestream.js"></script>
<script type="text/javascript" src="src/filestream.js"></script>
<script type="text/javascript" src="src/substream.js"></script>
<script type="text/javascript" src="src/id3v22stream.js"></script>
<script type="text/javascript" src="src/id3v23stream.js"></script>
<script type="text/javascript" src="src/mp3file.js"></script>
<script type="text/javascript" src="src/ajaxstream.js"></script>
<script type="text/javascript" src="src/stringstream.js"></script>
<script type="text/javascript" src="src/player.js"></script>
<script type="text/javascript" src="audiolib.js/lib/audiolib.js"></script>
</head>
<body>
<input id="fileChooser" type="file"/>
<script>
document.getElementById('fileChooser').onchange = function () {
Mad.Player.fromFile(this.files[0], function (player) {
p = player;
p.createDevice();
var device = p.dev;
var lowPass = new audioLib.IIRFilter(device.sampleRate, 20000, 0.5, 2);
//lowPass.resonance = 10.00; // bug: resonance param in ctor doesn't work
a = new Array(Math.floor(device.channelCount
* device.sampleRate
*10
//* p.stream.length * 8 / p.frame.header.bitrate
));
p.playing = true;
p.refill(a);
p.playing = false;
/*for (var i in a)
a[i] = lowPass.pushSample(a[i]);*/
// audioElement = new Audio(
// 'data:audio/wav;base64,' +
// btoa(
audioLib.Codec.wav.encode({
data: a,
sampleRate: device.sampleRate,
channelCount: device.channelCount,
bytesPerSample: 2
})
// )
// );
audioElement.controls = 'controls';
document.body.appendChild(audioElement);
});
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment