GNU LilyPond - a free sheet music set
Already from the late 1980s, music publishers gradually left manual and switched to computer-based musical notation. The list of music editors is huge at the moment , but professionals use Finale and Sibelius.
Holivars about which of them is better have not been quiet for ten years, the authoritative publishing house Bärenreiter (musicians love him very much, albeit swear at expensive notes), meanwhile, use the SCORE written on Fortran , and musicians who like free software look at LilyPond and are horrified , because how can an ordinary person live without WYSIWYG?
If it weren’t for the TeX-like syntax, I’m sure many would use this engraver. It is engraver - the translations "engraver" and "typesetter" are not suitable here, because these words designate professions. LilyPond is better than other commercial and free programs to arrange music text evenly across the page.
This is a melody of a well-known theme, typed in three different programs (LilyPond, Finale, Sibelius).
Nothing but a set was done in LilyPond, extra measures were removed in Sibelius and Finale, and the last notes are forcibly automatically placed horizontally.
Let's consider some details:
In this very small example, which uses only the simplest elements of photography, the difference is already noticeable. The authors of the program also grind Finale bones (this is an old version of the document, the new one also has a comparison ), and a certain Andrew Hawryluk, switching from Finale to LilyPond on his site, does about the same . By the way, on that site you can look at the LilyPond's set.
Attention! The next section contains technical details, and is not even necessary for elementary education.
We do not know anything about the internal work of Sibelius or Finale, but judging by the result, they would not hurt to learn something from the developers of LilyPond.
Half of LilyPond is written in Scheme, and the executable uses the GUILE to run that half. What gives such a separation? TeX-like markup (after checking the syntax, of course) is sent for processing, which ultimately produces a “program” in Scheme, which already sets all parts in C ++ (mainly those that are set by default) and the notes themselves, but as already programming language commands, not markup. This approach allows, on the one hand, to more efficiently search for errors in one part or another, and on the other hand makes it possible to determine the teams that perform almost any action.
Context - a certain part of the score, which can be attributed to something, and which has certain properties. They are located on four levels.
Graphical objects (indicated in the documentation by the word grob :-)) and their engravers, performers and the only Timing_translator (the parts responsible for drawing, creating MIDI and the rhythm synchronizer on all mills) are strictly distributed in contexts. Among their properties there are usually many responsible for the vertical and horizontal arrangement. A complete list of coffins can be found in the corresponding part of the documentation.
This funny translation of the word badness means the degree of deviation of the arrangement from the ideal for each element (such a mechanism came from TeX).
The documentation says: In general, the distribution procedure takes place in four stages. First, elastic spaces (“springs”) are selected based on the duration. Secondly, all possible combinations of line breaks are checked, and for each "bad" is calculated. Thirdly, the height of each system is estimated. Finally, page breaks and combinations are chosen so that the horizontal and vertical gaps are not too stretched or compressed. [ source ]
The textbook in pictures is taken from the official site.
Commands begin with a backslash, letters are notes, and numbers are durations.
Signs of alteration and chords do not cause problems. Note: Russian musicians are more familiar with German or English notes. To do this, you can use
The score and parts can be made from one file - for this, variables are used.
It can be done separately, or it can be done together:
For further clarification, please contact the official manualin window No. 27 (it is well written).
Of course, you can type code in notepad and run LilyPond on the command line. However, there are programs designed to make life easier for the encoder.
To this popular cross-platform editor, there is a LilyPondTool plugin that adds syntax highlighting, viewing, PointAndClick (clicked on a score element - got to the appropriate source location) and a few convenient pieces (such as dialogs for setting typical properties). Almost the only convenient tool for Windows.
The regular KDE editor is friends with LilyPond, although not as advanced as the next program.
This is a specialized editor specifically for LilyPond'e under KDE (although it runs fine in GNOME) has more substantial support. More lotions are available, and working with him personally is much more pleasant for me.
It is also possible to fasten export from Sibelus ( sib2ly ), MIDI and MusicXML import are built-in.
Good news for TeX lovers - LilyPond includes the LilyBook utility, with which you can easily embed musical examples directly into a TeX document.
PS: All this is also available under Windows and Mac OS.
Holivars about which of them is better have not been quiet for ten years, the authoritative publishing house Bärenreiter (musicians love him very much, albeit swear at expensive notes), meanwhile, use the SCORE written on Fortran , and musicians who like free software look at LilyPond and are horrified , because how can an ordinary person live without WYSIWYG?
If it weren’t for the TeX-like syntax, I’m sure many would use this engraver. It is engraver - the translations "engraver" and "typesetter" are not suitable here, because these words designate professions. LilyPond is better than other commercial and free programs to arrange music text evenly across the page.
Comparison with popular programs
This is a melody of a well-known theme, typed in three different programs (LilyPond, Finale, Sibelius).
Nothing but a set was done in LilyPond, extra measures were removed in Sibelius and Finale, and the last notes are forcibly automatically placed horizontally.
Let's consider some details:
Sibelius | Lilypond | Finale | |
---|---|---|---|
1. Font | Modern | Under the 19th century, especially the treble clef | Modern |
2. Vertical arrangement of systems | Break up a bit | Systems do not decay or merge | Strongly disintegrate |
3. The horizontal arrangement of elements on the musical string | Acceptable (although I would push the last two notes on the first line) | Almost perfect | Sixteen after the eighth with a dot everywhere stuck to the next note |
4. Stability of horizontal distribution | The first line is compressed, the second is normal, the third is stretched | Uniform, the distances on the 2nd and 3rd lines are almost the same | Even though the lines look too compressed |
5. Distances around the bar | Good, when there are no signs of alteration (see, for example, the border of 7 and 8 measures), otherwise the right margin suffers | Almost everywhere the same on the right and left | Left field suffers if there is sixteenth |
In this very small example, which uses only the simplest elements of photography, the difference is already noticeable. The authors of the program also grind Finale bones (this is an old version of the document, the new one also has a comparison ), and a certain Andrew Hawryluk, switching from Finale to LilyPond on his site, does about the same . By the way, on that site you can look at the LilyPond's set.
Attention! The next section contains technical details, and is not even necessary for elementary education.
How it works
We do not know anything about the internal work of Sibelius or Finale, but judging by the result, they would not hurt to learn something from the developers of LilyPond.
Scheme
Half of LilyPond is written in Scheme, and the executable uses the GUILE to run that half. What gives such a separation? TeX-like markup (after checking the syntax, of course) is sent for processing, which ultimately produces a “program” in Scheme, which already sets all parts in C ++ (mainly those that are set by default) and the notes themselves, but as already programming language commands, not markup. This approach allows, on the one hand, to more efficiently search for errors in one part or another, and on the other hand makes it possible to determine the teams that perform almost any action.
Contexts
Context - a certain part of the score, which can be attributed to something, and which has certain properties. They are located on four levels.
- The context of the score. The only one in the file, it contains those parts that are the same for the whole score, for example, size, tempo, repetitions, etc. Only one.
- The context of a group of mills. They can be several nested, and contain things specific to the group (for example, the piano’s accolade - technically this is also a group).
- The context of the camp. Several varieties of musical staves will satisfy a variety of needs - including for a set of Gregorian chorales and mentally notated music. It can be invested both in a group of mills and in a score.
- The context of the voice. There can be an unlimited number in the camp, if only they would not be confused in the eyes.
Graphic objects
Graphical objects (indicated in the documentation by the word grob :-)) and their engravers, performers and the only Timing_translator (the parts responsible for drawing, creating MIDI and the rhythm synchronizer on all mills) are strictly distributed in contexts. Among their properties there are usually many responsible for the vertical and horizontal arrangement. A complete list of coffins can be found in the corresponding part of the documentation.
Bad
This funny translation of the word badness means the degree of deviation of the arrangement from the ideal for each element (such a mechanism came from TeX).
The documentation says: In general, the distribution procedure takes place in four stages. First, elastic spaces (“springs”) are selected based on the duration. Secondly, all possible combinations of line breaks are checked, and for each "bad" is calculated. Thirdly, the height of each system is estimated. Finally, page breaks and combinations are chosen so that the horizontal and vertical gaps are not too stretched or compressed. [ source ]
Syntax
The textbook in pictures is taken from the official site.
Commands begin with a backslash, letters are notes, and numbers are durations.
Signs of alteration and chords do not cause problems. Note: Russian musicians are more familiar with German or English notes. To do this, you can use
\language "deutsch"
either \language "english"
The score and parts can be made from one file - for this, variables are used.
It can be done separately, or it can be done together:
For further clarification, please contact the official manual
Using
Of course, you can type code in notepad and run LilyPond on the command line. However, there are programs designed to make life easier for the encoder.
jEdit
To this popular cross-platform editor, there is a LilyPondTool plugin that adds syntax highlighting, viewing, PointAndClick (clicked on a score element - got to the appropriate source location) and a few convenient pieces (such as dialogs for setting typical properties). Almost the only convenient tool for Windows.
Kate
The regular KDE editor is friends with LilyPond, although not as advanced as the next program.
Frescobaldi
This is a specialized editor specifically for LilyPond'e under KDE (although it runs fine in GNOME) has more substantial support. More lotions are available, and working with him personally is much more pleasant for me.
It is also possible to fasten export from Sibelus ( sib2ly ), MIDI and MusicXML import are built-in.
Good news for TeX lovers - LilyPond includes the LilyBook utility, with which you can easily embed musical examples directly into a TeX document.
PS: All this is also available under Windows and Mac OS.
References
- Official site
- Stable version guide
- Test versions are usually quite stable.