Hacker News new | past | comments | ask | show | jobs | submit login
Music Notation with HTML5 Canvas (0xfe.blogspot.com)
107 points by brolewis on May 11, 2010 | hide | past | favorite | 14 comments



You may want to look into the Lilypond syntax for textual score notation. - http://lilypond.org/


Also for layout algorithms. The people behind lilypond have thought very hard about what makes a score beautiful and legible and have pushed the art of computer engraving forward immeasurably. This is the TeX for music. Sibelius, Finale et al. have only recently begun to catch up.


Lilypond's web site could benefit from some examples of its output directly on the front page. I tried three different approaches in my casual attempt to see just how good it is, and didn't reach any PDFs or printouts.


Yes, examples and docs are a bit buried, but there is a huge amount of info to be found.

Example outputs - http://lilypond.org/switch/tour

Example syntax - http://lilypond.org/switch/howto


Lilypond has a working syntax but it could sure do with some simplification and consistency. I use Lilypond, I use Latex, I know Lisp, but I find the Lilypond syntax can be mighty confusing.


Oh man, music notation on a computer is a path you don't want to start down. Take the oldest, crustiest, hacked together duct-taped programming language you can think of -- imagine what that language would be like if it would be still in use hundreds of years from now. That's music notation, today.

Even the really good programs like Sibelius (and I guess Finale...) still have a ways to go in terms of accurate notation. Attempting to reduce notation to a JSON-style dataset seems, well, extraordinarily challenging.


Isn't the majority of the challenge in nice notation similar to typesetting with text? The difficulty is in making it look nice, not knowing what data you're attempting to display.

I should think you could encode pitches, start times and durations in a JSON-style format without many problems.


And then you try to code partita #1 and you run in to all those little funny marks that somehow expand to 8 notes.

Macros were invented by J.S. Bach.


You could start out that way and get pretty far, but eventually the language will get complicated enough that you'll want something more like LaTex than like JSON if you want it to be readable.

Musical notation is often deliberately ambiguous to allow for interpretation. Tempo is often approximate. Durations are often approximate or implied (such as swing time). Volume is very approximate. And then there are various kinds of hinting. The hints need to be in the source code because nobody wants to specify them with more precision.

But that said, I'd be perfectly happy with something basic that runs in a browser.


For some arenas of music, such as jazz combo-oriented groups, a very basic melody lead sheet with chords and song structure elements (section a, section b, repeat, etc.) is plenty.

Maybe rather than focusing on building a full music notation system for the web, focusing on making something for lead sheets / rhythm charts / etc would be a better path. I really don't like breaking out Finale to do jazz rhythm charts, but right now it's just about the best option. Make something better, and I for one would pay for it.


"I should think you could encode pitches, start times and durations in a JSON-style format without many problems."

Yeah, only music notation can get a lot more complex than these 3 factors


If the goal is to build a wysiwyg editor, finale and others have some implementation that regular musicians have learned to work with.

For a lot of people, the ability to do midi input is really important because when they write the music down a lot of the time they have to transcribe from their motions anyway. This is possibly more important than the actual explicit way that you write things down.


With MathML in the new Firefox engine and now music notation in canvas, browsers are going to be a bit more fun and beautiful.


Is there a link to the unminimized source for this? Looks awesome!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: