From: Tucker Johnson Date: Fri, 9 Jan 2026 01:52:19 +0000 (-0500) Subject: init X-Git-Url: https://git.newer.systems/?a=commitdiff_plain;h=6443a607c3b9b515ae19e234c64d678b95bbe7e9;p=tiny-cartel.git init --- 6443a607c3b9b515ae19e234c64d678b95bbe7e9 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..45e83ea --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.pdf +*.ps +*.midi +*.mid +*.log +*~ +.DS_Store diff --git a/general/aliases.ly b/general/aliases.ly new file mode 100644 index 0000000..7bc46ea --- /dev/null +++ b/general/aliases.ly @@ -0,0 +1,127 @@ +U = \change Staff = "u" +D = \change Staff = "d" + +%spacing +ds = #2.5 +sods = #3.4 +phds = #3.9 + +%notation marks +lsp = \override TextSpanner.bound-details.left.text = "sp" +rsp = \override TextSpanner.bound-details.right.text = " sp" +lst = \override TextSpanner.bound-details.left.text = "st" +rst = \override TextSpanner.bound-details.right.text = " st" +lord = \override TextSpanner.bound-details.left.text = "ord" +rord = \override TextSpanner.bound-details.right.text = " ord" +rit = \override TextSpanner.bound-details.left.text = \markup { \upright "rit. " } +ritPoc = \override TextSpanner.bound-details.left.text = \markup { \upright "ritardando poco a poco " } +molRit = \override TextSpanner.bound-details.left.text = \markup { \upright "molto rit. " } +pocRit = \override TextSpanner.bound-details.left.text = \markup { \upright "poco rit. " } +ace = \override TextSpanner.bound-details.left.text = \markup { \upright "accel. " } +pocAce = \override TextSpanner.bound-details.left.text = \markup { \upright "poco accel. " } +acePoc = \override TextSpanner.bound-details.left.text = \markup { \upright "accelerando poco a poco " } +molAce = \override TextSpanner.bound-details.left.text = \markup { \upright "molto accel. " } + +sD = \stemDown +sU = \stemUp +sN = \stemNeutral + +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"))) + + +clusStemA = { + \once \override Stem.length = #11 +} + +clusStemB = { + \once \override NoteHead.X-offset = #4 + \once \override Stem.rotation = #'(-33 0 0) + \once \override Stem.length = #9.7 + \once \override Stem.extra-offset = #'(2.65 . 0.4) + \once \override Flag.style = #'no-flag + \once \override Accidental.extra-offset = #'(4 . -.1) +} + +clusStemC = { + \once \override NoteHead.X-offset = #4.8 + \once \override Stem.rotation = #'(-37 0 0) + \once \override Stem.length = #12.5 + \once \override Stem.extra-offset = #'(3.2 . 0.7) + \once \override Flag.style = #'no-flag + \once \override Accidental.extra-offset = #'(4.9 . -0.1) +} + +doubleSeparator = \markup { + \left-column { + \vcenter \combine + \beam #2.0 #0.3 #0.5 + \raise #0.7 \beam #2.0 #0.3 #0.5 + } + \hspace #98 + \right-column { + \vcenter \combine + \beam #2.0 #0.3 #0.5 + \raise #0.7 \beam #2.0 #0.3 #0.5 + } +} + + +buzzSymbol = \markup \path #0.25 +#(let ((x 3/6) (y 2/5)) + `((moveto ,x ,(- y)) (lineto ,(- x) ,(- y)) + (lineto ,x ,y) (lineto ,(- x) ,y))) + +applyBuzzSymbol = #(grob-transformer 'stencil + (lambda (grob orig) + (let ((dir (ly:grob-property grob 'direction)) + (sten (grob-interpret-markup grob buzzSymbol))) + (ly:stencil-add orig + (ly:stencil-translate-axis sten (* 0.1 dir) Y))))) + +applyBuzzuSymbol = #(grob-transformer 'stencil + (lambda (grob orig) + (let ((dir (ly:grob-property grob 'direction)) + (sten (grob-interpret-markup grob buzzSymbol))) + (ly:stencil-add orig + (ly:stencil-translate-axis sten (* 1.6 dir) Y))))) + +applyBuzzdSymbol = #(grob-transformer 'stencil + (lambda (grob orig) + (let ((dir (ly:grob-property grob 'direction)) + (sten (grob-interpret-markup grob buzzSymbol))) + (ly:stencil-add orig + (ly:stencil-translate-axis sten (* 1.6 dir) Y))))) + +applyBuzzddSymbol = #(grob-transformer 'stencil + (lambda (grob orig) + (let ((dir (ly:grob-property grob 'direction)) + (sten (grob-interpret-markup grob buzzSymbol))) + (ly:stencil-add orig + (ly:stencil-translate-axis sten (* 2.1 dir) Y))))) + + +buzz = \tweak Stem.stencil \applyBuzzSymbol \etc +buzzu = \tweak Stem.stencil \applyBuzzuSymbol \etc +buzzd = \tweak Stem.stencil \applyBuzzdSymbol \etc +buzzdd = \tweak Stem.stencil \applyBuzzddSymbol \etc diff --git a/general/info.ly b/general/info.ly new file mode 100644 index 0000000..62f9ad9 --- /dev/null +++ b/general/info.ly @@ -0,0 +1,10 @@ +xtitle = \markup { Tiny Cartel } +xsub = \markup { "for the Eastman Graduate Composers Sinfonietta" } +xcomp = \markup { Tucker Johnson } +xinst = \markup { Bb clarinet & sinfonietta } +xdur = \markup { \null } +xcr = \markup \tiny { Copyright Umbel Press \sans 2026. All Rights Reserved (ASCAP) } +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 } } diff --git a/general/partPaper.ly b/general/partPaper.ly new file mode 100644 index 0000000..b5728cf --- /dev/null +++ b/general/partPaper.ly @@ -0,0 +1,146 @@ +\paper { + line-width = 120 + #(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 + 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 = #8 + min-systems-per-page = #1 + 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 #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 #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 } + } +} + + +\layout { + \context { + \Score + \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 TextScript.padding = 1 + \override TextScript.layer = #4 + \numericTimeSignature + \override TupletNumber.layer = 4 + \override TupletNumber.font-shape = #'upright + } +} diff --git a/general/scorePaper.ly b/general/scorePaper.ly new file mode 100644 index 0000000..98ad282 --- /dev/null +++ b/general/scorePaper.ly @@ -0,0 +1,166 @@ +\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 "tabloid") + print-all-headers = ##f + top-margin = 0.5\in + bottom-margin = 0.5\in + left-margin = 0.9\in + right-margin = 0.9\in + 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 } + + } + 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 } + } + 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 \fill-line { \null \concat { \char ##x2767 " " \tiny \typewriter \longHash " " \char ##x2619 } \null } } + } + 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 } + } +} + + +\layout { + \context { + \Score + \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 TextScript.padding = 1 + \override TextScript.layer = #4 + \numericTimeSignature + \override TupletNumber.layer = 4 + \override TupletNumber.font-shape = #'upright + centerBarNumbers = ##t + barNumberVisibility = #all-bar-numbers-visible + \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 + } + \context { + \Staff + \consists Mark_engraver + \consists Text_mark_engraver + \consists Metronome_mark_engraver + } +} diff --git a/general/scripts.ly b/general/scripts.ly new file mode 100644 index 0000000..d305d57 --- /dev/null +++ b/general/scripts.ly @@ -0,0 +1,176 @@ + +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 + } + #}) + +to-internal-ts = +#(define-scheme-function + (top partial bottom) + (integer? rational? integer?) + (let + ((internal-ts + (+ (/ top bottom) (* partial (/ 1 bottom))))) + (cons (numerator internal-ts) (denominator internal-ts)))) + + +fractionalTime = +#(define-music-function + (top partial bottom) + (integer? rational? integer?) + #{ + \once \override Staff.TimeSignature.stencil = #ly:text-interface::print + \once \override Staff.TimeSignature.text = + \markup \override #'(baseline-skip . 0) \center-column \number { + \concat { #(number->string top) \magnify #0.5 \pad-x #-.2 { + \translate #'(0 . 1) #(number->string (numerator partial)) + \translate #'(-1 . 0) \override #'(thickness . 2) \draw-line #'(1 . 2) + \translate #'(0 . 0) #(number->string (denominator partial)) }} #(number->string bottom) + } + \time #(to-internal-ts top partial bottom) + #}) + +#(define (wide-cluster-stencil orig width) + (let* ((ext (ly:stencil-extent orig X)) + (current-width (- (cdr ext) (car ext))) + (scale (/ width current-width)) + (scaled (ly:stencil-scale orig scale 1.0)) + (shift (* -0.5 (- width current-width)))) + (ly:stencil-translate scaled (cons shift 0)))) + +wideCluster = +#(define-music-function (width music) (number? ly:music?) + #{ + \once \override ClusterSpanner.stencil = + #(lambda (grob) + ;; obtain the original stencil correctly + (let* ((proc (ly:grob-property grob 'stencil #f)) + (orig (if (procedure? proc) + (proc grob) + proc))) + (wide-cluster-stencil orig width))) + \makeClusters { #music } + #}) + + +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 + #}) + +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 \> diff --git a/general/umbel.ly b/general/umbel.ly new file mode 100644 index 0000000..506584b --- /dev/null +++ b/general/umbel.ly @@ -0,0 +1,34 @@ +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 + } + } diff --git a/manuscripts/bass.ly b/manuscripts/bass.ly new file mode 100644 index 0000000..f70c315 --- /dev/null +++ b/manuscripts/bass.ly @@ -0,0 +1,12 @@ +% root = ../tiny-cartel.ly + +bassMusic = \relative { + \clef bass + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*11 | %003-13 + \time 6/4 R1*6/4 | %014 +} + +bassStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "bass" \with { instrumentName = \markup { bass } shortInstrumentName = \markup { cb } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/bassClarinet.ly b/manuscripts/bassClarinet.ly new file mode 100644 index 0000000..6e637e1 --- /dev/null +++ b/manuscripts/bassClarinet.ly @@ -0,0 +1,12 @@ +% root = ../tiny-cartel.ly + +bassClarinetMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*11 | %003-13 + \time 6/4 R1*6/4 | %014 +} + +bassClarinetStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "bassClarinet" \with { instrumentName = \markup { bass clarinet } shortInstrumentName = \markup { b cl } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/bassoon.ly b/manuscripts/bassoon.ly new file mode 100644 index 0000000..828e3af --- /dev/null +++ b/manuscripts/bassoon.ly @@ -0,0 +1,21 @@ +% root = ../tiny-cartel.ly + +bassoonMusic = \relative { + \clef bass + \time 4/4 r8 f'8-.\f aes,8-. r8 r4 ges8-. r8 | %001 + \time 6/4 ees'8-. r8 r8 des8-. r4 r2. | %002 + \time 4/4 b8-. r8 r4 a8-.\> r8 c,8-. r8 | %003 + g'8-. r8 e8-.\mp d8-. r4 r8 ais'8-.\< | %004 + dis8-. gis,8-. r8 b8-.\f r2 | %005 + R1 | %006 + r8 d8-.\f g,8-. c8-. r2 | %007 + bes8-.\> ees,8-. f8-.\mp r8 r2 | %008 + b!8-.\f a8-. g8-. r8 r4 e'8-. r8 | %009 + cis8-. r8 r8 d8-. c8-. r8 r4 \clef tenor | %010 + ees8-. f8-. r8 ges8-. aes8-. r8 r4 | %011 + R1*2 | %012-13 + \time 6/4 R1*6/4 | %014 +} + +bassoonStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "bassoon" \with { instrumentName = \markup { bassoon } shortInstrumentName = \markup { bsn } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/cello.ly b/manuscripts/cello.ly new file mode 100644 index 0000000..ec34166 --- /dev/null +++ b/manuscripts/cello.ly @@ -0,0 +1,20 @@ +% root = ../tiny-cartel.ly + +celloMusic = \relative { + \clef bass + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*6 | %003-8 + b8-.^\markup { "pizz" } a8-. g4-. r2 | %009 + r4 r8 d'8-. c4-. r4 \clef tenor | %010 + r4 r8 ges'8-. aes4-. r4 | %011 + b!4-. r4 r2 | %012 + R1 \clef bass | %013 + << + { \time 6/4 1. | } %014 + { s1\p\< s4 s4\mf } + >> +} + +celloStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "cello" \with { instrumentName = \markup { cello } shortInstrumentName = \markup { vc } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/flute.ly b/manuscripts/flute.ly new file mode 100644 index 0000000..db45742 --- /dev/null +++ b/manuscripts/flute.ly @@ -0,0 +1,22 @@ +% root = ../tiny-cartel.ly + +fluteMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 r8 bes'8~->\mf\> bes2.~ | %003 + \after 2 \! bes2. f'4~->\mf\> | %004 + f1~ | %005 + f4\! \after 2 \! ges2.->\mf\> | %006 + \after 2 \! ees2.->\mf\> ees8(->\mf\> aes,8~ | %007 + aes1~ | %008 + aes4)\! r4 r2 | %009 + r2 r8 des8~\mf\> des4~ | %010 + des1~ | %011 + des1~ | %012 + des2~\p des8 c8~(\mf c4~ | %013 + \time 6/4 c8 g'8~ g2~\> \after 4. \p g2) r4 | %014 +} + +fluteStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "flute" \with { instrumentName = \markup { flute } shortInstrumentName = \markup { fl } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/horn.ly b/manuscripts/horn.ly new file mode 100644 index 0000000..d63707a --- /dev/null +++ b/manuscripts/horn.ly @@ -0,0 +1,14 @@ +% root = ../tiny-cartel.ly + +hornMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*5 | %003-7 + bes8-.\mf r8 r4 ges8-.\mp r8 r4 | %008 + R1*5 | %009-13 + \time 6/4 R1*6/4 | %014 +} + +hornStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "horn" \with { instrumentName = \markup { horn } shortInstrumentName = \markup { hn } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/oboe.ly b/manuscripts/oboe.ly new file mode 100644 index 0000000..38b3637 --- /dev/null +++ b/manuscripts/oboe.ly @@ -0,0 +1,16 @@ +% root = ../tiny-cartel.ly + +oboeMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*7 | %003-9 + r2 r8 des''8~\pp\< des4~ | %010 + des1~ | %011 + des1~ | %012 + des2~\mf des8 r8 r4 | %013 + \time 6/4 R1*6/4 | %014 +} + +oboeStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "oboe" \with { instrumentName = \markup { oboe } shortInstrumentName = \markup { ob } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/perc1.ly b/manuscripts/perc1.ly new file mode 100644 index 0000000..61c015c --- /dev/null +++ b/manuscripts/perc1.ly @@ -0,0 +1,19 @@ +% root = ../tiny-cartel.ly + +percOneMusic = \relative { + \set Staff.pedalSustainStyle = #'bracket + \clef treble + \time 4/4 <>^\markup { \bold \box "vibraphone" } R1 | %001 + \time 6/4 ees'8-+\f r8 r8 \once \omit Staff.PianoPedalBracket des8-+\sustainOn + \once \override Staff.PianoPedalBracket.bracket-flare = #'(10 . 0.5) + \after 2.. \! des1:32\niente\<\sustainOff\sustainOn^\markup { "gradually depress pedal" } | %002 + \time 4/4 r2\sustainOff a8-+ r8 r4 | %003 + g8-+ r8 r4 r2 | %004 + R1*7 | %005-11 + r4 c'8( d8~ d8 e8 a,8 g8~ | %012 + g4) r4 r4 f4~\sustainOn | + \time 6/4 f8 g'8~ g2~ g2 r4\sustainOff | %014 +} + +percOneStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "perc1" \with { instrumentName = \markup { percussion I } shortInstrumentName = \markup { pc I } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/perc2.ly b/manuscripts/perc2.ly new file mode 100644 index 0000000..679dd9b --- /dev/null +++ b/manuscripts/perc2.ly @@ -0,0 +1,22 @@ +% root = ../tiny-cartel.ly + +percTwoMusic = \relative { + \clef treble + \time 4/4 <>^\markup { \bold \box "marimba" } R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 b8->\f bes'8:32~\niente\< bes2.:32~ | %003 + \after 2 \mf bes2.:32 f'4:32~\niente\< | %004 + f1:32~ | %005 + f4:32\mf \after 2 \mf ges2.:32\niente\< | %006 + ees2.:32~\niente\< ees8:32\mf aes,8:32~\niente\< | %007 + aes1:32~ | %008 + aes4:32\mf r4 r2 | %009 + r2 r8 des8:32~\niente\< des4:32~ | %010 + des1:32~ | %011 + des1:32~ | %012 + des2:32~\mp des8:32 c8 f,4:32~ | %013 + f8:32 8:32~ 2:32~ 2:32 r4 | %014 +} + +percTwoStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "perc2" \with { instrumentName = \markup { percussion II } shortInstrumentName = \markup { pc II } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/pianoDown.ly b/manuscripts/pianoDown.ly new file mode 100644 index 0000000..9770353 --- /dev/null +++ b/manuscripts/pianoDown.ly @@ -0,0 +1,11 @@ +% root = ../tiny-cartel.ly + +pianoDownMusic = \relative { + \clef bass + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 b8-.^\mp^\< r8 r4 r4 c,8-. r8 | %003 + r4 e8-.\f d8-. r2 | %004 + \time 4/4 R1*9 | %005-13 + \time 6/4 R1*6/4 | %014 +} diff --git a/manuscripts/pianoUp.ly b/manuscripts/pianoUp.ly new file mode 100644 index 0000000..3510e36 --- /dev/null +++ b/manuscripts/pianoUp.ly @@ -0,0 +1,14 @@ +% root = ../tiny-cartel.ly + +pianoUpMusic = \relative { + \clef bass + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 \makeClusters 1~^\markup { "mute strings inside piano" } | %003 + \makeClusters { 4.~ 8~ 8 } s4. | %004 + \time 4/4 R1*9 | %005-13 + \time 6/4 R1*6/4 | %014 +} + +pianoStaff = +#(define-music-function (up down) (ly:music? ly:music?) #{ \new GrandStaff = "piano" \with { instrumentName = \markup { piano } shortInstrumentName = \markup { pno } \override DynamicLineSpanner.staff-padding = \phds } << \new Staff = "u" \with { \consists "Merge_rests_engraver" } { $up } \new Staff = "d" \with { \consists "Merge_rests_engraver" } { $down } >> #}) diff --git a/manuscripts/tempoMap.ly b/manuscripts/tempoMap.ly new file mode 100644 index 0000000..1e45ef3 --- /dev/null +++ b/manuscripts/tempoMap.ly @@ -0,0 +1,19 @@ +% root = ../tiny-cartel.ly + +tempoMap = \relative { + \tempo "Allegro energico" 4=208 + \time 4/4 s1 | %001 + \time 6/4 s1*6/4 | %002 + \time 4/4 s1 | %003 + s1 | %004 + s1 | %005 + s1 | %006 + s1 | %007 + s1 | %008 + s1 | %009 + s1 | %010 + s1 | %011 + s1 | %012 + s1 | %013 + \time 6/4 s1*6/4 | %014 +} diff --git a/manuscripts/trombone.ly b/manuscripts/trombone.ly new file mode 100644 index 0000000..008dd67 --- /dev/null +++ b/manuscripts/trombone.ly @@ -0,0 +1,17 @@ +% root = ../tiny-cartel.ly + +tromboneMusic = \relative { + \clef bass + \time 4/4 <>^"take mute" R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*2 | %003-4 + r2 r4 r8 a8-.\mf |%005 + r2 r8 e'8-. r4 | %006 + R1 | %007 + r4 f,8-.\> r8 ges8-.\mp r8 r4 | %008 + R1*5 | %009-13 + \time 6/4 R1*6/4 | %014 +} + +tromboneStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "trombone" \with { instrumentName = \markup { trombone } shortInstrumentName = \markup { tbn } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/trumpet.ly b/manuscripts/trumpet.ly new file mode 100644 index 0000000..9e6d3c4 --- /dev/null +++ b/manuscripts/trumpet.ly @@ -0,0 +1,12 @@ +% root = ../tiny-cartel.ly + +trumpetMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*11 | %003-13 + \time 6/4 R1*6/4 | %014 +} + +trumpetStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "trumpet" \with { instrumentName = \markup { trumpet } shortInstrumentName = \markup { tpt } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/viola.ly b/manuscripts/viola.ly new file mode 100644 index 0000000..04da1f1 --- /dev/null +++ b/manuscripts/viola.ly @@ -0,0 +1,17 @@ +% root = ../tiny-cartel.ly + +violaMusic = \relative { + \clef alto + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*6 | %003-8 + r2 r4 e'4-.^\markup { "pizz" } | %009 + cis4-. r4 r2 | %010 + ees8-. f4-. ges8-. aes4-. r4 | %011 + b!4-. r4 r2 | %012 + R1 | %013 + \time 6/4 r4 r4 4~\p\<^\markup { "arco" } \after 2 \mf 2. | %014 +} + +violaStaff = +#(define-music-function (music) (ly:music?) #{ \new Staff = "viola" \with { instrumentName = \markup { viola } shortInstrumentName = \markup { vla } \override DynamicLineSpanner.staff-padding = \sods } << $music >> #}) diff --git a/manuscripts/violin1.ly b/manuscripts/violin1.ly new file mode 100644 index 0000000..ee84368 --- /dev/null +++ b/manuscripts/violin1.ly @@ -0,0 +1,15 @@ +% root = ../tiny-cartel.ly + +violinOneMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*8 | %003-10 + r2 r4 ais'4(^\markup { "mute" } | %011 + b4-.) c8( d8~ d8 e8 a,8 g8~ | %012 + g4.) ges8~( ges4 f4~ | %013 + \time 6/4 f1~ f4) r4 | %014 +} + +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 >> #}) diff --git a/manuscripts/violin2.ly b/manuscripts/violin2.ly new file mode 100644 index 0000000..a90bd9b --- /dev/null +++ b/manuscripts/violin2.ly @@ -0,0 +1,15 @@ +% root = ../tiny-cartel.ly + +violinTwoMusic = \relative { + \clef treble + \time 4/4 R1 | %001 + \time 6/4 R1*6/4 | %002 + \time 4/4 R1*8 | %003-10 + r2 r4 ais'4(^\markup { "mute" } | %011 + b4-.) c8( d8~ d8 e8 a,8 g8~ | %012 + g4.) ges8~( ges4 f4~ | %013 + \time 6/4 f1~ f4) r4 | %014 +} + +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 >> #}) diff --git a/parts.ly b/parts.ly new file mode 100644 index 0000000..e4665fd --- /dev/null +++ b/parts.ly @@ -0,0 +1,179 @@ +\version "2.24.3" + +\include "general/info.ly" +\include "general/aliases.ly" +\include "general/scripts.ly" +\include "general/umbel.ly" +\include "general/partPaper.ly" +clarinetFont = #0 +clarinetMagstep = #(magstep 0) + +\book { + + \bookpart { + \header { + title = \markup { \fontsize #1 \xtitle } + subtitle = \markup { \medium \italic \xsub } + composer = \xcomp + poet = \markup { \xinst } + piece = \markup { \bold "I. " } + arranger = \markup { \tiny \typewriter { \shortHash - \branchName } } + } + \tocItem \markup { "I. " } + \score { + << + \include "manuscripts/I-clarinet.ly" + >> + %\midi { } + \layout { + \context { + \Score + \remove Mark_engraver + \remove Text_mark_engraver + \override RehearsalMark.break-visibility = #begin-of-line-invisible + \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4) + \override Hairpin.to-barline = ##f + \override VerticalAxisGroup.default-staff-staff-spacing = + #'((basic-distance . 4) + (minimum-distance . 2) + (padding . 4) + (stretchability . 0)) + } + \context { + \Staff + \remove Instrument_name_engraver + ottavationMarkups = #ottavation-ordinals + } + } + } + } + + \pageBreak + \markuplist { + \fill-line { + \line { \null } + \line { \vspace #20 + \huge "page blank to facilitate page turns" + } + \line { \null } + } + } + \pageBreak + + \bookpart { + \header { + piece = \markup { \bold "II. " } + } + \tocItem \markup { "II. " } + \score { + << + \include "manuscripts/II-clarinet.ly" + >> + %\midi { } + \layout { + \context { + \Score + \remove Mark_engraver + \remove Text_mark_engraver + \override RehearsalMark.break-visibility = #begin-of-line-invisible + \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4) + \override Hairpin.to-barline = ##f + \override VerticalAxisGroup.default-staff-staff-spacing = + #'((basic-distance . 4) + (minimum-distance . 2) + (padding . 4) + (stretchability . 0)) + + } + \context { + \Staff + \remove Instrument_name_engraver + ottavationMarkups = #ottavation-ordinals + } + } + } + } + + \bookpart { + \tocItem \markup { "III." \bold "Lento, poco rubato" \parenthesize \italic "to Amber Lucas" } + \score { + \header { + piece = \markup { \bold "III. " \parenthesize \italic "to Amber Lucas" } + } + << + \include "manuscripts/III-clarinet.ly" + >> + %\midi { } + \layout { + \context { + \Score + \remove Mark_engraver + \remove Text_mark_engraver + \remove Tempo_mark_engraver + \override RehearsalMark.break-visibility = #begin-of-line-invisible + \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4) + \override Hairpin.to-barline = ##f + \override VerticalAxisGroup.default-staff-staff-spacing = + #'((basic-distance . 4) + (minimum-distance . 2) + (padding . 4) + (stretchability . 0)) + } + \context { + \Staff + \remove Instrument_name_engraver + ottavationMarkups = #ottavation-ordinals + } + } + } + } + + \pageBreak + \markuplist { + \fill-line { + \line { \null } + \line { \vspace #20 + \huge "page blank to facilitate page turns" + } + \line { \null } + } + } + \pageBreak + + \bookpart { + \tocItem \markup { "IV. " } + \score { + \header { + piece = \markup { \bold "IV." } + } + << + \include "manuscripts/IV-clarinet.ly" + >> + %\midi { } + \layout { + \context { + \Score + \remove Text_mark_engraver + \remove Mark_engraver + \override TextSpanner.bound-details.left-broken.text = " " + \override RehearsalMark.break-visibility = #begin-of-line-invisible + \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4) + \override Hairpin.to-barline = ##f + \override Stem.stemlet-length = #0.75 + \override VerticalAxisGroup.default-staff-staff-spacing = + #'((basic-distance . 4) + (minimum-distance . 2) + (padding . 4) + (stretchability . 0)) + + } + \context { + \Staff + \remove Instrument_name_engraver + \consists Mark_engraver + ottavationMarkups = #ottavation-ordinals + } + } + } + } +} diff --git a/tiny-cartel.ly b/tiny-cartel.ly new file mode 100644 index 0000000..7e33164 --- /dev/null +++ b/tiny-cartel.ly @@ -0,0 +1,232 @@ +\version "2.24.4" + +\include "general/info.ly" +\include "general/aliases.ly" +\include "general/scripts.ly" +\include "general/umbel.ly" +\include "general/scorePaper.ly" + +\include "manuscripts/tempoMap.ly" +\include "manuscripts/flute.ly" +\include "manuscripts/oboe.ly" +\include "manuscripts/bassClarinet.ly" +\include "manuscripts/bassoon.ly" +\include "manuscripts/horn.ly" +\include "manuscripts/trumpet.ly" +\include "manuscripts/trombone.ly" +\include "manuscripts/perc1.ly" +\include "manuscripts/perc2.ly" +\include "manuscripts/pianoUp.ly" +\include "manuscripts/pianoDown.ly" +\include "manuscripts/violin1.ly" +\include "manuscripts/violin2.ly" +\include "manuscripts/viola.ly" +\include "manuscripts/cello.ly" +\include "manuscripts/bass.ly" + +\book { + + \markuplist { %Outside Cover + \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 #25 + \line { \fontsize #8 \bold \underline \xtitle } + \vspace #-0.1 + \line { \fontsize #3 \sans \xcomp } + \vspace #3 + \line { \fontsize #2 \sans \concat { "for " \xinst } } + } + } + \vspace #40.5 + \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 } + } + } + + \pageBreak + \markup { \vspace #5 } + + \pageBreak + \markuplist { %Inside Cover + \fill-line { + \line { \null } + \center-column { + \vspace #10 + \line { \hbracket \fontsize #10 \number 2026 } + \vspace #4 + \line { \xcomp } + \vspace #1 + \line { \fontsize #5 \bold \xtitle } + \line { \italic \xsub } + \vspace #4 + } + \right-column { + \line { \null } + } + } + } + + \pageBreak + \markuplist { %Front Matter + \fill-line { + \left-column { + \line { \bold \xtitle " [2026]" } + \line { \xinst " | " \sans "~10" minutes } + \line { \xcomp } + \vspace #25 + } + \center-column { + \vspace #5 + \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 + \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 { + } + } + \vspace #2.5 + \left-column { + \override #'(line-width . 100) + \line { \hspace #100 } + \vspace #-1 + \wordwrap { \char ##x10AF1 \hspace #0.5 \large \bold \sans "performance notes" } + \vspace #0.5 + \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. + } + } + \vspace #2.5 + \line { \char ##x2042 } + } + + \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 + } + } + } + + \pageBreak + + \bookpart { + \header { + title = \markup { \fontsize #1 \xtitle } + subtitle = \markup { \medium \italic \xsub } + composer = \xcomp + poet = \markup { transposed score } + } + \score { + << + \new StaffGroup + << + \fluteStaff << \tempoMap \fluteMusic >> + \oboeStaff \oboeMusic + \bassClarinetStaff \bassClarinetMusic + \bassoonStaff \bassoonMusic + >> + \new StaffGroup + << + \hornStaff \hornMusic + \trumpetStaff \trumpetMusic + \tromboneStaff \tromboneMusic + >> + \new StaffGroup + << + \percOneStaff \percOneMusic + \percTwoStaff \percTwoMusic + >> + \pianoStaff \pianoUpMusic \pianoDownMusic + \new StaffGroup + << + \violinOneStaff << \tempoMap \violinOneMusic >> + \violinTwoStaff \violinTwoMusic + \violaStaff \violaMusic + \celloStaff \celloMusic + \bassStaff \bassMusic + >> + >> + } + } + \pageBreak + \markup { \vspace #5 } + \pageBreak + \markup { \vspace #5 } + \pageBreak + \markup { + \fill-line { + \center-column { + \vspace #24 \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 " } + } + } + } +}