% name, glyph id, c0 position
supportedClefTypes = #'(
- ("treble" . ("G" -2))
- ("violin" . ("G" -2))
- ("G" . ("G" -2))
- ("G2" . ("G" -2))
- ("french" . ("G" -4 ))
- ("soprano" . ("C" -4 ))
- ("mezzosoprano" . ("C" -2 ))
- ("alto" . ("C" 0 ))
- ("tenor" . ("C" 2 ))
- ("baritone" . ("C" 4 ))
- ("varbaritone" . ("F" 0))
- ("bass" . ("F" 2 ))
- ("F" . ( "F" 2))
- ("subbass" . ("F" 4))
- )
- clefPitches = #'(("G" . -4)
- ("C" . 0)
- ("F" . 4))
+ ("treble" . ("clefs-G" -2))
+ ("violin" . ("clefs-G" -2))
+ ("G" . ("clefs-G" -2))
+ ("G2" . ("clefs-G" -2))
+ ("french" . ("clefs-G" -4 ))
+ ("soprano" . ("clefs-C" -4 ))
+ ("mezzosoprano" . ("clefs-C" -2 ))
+ ("alto" . ("clefs-C" 0 ))
+ ("tenor" . ("clefs-C" 2 ))
+ ("baritone" . ("clefs-C" 4 ))
+ ("varbaritone" . ("clefs-F" 0))
+ ("bass" . ("clefs-F" 2 ))
+ ("F" . ( "clefs-F" 2))
+ ("subbass" . ("clefs-F" 4))
+ )
+ % where is c0 in this clef?
+ clefPitches = #'(("clefs-G" . -4)
+ ("clefs-C" . 0)
+ ("clefs-F" . 4))
\consists "Clef_engraver";
\consists "Key_engraver";
Generic_property_list = #generic-staff-properties
- barSize = #'staff-height
+ barSize = 4.0 * \interline ;
\consists "Pitch_squash_engraver";
\consists "Separating_line_group_engraver";
\name RhythmicStaff;
textScriptPadding = #3.0
\consists "Text_engraver";
+
startSustain = #"Ped."
stopSustain = #"*"
stopStartSustain = #"*Ped."
startUnaChorda = #"una chorda"
stopUnaChorda = #"tre chorde"
+
\consists "Piano_pedal_engraver";
\consists "Script_engraver";
\consists "Script_column_engraver";
alignmentReference = \down;
defaultClef = #"treble"
defaultBarType = #"|"
+ systemStartDelimiterGlyph = #'bar-line
+
+ %
+ % what order to print accs. We could compute this,
+ % but computing is more work than putting it here.
+ %
+ % Flats come first, then sharps.
+ keyAccidentalOrder = #'(
+ (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1)
+ (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
+ )
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % default settings, mainly for breakable items
+ % in alphabetical order
+ % TODO: uniform naming.;
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ %
+ % distances are given in stafflinethickness (thicknesses) and staffspace (distances)
+ %
+
+
+ basicBarProperties = #`(
+ (break-align-symbol . Staff_bar)
+ (barsize-procedure . ,Bar::get_staff_bar_size)
+ (molecule-callback . ,Bar::brew_molecule)
+ (visibility-lambda . ,begin-of-line-invisible)
+ (breakable . #t)
+ (before-line-breaking-callback . ,Bar::before_line_breaking)
+ ;;
+ ;; Ross. page 151 lists other values, we opt for a leaner look
+ ;;
+ (kern . 3.0)
+ (thin-kern . 3.0)
+ (hair-thickness . 1.6)
+ (thick-thickness . 6.0)
+
+ (interfaces . (bar-interface staff-bar-interface))
+ )
+
+ basicBarNumberProperties = #`(
+ (molecule-callback . ,Text_item::brew_molecule)
+ (breakable . #t)
+ (visibility-lambda . ,begin-of-line-visible)
+ )
+
+ basicBeamProperties = #`(
+ (molecule-callback . ,Beam::brew_molecule)
+ (beam-thickness . 0.42) ; interline
+ (before-line-breaking-callback . ,Beam::before_line_breaking)
+ (after-line-breaking-callback . ,Beam::after_line_breaking)
+ (default-neutral-direction . 1)
+ (interfaces . (beam-interface))
+ (damping . 1)
+ )
+
+ basicBreakAlignProperties = #`(
+ (breakable . #t)
+ (interfaces . (break-align-interface))
+ (stacking-dir . 1)
+ (axes 0)
+ )
+ basicBreakAlignGroupProperties = #`(
+ (interfaces . (axis-group-interface))
+ (axes . (0))
+ )
+ basicBreathingSignProperties = #`(
+ (break-align-symbol . Breathing_sign)
+ (breakable . #t )
+ (molecule-callback . ,Breathing_sign::brew_molecule)
+ (visibility-lambda . ,begin-of-line-invisible)
+ (interfaces . (breathing-sign-interface))
+ )
+ basicClefItemProperties = #`(
+ (molecule-callback . ,Score_element::brew_molecule)
+ (before-line-breaking-callback . ,Clef::before_line_breaking)
+ (breakable . #t)
+ (break-align-symbol . Clef_item)
+ (visibility-lambda . ,begin-of-line-visible)
+ (interfaces . (clef-interface))
+ )
+ basicChordNameProperties = #`(
+ (molecule-callback . ,Chord_name::brew_molecule)
+ (interfaces . (chord-name-interface))
+ )
+ basicCollisionProperties = #`(
+ (axes 0 1)
+ (interfaces . (collision-interface))
+ )
+ basicCrescendoProperties = #`(
+ (molecule-callback . ,Crescendo::brew_molecule)
+ (interfaces . (crescendo-interface dynamic-interface))
+ )
+ basicDotColumnProperties = #`(
+ (interfaces . (dot-column-interface axis-group-interface ))
+ (axes 0 )
+ )
+ basicDotsProperties = #`(
+ (molecule-callback . ,Dots::brew_molecule)
+ (dot-count . 1)
+ (interfaces . (dot-interface))
+ )
+ basicDynamicLineSpannerProperties = #`(
+ (interfaces (dynamic-interface axis-group-interface))
+ (axes . ( 1))
+ )
+ basicDynamicTextProperties = # `(
+ (style . "dynamic")
+ (interface (dynamic-interface))
+ (molecule-callback . ,Text_item::brew_molecule)
+ (script-priority . 100)
+ (self-alignment-Y . 0)
+ )
+ leftEdgeBasicProperties = #`(
+ (break-align-symbol . Left_edge_item)
+ (breakable . #t)
+ )
+ basicGraceAlignItemProperties = #`(
+ (axes . (0))
+ (interfaces . (axis-group-interface align-interface))
+ (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
+ )
+ basicHaraKiriVerticalGroupspannerProperties = #`(
+ (interfaces . (hara-kiri-interface))
+ (axes 1)
+ )
+ basicHyphenSpannerProperties = #`(
+ (thickness . 1.0)
+ (height . 0.4)
+ (minimum-length . 0.5)
+ (molecule-callback . ,Hyphen_spanner::brew_molecule)
+ )
+ basicKeyProperties = #`(
+ (molecule-callback . ,Key_item::brew_molecule)
+ (interfaces . (key-item-interface))
+ (break-align-symbol . Key_item)
+ (visibility-lambda . ,begin-of-line-visible)
+ (breakable . #t)
+ )
+ basicLocalKeyProperties = #`(
+ (molecule-callback . ,Local_key_item::brew_molecule)
+ (left-padding . 0.2)
+ (right-padding . 0.4)
+ (interfaces . (accidentals-interface ))
+ )
+ basicLineOfScoreProperties = #`(
+ (axes . (0 1))
+ (interfaces . (axis-group-interface))
+ )
+ basicLyricExtenderProperties = #`(
+ (molecule-callback . ,Lyric_extender::brew_molecule)
+ )
+ basicLyricTextProperties = #`(
+ (molecule-callback . ,Text_item::brew_molecule)
+ (self-alignment-X . 0)
+ (non-rhythmic . #t)
+ (interfaces . (text-item-interface))
+ )
+ basicMarkProperties = #`(
+ (molecule-callback . ,Text_item::brew_molecule)
+ (breakable . #t)
+ (interfaces . (mark-interface))
+ (visibility-lambda . ,end-of-line-invisible)
+ )
+ basicMultiMeasureRestProperties = #`(
+ (spacing-procedure . ,Multi_measure_rest::set_spacing_rods)
+ (molecule-callback . ,Multi_measure_rest::brew_molecule)
+ (staff-position . 0)
+ )
+ basicNoteColumnProperties = #`(
+ (axes 0 1)
+ (interfaces . (axis-group-interface note-column-interface))
+ )
+ basicNoteHeadProperties = #`(
+ (interfaces . (note-head-interface rhythmic-head-interface))
+ (molecule-callback . ,Note_head::brew_molecule)
+ )
+ basicNoteNameProperties = #`(
+ (molecule-callback . ,Text_item::brew_molecule)
+ )
+ basicOctavateEightProperties = #`(
+ (self-alignment-X . 0)
+ (text . "8")
+ (visibility-lambda . ,begin-of-line-visible)
+ (molecule-callback . ,Text_item::brew_molecule)
+ (style . "italic")
+ )
+ basicPaperColumnProperties = #`(
+ (interfaces . (paper-column-interface axis-group-interface))
+ (axes 0)
+ (rank . -1)
+ )
+ basicPedalProperties = #`(
+ (molecule-callback . ,Text_item::brew_molecule)
+ (style . "italic")
+ (no-spacing-rods . #t)
+ (self-alignment-X . 0)
+
+ )
+ basicTextProperties = #`( )
+ basicRestProperties = #`(
+ (interfaces . (rest-interface rhythmic-head-interface))
+ (molecule-callback . ,Rest::brew_molecule)
+ (minimum-beam-collision-distance . 1.5)
+ )
+
+ basicRestCollisionProperties = #`(
+ (minimum-distance . 0.75)
+ (interfaces . (rest-collision-interface))
+ )
+ basicScriptProperties = #`(
+ (molecule-callback . ,Script::brew_molecule)
+ (interface . (script-interface))
+ )
+ basicScriptColumnProperties = #`(
+ (before-line-breaking-callback . ,Script_column::before_line_breaking)
+ )
+ basicSlurProperties = #`(
+ (molecule-callback . ,Slur::brew_molecule)
+ (spacing-procedure . ,Slur::set_spacing_rods)
+ (after-line-breaking-callback . ,Slur::after_line_breaking)
+ )
+ basicSpacingSpannerProperties =#`(
+ (spacing-procedure . ,Spacing_spanner::set_springs)
+ )
+ basicSpanBarProperties = #`(
+ (break-align-symbol . Staff_bar)
+ (barsize-procedure . ,Span_bar::get_bar_size)
+ (molecule-callback . ,Bar::brew_molecule)
+ (visibility-lambda . ,begin-of-line-invisible)
+ (breakable . #t)
+ (before-line-breaking-callback . ,Span_bar::before_line_breaking)
+
+ ;; ugh duplication!
+
+ ;;
+ ;; Ross. page 151 lists other values, we opt for a leaner look
+ ;;
+ (kern . 3.0)
+ (thin-kern . 3.0)
+ (hair-thickness . 1.6)
+ (thick-thickness . 6.0)
+ (interfaces . (bar-interface span-bar-interface))
+ )
+ basicSustainPedalProperties = #`(
+ (no-spacing-rods . #t)
+ (molecule-callback . ,Sustain_pedal::brew_molecule)
+ (self-alignment-X . 0)
+ (interface . (sustain-pedal-interface))
+ )
+ basicSystemStartDelimiterProperties = #`(
+ (molecule-callback . ,System_start_delimiter::brew_molecule)
+ (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
+ (collapse-height . 1.0)
+ (thickness . 1.6)
+ (arch-height . 1.5)
+ (arch-angle . 50.0)
+ (arch-thick . 0.25)
+ (arch-width . 1.5)
+ (bracket-thick . 0.25)
+ (bracket-width . 2.0)
+ )
+ basicStemProperties = #`(
+ (before-line-breaking-callback . ,Stem::before_line_breaking)
+ (molecule-callback . ,Stem::brew_molecule)
+
+ ; if stem is on middle line, choose this direction.
+ (default-neutral-direction . 1)
+ (interfaces . (stem-interface))
+ )
+ staffSymbolBasicProperties = #`(
+ (molecule-callback . ,Staff_symbol::brew_molecule)
+ (staff-space . 1.0)
+ (line-count . 5 )
+ (interfaces . (staff-symbol-interface ))
+ )
+ basicTextScriptProperties = #`(
+ (molecule-callback . ,Text_item::brew_molecule)
+ (no-spacing-rods . #t)
+ (interfaces . (text-script-interface text-item-interface))
+ )
+ basicTieProperties = #`(
+ (molecule-callback . ,Tie::brew_molecule)
+ (after-line-breaking-callback . ,Tie::after_line_breaking)
+ (spacing-procedure . ,Tie::set_spacing_rods)
+ (interfaces . (tie-interface))
+ )
+ basicTieColumnProperties = #`(
+ (after-line-breaking-callback . ,Tie_column::after_line_breaking)
+ (interfaces . (tie-column-interface))
+ )
+ basicTimeSignatureProperties = #`(
+ (molecule-callback . ,Time_signature::brew_molecule)
+ (break-align-symbol . Time_signature)
+ (visibility-lambda . ,all-visible)
+ (breakable . #t)
+ (interfaces . (time-signature-interface))
+ )
+ basicTupletSpannerProperties = #`(
+ (number-gap . 2.0)
+ (delta-y . 0)
+ (thick . 1.0)
+ (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
+ (molecule-callback . ,Tuplet_spanner::brew_molecule)
+ (interfaces . (tuplet-spanner-interface))
+ )
+ basicStemTremoloProperties = #`(
+ (molecule-callback . ,Stem_tremolo::brew_molecule)
+ (beam-width . 4.0) ; interline!
+ (beam-thickness . 0.42) ; interline!
+ )
+
+ basicSeparationItemProperties = #`(
+ (interfaces . (separation-item-interface))
+ )
+ basicSeparatingGroupSpannerProperties = #`(
+ (interfaces . (separation-spanner-interface))
+ (spacing-procedure . ,Separating_group_spanner::set_spacing_rods)
+ )
+ basicInstrumentNameProperties = #`(
+ (breakable . #t)
+ (molecule-callback . ,Text_item::brew_molecule)
+ (break-align-symbol . Instrument_name)
+ (visibility-lambda . ,begin-of-line-visible)
+ )
+ basicVerticalAxisGroupProperties = #`(
+ (axes 1)
+ (interfaces . (axis-group-interface))
+ )
+ basicVoltaSpannerProperties = #`(
+ (molecule-callback . ,Volta_spanner::brew_molecule)
+ (interfaces . (volta-spanner-interface))
+ )
+
\accepts "Staff";
\accepts "StaffGroup";
\accepts "RhythmicStaff";
markVisibilityFunction = #end-of-line-invisible
- barNumberVisibilityFunction = #begin-of-line-visible
};
\translator { \ScoreContext }