ABCjs integration now available
Please contribute to Which questions/answers would most benefit from music markup like ABC? and How could ABC notation be embedded in our posts' Markdown?
It's probably safe to say that everybody here would be glad if we finally got a proper way of typesetting music on this StackExchange.
Not that this hasn't been discussed earlier on meta. In particular, the request for Lilypond was very popular. Lilypond offers fully-fledged, professional grade music typesetting, with any microtonality quirks you could possibly wish for. Which is great and for some of the questions here certainly relevant... however, if we're honest, most of the features would very seldom be used.
The flip side of Lilypond's power is that it's hard to implement. It may well be possible to do it on a StackExchange site, but it evidently requires some serious work and willingness from the SE developers. As Richard put it:
SE Devs: ...What's Lily? How?
In particular: there seems to be a strong preference in the team to keep every site-specific extension client-side, i.e. JavaScript only. But an implementation of Lilypond in Javascript hasn't turned up yet.
(There is apparently a MediaWiki extension that can do Lilypond already, but it's server-side. Has been brought up already.)
Alternatives
Lilypond may be clearly the most powerful music markup language, but it's not the only one.
- MusicXML is easy to parse etc. and can in principle rival Lilypond feature-wise, but it would be unwieldy to write even for an experienced user, and probably not accessible at all for newbies.
- VexFlow looked quite promising, but the project site says pre-pre-pre-alpha since five years. That doesn't seem reliable.
- ABC is a simple and concise markup language, that's able to create ordinary western staff notation. It has a JavaScript implementation, ABCjs, you can try it out here.
Why ABC now?
A poll last year concluded that Lilypond is much more popular than ABC. But this wasn't really news, Lilypond had already gained votes in a earlier posts.
Unfortunately, it's still not here! The SE team has plenty of stuff to do, and apparently Lilypond doesn't fit in their plans. So, in the foreseeable time, the decision appears to be between
- Decide that ABC (or some other Javascript-implemented language) is good enough and convince the developers to adopt it.
- Just keep waiting, or pay some developers to implement Lilypond in JavaScript, or hope for a miracle or whatever.
Would it be the sensible thing to settle on ABCjs, now?