Once I told you what LilyPond is and what it is eaten with. Unfortunately, I could not fulfill the promises to write a simple article, but I was going to describe how I typed a terrifying musical example from
N. Korndorf
(“Welcome!” For six female voices)
What difficulties are there?
- Different rates at different camps
- Different number of durations at the same time.
- Composite size
- Time Line Mismatch
To solve the first problem you need to look in the
reference book on the inside . It says that the context of the Score contains the metronome_mark_engraver responsible for displaying the tempo symbol. The following lines transfer it to the Staff context (music staff), allowing you to write different tempos on different lines (and not only).
\layout { \context { \Score \remove "Timing_translator" \remove "Default_bar_line_engraver" \remove "Metronome_mark_engraver" ... } \context { \Staff \consists "Timing_translator" \consists "Default_bar_line_engraver" \consists "Metronome_mark_engraver" } ... }
Also here, the Default_bar_line_engraver and Timing_translator, which are responsible for the bar and the size (to the third point), are transferred from the context of the score to the context of the camp.
')
The second problem is solved by
scaling the durations . The \ scaleDurations command changes the duration in the specified ratio. The order of the arguments (the same as for the \ times command, which creates triplets, quarts, quintiles, and other multi-roles [eng: tuplet]), I remembered as follows:
instead of 88-80. I did not specifically reduce the fraction because it corresponds to the ratio of rates (example: second camp).
\scaleDurations #'(88 . 80) { \relative c' { f4\repeatTie ( g2) g4 ~ g8. g16 ( ~ g4 ~ g8. fis16 ~ fis4 fis8 g ~ g4 | ... } \addlyrics { _ la ka ma na pa ra sa } }
I did the following with dimensions and bar features. First, in version 2.15 (a stable 2.16 is about to be released), a simple \ compoundMeter command appeared, with which you can draw a clock size with a plus sign. But the simple use of this command will not give us the desired effect: in this case, the size of the measure will be equal to the sum of all the components, and here it is necessary to separate them with clock lines. The manual setting of the size of the measure comes to the rescue (example: first mill).
\compoundMeter #'((11 4) (11 4) (11 4) (11 4)) \set Timing.measureLength = #(ly:make-moment 11 4)
The third and sixth camps are more complicated: their components are not equal (example: the third camp).
\compoundMeter #'((9 4) (3 4) (6 4) (6 4) (3 4) (9 4)) \tempo 4 = 72 \relative c' { \dynamicUp \scaleDurations #' (88 . 72) { \set Timing.measureLength = #(ly:make-moment 11 4) e8.\repeatTie ( f16 ~ f4 ~f8 e ~ e4 dis4 ~ dis8. e16 ~ e4 ~ e8.) e16~ ( e4 | \set Timing.measureLength = #(ly:make-moment 11 12) e8 f ~ f4 e ~ | \set Timing.measureLength = #(ly:make-moment 11 6) e8. dis16 ~ dis4 dis16 e8. ~ e4) e2 \once \override Staff.BarLine #'allow-span-bar = ##f \set Timing.measureLength = #(ly:make-moment 11 6) e4~( e8. dis16 ~ dis4 ~ dis8 e8 ~ e4 dis4 ~ | \set Timing.measureLength = #(ly:make-moment 11 12) dis8. e16 ~ e4 ~ e8.) e16~ | \set Timing.measureLength = #(ly:make-moment 11 4) e4 ~ e8 e8\mp\<~( e4 dis ~ dis8. e16 ~ e4 ~ e8. ) f16->\mf~f4 ~ f8 f8~ | \bar "||" f4 } }
Here, in each new measure, the Timing.measureLength property is set to the appropriate value. The # function (ly: make-moment) creates a specific duration. Attention: inside the scaleDurations block, tick sizes should still be calculated
according to global time : hence the 11/4, 11/6 and 11/12 dimensions. In addition, a one-time (\ once) change in the allow-span-bar property prohibits connecting this bar with another one on the fifth camp. In the same place the same construction is registered in the fourth camp.
What is the difference between \ set and \ overrideThe \ set command controls the properties of the context, and the \ override controls the properties of the mountains (grob = graphical object). There is also a \ tweak command that changes the properties of the immediately following object, its type is not even required to be specified. The \ once \ override option overrides a property for one use only (but not necessarily immediately following this command)
Cosmetic changes included a decrease in the spacing-increment parameter (an increase in the distance between notes relative to the base when doubling their duration) from the default 1.2 but 0
, 5 and change the font and text size:
\layout { ... \override SpacingSpanner #'spacing-increment = #0.5 } ... \context { \Lyrics \override LyricText #'font-name = #"Century" \override LyricText #'font-size = #3 } }
I am pleased to clarify any other nuances of recruitment, if they are not clear.
Source code:
pastebin.com/EXsYRQzg
Download the latest unstable version:
lilypond.org/development.html (will not work at 2.14).