Custom Contexts Implemented in solmisasi-lily Library
{: .no_toc .fs-9 }
The following custom translation contexts are created by solmisasi-lily when it is included in a Lilypond file. They are based on standard Lilypond contexts, with some customized context properties and layout object settings in order to be used in solmisasi music engraving.
{: .fs-5 }
Custom Translation Contexts
{: .no_toc .text-delta .fs-6 }
- TOC
{:toc}
GlobalTempo
Type: Engraver_group (See 5.1.6 Defining new contexts)
{: .pt-5 .fs-5 }
This context is built from the following engravers:
{: .pt-5 .fs-5 }
- [Axis_group_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/axis_005fgroup_005fengraver)
- [Bar_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/bar_005fengraver)
- [Grace_spacing_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/grace_005fspacing_005fengraver)
- [Metronome_mark_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/metronome_005fmark_005fengraver)
- [Text_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/text_005fengraver)
- [Text_spanner_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/text_005fspanner_005fengraver)
- [Time_signature_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/time_005fsignature_005fengraver)
This context sets the following property:
{: .pt-5 .fs-5 }
- Sets translator property `keepAliveInterfaces` to
```
'( metronome-mark-interface
text-script-interface
line-spanner-interface )
```
This context sets the following settings to the layout objects within:
{: .pt-5 .fs-5 }
- Sets `BarLine.bar-extent` to `'(-0.5 . 0.5)`
- Sets `BarLine.transparent` to `#t`
- Sets `MetronomeMark.break-align-symbols` to `#f`
- Sets `MetronomeMark.direction` to `UP`
- Sets `MetronomeMark.extra-spacing-width` to `'(+inf.0 . -inf.0)`
- Sets `MetronomeMark.Y-offset` to `(/ 12 11)`
- Sets `TextSpanner.direction` to `UP`
- Sets `TextSpanner.Y-offset` to `0`
- Sets `TimeSignature.break-align-symbol` to `#f`
- Sets `TimeSignature.stencil` to `#f`
- Sets `VerticalAxisGroup.nonstaff-nonstaff-spacing.padding` to `0.5`
- Sets `VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding` to `0.5`
- Sets `VerticalAxisGroup.remove-empty` to `#t`
- Sets `VerticalAxisGroup.remove-first` to `#f`
- Sets `VerticalAxisGroup.staff-affinity` to `DOWN`
SolmisasiChoirStaff
Based on: ChoirStaff
{: .pt-5 .fs-5 }
This context also accepts commands for the following context:
{: .pt-5 .fs-5 }
- [ChoirStaff](http://lilypond.org/doc/v2.20/Documentation/internals/choirstaff)
This context accepts the following contexts:
{: .pt-5 .fs-5 }
- [SolmisasiLyrics](#solmisasilyrics)
- [SolmisasiStaff](#solmisasistaff)
- [SolmisasiVoice](#solmisasivoice)
This context denies the following context:
{: .pt-5 .fs-5 }
- [Staff](http://lilypond.org/doc/v2.20/Documentation/internals/staff)
This context overrides the following settings to the layout objects within:
{: .pt-5 .fs-5 }
- Overrides `StaffGrouper.staff-staff-spacing` to
```
`((basic-distance . 0.5)
(minimum-distance . 0.25)
(padding . 0.75))
```
SolmisasiLyrics
Based on: Lyrics
{: .pt-5 .fs-5 }
This context also accepts commands for the following context:
{: .pt-5 .fs-5 }
- [Lyrics](http://lilypond.org/doc/v2.20/Documentation/internals/lyrics)
This context is also built from the following engravers:
{: .pt-5 .fs-5 }
- [Bar_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/bar_005fengraver)
- [Separating_line_group_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/separating_005fline_005fgroup_005fengraver)
This context overrides the following settings to the layout objects within:
{: .pt-5 .fs-5 }
- Overrides `BarLine.bar-extent` to `'(0 . 1.5)`
- Overrides `BarLine.transparent` to `#t`
- Overrides `BarLine.gap` to `1.0`
- Overrides `LyricText.layer` to `-2`
- Overrides `LyricText.whiteout` to `2`
- Overrides `LyricText.whiteout-style` to `'outline`
- Overrides `LyricText.word-space` to `1`
- Overrides `LyricExtender.layer` to `-4`
- Overrides `LyricHyphen.layer` to `-3`
- Overrides `LyricHyphen.minimum-distance` to `0.4`
- Overrides `VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding` to `0.75`
- Overrides `VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding` to `2.5`
SolmisasiStaff
Based on: Staff
{: .pt-5 .fs-5 }
This context also accepts commands for the following context:
{: .pt-5 .fs-5 }
- [Staff](http://lilypond.org/doc/v2.20/Documentation/internals/staff)
This context also accepts the following context:
{: .pt-5 .fs-5 }
- [SolmisasiVoice](#solmisasivoice)
This context is also built from the following engravers:
{: .pt-5 .fs-5 }
- [Solmisasi_equivalence_key_engraver](./custom-engravers.html#solmisasi_equivalence_key_engraver)
- [Solmisasi_note_head_engraver](./custom-engravers.html#solmisasi_note_head_engraver)
This context removes the following engravers:
{: .pt-5 .fs-5 }
- [Ledger_line_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/ledger_005fline_005fengraver)
This context omits the following layout objects:
{: .pt-5 .fs-5 }
- [Accidental](http://lilypond.org/doc/v2.20/Documentation/internals/accidental)
- [Clef](http://lilypond.org/doc/v2.20/Documentation/internals/clef)
- [ClefModifier](http://lilypond.org/doc/v2.20/Documentation/internals/clefmodifier)
- [Flag](http://lilypond.org/doc/v2.20/Documentation/internals/flag)
- [KeyCancellation](http://lilypond.org/doc/v2.20/Documentation/internals/keycancellation)
- [TimeSignature](http://lilypond.org/doc/v2.20/Documentation/internals/timesignature)
This context sets the following properties:
{: .pt-5 .fs-5 }
- Sets translator property `explicitKeySignatureVisibility` to `begin-of-line-invisible`
- Sets custom _solmisasi_ translator property `male-vocal` to `#f`
This context overrides the following settings to the layout objects within:
{: .pt-5 .fs-5 }
- Overrides `BarLine.bar-extent` to `'(-2 . 2)`
- Overrides `BarLine.gap` to `0.8`
- Overrides `BarLine.space-alist.next-note` to `'(semi-fixed-space . 1.5)`
- Overrides `Beam.beam-thickness` to `0.15`
- Overrides `Beam.length-fraction` to `0.5`
- Overrides `Beam.transparent` to `#f`
- Overrides `Dots.staff-position` to `2`
- Overrides `InstrumentName.extra-offset` to `'(0 . -0.35)`
- Overrides `NoteHead.Y-offset` to `-0.65`
- Overrides `Slur.direction` to `DOWN`
- Overrides `StaffSymbol.line-count` to `5`
- Overrides `StaffSymbol.transparent` to `#t`
- Overrides `Stem.color` to `blue`
- Overrides `Stem.direction` to `UP`
- Overrides `Stem.length-fraction` to `0.8`
- Overrides `Stem.thickness` to `14`
- Overrides `Stem.transparent` to `#t`
- Overrides `Stem.X-offset` to `0.65`
- Overrides `TextScript.direction` to `UP`
- Overrides `TextSpanner.direction` to `UP`
- Overrides `Tie.details.height-limit` to `1.1`
- Overrides `TupletBracket.bracket-visibility` to `#t`
- Overrides `TupletBracket.direction` to `UP`
- Overrides `VerticalAxisGroup.default-staff-staff-spacing` to
```
'((basic-distance . 0)
(padding . 0.5))
```
SolmisasiTimeAndKeySignature
Type: Engraver_group (See 5.1.6 Defining new contexts)
{: .pt-5 .fs-5 }
This context is built from the following engravers:
{: .pt-5 .fs-5 }
- [Axis_group_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/axis_005fgroup_005fengraver)
- [Bar_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/bar_005fengraver)
- [Break_align_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/break_005falign_005fengraver)
- [Font_size_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/font_005fsize_005fengraver)
- [Key_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/key_005fengraver)
- [Pure_from_neighbor_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/pure_005ffrom_005fneighbor_005fengraver)
- [Separating_line_group_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/separating_005fline_005fgroup_005fengraver)
- [Solmisasi_key_engraver](./custom-engravers.html#solmisasi_key_engraver)
- [Solmisasi_time_signature_engraver](./custom-engravers.html#solmisasi_time_signature_engraver)
- [Time_signature_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/time_005fsignature_005fengraver)
This context omits the following layout objects:
{: .pt-5 .fs-5 }
- [Clef](http://lilypond.org/doc/v2.20/Documentation/internals/clef)
- [ClefModifier](http://lilypond.org/doc/v2.20/Documentation/internals/clefmodifier)
- [KeyCancellation](http://lilypond.org/doc/v2.20/Documentation/internals/keycancellation)
- [NoteHead](http://lilypond.org/doc/v2.20/Documentation/internals/notehead)
- [Stem](http://lilypond.org/doc/v2.20/Documentation/internals/stem)
This context sets the following properties:
{: .pt-5 .fs-5 }
- Sets translator property `explicitKeySignatureVisibility` to `end-of-line-invisible`
- Sets translator property `keepAliveInterfaces` to
```
'( key-signature-interface
time-signature-interface )
```
This context overrides the following settings to the layout objects within:
{: .pt-5 .fs-5 }
- Overrides `BarLine.transparent` to `#t`
- Overrides `BarLine.bar-extent` to `'(-0.5 . 0.5)`
- Overrides `TimeSignature.self-alignment-X` to `CENTER`
- Overrides `KeySignature.self-alignment-X` to `CENTER`
- Overrides `TimeSignature.break-visibility` to `end-of-line-invisible`
- Overrides `VerticalAxisGroup.staff-affinity` to `DOWN`
- Overrides `VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding` to `0.5`
- Overrides `VerticalAxisGroup.nonstaff-nonstaff-spacing.padding` to `0.5`
- Overrides `VerticalAxisGroup.remove-empty` to `#t`
- Overrides `VerticalAxisGroup.remove-first` to `#f`
SolmisasiVoice
Based on: Voice
{: .pt-5 .fs-5 }
This context also accepts commands for the following context:
{: .pt-5 .fs-5 }
- [Voice](http://lilypond.org/doc/v2.20/Documentation/internals/voice)
This context is also built from the following engravers:
{: .pt-5 .fs-5 }
- [Pitch_squash_engraver](http://lilypond.org/doc/v2.20/Documentation/internals/pitch_005fsquash_005fengraver)
This context sets the following properties:
{: .pt-5 .fs-5 }
- Sets translator property `squashedPosition` to `0`
This context overrides the following settings to the layout objects within:
{: .pt-5 .fs-5 }
- Overrides `DynamicLineSpanner.staff-padding` to `1.75`
- Overrides `DynamicLineSpanner.Y-extent` to `'(1.5 . -1.5)`
- Overrides `DynamicText.extra-offset` to `'(0 . -0.5)`
- Overrides `Hairpin.extra-offset` to `'(0 . -0.5)`
- Overrides `Hairpin.whiteout` to `1.5`
- Overrides `TextScript.Y-extent` to `'(1.5 . -1.5)`
- Overrides `Beam.extra-offset` to `'(0 . -0.2)`
- Overrides `TupletBracket.shorten-pair` to `'(0 . 0)`
- Overrides `TupletNumber.font-size` to `0`
- Overrides `Glissando.bound-details.left.Y` to `-1.2`
- Overrides `Glissando.bound-details.right.Y` to `0.8`
- Overrides `Glissando.bound-details.left.padding` to `0.2`
- Overrides `Glissando.bound-details.right.padding` to `0.2`
- Overrides `TieColumn.tie-configuration` to `'((-2.65 . -1))`
- Overrides `BreathingSign.text` to
```
\markup {
\translate #'(0 . -1.5)
\musicglyph #"comma"
}
```