Velato
notation
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Velato
-
Velato: A programming language where source code must be a valid MIDI music file
Hi, I'm the creator of Velato. I will be reworking the website to include more examples later this year. In the mean time, the latest version of the compiler is on github: https://github.com/rottytooth/Velato
No one has yet written a quine although I would love to see one -- perhaps outputting its representation in lilypond format.
-
LilyPond: Music Notation for Everyone
In 2009, I made Velato, an esolang where code is written in pitch values (https://github.com/rottytooth/Velato) encoded as MIDI files. So sort of the opposite of writing algorithmic music (where the human programmer writes music to satisfy conditions of the program). Before switching to LilyPond, I'd used GUIDO with a GUIDO-to-MIDI generator, but it was always awkward. Part of the challenge is that notes can be sounded simultaneously to make the score work better musically, but still need to appear in the correct sequence in the MIDI file for the program to succeed; something that LilyPond handles correctly. There's a transparency to how LilyPond functions that is not always there with programs that try to be "helpful" and clean-up or rearrange information.
notation
-
LilyPond: Music Notation for Everyone
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.
[1] https://en.wikipedia.org/wiki/SCORE_(software)
What are some alternatives?
VSLilyPond - VSCode Extension for LilyPond