--- /dev/null
+*.pdf
+*.ps
+*.midi
+*.mid
+*.log
+*~
+.DS_Store
--- /dev/null
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <https://unlicense.org>
--- /dev/null
+Usage
+
+Required Fonts:
+
+- haydn (https://github.com/OpenLilyPondFonts/haydn)
+- Junicode
+- Syne
+
+The content of this project (music and logos) is protected under copyright, and the underlying source code used to format that content licensed under the Unlicense.
+(Copyright © 2023 Tucker Johnson)
--- /dev/null
+\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
+ 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 "syne"))
+ 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 { \hbracket \sans \bold " contents " }
+
+ tocItemMarkup = \markup \fill-line {
+ \fill-with-pattern #1.5 #CENTER .
+ \line {
+ \fromproperty #'toc:indent \fromproperty #'toc:text
+ }
+ \tiny \number \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 }
+
+ }
+ 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 }
+ }
+ 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 }
+ }
+ 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 \fill-line { \null \tiny \typewriter \longHash \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 \italic \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 " | " 4 minutes }
+ \line { \xcomp }
+ \vspace #25
+ }
+ \center-column {
+ \vspace #5
+ \vspace #3
+ \line { \hbracket \bold \sans " program notes "}
+ \vspace #0.2
+ \center-column {
+ \override #'(line-width . 100)
+ \justify {
+ I was first struck by the idea to write a work for clarinet and
+ piano after hearing a performance of Reger's first clarinet
+ sonata by my partner Amber Lucas. The harmonic and contrapuntal
+ complexities of Reger's music in addition to his unusual phrasal
+ structures seemed nicely compatible with the contrapuntal
+ language I had been developing in my own work. At the time of
+ Amber's performance I was working on \italic Circumnutation, a
+ cycle of inventions for keyboard that exlpored the structural
+ potentialities of the diatonic set (equivalent to the major
+ scale) and its relationship to the aggregate (the collection of
+ all 12 pitch classes). \italic "Net Clarity" proceeds from the
+ romantic clarinet sonata as a primary model, but other sounds and
+ allusions abound: ranging from Bach and Schoenberg to Bebop and
+ Babbit.
+ }
+ }
+ \vspace #3
+ \override #'(thickness . 5)
+ \draw-squiggle-line #0.5 #'(20 . 0) ##t
+ }
+
+ \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
+ \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/violinI.ly"
+ \include "manuscripts/violinII.ly"
+ >>
+ >>
+ %\midi { }
+ \layout {
+ \context {
+ \Score
+ \override RehearsalMark.break-visibility = #begin-of-line-invisible
+ \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/8)
+ \override Hairpin.to-barline = ##f
+ \overrideTimeSignatureSettings 4/4 1/4 1,1,1,1 #'()
+ \overrideTimeSignatureSettings 3/4 1/4 1,1,1 #'()
+ \numericTimeSignature
+
+ }
+ }
+ }
+ }
+
+ \pageBreak
+ \markup { \null }
+ \pageBreak
+ \markup { \null }
+}
--- /dev/null
+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
--- /dev/null
+xtitle = \markup { Apples & Pairs }
+xsub = \markup { for Victoria Zhao and Madison Oh }
+xcomp = \markup { Tucker Johnson }
+xinst = \markup { violin duo }
+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 { " - " \fromproperty #'page:page-number-string " - " } } \null } }
+evfoot = \markup { \fill-line { \null \center-column { " " \concat { " - " \fromproperty #'page:page-number-string " - " } } \null } }
--- /dev/null
+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)
+ #})
--- /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
+ }
+ }
--- /dev/null
+% root = ../applesAndPairs.ly
+
+\new Staff \with {
+ instrumentName = \markup { violin I }
+ shortInstrumentName = \markup { "I " }
+ \override DynamicLineSpanner.staff-padding = \sods
+ \consists Text_mark_engraver
+}
+%\transpose bes c'
+\relative {
+ \numericTimeSignature
+ \clef treble
+ \tempo Largo 2=92
+ \time 2/2
+ f'2--\p f-- |
+ f-- f-- |
+ \time 3/2
+ f-- \tuplet 3/2 { e4( fis a,~ } 4 d,4~ |
+ d1) r4 cis''4~ |
+ \time 3/4
+ 8 b'8~ \tuplet 3/2 { b4 b8( } \tuplet 3/2 { c8 g4~ } |
+ \time 5/8
+ g8) aes( ees bes) r8 |
+ \time 2/2
+ f2~ \tuplet 3/2 { f4 e( fis } |
+ a,1)\fermata |
+ a1-- |
+ d1--\fermata |
+ cis'4( b') bes2 |
+ \time 3/8
+ \tuplet 3/2 { c8( g,4~ } 8~ |
+ \time 1/4
+ \tuplet 3/2 { g8 aes4) } |
+ \time 2/2
+ r2 \tuplet 3/2 { e4( fis a,~ } |
+ a8) r8 r4 r2 |
+ R1\fermata |
+}
--- /dev/null
+% root = ../applesAndPairs.ly
+
+\new Staff \with {
+ instrumentName = \markup { violin II }
+ shortInstrumentName = \markup { "II " }
+ \override DynamicLineSpanner.staff-padding = \sods
+ \consists Text_mark_engraver
+}
+%\transpose bes c'
+\relative {
+ \numericTimeSignature
+ \clef treble
+ \tempo Largo 2=92
+ \time 2/2
+ f'2--\p f-- |
+ f-- f-- |
+ \time 3/2
+ f-- \tuplet 3/2 { e4( fis a,~ } 4 d,4~ |
+ d1) r4 cis''4~ |
+ \time 3/4
+ 8 b'8~ \tuplet 3/2 { b4 b8( } \tuplet 3/2 { c8 g4~ } |
+ \time 5/8
+ g8) aes( ees bes) r8 |
+ \time 2/2
+ f2~ \tuplet 3/2 { f4 e( fis } |
+ a,1)\fermata |
+ a1-- |
+ d1--\fermata |
+ cis'4( b') bes2 |
+ \time 3/8
+ \tuplet 3/2 { c8( g,4~ } 8~ |
+ \time 1/4
+ \tuplet 3/2 { g8 aes4) } |
+ \time 2/2
+ r2 \tuplet 3/2 { e4( fis a,~ } |
+ a8) r8 r4 r2 |
+ R1\fermata |
+}