
Ansiplay.js – Simple ANSI Music Player based on Ansiplay.exe - andy_herbert
https://andyherbert.github.io/ansiplay.js/
======
ly
For the confused people using Safari who are wondering what this website is
about: This website doesn't work on Safari. There should be audio when you
select a file. Before you try it in another browser turn down your volume
though...

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.

------
diath
Volume warning, please.

~~~
rozab
Not helped by the nonsensical UX. Why would a user expect changing a selection
in a dropdown to start playing sound?

I know UX isn't the name of the game here, but I think that's the part that
made me shit myself

------
pan69
Doesn't seem to work for me in Chrome (Version 81.0.4044.138 (Official Build)
(64-bit) Linux). I have no issues playing other sound within Chrome.

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...

------
Eduard
Never heard of ansiplay.exe. Was it known

~~~
skissane
I don't think it was ever well-known.

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.)

