The LilyPond Snippet Repository ♪♫

What's this? Searching the LSR Browse by date Contributing Snippet database Browsing items 0−9 out of 935

(Correctly aligned) different dispersions of text in different stanzas

If different stanzas of a song have different amount of syllables the dispersion of the text may differ from stanza to stanza. This snippets shows a possibility how notes of the second stanza can be printed as cue notes when they differ from the notes of the first stanza. The lyrics of the different stanzas are aligned correctly according to the voice of the respective stanza.

(Correctly aligned) different dispersions of text in different stanzas

[OBSOLETE] Adding a QR code

This snippet lets you draw a QR-code, for example to provide a link to the composer's, or the music editor's website.

Actually encoding the URL into a QR-code is not done here (this just draws the QR-code from a grid of "black" or "white" values), but see the code for a short Python snippet you can use to avoid having to fill for each small square if it's black or white.

This snippet is obsolete starting from LilyPond 2.25.3, which adds a \qr-code markup command that takes a URL directly instead of a grid of "black" and "white" values. It is used like \markup \qr-code #10 "https://lilypond.org".

[OBSOLETE] Adding a QR code

A function to repeatedly print a given pattern with different notes

This snippet describes a function \changePitch, to repeatedly print a given rhythm with different notes. Its syntax is
\changePitch \pattern \newnotes
This will replace notes in \pattern by notes in \newnotes. If the note-count in \newnotes is greater, the pattern is copied repeatedly. Rests or skips are allowed, and the function also works for chords. More detailed documentation (in pdf format), and also the most recent "changePitch.ly" can be found here.

A function to repeatedly print a given pattern with different notes

Abbreviating bass note changes

A common practice in lead sheets is to abbreviate chord changes when only the bass note is changed. s, Cmaj7, Cmaj7/B would be written as Cmaj7, /B, for example. There is no simple way to do this in LilyPond, but it is possible to use a whiteout hack like snippet #309 to accomplish the desired effect.

Abbreviating bass note changes

Abbreviations for articulations

Some articulations may be entered using an abbreviation.

Abbreviations for articulations

Absolute positioning of markup elements (laying out tables)

Positioning markup elements relative to one another is complicated by the fact that the compiler will automatically place each element after the previous one, and you have to take this into account when positioning each element. The \combine command helps, but it can only take two arguments.

The \overlay-markup command takes a list of markup elements, it becomes much easier to lay out complex markup into specific arrangements, such as tables.

Absolute positioning of markup elements (laying out tables)

Acciaccatura markup

Here is a solution to print an acciaccatura in markup (for example, to give an execution hint for an appoggiatura, as found in baroque music).

Acciaccatura markup

Accidental adjustments for single-voice polyphony

LilyPond currently does not consider simultaneous notes to automatically determine the correct accidentals; it only looks at previous notes and key signatures. As a consequence, it is necessary to do some manual adjustments.

Unfortunately, these adjustments are quite complex. The Scheme code in this snippet provides a new engraver custom_accidental_placement_engraver that introduces a details subproperty flag called capture for the Accidental grob. If this flag is set, the current voice captures the accidental so that it is no longer aligned with the other accidentals in a note column. Together with other properties (force-hshift and ignore-collision) it is possible to achieve the desired result.

Accidental adjustments for single-voice polyphony

Accordion register symbols

Accordion register symbols are available as \markup as well as as standalone music events (as register changes tend to occur between actual music events). Bass registers are not overly standardized. The available commands can be found in 'Discant symbols' in the Notation Reference.

Accordion register symbols

Accordion-discant symbols

This snippet has been obsoleted by predefined markup commands, see 'Discant symbols' in the Notation Reference. It's still useful as a simple demonstration of how to combine symbols: the placement of the symbols added with \markup can be tweaked by changing the \translate-scaled arguments. \translate-scaled is used here rather than \translate in order to let the positioning of the symbol parts adapt to changes of font-size.

Accordion-discant symbols

1 2 3 4 5 6 7 8 9 10 Next ⇨