Playing Fasttracker2 .XM files in JavaScript
a1k0n.net
a1k0n.net
Amazing to see it all there in JS today...wow. Thanks for sharing the article.
(Wait...where is Nibbles?)
Edit: pushed a fix... something is goofy with the sample data in instrument 4.
(Is ScriptProcessorNode here to stay, though? Mozilla's documentation marked the feature as deprecated for quite some time now [1], suggesting the use of Audio Workers instead; in turn, the same documentation states that these are not yet implemented in any browser. At some point I got very confused about the one true way of generating audio using Javascript.)
[1] https://developer.mozilla.org/en-US/docs/Web/API/ScriptProce...
Hopefully the web workers transition is the last...
http://games.greggman.com/game/html5-bytebeat/
The issue on mobile is you can only start playback of sounds in a user gesture event and I think on iOS the first sound can't be a ScriptProcessorNode (maybe that bug was fixed). I just play an oscillator for a moment to get things started. Once the first note is played it just all works.
I'd be surprised if they removed it at this point. Many many pages use it. Many many native->emscripten apps use it. I think just no one has updated MDN in a while. Unity->HTML5 uses it. Unreal->HTML5 uses it. Pico8->HTML5 uses it. Voxatron->HTML5 uses it.
Now, only if there was a reliable JavaScript RIPScript interpreter. :)
RIP script, OMG. I remember that. With HTML canvas, shouldn't be too hard, though it would be weirdly high-resolution.
Andy Herbert started a ripscrip interpreter that renders to canvas, but it isn't finished and definitely isn' reliable for artscene files. He doesn't intend to finish it, last I heard. https://github.com/andyherbert/ripscript.js
It's unfinished, but here it is if you'd like to try it out: http://carl.gorringe.org/pub/code/javascript/RIPview/ripview...
Ansilove.js is a variant of Ansilove, which was originally written in PHP [1], but has been ported to other languages [2], too.
There are a bunch of other renderers too like piece [3] and Pablo [4].
[0] http://andyherbert.github.io/ansilove.js/
[1] https://github.com/ansilove/ansilove
[2] https://github.com/ansilove/AnsiLove-C