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.

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:
SibeliusLilypondFinale
1. FontModernUnder the 19th century, especially the treble clefModern
2. Vertical arrangement of systemsBreak up a bitSystems do not decay or mergeStrongly disintegrate
3. The horizontal arrangement of elements on the musical stringAcceptable (although I would push the last two notes on the first line)Almost perfectSixteen after the eighth with a dot everywhere stuck to the next note
4. Stability of horizontal distributionThe first line is compressed, the second is normal, the third is stretchedUniform, the distances on the 2nd and 3rd lines are almost the sameEven though the lines look too compressed
5. Distances around the barGood, when there are no signs of alteration (see, for example, the border of 7 and 8 measures), otherwise the right margin suffersAlmost everywhere the same on the right and leftLeft 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.
text-input-1-annotatetext-input-1-output

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"
text-input-2-annotatetext-input-2-output

The score and parts can be made from one file - for this, variables are used.
text-input-parts-both-annotate

It can be done separately, or it can be done together:
text-input-score-annotatetext-input-score-output

For further clarification, please contact the official manual in window No. 27 (it is well written).

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



Also popular now: