--- /dev/null
+*.pdf
+*.ps
+*.midi
+*.mid
+*.log
+*~
+.DS_Store
--- /dev/null
+xtitle = \markup { Four Bays }
+xsub = \markup { "points, islands, and coves of the Avalon Peninsula" }
+xcomp = \markup { Tucker Johnson }
+xinst = \markup { string quartet }
+xdur = \markup { \sans "~7" "minutes" }
+xyear = \markup { 2026 }
+xcr = \markup \tiny { Copyright Umbel Press \concat { \sans \xyear "." } All Rights Reserved (ASCAP) }
+
+
+programNotes =
+\markuplist { \justify {
+ \italic "String Quartet"
+} }
+
+performanceNotes =
+\markuplist {
+ \left-column {
+ \override #'(line-width . 100)
+ \line { \hspace #100 }
+ \wordwrap { § \hspace #3.5 \sans \bold \italic "interpreting notations" }
+ }
+ \left-column {
+ \override #'(line-width . 90)
+ \line { \hspace #90 }
+ \justify {
+ \sans \italic 1. \hspace #1 Accidentals carry through each
+ bar – cautionary accidentals added for clarification.
+ }
+ \override #'(line-width . 90)
+ \justify {
+ \sans \italic 2. \hspace #1 Two fermata notations are used: a
+ \italic short fermata ( \musicglyph "scripts.ushortfermata" ) and a
+ \italic long fermata ( \musicglyph "scripts.ufermata" ).
+ }
+ \override #'(line-width . 90)
+ \justify {
+ \sans \italic 3. \hspace #1 Dotted slurs are used to indicate phrasing that may not be clear through dynamics and other notations.
+ }
+ \override #'(line-width . 90)
+ \justify {
+ \sans \italic 4. \hspace #1 Clusters should contain all of the
+ chromatic notes between the upper and lower limit of the
+ cluster-span.
+ }
+ \override #'(line-width . 90)
+ \justify {
+ \sans \italic 5. \hspace #1 Cadenza notation should be interpreted
+ freely, though music should be continuous between breath marks and
+ rests. Breath marks indicate a short break, while rests are longer.
+ }
+ }
+}
--- /dev/null
+\layout {
+ \context {
+ \Score
+ \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
+ \override InstrumentName.self-alignment-X = 1
+ \override RehearsalMark.break-visibility = #begin-of-line-invisible
+ \override Hairpin.to-barline = ##f
+ \overrideTimeSignatureSettings 4/4 1/4 1,1,1,1 #'()
+ \overrideTimeSignatureSettings 3/4 1/4 1,1,1 #'()
+ \overrideTimeSignatureSettings 5/8 1/8 2,3 #'()
+ \override BarNumber.font-name = "classico"
+ \phrasingSlurDashPattern #0.5 #2.0
+ \override PhrasingSlur.thickness = 0.5
+ \override StaffSymbol.layer = #4
+ \override Stem.layer = #4
+ \override Beam.layer = #4
+ \override Hairpin.layer = #4
+ \override TimeSignature.layer = #2
+ \override Tie.layer = #1
+ \override TupletBracket.layer = #2
+ \override StringNumber.layer = #2
+ \override TextSpanner.layer = #3
+ \override NoteHead.layer = #4
+ \override Accidental.layer = #4
+ \override TimeSignature.whiteout = 2
+ \override Fermata.outside-staff-priority = 200
+ \numericTimeSignature
+ \romanStringNumbers
+ \override TupletNumber.layer = 4
+ \override TupletNumber.font-shape = #'upright
+ rehearsalMarkFormatter = #rounded-measure-number-mark
+ \remove Text_mark_engraver
+ \remove Mark_engraver
+ \remove Metronome_mark_engraver
+ \remove Instrument_name_engraver
+ \override MultiMeasureRest.expand-limit = 1
+ \override RehearsalMark.break-visibility = #(vector #f #t #t)
+ quotedCueEventTypes = #'(note-event rest-event tie-event beam-event tuplet-span-event)
+
+ %\override PaperColumn.show-horizontal-skylines = ##t
+ %\override NonMusicalPaperColumn.show-horizontal-skylines = ##t
+ %\override VerticalAxisGroup.show-vertical-skylines = ##t
+ %\override System.show-vertical-skylines = ##t
+ %\override PaperColumn.show-horizontal-skylines = ##t
+ %\override VerticalAlignment.show-vertical-skylines = ##t
+
+ }
+ \context {
+ \Staff
+ \consists Page_turn_engraver
+ minimumPageTurnLength = #(ly:make-moment 5/2)
+ \consists Metronome_mark_engraver
+ \remove Instrument_name_engraver
+ \consists Text_mark_engraver
+ pedalSustainStyle = #'bracket
+ }
+ \context {
+ \OneStaff
+ \remove Instrument_name_engraver
+ \consists Time_signature_engraver
+ \remove Clef_engraver
+ }
+ \context {
+ \GrandStaff
+ \remove Instrument_name_engraver
+ \override StaffGrouper.staff-staff-spacing = #'(
+ (basic-distance . 3)
+ (padding . 2))
+ }
+ \context {
+ \Voice
+ \remove Instrument_name_engraver
+ }
+}
--- /dev/null
+\paper {
+ line-width = 120
+ #(include-special-characters)
+ footnote-separator-markup = \markup { \left-column { \vspace #0.5 \draw-line #'(6 . 0) } }
+ print-page-number = ##f
+ page-breaking = #ly:page-turn-breaking
+ #(set-paper-size "arch a")
+ print-all-headers = ##f
+ top-margin = 0.5\in
+ bottom-margin = 0.5\in
+ left-margin = 0.625\in
+ right-margin = 0.625\in
+ indent = 0.75\in
+ short-indent = 0\cm
+ ragged-last = ##t
+ #(define fonts (set-global-fonts #:music "scorlatti" #:brace "scorlatti" #:roman "Junicode" #:sans "sans"))
+ max-systems-per-page = #8
+ min-systems-per-page = #2
+ markup-system-spacing = #'((basic-distance . 2) (minimum-distance . 1) (padding . 2))
+ system-system-spacing = #'((basic-distance . 5) (minimum-distance . 3) (padding . 8))
+ score-markup-spacing = #'((basic-distance . 4) (minimum-distance . 3) (padding . 4))
+ score-system-spacing = #'((basic-distance . 0) (minimum-distance . 0) (padding . 0))
+ last-bottom-spacing = #'((basic-distance . 4) (minimum-distance . 2) (padding . 5))
+ tocTitleMarkup = \markup { }
+ tocItemMarkup = \markup \fill-line {
+ \fill-with-pattern #1.5 #CENTER .
+ \line {
+ \fromproperty #'toc:indent \fromproperty #'toc:text
+ }
+ \sans \fromproperty #'toc:page
+ }
+
+ oddHeaderMarkup = \markup {
+ \concat { \if \on-page #3 \oddhead }
+ \concat { \if \on-page #5 \oddhead }
+ \concat { \if \on-page #7 \oddhead }
+ \concat { \if \on-page #9 \oddhead }
+ \concat { \if \on-page #11 \oddhead }
+ \concat { \if \on-page #13 \oddhead }
+ \concat { \if \on-page #15 \oddhead }
+ \concat { \if \on-page #19 \oddhead }
+ \concat { \if \on-page #21 \oddhead }
+ \concat { \if \on-page #23 \oddhead }
+ \concat { \if \on-page #25 \oddhead }
+ \concat { \if \on-page #27 \oddhead }
+ \concat { \if \on-page #29 \oddhead }
+ \concat { \if \on-page #31 \oddhead }
+ \concat { \if \on-page #33 \oddhead }
+ \concat { \if \on-page #35 \oddhead }
+ \concat { \if \on-page #37 \oddhead }
+ \concat { \if \on-page #39 \oddhead }
+
+ }
+ evenHeaderMarkup = \markup {
+ \concat { \if \on-page #2 \evhead }
+ \concat { \if \on-page #4 \evhead }
+ \concat { \if \on-page #6 \evhead }
+ \concat { \if \on-page #8 \evhead }
+ \concat { \if \on-page #10 \evhead }
+ \concat { \if \on-page #12 \evhead }
+ \concat { \if \on-page #14 \evhead }
+ \concat { \if \on-page #16 \evhead }
+ \concat { \if \on-page #18 \evhead }
+ \concat { \if \on-page #20 \evhead }
+ \concat { \if \on-page #22 \evhead }
+ \concat { \if \on-page #24 \evhead }
+ \concat { \if \on-page #26 \evhead }
+ \concat { \if \on-page #28 \evhead }
+ \concat { \if \on-page #30 \evhead }
+ \concat { \if \on-page #32 \evhead }
+ \concat { \if \on-page #34 \evhead }
+ \concat { \if \on-page #36 \evhead }
+ \concat { \if \on-page #38 \evhead }
+ }
+ oddFooterMarkup = \markup {
+ \concat { \if \on-page #1 \fill-line { \null \xcr \null } }
+ \concat { \if \on-page #3 \oddfoot }
+ \concat { \if \on-page #5 \oddfoot }
+ \concat { \if \on-page #7 \oddfoot }
+ \concat { \if \on-page #9 \oddfoot }
+ \concat { \if \on-page #11 \oddfoot }
+ \concat { \if \on-page #13 \oddfoot }
+ \concat { \if \on-page #15 \oddfoot }
+ \concat { \if \on-page #19 \oddfoot }
+ \concat { \if \on-page #21 \oddfoot }
+ \concat { \if \on-page #23 \oddfoot }
+ \concat { \if \on-page #25 \oddfoot }
+ \concat { \if \on-page #27 \fill-line { \null \concat { \char ##x2767 " " \tiny \typewriter \longHash " " \char ##x2619 } \null } }
+ \concat { \if \on-page #29 \oddfoot }
+ \concat { \if \on-page #31 \oddfoot }
+ \concat { \if \on-page #33 \oddfoot }
+ \concat { \if \on-page #35 \oddfoot }
+ \concat { \if \on-page #37 \oddfoot }
+ \concat { \if \on-page #39 \oddfoot }
+ }
+ evenFooterMarkup = \markup {
+ \concat { \if \on-page #2 \evfoot }
+ \concat { \if \on-page #4 \evfoot }
+ \concat { \if \on-page #6 \evfoot }
+ \concat { \if \on-page #8 \evfoot }
+ \concat { \if \on-page #10 \evfoot }
+ \concat { \if \on-page #12 \evfoot }
+ \concat { \if \on-page #14 \evfoot }
+ \concat { \if \on-page #16 \evfoot }
+ \concat { \if \on-page #18 \evfoot }
+ \concat { \if \on-page #20 \evfoot }
+ \concat { \if \on-page #22 \evfoot }
+ \concat { \if \on-page #24 \evfoot }
+ \concat { \if \on-page #26 \evfoot }
+ \concat { \if \on-page #28 \evfoot }
+ \concat { \if \on-page #30 \evfoot }
+ \concat { \if \on-page #32 \evfoot }
+ \concat { \if \on-page #34 \evfoot }
+ \concat { \if \on-page #36 \evfoot }
+ \concat { \if \on-page #38 \evfoot }
+ }
+}
--- /dev/null
+\layout {
+ \context {
+ \Score
+ \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/14)
+ \override InstrumentName.self-alignment-X = 1
+ \override RehearsalMark.break-visibility = #begin-of-line-invisible
+ \override Hairpin.to-barline = ##f
+ \overrideTimeSignatureSettings 4/4 1/4 1,1,1,1 #'()
+ \overrideTimeSignatureSettings 3/4 1/4 1,1,1 #'()
+ \overrideTimeSignatureSettings 5/8 1/8 2,3 #'()
+ \override CenteredBarNumber.font-name = "classico"
+ \phrasingSlurDashPattern #0.5 #2.0
+ \override PhrasingSlur.thickness = 0.5
+ \override StaffSymbol.layer = #4
+ \override Stem.layer = #4
+ \override Beam.layer = #4
+ \override Hairpin.layer = #4
+ \override TimeSignature.layer = #2
+ \override Tie.layer = #1
+ \override TupletBracket.layer = #2
+ \override StringNumber.layer = #2
+ \override TextSpanner.layer = #3
+ \override NoteHead.layer = #4
+ \override Accidental.layer = #4
+ \override TimeSignature.whiteout = 2
+ \override TextScript.padding = 1
+ \override TextScript.layer = #4
+ \override TextScript.whiteout = 2
+ \override Fermata.outside-staff-priority = 200
+ \numericTimeSignature
+ \romanStringNumbers
+ \override TupletNumber.layer = 4
+ \override TupletNumber.font-shape = #'upright
+ centerBarNumbers = ##t
+ barNumberVisibility = #all-bar-numbers-visible
+ rehearsalMarkFormatter = #rounded-measure-number-mark
+ \override RehearsalMark.break-visibility = #(vector #f #t #t)
+ \override SectionLabel.break-visibility = #(vector #f #t #t)
+ \override CenteredBarNumber.stencil = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
+ \override CenteredBarNumberLineSpanner.direction = #DOWN
+ \remove Text_mark_engraver
+ \remove Mark_engraver
+ \remove Metronome_mark_engraver
+
+ %\override PaperColumn.show-horizontal-skylines = ##t
+ %\override NonMusicalPaperColumn.show-horizontal-skylines = ##t
+ %\override VerticalAxisGroup.show-vertical-skylines = ##t
+ %\override System.show-vertical-skylines = ##t
+ %\override PaperColumn.show-horizontal-skylines = ##t
+ %\override VerticalAlignment.show-vertical-skylines = ##t
+
+ }
+ \context {
+ \Staff
+ \consists Metronome_mark_engraver
+ \consists Text_mark_engraver
+ pedalSustainStyle = #'bracket
+ }
+ \context {
+ \OneStaff
+ \consists Instrument_name_engraver
+ \consists Time_signature_engraver
+ }
+ \context {
+ \Voice
+ }
+}
--- /dev/null
+\paper {
+ line-width = 120
+ first-page-number = -1
+ #(include-special-characters)
+ footnote-separator-markup = \markup { \left-column { \vspace #0.5 \draw-line #'(6 . 0) } }
+ print-page-number = ##f
+ #(set-paper-size "arch a")
+ print-all-headers = ##f
+ top-margin = 0.5\in
+ bottom-margin = 0.5\in
+ left-margin = 0.9\in
+ right-margin = 0.9\in
+ ragged-last = ##t
+ indent = 0.75\in
+ short-indent = 0\cm
+ #(define fonts (set-global-fonts #:music "scorlatti" #:brace "scorlatti" #:roman "Junicode" #:sans "sans"))
+ max-systems-per-page = #10
+ system-system-spacing = #'((basic-distance . 10) (minimum-distance . 8) (padding . 12))
+ score-system-spacing = #'((basic-distance . 2) (minimum-distance . 1) (padding . 0))
+ last-bottom-spacing = #'((basic-distance . 5) (minimum-distance . 5) (padding . 0))
+ tocTitleMarkup = \markup { }
+ tocItemMarkup = \markup \fill-line {
+ \fill-with-pattern #1.5 #CENTER .
+ \line {
+ \fromproperty #'toc:indent \fromproperty #'toc:text
+ }
+ \sans \fromproperty #'toc:page
+ }
+
+ oddHeaderMarkup = \markup {
+ \concat { \if \on-page #5 \oddhead }
+ \concat { \if \on-page #7 \oddhead }
+ \concat { \if \on-page #9 \oddhead }
+ \concat { \if \on-page #11 \oddhead }
+ \concat { \if \on-page #13 \oddhead }
+ \concat { \if \on-page #15 \oddhead }
+ \concat { \if \on-page #17 \oddhead }
+ \concat { \if \on-page #19 \oddhead }
+ \concat { \if \on-page #21 \oddhead }
+ \concat { \if \on-page #23 \oddhead }
+ \concat { \if \on-page #25 \oddhead }
+ \concat { \if \on-page #27 \oddhead }
+ \concat { \if \on-page #29 \oddhead }
+ \concat { \if \on-page #31 \oddhead }
+ \concat { \if \on-page #33 \oddhead }
+ \concat { \if \on-page #35 \oddhead }
+ \concat { \if \on-page #37 \oddhead }
+ \concat { \if \on-page #39 \oddhead }
+ \concat { \if \on-page #41 \oddhead }
+ \concat { \if \on-page #43 \oddhead }
+ \concat { \if \on-page #45 \oddhead }
+ \concat { \if \on-page #47 \oddhead }
+
+ }
+ evenHeaderMarkup = \markup {
+ \concat { \if \on-page #4 \evhead }
+ \concat { \if \on-page #6 \evhead }
+ \concat { \if \on-page #8 \evhead }
+ \concat { \if \on-page #10 \evhead }
+ \concat { \if \on-page #12 \evhead }
+ \concat { \if \on-page #14 \evhead }
+ \concat { \if \on-page #16 \evhead }
+ \concat { \if \on-page #18 \evhead }
+ \concat { \if \on-page #20 \evhead }
+ \concat { \if \on-page #22 \evhead }
+ \concat { \if \on-page #24 \evhead }
+ \concat { \if \on-page #26 \evhead }
+ \concat { \if \on-page #28 \evhead }
+ \concat { \if \on-page #30 \evhead }
+ \concat { \if \on-page #32 \evhead }
+ \concat { \if \on-page #34 \evhead }
+ \concat { \if \on-page #36 \evhead }
+ \concat { \if \on-page #38 \evhead }
+ \concat { \if \on-page #40 \evhead }
+ \concat { \if \on-page #42 \evhead }
+ \concat { \if \on-page #44 \evhead }
+ \concat { \if \on-page #46 \evhead }
+ }
+ oddFooterMarkup = \markup {
+ \concat { \if \on-page #3 \fill-line { \null \xcr \null } }
+ \concat { \if \on-page #5 \oddfoot }
+ \concat { \if \on-page #7 \oddfoot }
+ \concat { \if \on-page #9 \oddfoot }
+ \concat { \if \on-page #11 \oddfoot }
+ \concat { \if \on-page #13 \oddfoot }
+ \concat { \if \on-page #15 \oddfoot }
+ \concat { \if \on-page #17 \oddfoot }
+ \concat { \if \on-page #19 \oddfoot }
+ \concat { \if \on-page #21 \oddfoot }
+ \concat { \if \on-page #23 \oddfoot }
+ \concat { \if \on-page #25 \oddfoot }
+ \concat { \if \on-page #27 \oddfoot }
+ \concat { \if \on-page #29 \oddfoot }
+ \concat { \if \on-page #31 \oddfoot }
+ \concat { \if \on-page #33 \oddfoot }
+ \concat { \if \on-page #35 \oddfoot }
+ \concat { \if \on-page #37 \oddfoot }
+ \concat { \if \on-page #39 \oddfoot }
+ \concat { \if \on-page #41 \oddfoot }
+ \concat { \if \on-page #43 \oddfoot }
+ \concat { \if \on-page #45 \oddfoot }
+ \concat { \if \on-page #47 \oddfoot }
+ }
+ evenFooterMarkup = \markup {
+ \concat { \if \on-page #2 \evfoot }
+ \concat { \if \on-page #4 \evfoot }
+ \concat { \if \on-page #6 \evfoot }
+ \concat { \if \on-page #8 \evfoot }
+ \concat { \if \on-page #10 \evfoot }
+ \concat { \if \on-page #12 \evfoot }
+ \concat { \if \on-page #14 \evfoot }
+ \concat { \if \on-page #16 \evfoot }
+ \concat { \if \on-page #18 \evfoot }
+ \concat { \if \on-page #20 \evfoot }
+ \concat { \if \on-page #22 \evfoot }
+ \concat { \if \on-page #24 \evfoot }
+ \concat { \if \on-page #26 \evfoot }
+ \concat { \if \on-page #28 \evfoot }
+ \concat { \if \on-page #30 \evfoot }
+ \concat { \if \on-page #32 \evfoot }
+ \concat { \if \on-page #34 \evfoot }
+ \concat { \if \on-page #36 \evfoot }
+ \concat { \if \on-page #38 \evfoot }
+ \concat { \if \on-page #40 \evfoot }
+ \concat { \if \on-page #42 \evfoot }
+ \concat { \if \on-page #44 \evfoot }
+ \concat { \if \on-page #46 \evfoot }
+ \concat { \if \on-page #48 \fill-line { \null \concat { \char ##x2767 " " \tiny \typewriter \longHash " " \char ##x2619 } \null } }
+ }
+}
--- /dev/null
+ffsempre =
+#(make-dynamic-script
+ (markup
+ #:combine
+ #:transparent "f" "ff"
+ #:combine
+ #:transparent "f"
+ #:normal-text
+ #:italic "sempre" ))
+
+psempre =
+#(make-dynamic-script
+ (markup
+ "p"
+ #:normal-text
+ #:italic "sempre" ))
+
+ppsempre =
+#(make-dynamic-script
+ (markup
+ #:combine
+ #:transparent "f" "pp"
+ #:combine
+ #:transparent "f"
+ #:normal-text #:italic "sempre" ))
+
+ppsubito =
+#(make-dynamic-script
+ (markup
+ #:combine
+ #:transparent "f" "pp"
+ #:combine #:transparent "f"
+ #:normal-text
+ #:italic "subito" ))
+
+psubito =
+#(make-dynamic-script
+ (markup
+ #:combine
+ #:transparent "f" "p"
+ #:combine
+ #:transparent "f"
+ #:normal-text
+ #:italic "subito" ))
+
+niente =
+#(make-dynamic-script
+ (markup
+ (#:normal-text #:abs-fontsize 10 #:bold "n")))
+
+%spacing
+ds = #2.5
+sods = #3.4
+phds = #3.9
--- /dev/null
+pseudoIndents = % inline alternative to a new \score, also with right-indent
+#(define-music-function (name-tweaks left-indent right-indent)
+ ((markup-list? '()) number? number?)
+ (define (warn-stretched p1 p2) (ly:input-warning (*location*) (G_
+ " pseudoIndents ~s ~s is stretching staff; expect distorted layout") p1 p2))
+ (let* (
+ (narrowing (+ left-indent right-indent)) ; of staff implied by args
+
+ (set-staffsymbol! (lambda (staffsymbol-grob) ; change staff to new width
+ (let* (
+ (left-bound (ly:spanner-bound staffsymbol-grob LEFT))
+ (left-moment (ly:grob-property left-bound 'when))
+ (capo? (moment<=? left-moment ZERO-MOMENT)) ; in first system of score
+ (layout (ly:grob-layout staffsymbol-grob))
+ (lw (ly:output-def-lookup layout 'line-width)) ; debugging info
+ (indent (ly:output-def-lookup layout (if capo? 'indent 'short-indent)))
+ (old-stil (ly:staff-symbol::print staffsymbol-grob))
+ (staffsymbol-x-ext (ly:stencil-extent old-stil X))
+ ;; >=2.19.16's first system has old-stil already narrowed [2]
+ ;; compensate for this (ie being not pristine) when calculating
+ ;; - old leftmost-x (its value is needed when setting so-called 'width)
+ ;; - the new width and position (via local variable narrowing_)
+ (ss-t (ly:staff-symbol-line-thickness staffsymbol-grob))
+ (pristine? (<= 0 (car staffsymbol-x-ext) ss-t)) ; would expect half
+ (leftmost-x (+ indent (if pristine? 0 narrowing)))
+ (narrowing_ (if pristine? narrowing 0)) ; uses 0 if already narrowed
+ (old-width (+ (interval-length staffsymbol-x-ext) ss-t))
+ (new-width (- old-width narrowing_))
+ (new-rightmost-x (+ leftmost-x new-width)) ; and set! this immediately
+ (junk (ly:grob-set-property! staffsymbol-grob 'width new-rightmost-x))
+ (in-situ-stil (ly:staff-symbol::print staffsymbol-grob))
+ (new-stil (ly:stencil-translate-axis in-situ-stil narrowing_ X))
+ ;(new-stil (stencil-with-color new-stil red)) ; for when debugging
+ (new-x-ext (ly:stencil-extent new-stil X)))
+ (ly:grob-set-property! staffsymbol-grob 'stencil new-stil)
+ (ly:grob-set-property! staffsymbol-grob 'X-extent new-x-ext)
+ )))
+
+ (set-X-offset! (lambda (margin-grob) ; move grob across to line start
+ (let* (
+ (old (ly:grob-property-data margin-grob 'X-offset))
+ (new (lambda (grob) (+ (if (procedure? old) (old grob) old) narrowing))))
+ (ly:grob-set-property! margin-grob 'X-offset new))))
+
+ (tweak-text! (lambda (i-name-grob mkup) ; tweak both instrumentname texts
+ (if (and (markup? mkup) (not (string=? (markup->string mkup) "*")))
+ (begin
+ (ly:grob-set-property! i-name-grob 'long-text mkup)
+ (ly:grob-set-property! i-name-grob 'text mkup)
+ )))) ; else retain existing text
+
+ (install-narrowing (lambda (leftedge-grob) ; on staves, + adapt left margin
+ (let* (
+ (sys (ly:grob-system leftedge-grob))
+ (all-grobs (ly:grob-array->list (ly:grob-object sys 'all-elements)))
+ (grobs-named (lambda (name)
+ (filter (lambda (x) (eq? name (grob::name x))) all-grobs)))
+ (first-leftedge-grob (list-ref (grobs-named 'LeftEdge) 0))
+ (relsys-x-of (lambda (g) (ly:grob-relative-coordinate g sys X)))
+ (leftedge-x (relsys-x-of first-leftedge-grob))
+ (leftedged? (lambda (g) (= (relsys-x-of g) leftedge-x)))
+ (leftedged-ss (filter leftedged? (grobs-named 'StaffSymbol))))
+ (if (eq? leftedge-grob first-leftedge-grob) ; ignore other leftedges [1]
+ (begin
+ (for-each set-staffsymbol! leftedged-ss)
+ (for-each set-X-offset! (grobs-named 'SystemStartBar))
+ (for-each set-X-offset! (grobs-named 'InstrumentName))
+ (for-each tweak-text! (grobs-named 'InstrumentName) name-tweaks)
+ ))))))
+
+ (if (negative? narrowing) (warn-stretched left-indent right-indent))
+ #{ % and continue anyway
+ % ensure that these overrides are applied only at begin-of-line
+ \break % (but this does not exclude unsupported multiple application)
+ % give the spacing engine notice regarding the loss of width for music
+ \once \override Score.LeftEdge.X-extent = #(cons narrowing narrowing)
+ % discard line start region of staff and reassemble left-margin elements
+ \once \override Score.LeftEdge.after-line-breaking = #install-narrowing
+ % shift the system to partition the narrowing between left and right
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ .X-offset #(- right-indent)
+ % prevent a leftmost barnumber entering a stretched staff
+ \once \override Score.BarNumber.horizon-padding = #(max 1 (- 1 narrowing))
+ #}))
+
+pseudoIndent = % for changing just left-indent
+#(define-music-function (name-tweaks left-indent)
+ ((markup-list? '()) number?)
+ #{
+ \pseudoIndents $name-tweaks $left-indent 0
+ #})
--- /dev/null
+\include "dynamics.ly"
+\include "formatting.ly"
+\include "notes.ly"
+\include "spanners.ly"
+\include "text.ly"
+\include "matter.ly"
--- /dev/null
+xumbel =
+\markup {
+ \center-column {
+ \path #0.1
+ #'(
+ (moveto 0 0)
+ (curveto 1 0.3 3.6 3 4.2 1.6)
+ (moveto 0 0)
+ (curveto -1 0.3 -3.6 3 -4.2 1.6)
+ (moveto 0 0)
+ (curveto 0.9 0.3 2.9 3 3.5 1.7)
+ (moveto 0 0)
+ (curveto -0.9 0.3 -2.9 3 -3.5 1.7)
+ (moveto 0 0)
+ (curveto 0.8 0.3 2.2 3 2.8 1.8)
+ (moveto 0 0)
+ (curveto -0.8 0.3 -2.2 3 -2.8 1.8)
+ (moveto 0 0)
+ (curveto 0.6 0.3 1.5 3 2.1 1.9)
+ (moveto 0 0)
+ (curveto -0.6 0.3 -1.5 3 -2.1 1.9)
+ (moveto 0 0)
+ (curveto 0.4 0.3 0.8 3 1.4 2)
+ (moveto 0 0)
+ (curveto -0.4 0.3 -0.8 3 -1.4 2)
+ (moveto 0 0)
+ (curveto 0.2 0.3 0.5 3 0.7 2.1)
+ (moveto 0 0)
+ (curveto -0.2 0.3 -0.5 3 -0.7 2.1)
+ (moveto 0 0)
+ (lineto 0 2.2)
+ )
+ \vspace #-0.035
+ \override #'(height . 0.25) \draw-squiggle-line #1 #'(0 . 5) ##f
+ \vspace #-0.275
+ }
+}
+
+#(define (outside-cover-markuplist bottom-space)
+ #{
+ \markuplist {
+ \fill-line {
+ \line { \null }
+ \center-column { \line { \with-url #"https://newer.systems" \fontsize #1 \hbracket \sans \bold " https://newer.systems " } }
+ \line { \null }
+ \line { \null }
+ \line { \null }
+ \line { \null }
+ }
+ \fill-line {
+ \line { \null }
+ \center-column { \line { \null } }
+ \right-column {
+ \vspace #15
+ \line { \fontsize #8 \bold \underline \xtitle }
+ \line { \fontsize #3 \sans \xcomp }
+ \vspace #3
+ \line { \fontsize #2 \sans \concat { \xsub } }
+ }
+ }
+ \vspace #bottom-space
+ \fill-line {
+ \line { \null }
+ \line { \null }
+ \line { \null }
+ \line { \null }
+ \center-column { \xumbel \vspace #0.3 \line { \fontsize #1 \hbracket \sans \bold " umbel press " } }
+ \line { \null }
+ }
+ }
+ #})
+
+#(define (inside-cover-markuplist)
+ #{
+ \markuplist {
+ \fill-line {
+ \line { \null }
+ \center-column {
+ \vspace #10
+ \line { \hbracket \fontsize #10 \number \xyear }
+ \vspace #4
+ \line { \xcomp }
+ \vspace #1
+ \line { \fontsize #5 \bold \xtitle }
+ \line { \italic \xsub }
+ \vspace #4
+ }
+ \right-column { \line { \null }
+ }
+ }
+ }
+ #})
+
+#(define (info-matter-markuplist)
+ #{
+ \markuplist {
+ \left-column {
+ \line { \bold \xtitle \concat { " [" \sans \xyear "]" } }
+ \line { \xinst " | " \xdur }
+ \line { \xcomp }
+ \vspace #25
+ }
+ }
+ #})
+
+#(define (git-matter-markuplist)
+ #{
+ \markuplist {
+ \right-column {
+ \vspace #-0.5
+ \right-column \fontsize #-1 {
+ \line { \fontsize #-2 \typewriter { \shortHash - \subject } }
+ \vspace #-0.4
+ \line { \fontsize #-2 \typewriter { \commitDate } }
+ \vspace #-0.4
+ \line { \fontsize #-2 \typewriter { \branchName } }
+ }
+ \vspace #2
+ }
+ }
+ #})
+
+#(define (rear-cover-markuplist top-space)
+ #{
+ \markuplist {
+ \fill-line {
+ \center-column {
+ \vspace #top-space
+ \xumbel
+ \vspace #0.3
+ \line { \with-url #"https://www.jwpepper.com/myscore/umbel-press" \fontsize #-3 \hbracket \sans \bold " https://www.jwpepper.com/myscore/umbel-press " }
+ }
+ }
+ }
+ #})
+
+#(define (toc-markuplist)
+ #{
+ \markuplist {
+ \left-column {
+ \override #'(line-width . 100)
+ \line { \hspace #100 }
+ \vspace #-1
+ \wordwrap { \char ##x10AF1 \hspace #0.5 \large \bold \sans "contents" }
+ }
+ \vspace #0.5
+ \left-column {
+ \override #'(line-width . 90)
+ \table-of-contents
+ }
+ \vspace #2.5
+ }
+ #})
+
+#(define (program-notes-markuplist notes-markup)
+ #{
+ \markuplist {
+ \left-column {
+ \override #'(line-width . 100)
+ \line { \hspace #100 }
+ \vspace #-1
+ \wordwrap { \char ##x10AF1 \hspace #0.5 \large \bold \sans "program notes" }
+ }
+ \vspace #0.5
+ \left-column {
+ \override #'(line-width . 90)
+ \justify { #notes-markup }
+ }
+ \vspace #2.5
+ }
+ #})
+
+#(define (performance-notes-markuplist notes-markup)
+ #{
+ \markuplist {
+ \left-column {
+ \override #'(line-width . 100)
+ \line { \hspace #100 }
+ \vspace #-1
+ \wordwrap { \char ##x10AF1 \hspace #0.5 \large \bold \sans "performance notes" }
+ }
+ #notes-markup
+ }
+ #})
+
+
+oddhead =
+\markup {
+ \fill-line {
+ \null
+ \center-column { \bold { \xcomp } " " }
+ \null
+ }
+}
+evhead =
+\markup {
+ \fill-line {
+ \null
+ \center-column { \bold { \xtitle } " " }
+ \null
+ }
+}
+oddfoot =
+\markup {
+ \fill-line {
+ \null
+ \center-column {
+ " "
+ \concat { \tiny \char ##x1F661 " " \sans \fromproperty #'page:page-number-string " " \tiny \char ##x1F663 }
+ }
+ \null
+ }
+}
+evfoot =
+\markup {
+ \fill-line {
+ \null
+ \center-column {
+ " "
+ \concat { \tiny \char ##x1F661 " " \sans \fromproperty #'page:page-number-string " " \tiny \char ##x1F663 }
+ }
+ \null
+ }
+}
--- /dev/null
+harm =
+\once \override Staff.NoteHead.style = #'harmonic-mixed
+
+glissandoSkipOn =
+{
+ \override NoteColumn.glissando-skip = ##t
+ \hide NoteHead
+ \override NoteHead.no-ledgers = ##t
+}
+
+glissandoSkipOff =
+{
+ \revert NoteColumn.glissando-skip
+ \undo \hide NoteHead
+ \revert NoteHead.no-ledgers
+}
+
+circle = \tweak NoteHead.stencil
+ #(lambda (grob)
+ (let* ((note (ly:note-head::print grob))
+ (combo-stencil (ly:stencil-add
+ note
+ (circle-stencil note 0.1 0.8))))
+ (ly:make-stencil (ly:stencil-expr combo-stencil)
+ (ly:stencil-extent note X)
+ (ly:stencil-extent note Y))))
+ \etc
+
+#(define (circular-arrow-script grob)
+ (let* ((circle
+ (ly:stencil-circle 0.7 0.12 #f))
+ (arrow
+ (ly:stencil-rotate
+ (ly:make-stencil
+ '((moveto 0 0)
+ (lineto 0.35 0.18)
+ (lineto 0.35 -0.18)
+ (closepath))
+ '(0 . 0) '(0 . 0))
+ (* pi 1.25))))
+ (ly:stencil-add
+ circle
+ (ly:stencil-translate arrow '(0.35 . 0.35)))))
+
+
+#(define (parenthesize-callback callback)
+ (define (parenthesize-stencil grob)
+ (let* ((fn (ly:grob-default-font grob))
+ (pclose (ly:font-get-glyph fn "accidentals.rightparen"))
+ (popen (ly:font-get-glyph fn "accidentals.leftparen"))
+ (subject (callback grob))
+ ;; get position of stem
+ (stem-pos (ly:grob-property grob 'stem-attachment))
+ ;; remember old size
+ (subject-dim-x (ly:stencil-extent subject X))
+ (subject-dim-y (ly:stencil-extent subject Y)))
+
+ ;; add parens
+ (set! subject
+ (ly:stencil-combine-at-edge
+ (ly:stencil-combine-at-edge subject X RIGHT pclose 0)
+ X LEFT popen 0))
+
+ ;; adjust stem position
+ (set! (ly:grob-property grob 'stem-attachment)
+ (cons (- (car stem-pos) 0.43) (cdr stem-pos)))
+
+ ;; adjust size
+ (ly:make-stencil
+ (ly:stencil-expr subject)
+ (interval-widen subject-dim-x 0.5)
+ subject-dim-y)))
+
+ parenthesize-stencil)
--- /dev/null
+timeSpanner =
+#(define-music-function (left) (string?)
+ #{
+ \once {
+ \override TextSpanner.staff-padding = 2
+ \override TextSpanner.outside-staff-priority = 1000
+ \override TextSpanner.style = #'dashed-line
+ \override TextSpanner.dash-period = 3
+ \override TextSpanner.dash-fraction = 0.25
+ \override TextSpanner.font-size = #1
+ \override TextSpanner.font-shape = #'upright
+ \override TextSpanner.bound-details.left.text = \markup { \magnify #1 \bold \roman $left }
+ \override TextSpanner.bound-details.left-broken.text = ##f
+ \override TextSpanner.bound-details.right-broken.text = ##f
+ \override TextSpanner.bound-details.right.padding = #-1
+ }
+ #})
+
+markSpanner =
+#(define-music-function (left right) (string? string?)
+ #{
+ \once {
+ \override TextSpanner.style = #'dashed-line
+ \override TextSpanner.outside-staff-priority = 550
+ \override TextSpanner.dash-period = 2
+ \override TextSpanner.dash-fraction = 0.5
+ \override TextSpanner.font-size = #0.25
+ \override TextSpanner.bound-details.left.text =
+ \markup { \general-align #Y #0 { $left \hspace #0.25 } }
+ \override TextSpanner.bound-details.right.text =
+ \markup { \general-align #Y #0 { \arrow-head #X #RIGHT ##f $right } }
+ \override TextSpanner.bound-details.left-broken.text = ##f
+ \override TextSpanner.bound-details.right-broken.text = ##f
+ \override TextSpanner.bound-details.right.padding = #1
+ }
+ #})
+
+stringNumberSpanner =
+#(define-music-function (StringNumber) (string?)
+ #{
+ \once {
+ \override TextSpanner.style = #'solid
+ \override TextSpanner.outside-staff-priority = 150
+ \override TextSpanner.font-size = #-3
+ \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
+ \override TextSpanner.bound-details.left.text = \markup { $StringNumber \hspace #0.25 }
+ \override TextSpanner.bound-details.right.text = \markup { \draw-line #'(0 . -1) }
+ \override TextSpanner.bound-details.right-broken.text = ##f
+ \override TextSpanner.avoid-slur = #'ignore
+ \override TextSpanner.bound-details.right.padding = #-2
+ }
+ #})
+
+sustainGradual =
+-\tweak edge-height #'(0 . 1)
+-\tweak self-alignment-Y #DOWN
+-\tweak style #'dashed-line
+-\tweak stencil
+#(lambda (grob)
+ (let* (
+ (sten (ly:piano-pedal-bracket::print grob))
+ (xex (ly:stencil-extent sten X))
+ (yex (ly:stencil-extent sten Y))
+ (cresc? (eqv? (ly:grob-property grob 'grow-direction) LEFT)))
+ (ly:line-interface::line grob
+ (car xex) (if cresc? (car yex) (cdr yex))
+ (cdr xex) (if cresc? (cdr yex) (car yex)))))
+\etc
+
+sustainGradualOn = -\sustainGradual \<
+sustainGradualOff = -\sustainGradual \>
--- /dev/null
+pizz = ^\markup { "pizz" }
+arco = ^\markup { "arco" }
+colLegno = ^\markup { "col legno" }
+conSord = ^\markup { "con sord." }
+senSord = ^\markup { "senza sord." }
+pont = ^\markup { \italic "sul pont." }
+tasto = ^\markup { \italic "sul tasto" }
+ord = ^\markup { \italic "ord." }
+flautando = ^\markup { \italic "flautando" }
+
+#(define (rounded-measure-number-mark mark context)
+ (let ((bar (ly:context-property context 'currentBarNumber)))
+ (markup
+ #:rounded-box
+ #:bold
+ #:sans
+ (number->string bar))))
--- /dev/null
+% root = ../string-quartet.ly
+celloMusic =
+\relative {
+ \set harmonicDots = ##t
+ \tag #'part { \compressEmptyMeasures }
+ \clef bass
+ r8. <c' f\harmonic>16~\ppsempre^\markup { "detached" } <c f\harmonic>8 <c g'\harmonic>8~ <c g'\harmonic>4~ <c g'\harmonic>8 <des aes'\harmonic>8~ |
+ <des aes'\harmonic>2~ <des aes'\harmonic>8 <ees aes\harmonic>4.~ |
+ <ees aes\harmonic>4 r4 r2 |
+ r8. <gis, cis\harmonic>16~ <gis cis\harmonic>2~ <gis cis\harmonic>8.
+ <gis dis'\harmonic>16~ <gis dis'\harmonic>8
+ <a e'\harmonic>8~ <a e'\harmonic>4
+ <b e\harmonic>2~ |
+ <b e\harmonic>2~ <b e\harmonic>4 r4 r4 |
+ \clef tenor
+ r8.
+ <fis' b\harmonic>16~ <fis b\harmonic>4~ <fis b\harmonic>8.
+ <fis cis'\harmonic>16~ <fis cis'\harmonic>4~ <fis cis'\harmonic>16
+ d8.~\flageolet\2
+ <d a'>2.~\flageolet\1 |
+ 1 r4 cis4~\mp\> |
+ cis8.\glissando d16~\p\< d2~ d8. a'16~ |
+ a8 bes8~ bes4~ bes8 \clef treble f'8->\mf f4~\> |
+ f2 \clef bass g,,,2~(\open\pp \tuplet 3/2 { g8 fis8 g8 } \tuplet 3/2 { fis8 g8 fis8 } g8 <g fis>8~ |
+ 8) r16 \clef tenor
+ g''16~->\mf g4~ g16 fis8.-> gis4~-> |
+ gis4 a2.->\laissezVibrer\pizz |
+ R1*6/4 \clef bass |
+ r8. gis,16~->\arco gis4~ gis8. a16~-> a4~ |
+ a4~ a8. e16~-> e8 f8~-> f4~ |
+ f2.~ f2 |
+ r8. des'16~-> des4~ des16 c8.-> ees4~-> |
+ ees2 d2~-> |
+ d2 r2 |
+ r8. ees,16~-> ees2~ ees8. d16\laissezVibrer\pizz |
+ r4 r16 b8.~->\arco b4~ b16 bes8.~-> |
+ bes2 r4 |
+ r8. <f' bes\harmonic>16~\p <f bes\harmonic>4~ <f bes\harmonic>8. <fis b\harmonic>16~\startTrillSpan^\markup { "trill harmonic" }
+ <fis b\harmonic>8\stopTrillSpan
+ <fis cis'\harmonic>8~ <fis cis'\harmonic>4
+ \after 4. \stopTrillSpan d'4.~\1\harmonic\startTrillSpan d8~\harmonic d4~\harmonic
+ d2\harmonic |
+ r8. <cis, fis\harmonic>16~\mp <cis fis\harmonic>8 d'8~\1\harmonic\startTrillSpan d2~\harmonic |
+ d8\harmonic <gis, cis\harmonic>4.\stopTrillSpan e'2\1\harmonic r8 e8(
+ gis,8.) g16~->\mf\< g4~ g16 d'8.~-> d4~ |
+ d16 ees8.~ ees2~ ees16 bes'8.(->\f |
+ g,8.)
+}
+\addQuote "cello" { \removeWithTag #'score \celloMusic }
+
+celloStaff =
+#(define-music-function (music) (ly:music?)
+ #{ \new Staff = "cello"
+ \with {
+ instrumentName = \markup { "cello " }
+ shortInstrumentName = \markup { "vc " }
+ \override DynamicLineSpanner.staff-padding = \sods
+ }
+ << $music >>
+ #})
--- /dev/null
+% root = ../string-quartet.ly
+tempoMap =
+\new Voice \with {
+ \consists Mark_engraver
+ \remove Clef_engraver
+}
+{
+ \tempo "Lontano" 4=64
+ \time 4/4 s1*5 |
+ \time 5/4 s1*5/4 |
+ \time 4/4 s1*2 |
+ \time 6/4 s1*6/4 |
+ \time 4/4 s1*2 |
+ \time 7/4 s1*7/4 |
+ \time 4/4 s1*2 |
+ \time 6/4 s1*6/4 |
+ \time 4/4 s1*2 |
+ \time 5/4 s1*5/4 |
+ \time 4/4 s1*5 |
+ \time 3/4 s1*3/4 |
+ \time 4/4 s1*2 |
+ \time 2/4 s1*2/4 |
+ \time 4/4 s1 |
+ \time 5/4 s1*5/4 |
+ \time 4/4 s1*3 |
+
+}
--- /dev/null
+% root = ../string-quartet.ly
+violaMusic =
+\relative {
+ \set harmonicDots = ##t
+ \tag #'part { \compressEmptyMeasures }
+ \clef alto
+ r8. <c' f\harmonic>16~\ppsempre^\markup { "detached" } <c f\harmonic>4~ <c f\harmonic>8. <c g'\harmonic>16~ <c g'\harmonic>4~ |
+ <c g'\harmonic>4~ <c g'\harmonic>8. <des aes'\harmonic>16~ <des aes'\harmonic>4~ <des aes'\harmonic>16 <ees aes\harmonic>8.~ |
+ <ees aes\harmonic>2 r2 |
+ r8. <gis, cis\harmonic>16~ <gis cis\harmonic>8 <gis dis'\harmonic>8~ <gis dis'\harmonic>4~ <gis dis'\harmonic>8 <a e'\harmonic>8~
+ <a e'\harmonic>2~ <a e'\harmonic>8 <b e\harmonic>4.~ |
+ <b e\harmonic>2~ <b e\harmonic>2. |
+ r8.
+ <fis' b\harmonic>16~ <fis b\harmonic>4~ <fis b\harmonic>16
+ <fis cis'\harmonic>8.~ <fis cis'\harmonic>4~ <fis cis'\harmonic>4~ <fis cis'\harmonic>16
+ <g d'\harmonic>8.~ <g d'\harmonic>4~ <g d'\harmonic>16
+ d'8.~\harmonic\1 |
+ d4\harmonic r4 r4 r2. |
+ r8.
+ g,16~\harmonic\2 g4~\harmonic g8.\harmonic
+ a16~\harmonic\2 a4~\harmonic a16\harmonic
+ <ees bes'\harmonic>8.
+ <f bes\harmonic>2. |
+ R1*7/4
+ r8.
+ g16~\mf g8 fis8\pizz\laissezVibrer r2 |
+ r8 gis8~\arco gis4 a2~ |
+ a1. |
+ r8. gis16~-> gis4~ gis16 a8.-> e4~-> |
+ e4 f2.\laissezVibrer\pizz |
+ r2 \tuplet 3/2 { r8 r8 a,8~(\<\arco } \tuplet 3/2 { a8\glissando f4\> } \tuplet 3/2 { f8)\! gis8(\<\glissando e8~\f } |
+ e8.) des16~-> des2~ des8. c16~-> |
+ c4~ c8. ees16~-> ees8 d'8~-> d4~ |
+ d4 r4 r2 |
+ r8. ees16~->\mf ees4~ ees16 c8.-> b4~-> |
+ b2 bes2~-> |
+ bes2. |
+ r8. <bes f'\harmonic>16~\p <bes f'\harmonic>4~ <bes f'\harmonic>8. <b fis'\harmonic>16~ <b fis'\harmonic>8 <cis fis\harmonic>8~\startTrillSpan^\markup { "trill harmonic" }
+ \after 4. \stopTrillSpan <cis fis\harmonic>2 r8 \clef treble a''4.~ |
+ a4 r4 \clef alto |
+ r8. <cis,, fis\harmonic>16~\mp <cis fis\harmonic>4~ <cis fis\harmonic>8. <g c\harmonic>16~\startTrillSpan
+ <g c\harmonic>8 <gis cis\harmonic>8~\stopTrillSpan
+ <gis cis\harmonic>4 d''2~\harmonic\1 d2\harmonic |
+ r8. c,16~\harmonic\3 c2~\harmonic c8.\harmonic g'16~\harmonic\2 |
+ g4~\harmonic g16\harmonic <ees aes\harmonic>8.\startTrillSpan <ees bes'\harmonic>2~\stopTrillSpan |
+ <ees bes'\harmonic>8.
+}
+
+violaStaff =
+#(define-music-function (music) (ly:music?)
+ #{
+ \new Staff = "viola"
+ \with {
+ instrumentName = \markup { "viola " }
+ shortInstrumentName = \markup { "vla " }
+ \override DynamicLineSpanner.staff-padding = \sods
+ }
+ << $music >>
+ #})
--- /dev/null
+% root = ../string-quartet.ly
+violinOneMusic =
+\relative {
+ \set harmonicDots = ##t
+ \tag #'part { \compressEmptyMeasures }
+ \clef treble
+ r8. <c' f\harmonic>16~\pp^\markup { "detached" } <c f\harmonic>4~ <c f\harmonic>4~ <c f\harmonic>8. <c g'\harmonic>16~ | %001-002
+ <c g'\harmonic>8 <des aes'\harmonic>8~ <des aes'\harmonic>4 <ees aes\harmonic>2 |
+ r2 r16 c'8.~(\tasto\< c8\glissando g'8~\mp\> |
+ g8.) gis16~\p gis4~ gis16 dis8.~ dis4~ |
+ dis16 e8. b'2.(~\< |
+ b2 <b fis>2.)\mp |
+ r8.
+ <fis, b\harmonic>16~\ppsempre <fis b\harmonic>2~ <fis b\harmonic>8.
+ <fis cis'\harmonic>16~ <fis cis'\harmonic>8
+ <g d'\harmonic>8~ <g d'\harmonic>4~ <g d'\harmonic>8
+ d'4.~\harmonic\2 |
+ d1.\harmonic |
+ r8.
+ g,16~\harmonic\3 g8\harmonic
+ a8~\harmonic\3 a4\harmonic
+ <ees bes'\harmonic>4~ <ees bes'\harmonic>2
+ <f bes\harmonic>2 |
+ R1*7/4
+ r8.
+ g16~\mf g4~ g8. fis16~ fis4~ |
+ fis4~ fis8. gis16~ gis8 a4.~ |
+ a2. r2.
+ r8. gis16~-> gis8 a8~-> a4~ a8 e8~-> |
+ e4 f2.~-> |
+ f2 r4 r2 |
+ r8. des16~-> des2~ des8. c16\laissezVibrer\pizz |
+ r4 r16 ees8.~->\arco ees4~ ees16 d8.~-> |
+ d1 |
+ r8. ees16~-> ees4 ees8. d16~-> d4~ |
+ d16 b8.~-> b2~ b16 bes8.\laissezVibrer\pizz |
+ R1*3/4 |
+ r8. f''16~\p\arco f8 fis8\laissezVibrer\pizz r2 |
+ r8 cis'4.\arco a2~ |
+ a2 |
+ r8. <cis,, fis\harmonic>16~\mp <cis fis\harmonic>8 a'8~\harmonic\3 a4\harmonic <cis, gis'\harmonic>4~ |
+ <cis gis'\harmonic>4
+ <d a\harmonic>2~\startTrillSpan
+ <d a\harmonic>2\stopTrillSpan
+ r8. <g c\harmonic>16~\mf <g c\harmonic>2~ <g c\harmonic>8. <d g\harmonic>16~\startTrillSpan |
+ <d g\harmonic>4~ <d g\harmonic>8.\stopTrillSpan <ees aes\harmonic>16~ <ees aes\harmonic>4~ <ees aes\harmonic>16 <ees bes'\harmonic>8.~ |
+ 8.
+
+}
+\addQuote "violin1" { \removeWithTag #'score \violinOneMusic }
+
+violinOneStaff =
+#(define-music-function (music) (ly:music?)
+ #{
+ \new Staff = "violin1"
+ \with {
+ instrumentName = \markup { "violin I " }
+ shortInstrumentName = \markup { "vl I " }
+ \override DynamicLineSpanner.staff-padding = \sods
+ }
+ << $music >>
+ #})
--- /dev/null
+% root = ../string-quartet.ly
+violinTwoMusic =
+\relative {
+ \set harmonicDots = ##t
+ \tag #'part { \compressEmptyMeasures }
+ \clef treble
+ r8. <c' f\harmonic>16~\ppsempre^\markup { "detached" } <c f\harmonic>4~ <c f\harmonic>16 <c g'\harmonic>8.~ <c g'\harmonic>4~ | %001
+ <c g'\harmonic>16 <des aes'\harmonic>8. <ees aes\harmonic>2.~ |
+ <ees aes\harmonic>1 |
+ r8. <gis, cis\harmonic>16~ <gis cis\harmonic>4~ <gis cis\harmonic>8. <gis dis'\harmonic>16~ <gis dis'\harmonic>4~ |
+ <gis dis'\harmonic>4~ <gis dis'\harmonic>8. <a e'\harmonic>16~ <a e'\harmonic>4~ <a e'\harmonic>16 <b e\harmonic>8.~ |
+ <b e\harmonic>4 r4 r2. |
+ r8.
+ <fis' b\harmonic>16~ <fis b\harmonic>8
+ <fis cis'\harmonic>8~ <fis cis'\harmonic>4
+ <g d'\harmonic>4~ <g d'\harmonic>2
+ d'2~\harmonic\2 |
+ d2.\harmonic r4 r2 |
+ r8.
+ g,16~\harmonic\3 g4~\harmonic g16\harmonic
+ a8.~\harmonic\3 a4~\harmonic a4~\harmonic a16\harmonic
+ <ees bes'\harmonic>8.~ <ees bes'\harmonic>4~ <ees bes'\harmonic>16
+ <f bes\harmonic>8. |
+ R1*7/4
+ r8.
+ g16~->\mf g8 fis8~-> fis4~ fis8 gis8~-> |
+ gis4 a2.~-> |
+ a4 r4 r4 r2. |
+ r8. gis16~-> gis8 a8\laissezVibrer\pizz r2 |
+ r8 e8~->\arco e4 f2~-> |
+ f2. r2 |
+ r8. des16~-> des4~ des8. c16~-> c4~ |
+ c16 ees8.~-> ees2~ ees16 d8.\laissezVibrer\pizz
+ R1 |
+ r8. ees16~-> ees2~ ees8. d16~-> |
+ d4~ d8. b16~-> b8 bes8~-> bes4~ |
+ bes8 r8 \tuplet 3/2 { d4(\glissando\> b'8~ } \tuplet 3/2 { b8) bes4~ } |
+ bes8.\glissando f16~\mp f8 fis8~ fis4\glissando cis'4~ |
+ cis4 a2.\harmonic\3 |
+ R1*2/4
+ r8. <cis, fis\harmonic>16~\mp <cis fis\harmonic>4~ <cis fis\harmonic>8. a'16~\harmonic\3 a8\harmonic <gis, cis\harmonic>8~ |
+ <gis cis\harmonic>2 r8 <e' a\harmonic>8~ <e a\harmonic>2
+ r8. <c g'\harmonic>16~\mf <c g'\harmonic>4~ <c g'\harmonic>16 <d g\harmonic>8.~\startTrillSpan <d g\harmonic>4~ |
+ <d g\harmonic>4~ <d g\harmonic>16\stopTrillSpan <ees aes\harmonic>8. <bes ees\harmonic>2~ | <bes ees\harmonic>8.
+}
+
+violinTwoStaff =
+#(define-music-function (music) (ly:music?)
+ #{
+ \new Staff = "violin2"
+ \with {
+ instrumentName = \markup { "violin II " }
+ shortInstrumentName = \markup { "vl II " }
+ \override DynamicLineSpanner.staff-padding = \sods
+ }
+ << $music >>
+ #})
--- /dev/null
+\version "2.24.4"
+
+\include "../general/info.ly"
+\include "../lib/load.ly"
+\include "../general/partPaper.ly"
+\include "../general/partLayout.ly"
+
+\include "../manuscripts/tempoMap.ly"
+\include "../manuscripts/violin1.ly"
+\include "../manuscripts/violin2.ly"
+\include "../manuscripts/viola.ly"
+\include "../manuscripts/cello.ly"
+
+#(define output-suffix "violinI")
+\book {
+ \bookpart {
+ \header {
+ title = \markup { \fontsize #1 \xtitle }
+ subtitle = \markup { \medium \italic \xsub }
+ composer = \xcomp
+ poet = \markup { "violin I" }
+ arranger = \markup { \tiny \typewriter { \shortHash - \branchName } }
+ }
+ \score {
+ <<
+ \violinOneStaff \compressMMRests << \removeWithTag #'score \tempoMap \removeWithTag #'score \violinOneMusic >>
+ >>
+ }
+ }
+}
+
+#(define output-suffix "violinII")
+\book {
+ \bookpart {
+ \header {
+ title = \markup { \fontsize #1 \xtitle }
+ subtitle = \markup { \medium \italic \xsub }
+ composer = \xcomp
+ poet = \markup { "violin II" }
+ arranger = \markup { \tiny \typewriter { \shortHash - \branchName } }
+ }
+ \score {
+ <<
+ \violinTwoStaff \compressMMRests << \removeWithTag #'score \tempoMap \removeWithTag #'score \violinTwoMusic >>
+ >>
+ }
+ }
+}
+
+#(define output-suffix "viola")
+\book {
+ \bookpart {
+ \header {
+ title = \markup { \fontsize #1 \xtitle }
+ subtitle = \markup { \medium \italic \xsub }
+ composer = \xcomp
+ poet = \markup { "viola" }
+ arranger = \markup { \tiny \typewriter { \shortHash - \branchName } }
+ }
+ \score {
+ <<
+ \violaStaff \compressMMRests << \removeWithTag #'score \tempoMap \removeWithTag #'score \violaMusic >>
+ >>
+ }
+ }
+}
+
+#(define output-suffix "cello")
+\book {
+ \bookpart {
+ \header {
+ title = \markup { \fontsize #1 \xtitle }
+ subtitle = \markup { \medium \italic \xsub }
+ composer = \xcomp
+ poet = \markup { "cello" }
+ arranger = \markup { \tiny \typewriter { \shortHash - \branchName } }
+ }
+ \score {
+ <<
+ \celloStaff \compressMMRests << \removeWithTag #'score \tempoMap \removeWithTag #'score \celloMusic >>
+ >>
+ }
+ }
+}
--- /dev/null
+\version "2.24.4"
+
+\include "general/info.ly"
+\include "lib/load.ly"
+\include "general/scorePaper.ly"
+\include "general/scoreLayout.ly"
+
+\include "manuscripts/tempoMap.ly"
+\include "manuscripts/violin1.ly"
+\include "manuscripts/violin2.ly"
+\include "manuscripts/viola.ly"
+\include "manuscripts/cello.ly"
+
+\book {
+ \markuplist #(outside-cover-markuplist 26.25)
+ \pageBreak
+ \markup { \vspace #5 }
+ \pageBreak
+ \markuplist #(inside-cover-markuplist)
+ \pageBreak
+ \markuplist { %Front Matter
+ \fill-line {
+ #(info-matter-markuplist)
+ \center-column {
+ \vspace #5
+ #(program-notes-markuplist #{ \programNotes #})
+ #(performance-notes-markuplist #{ \performanceNotes #})
+ \line { \char ##x2042 }
+ }
+ #(git-matter-markuplist)
+ }
+ }
+ \pageBreak
+ \bookpart {
+ \header {
+ dedication = \markup {
+ \center-column {
+ \small "Commissioned by Karen Ronald"
+ \vspace #-0.4
+ \small "for Margo Johnson on the occasion of her 60th birthday"
+ \vspace #0.4
+ }
+ }
+ title = \markup { \fontsize #1 \xtitle }
+ subtitle = \markup { \medium \italic \xsub }
+ composer = \xcomp
+ poet = \markup { transposed score }
+ arranger = \markup { \tiny \typewriter \shortHash }
+ }
+ \score {
+ <<
+ \new StaffGroup
+ <<
+ \violinOneStaff \removeWithTag #'part { << \tempoMap \killCues \violinOneMusic >> }
+ \violinTwoStaff \removeWithTag #'part { \killCues \violinTwoMusic }
+ \violaStaff \removeWithTag #'part { \killCues \violaMusic }
+ \celloStaff \removeWithTag #'part { \killCues \celloMusic }
+ >>
+ >>
+ %\midi { }
+ }
+ }
+ \pageBreak
+ \markuplist #(rear-cover-markuplist 33)
+}