From d5fafddf6acc247b39ce4f2828ed5b9139f341bf Mon Sep 17 00:00:00 2001 From: Tucker Johnson Date: Fri, 14 Mar 2025 17:18:33 -0400 Subject: [PATCH] init --- .gitignore | 7 ++ cherryBlossoms.ly | 244 ++++++++++++++++++++++++++++++++++++ general/aliases.ly | 63 ++++++++++ general/info.ly | 10 ++ general/scripts.ly | 71 +++++++++++ general/umbel.ly | 34 +++++ manuscripts/bassTrombone.ly | 17 +++ manuscripts/horn.ly | 17 +++ manuscripts/trombone.ly | 17 +++ manuscripts/trumpetI.ly | 19 +++ manuscripts/trumpetII.ly | 17 +++ 11 files changed, 516 insertions(+) create mode 100644 .gitignore create mode 100644 cherryBlossoms.ly create mode 100644 general/aliases.ly create mode 100644 general/info.ly create mode 100644 general/scripts.ly create mode 100644 general/umbel.ly create mode 100644 manuscripts/bassTrombone.ly create mode 100644 manuscripts/horn.ly create mode 100644 manuscripts/trombone.ly create mode 100644 manuscripts/trumpetI.ly create mode 100644 manuscripts/trumpetII.ly 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/cherryBlossoms.ly b/cherryBlossoms.ly new file mode 100644 index 0000000..4cae94d --- /dev/null +++ b/cherryBlossoms.ly @@ -0,0 +1,244 @@ +\version "2.24.4" + +\include "general/info.ly" +\include "general/aliases.ly" +\include "general/scripts.ly" +\include "general/umbel.ly" + +\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 + %ragged-last = ##t + 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 "classico")) + 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)) + oddHeaderMarkup = \markup { + \concat { \if \on-page #5 \oddhead } + \concat { \if \on-page #7 \evhead } + } + evenHeaderMarkup = \markup { + \concat { \if \on-page #4 \evhead } + \concat { \if \on-page #6 \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 } + } + 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 \fill-line { \null \concat { \char ##x2767 " " \tiny \typewriter \longHash " " \char ##x2619 } \null } } + } + +} + +\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 #15 + \line { \fontsize #8 \bold \underline \xtitle } + \vspace #-0.1 + \line { \fontsize #3 \sans \xcomp } + \vspace #3 + \line { \fontsize #2 \sans \concat { "for " \xinst } } + } + } + \vspace #26.25 + \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 2025 } + \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 " [2025]" } + \line { \xinst " | " 6 minutes } + \line { \xcomp } + \vspace #25 + } + \center-column { + \vspace #5 + \left-column { } + \vspace #0.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 { + Don Cherry + } + } + \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 { \italic 1. \hspace #1 Accidentals carry through each bar – cautionary accidentals are not supplied. } + \justify { \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 { + \italic 3. \hspace #1 Dotted slurs are used to indicate phrasing that may not be clear through dynamics and other notations. } + } + \vspace #2.5 + \line { \char ##x27BF } + } + + \right-column { + \vspace #-0.2 + \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 { "branch:" \branchName } } + } + \vspace #2 + } + } + } + + \pageBreak + \header { + tagline = "test" + } + + \bookpart { + \header { + title = \markup { \fontsize #1 \xtitle } + subtitle = \markup { \medium \italic \xsub } + composer = \xcomp + poet = \markup { \xinst } + } + \score { + << + \new StaffGroup + << + \include "manuscripts/trumpetI.ly" + \include "manuscripts/trumpetII.ly" + \include "manuscripts/horn.ly" + \include "manuscripts/trombone.ly" + \include "manuscripts/bassTrombone.ly" + >> + >> + %\midi { } + \layout { + \context { + \Score + \override RehearsalMark.break-visibility = #begin-of-line-invisible + \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/20) + \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.00 + \override StaffSymbol.layer = #4 + \override Stem.layer = #4 + \override Beam.layer = #4 + \override Tie.layer = #4 + \override Hairpin.layer = #4 + \override TimeSignature.layer = #2 + \override Tie.layer = #1 + \override TupletBracket.layer = #2 + \override TextSpanner.layer = #3 + \override NoteHead.layer = #4 + \override TimeSignature.whiteout = 2 + \override TextScript.padding = 1 + \numericTimeSignature + \romanStringNumbers + \override StringNumber.padding = 1 + \override StringNumber.font-size = -3 + \override TupletNumber.layer = 4 + \override TupletNumber.font-shape = #'upright + \override TupletBracket.whiteout = 2 + \override StaffGrouper.staff-staff-spacing = + #'((basic-distance . 10) + (minimum-distance . 5) + (padding . 3) + (stretchability . 1)) + } + } + } + } + + \pageBreak + \markup { \fill-line { \center-column { \vspace #24 \xumbel } } } +} diff --git a/general/aliases.ly b/general/aliases.ly new file mode 100644 index 0000000..398a0d6 --- /dev/null +++ b/general/aliases.ly @@ -0,0 +1,63 @@ +U = \change Staff = "u" +D = \change Staff = "d" + +%spacing +ds = #2.5 +sods = #3.4 +phds = #3.9 + +%notation marks +pizz = ^\markup { "pizz" } +arco = ^\markup { "arco" } +pont = ^\markup { \italic "sul pont" } +tasto = ^\markup { \italic "sul tasto" } +ord = ^\markup { \italic "ord" } + +sD = \stemDown +sU = \stemUp +sN = \stemNeutral + +twoWayFermata = { + \once \set Staff.caesuraType = #'((underlying-bar-line . ".")) + \once \set Staff.caesuraTypeTransform = ##f + \caesura ^\shortfermata _\shortfermata +} + +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 +} + +\defineBarLine "|" #'(#t #f " ") + +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"))) + +harm = \once \override Staff.NoteHead.style = #'harmonic-mixed diff --git a/general/info.ly b/general/info.ly new file mode 100644 index 0000000..39dd8de --- /dev/null +++ b/general/info.ly @@ -0,0 +1,10 @@ +xtitle = \markup { Cherry Blossoms } +xsub = \markup { for Evan Heuermann } +xcomp = \markup { Tucker Johnson } +xinst = \markup { brass quintet } +xdur = \markup { \null } +xcr = \markup \tiny { Copyright Tucker Johnson 2025. 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/scripts.ly b/general/scripts.ly new file mode 100644 index 0000000..4c47285 --- /dev/null +++ b/general/scripts.ly @@ -0,0 +1,71 @@ +timeSpanner = + #(define-music-function (left) (string?) + #{ + \once { + \override TextSpanner.staff-padding = 5 + \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 { \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.stencil-align-dir-y = #CENTER + %\override TextSpanner.bound-details.right.stencil-align-dir-y = #CENTER + \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 + } + #}) + + + +lsp = \override TextSpanner.bound-details.left.text = \markup { \bold "sul pont" } +rsp = \override TextSpanner.bound-details.right.text = \markup { \bold "sul pont" } +lst = \override TextSpanner.bound-details.left.text = \markup { \bold "sul tasto" } +rst = \override TextSpanner.bound-details.right.text = \markup { \bold "sul tasto" } +lord = \override TextSpanner.bound-details.left.text = \markup { \bold "ord" } +rord = \override TextSpanner.bound-details.right.text = \markup { \bold "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. " } 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/bassTrombone.ly b/manuscripts/bassTrombone.ly new file mode 100644 index 0000000..631cb1b --- /dev/null +++ b/manuscripts/bassTrombone.ly @@ -0,0 +1,17 @@ +% root = ../cherryBlossoms.ly + +\new Staff \with { + instrumentName = \markup { bass trombone } + shortInstrumentName = \markup { b. tbn } + \override DynamicLineSpanner.staff-padding = \sods + \consists Text_mark_engraver +} +\relative { + \clef bass + \tempo Rubato 4=64 + \time 4/4 + \partial 2. r4 r2 | + r4 r8 fis,8~\p fis4 f4->\mf\< | %002 + \time 5/4 + f1->\fp r4 | %002 +} diff --git a/manuscripts/horn.ly b/manuscripts/horn.ly new file mode 100644 index 0000000..78d1e5b --- /dev/null +++ b/manuscripts/horn.ly @@ -0,0 +1,17 @@ +% root = ../cherryBlossoms.ly + +\new Staff \with { + instrumentName = \markup { horn } + shortInstrumentName = \markup { hn } + \override DynamicLineSpanner.staff-padding = \sods + \consists Text_mark_engraver +} +\relative { + \clef treble + \tempo Rubato 4=64 + \time 4/4 + \partial 2. e'4->\f dis-> b-> | + \after 2 \p cis2.->\> c8->(\< d8) | %002 + \time 5/4 + a'1->\fp r4 | %002 +} diff --git a/manuscripts/trombone.ly b/manuscripts/trombone.ly new file mode 100644 index 0000000..b5499ed --- /dev/null +++ b/manuscripts/trombone.ly @@ -0,0 +1,17 @@ +% root = ../cherryBlossoms.ly + +\new Staff \with { + instrumentName = \markup { trombone } + shortInstrumentName = \markup { tbn } + \override DynamicLineSpanner.staff-padding = \sods + \consists Text_mark_engraver +} +\relative { + \clef bass + \tempo Rubato 4=64 + \time 4/4 + \partial 2. r4 r2 | + r4 r8 a8~\p a4 g4->\mf\< | %002 + \time 5/4 + g1->\fp r4 | %002 +} diff --git a/manuscripts/trumpetI.ly b/manuscripts/trumpetI.ly new file mode 100644 index 0000000..719db1c --- /dev/null +++ b/manuscripts/trumpetI.ly @@ -0,0 +1,19 @@ +% root = ../cherryBlossoms.ly + +\new Staff \with { + instrumentName = \markup { trumpet \bold I } + shortInstrumentName = \markup { tpt \bold "I " } + \override DynamicLineSpanner.staff-padding = \sods + \consists Text_mark_engraver +} +\relative { + \clef treble + \tempo Rubato 4=64 + \time 4/4 + \partial 2. r4 r2 | + R1 | %001 + \time 5/4 + r8 e''8(~\mp e4 dis4~ dis8) b8~ b4 | %002 + + +} diff --git a/manuscripts/trumpetII.ly b/manuscripts/trumpetII.ly new file mode 100644 index 0000000..6636576 --- /dev/null +++ b/manuscripts/trumpetII.ly @@ -0,0 +1,17 @@ +% root = ../cherryBlossoms.ly + +\new Staff \with { + instrumentName = \markup { trumpet \bold II } + shortInstrumentName = \markup { tpt \bold "II " } + \override DynamicLineSpanner.staff-padding = \sods + \consists Text_mark_engraver +} +\relative { + \clef treble + \tempo Rubato 4=64 + \time 4/4 + \partial 2. r4 r2 | + r4 r8 gis8~\p gis4 bes4->\mf\< | %002 + \time 5/4 + bes1->\fp r4 | %002 +} -- 2.39.5