Ansiplay.js – Simple ANSI Music Player based on Ansiplay.exe
andyherbert.github.io
andyherbert.github.io
For the author: There's no console error either though (which is normally the case when there's issues with audio permissions, often an issue in Safari), so I'm not sure what's wrong.
I know UX isn't the name of the game here, but I think that's the part that made me shit myself
I have my headphones at what I consider to be a reasonable volume level, yet this website was so loud that my ears are ringing.
Is it just on my end or is there some explanation for the (perceived?) higher volume?
Never really heard of Ansiplay but skimmed over the JS code. Is it like a MOD format? I noticed the octaves table and some sort of mixer...
The basic idea: if you've ever used Microsoft BASICs (on DOS, that was BASICA, GW-BASIC, QBASIC, QuickBasic etc), you might have come across the PLAY statement. It lets you play simple music using a text string composed of notes ("ABC", etc) and various commands (e.g. change octave, change tempo, etc). Well, why couldn't ANSI.SYS provide ANSI-style escape sequences equivalent to the BASIC PLAY statement? Well, it could, but it doesn't. So the author of ANSIPLAY (Julie Ibarra) designed an ESC sequence syntax to do this and then wrote a program to interpret it. (Unlike ANSI.SYS, it isn't a device driver, so it doesn't allow arbitrary programs to play music using escape sequences – but it will interpret these sequences in a file.)
(Looking at how it has been done... the structure of the escape sequences defined for ANSIPLAY isn't really compatible with ECMA-48 / ANSI X3.64 – but I imagine the author probably wasn't familiar with those standards back in 1991 when this was written – back in those days, information on these standards was much harder to come by than it is today.)