# The LilyPond Snippet Repository ♪♫

 Browsing items 60−69 out of 924

### Airy tone

`\airytone` takes three arguments: a circle radius, a degree of fullness (from 0 - 1) and a line thickness. Generally, in the modern rep, an open circle (0) corresponds to all air and a full circle (1) corresponds to a full, robust tone.

### Aligning and centering instrument names

The horizontal alignment of instrument names is tweaked by changing the `Staff.InstrumentName.self-alignment-X` property. The `\layout` variables `indent` and `short-indent` define the space in which the instrument names are aligned before the first and the following systems, respectively.

### Aligning and centering instrument names (advanced)

Here is an advanced macro to produce automatically centered instrument names: use \instrument for a single line instrument name, and \instruments for a multi line instrument name.

### Aligning bar numbers

Bar numbers by default are right-aligned to their parent object. This is usually the left edge of a line or, if numbers are printed within a line, the left hand side of a bar line. The numbers may also be positioned directly over the bar line or left-aligned to the bar line.

### Aligning columns from different markups

One can use `\markup \fill-line { \column { "line1" "line2" ... } \column { "line1" "line2" ... } }` to create text markup in multiple columns (for example, writing out the text of various stanzas after the score). However, the column widths are calculated from the contents, so columns from different markups are not aligned with each other.

However, one can write a `\columns` macro, which makes each column exactly 1/n of the line-width, thus aligning even columns of different markups. The syntax stays the same, only that one has to use `\columns` instead of `\fill-line`:
```\markup \columns {
\column{"default column 1" "line 2"}
\column{"column 2, wider than the rest" "line 2"}
\column{"c 3" "line 2"}
}
```

### Aligning marks with various notation objects

If specified, text marks may be aligned with notation objects other than bar lines. These objects include `ambitus`, `breathing-sign`, `clef`, `custos`, `staff-bar`, `left-edge`, `key-cancellation`, `key-signature`, and `time-signature`.

In such cases, text marks will be horizontally centered above the object. However this can be changed, as demonstrated on the second line of this example (in a score with multiple staves, this setting should be done for all the staves).

### Aligning syllables with melisma

By default, lyrics syllables that start a melisma are left aligned on their note. The alignment can be altered using the `lyricMelismaAlignment` property.

### Aligning the ends of hairpins to NoteColumn directions

The ends of hairpins may be aligned to the `LEFT`, `CENTER` or `RIGHT` of `NoteColumn` grobs by overriding the property `endpoint-alignments`, which is a pair of numbers representing the left and right ends of the hairpin. `endpoint-alignments` are expected to be directions (either -1, 0 or 1). Other values will be transformed with a warning. The right end of a hairpin terminating at a rest is not affected, always ending at the left edge of the rest.

### Allowing fingerings to be printed inside the staff

By default, vertically oriented fingerings are positioned outside the staff; that behavior, however, may be disabled. Attention needs to be paid to situations where fingerings and stems are in the same direction: by default, fingerings will avoid only beamed stems. That setting can be changed to avoid no stems or all stems; the following example demonstrates these two options, as well as how to go back to the default behavior.

### Alphabetical sorted index

Sometimes you may want to get an sorted index of the pieces contained in a book. Often the `\table-of-content` command does this job quite well.

However, the problem with it is, that it sorts always by page numbers. For books containing many songs it is common to have an index sorted by letters or topics.

Both is possible with this snippet. Its code takes the code of ./ly/toc-init.ly and defines three new commands `\indexItem`, `\indexSection` and `\index`. The first two are used to define index items, the last one will create the output.

`\indexItem` and `\indexSection` both take two arguments (string, markup). The first is used to calculate the order of the items in the output, the second one contains the markup that is actually printed.

```\markuplist \index

\indexItem #"Berta" \markup "Berta"
\indexItem #"Clown" \markup "Clown"
```

By setting the first argument of `\indexItem` and `\indexSection` to a different value than the second it is possible to create heavily customized sorted indices. A topic based index can be achieved by:

```\markuplist \index

\indexSection #"spring" \markup \smallCaps "Songs of Spring"
\indexItem #"spring - I Like the Flowers" \markup "I Like the Flowers"
\indexItem #"spring - Der Winter ist vergangen" \markup "Der Winter ist vergangen"

\indexSection #"rock" \markup \smallCaps "Rock Songs"
\indexItem #"rock - Stairway to Heaven" \markup "Stairway to heaven"
\indexItem #"rock - Nothing Else Matters" \markup "Nothing Else Matters"
```

Limitations:

It is not yet possible to create multiple indices, for example an alphabetical sorted and a topic based one.

To achieve that a few additions to the snippet are nessecary which I had not yet time to implement by now.