Domain: recordare.com
Stories and comments across the archive that link to recordare.com.
Comments · 8
-
Music typesetting isn't as easy as it looksI currently work in the field of computer music typesetting, and can vouch for the fact that it is a hard problem - one that is considered not to amenable to being universally automated by computer.
Achieving a rendering of very simple scores such as these is easy, but coping with anything more complex starts becoming a difficult data structures and algorithms problem really quickly, and the layout rule-set becomes increasingly complex in order to handle the myriad corner cases.
What we see here is a great start, it demonstrates that it's possible to render music symbols in HTML canvas, but it's very far from being a complete music typesetting solution that can take an arbitrary description of a score and produces rendered output, which is the impression conveyed to many of those commenting here.
The data model of the score in the example is generated programmatically (it takes up about 1/3 of the javascript file) and is fairly simplistic. This is an important consideration as the only sane way to create and edit scores is with a graphic editor of some kind, such as Sibelius, Finale, Notion or a bunch of open source alternatives.
Increasingly the de-facto interchange format for these is MusicXML, however MusicXML is largely a semantically oriented description of the score with optional positional data rather than a presentation-oriented one. Indeed, if a presentation oriented description is what you required, you might as well use SVG to start with.
Generally the approach one would take would be to convert the MusicXML data model into a presentation oriented one, applying layout rules as you go.
The small amount of layout logic here is very simplistic. Things become much more difficult when multi-stave scores, paging, line-breaking and justification, slurs and so on. I'd would also suggest that whilst implementing the complex algorithms and data structures required in Javascript is certainly within the bound of possibility, it would not be easy, and wouldn't be my first choice of implementation technology.
-
Re:Music OCR
There is a piece of non-free software that runs quite well under Wine and exports nice MusicXML. You will find it linked to from http://www.recordare.com/software.html .
I really should ask google to help buy this technology and set it free. -
They sell at about $5 per song....
Part of the reason RIAA is going after the free music databases is that they would like to sell you the sheet music for about $5 per song. Checkout MusicNotes. In fact I've seen songs for more than $10 bucks on there, depending on the format.
I never got tabs, they're often incorrect and missing a lot of information. But there is no way guitarist are going to spend $5 per song for sheet music en masse. Personally, I prefer buying books of non-RIAA songs.
They saw that legal online music only took off after iTunes started selling music for $1...
PS. Does anyone know of an online database of public-domain MusicXML sheet music?
-
Re:Lilypond, MusicXML, and musical scores on the W
I think Han-Wen's real criticism of MusicXML is revealed when he says:
As a developer of notation software, I prefer to deliver the features that make users happy. Then they will continue using LilyPond. By contrast, the main asset of having MusicXML-output is that users can migrate away from LilyPond more easily, and that doesn't give me warm fuzzies.
In other words, here is another developer who wants to lock you into his own program and format. Data can flow into Lilypond, but it should never leave. MusicXML's whole purpose is to exchange symbolic musical data between applications. So people who have a proprietary data mindset will naturally find reasons to criticize it.
People can work on an open source project and still want to lock you into their proprietary format. Plenty of open source projects use MusicXML even if LilyPond doesn't.
I don't understand how "MusicXML fails in many ways", but that is probably a question best discussed on the MusicXML discussion list rather than here.
-
Thanks for all the interest!Wow - thanks for all the interest. Especially in such a specialized area like music notation!
Folks outside the field may not realize that MusicXML already works with the two market leaders in music notation software. Finale can both read and write MusicXML files, while Sibelius can write a more limited type of MusicXML. The Finale support is currently Windows only, but we are busy working on the OS X port. MusicXML is already second only to MIDI in its adoption by music notation applications. It's nowhere near as universal as MIDI (yet), but it's a lot more complete for music notation!
One point that seems to have been missed in the discussion is that standards can reduce the barrier to entry for innovative applications. With MusicXML, you can use programs like Finale as your "notation engine" handling the standard parts of music editing and display, while your own application more innovative work. So electronic music stands like MuseBook Score use MusicXML for input, while algorithmic composition programs like JMSL use MusicXML for output. More details about MusicXML support are here.
-
Re:What about MIDI/MOD/XM/etc?
We have a perfect, existing method to show human-readable notation:
http://www.recordare.com/xml/images/hello-world.gi f -
Open File Format = MusicXML
I have some good news for you then. Finale and Sibelius both support MusicXML. There's more info here.
-
Re:desktop apps is not the only software developmeI can see why a server-side component framework is a useful thing to have, and this justifies Java-the-platform. It still remains that Java-the-language and Java-the-VM are a big pain. At the very least Java implementations could do a better job of being convienent to use and develop for.
Java's not perfect, I agree. Far for from it. But it does do some things well. Java having only a single language frontend, decreasing programmer choice, but lowers the cost of software development for Java programmers in the long run. At least that's the argument. I'm guessing the market will decide soon enough.
.NETs entry into the market is a good thing for Java developers, because it means competition. The JCP will have to address the issue of features of
.NET that the market ( software developers) may desire. For instance JCP never had a strong reason for separating the Java ByteCode spec from the Java language spec, but market research may force their hand if it concludes that .NET independent CIL ( their intermediate language ) and the resultant language frontend independence is a big selling point.Consequently I wish the MusicXML link in your sig were up, I'm really interested in MusicXML and its potential.
It's strange, it's usually up. The main MusicXML site is http://recordare.com/xml.html. There you can find a list of commercial and open source MusicXML programs. The day OLGA converts all they tab files to MusicXML and we have a stable OS program to 'render' those files to MIDI and Notation eg. like GuitarPro, I'll be a very very happy amateur guitarist. I'll probably still sound like crap though...
:)