Hacker News new | ask | show | jobs
by leviathant 5880 days ago
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.

1 comments

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