Interesting that Music notation even seems to be a “challenge” to do with a computer, speaking as a complete layman. It seems like there is only a few note symbols to draw, at fixed positions. Can someone explain what makes good engraving good?
https://lilypond.org/doc/v2.24/Documentation/essay.pdf is a really good explanation - simplistic "make music notes like characters in a font" gets you the information, but it is NOT at all beautiful and actively fights against you, the same way badly typeset and kerned text is hard to read.
I'm a professional engraver. How much time you got? lol There's about 200-300 "standard" symbols for music notation, but that can balloon to upwards of 2,000 when factoring in all the nooks and crannies of the artform. Then you have to know what they all mean in order to convey the musical meaning the composer intends. Then you have to understand the psychology of players and what they would expect on a sheet of music and account for that. The "fixed positions" are very mailable depending on context, especially once we start factoring in accidentals and multiple voices on a single staff which can change the horizontal spacing in all sorts of dramatic ways. Then we have to deal with layout of the score so its density looks even and flows well, and has good page turns. Oh, and transposing instruments, cuz we still do that. And I haven't even mentioned lyrics for singers yet, which add tons and tons of new problems to solve.
It's a grueling art form, frankly, but I love it and I wouldn't do anything else.
Context: I'm Senior Product Designer for Sibelius and founder of Music Engraving Tips on Facebook/YouTube.
Western notation is a complex written language developed over centuries. It's easy to render the symbols in isolation, but not the meaning they convey to the musician who's expected to perform it. Even something like whether to render a flat or a sharp depends on context and intended use.
^ This is "the problem". A lot of music students try to "solve" it after getting frustrated with the staff, but eventually decide that couple hundred years of bad notation still has most of the bugs worked out.
You're really looking for patterns on the staff rather than the exact pedantic notes that are present in the notation.
Me? Still learn best by ear. Unfortunately this is also the slowest method....
Learning by ear is the best by far, and we live in a period where we can listen to every music every produced. When I learned music, music wasn't as available so you had to learn the pieces the hard way.
There is also the problem that human memory has limitations, and if I stop playing something, I will forget it after a couple of weeks, so again musical notation is very helpful.
> You're really looking for patterns on the staff rather than the exact pedantic notes that are present in the notation.
Exactly. Playing the exact tune becomes boring after a while; music is a fun creative exercise for me, so the notes and chords are a general direction, not a precise roadmap. If I wanted a perfect interpretation, I'd listen to the recorded piece instead of play it.
Positions, orientation and spaced aren't fixed and can vary a lot. To get a bit of the detail involved on it you can check the videos for Musescore 3.6 engraving updates [0] or the "Overhaul" and "Notation" sections for the 4.0 update [1].
The problem is closely related to computational typesetting, e.g. TeX, which is an extremely complicated piece of software. While it might be true that music notation is ultimately "simpler" than document typesetting, I wouldn't stake money on that claim.
A somewhat ignorant TL;DR:
- It's probably not too difficult to render simple music in a bland, ugly way, in the same way that it's not too difficult to render ASCII text documents with a monospace font.
- When notation gets complicated it is tedious but somewhat routine to render music in a way that looks like total garbage: things are awkwardly smooshed together or spaced way too far apart; some symbols look "too small" alongside others when using uniform scaling; long lines that have to travel over multiple notes end up clashing and making the score unreadable; etc etc etc.
- Actually getting things right in a general-purpose musical notation program is hard hard work. I don't have any direct experience here but I am sure it's a nightmare and takes constant testing to figure all this stuff out.
I play jazz and don't fully believe in Western music notation :) So I can't speak too directly here on the intricacy. But I would highly recommend reading Knuth's TeX Book (and skimming the WEB source of TeX itself) just to get a sense of how many different decisions a typesetting / music notation program has to make.
> I play jazz and don't fully believe in Western music notation :)
My friend - accomplished classical musician and now pretty well known jazz musician tells me you can't write down latin music accurately. Personally I think while written language is largely about conveying a fairly unambiguous meaning, written music is really about providing enough for the player / or conductor to be able to infer what they need to do.
You can't write any music accurately. Ask her if she can write a later Miles Davis solo accurately so that anybody can perform it just as he plays it :)
I work in a much more notation-bound genre (I am an orchestra bassoon player) and I would say you would struggle a LOT to notate twinkle twinkle little star in a way that makes everyone perform it the same.
There are numerous symbols to represent pitch on a staff, numerous other symbols that can be attached to the pitch symbols that represent changes in duration, dynamics, various techniques and more. These symbols can be stacked above and below the pitch symbols, to the sides of the symbols and more. There are other symbols that can span multiple pitch symbols, groups of symbols and more. There are more symbols that control the tempo of the playback of the score, the number of times sections of the score should be repeated and other symbols that will move the current playback location of the score to some other place. The placement of all of these symbols have "rules" but these rules are really suggestions and composers will always want to adjust and bend these rules. If a system implements strict rules, that system will come under criticism as being inflexible. There seems to always an exception to every rule of music notation.
I have been working on music notation software for almost forty years and have seen programmers come and go with their attempts to "solve" the problem of music notation. It is a very difficult problem. Once upon a time SCORE [1] was considered the best of the best on music engraving software. I worked with Leland Smith to update the program to more platforms. Sadly, the SCORE source code is not available and the rights of the source code are unclear after Leland's passing. Many music publishing companies continued to maintain systems using SCORE for quite a while.
The notation engine of my iOS music notation program Komp [2] is available here: https://github.com/SemitoneGene/notation. This code is most certainly not the best or most complete, but it is easy to read and comprehend if you want to see the complexity involved. MuseScore has also been mentioned in other posts.
If I were to do a commercial engraving of a music score, I would use Dorico. It is being developed by who I would consider the most insightful and understanding group of developers who have a real desire to make the best music engraving program.
LilyPond produces very good output but offers its own series of challenges to use. MuseScore is a nice program, but it has a long way to go to meet the demands of the high professional composition and engraving market.
In addition to the elegance, there's also a functional side, which is that people are going to be reading your stuff, at speed. I'm a jazz player, but still play a lot from sheet music, and good layout can make arrangements a lot more readable.