]> git.newer.systems - net-clarity.git/commitdiff
init
authorTucker Johnson <tucker@newer.systems>
Tue, 8 Aug 2023 17:19:14 +0000 (13:19 -0400)
committerTucker Johnson <tucker@newer.systems>
Tue, 8 Aug 2023 17:19:14 +0000 (13:19 -0400)
16 files changed:
LICENSE.txt [new file with mode: 0644]
README.txt [new file with mode: 0644]
book.ly [new file with mode: 0644]
eng-files/paper.ly [new file with mode: 0644]
front-matter/back cover.ly [new file with mode: 0644]
front-matter/front matter.ly [new file with mode: 0644]
front-matter/inside cover.ly [new file with mode: 0644]
front-matter/outside cover.ly [new file with mode: 0644]
manuscripts/clarinet.ly [new file with mode: 0644]
manuscripts/piano.ly [new file with mode: 0644]
variables/a version number.ly [new file with mode: 0644]
variables/bio.ly [new file with mode: 0644]
variables/program notes.ly [new file with mode: 0644]
variables/scripts.ly [new file with mode: 0644]
variables/umbel.ly [new file with mode: 0644]
variables/variables.ly [new file with mode: 0644]

diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644 (file)
index 0000000..fdddb29
--- /dev/null
@@ -0,0 +1,24 @@
+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>
diff --git a/README.txt b/README.txt
new file mode 100644 (file)
index 0000000..f412d28
--- /dev/null
@@ -0,0 +1,15 @@
+Usage
+
+Required Fonts:
+
+- haydn (https://github.com/OpenLilyPondFonts/haydn)
+- Junicode
+- Syne
+
+From a command prompt in the root directory:
+
+cat variables/* eng-files/* front-matter/* book.ly | lilypond -dno-point-and-click --output="river-sonata" -
+
+
+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)
diff --git a/book.ly b/book.ly
new file mode 100644 (file)
index 0000000..5dd8c76
--- /dev/null
+++ b/book.ly
@@ -0,0 +1,44 @@
+%river sonata project
+\book {
+  \outcover
+  \pageBreak
+  \markup { \vspace #5 }
+  \pageBreak
+  \cover
+  \pageBreak
+  \front-matter
+  \pageBreak
+  \header {
+    tagline = ##f
+  }
+
+  \score {
+    \header {
+      title = \markup { \fontsize #1 \xtitle }
+      subtitle = \markup { \medium \italic \xsub }
+      composer = \xcomp
+      poet = \markup { \xinst }
+    }
+    <<
+      \include "manuscripts/clarinet.ly"
+      \include "manuscripts/piano.ly"
+    >>
+    %\midi { }
+    \layout {
+      \context {
+       \Score
+       \override RehearsalMark.break-visibility = #begin-of-line-invisible
+       \override BarNumber.font-size = #1
+       \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/1)
+      }
+    }
+  }
+
+
+
+  \markup { \null }
+  \pageBreak
+  \backcover
+  \pageBreak
+  \markup { \null }
+}
diff --git a/eng-files/paper.ly b/eng-files/paper.ly
new file mode 100644 (file)
index 0000000..df1d407
--- /dev/null
@@ -0,0 +1,38 @@
+%sonata project
+%------paper-block------
+\paper {
+  first-page-number = -1
+  print-page-number = ##f
+       oddHeaderMarkup = \markup { \tiny { "  " } }
+       evenHeaderMarkup = \markup { \tiny { "  " } }
+       oddFooterMarkup = \markup {
+      \concat { \if \on-page #3 \fill-line { \null \xcr \null } }
+          }
+  evenFooterMarkup = \markup {
+      \concat { \if \on-page #2 \evfoot }
+          }
+#(set-paper-size "letter")
+        print-all-headers = ##t
+        top-margin = 0.8\cm
+        bottom-margin = 0.8\cm
+        left-margin = 2\cm
+        right-margin = 2\cm
+        indent = 1.3\cm
+        short-indent = 0\cm
+        #(define fonts
+               (set-global-fonts
+                       #:music "haydn"
+                       #:brace "haydn"
+                       #:roman "Junicode"
+                       #:sans "syne"
+               ))
+        max-systems-per-page = #7
+        system-system-spacing =
+                #'((basic-distance . 5)
+                (minimum-distance . 5)
+                (padding . 8))
+        score-system-spacing =
+                #'((basic-distance . 4)
+                (minimum-distance . 4)
+                (padding . 5))
+}
diff --git a/front-matter/back cover.ly b/front-matter/back cover.ly
new file mode 100644 (file)
index 0000000..24f81a5
--- /dev/null
@@ -0,0 +1,17 @@
+%cowbell project
+
+backcover = \markuplist { \fill-line {
+    \line { \null }
+    \center-column {
+        \vspace #1
+        \line { \hbracket \bold \concat { "about " \xcomp } }
+        \vspace #1
+        \xbio
+        \vspace #1.3
+        \line { ================================= }
+        \vspace #1.3
+        \override #'(line-width . 75) \justify \typewriter \tiny { This score was engraved on #(string-append (strftime "%m-%d-%Y" (localtime (current-time))) ",") using LilyPond version #(string-append (lilypond-version) ".") If you would like to view the most recent version of the input documents that generated it, visit \sans \bold https://github.com/tuckerjohnson/river-sonata.}
+    }
+    \line { \null }
+    }
+}
diff --git a/front-matter/front matter.ly b/front-matter/front matter.ly
new file mode 100644 (file)
index 0000000..8b619fd
--- /dev/null
@@ -0,0 +1,24 @@
+%cowbell project
+front-matter = \markuplist {
+ \fill-line {
+   \left-column {
+     \line { \bold \xtitle " [2023]" }
+     \line { \xinst " | " \xdur }
+     \line { \xcomp }
+
+     \vspace #25
+
+   }
+   \center-column {
+     \vspace #5
+      \line { \hbracket \bold "program note" }
+      \vspace #0.2
+      \xpnote
+      \vspace #1
+      \line { ================================= }
+
+      }
+
+      \column { \null }
+    }
+  }
diff --git a/front-matter/inside cover.ly b/front-matter/inside cover.ly
new file mode 100644 (file)
index 0000000..57cc896
--- /dev/null
@@ -0,0 +1,20 @@
+%cowbell project
+
+cover =  \markuplist {
+    \fill-line {
+        \line { \null }
+        \center-column {
+            \vspace #10
+            \line { \hbracket \fontsize #10 \number 2023 }
+            \vspace #4
+            \line { \xcomp  }
+            \vspace #1
+            \line { \fontsize #5 \bold  \xtitle }
+            \line { \italic \xsub }
+            \vspace #4
+          }
+        \right-column {
+            \line { \null }
+      }
+    }
+  }
diff --git a/front-matter/outside cover.ly b/front-matter/outside cover.ly
new file mode 100644 (file)
index 0000000..8155dc1
--- /dev/null
@@ -0,0 +1,41 @@
+%cowbell project
+
+outcover = \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 }
+           \vspace #-0.1
+            \line { \fontsize #3 \sans \xcomp }
+           \vspace #3
+           \line { \fontsize #2 \sans \concat { "for " \xinst } }
+      }
+    }
+    \vspace #23
+    \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 }
+    }
+}
diff --git a/manuscripts/clarinet.ly b/manuscripts/clarinet.ly
new file mode 100644 (file)
index 0000000..bbb1035
--- /dev/null
@@ -0,0 +1,15 @@
+%cowbell project
+
+\new Staff \with {
+  instrumentName = \markup { clarinet in \concat { \bold "B" \tiny \flat " " } }
+  shortInstrumentName = \markup { cl }
+  \override DynamicLineSpanner.staff-padding = \phds
+}
+\relative {
+  \numericTimeSignature
+  \clef treble
+  \time 7/2
+  f'2  f f f r2 e4( fis a,~ 16 d,8.~ |
+  \time 3/2
+  d1 cis'4) r4 |
+}
diff --git a/manuscripts/piano.ly b/manuscripts/piano.ly
new file mode 100644 (file)
index 0000000..a5320ae
--- /dev/null
@@ -0,0 +1,36 @@
+%cowbell project
+
+\new PianoStaff \with {
+  instrumentName = \markup { "piano " }
+}
+<<
+  \set PianoStaff.connectArpeggios = ##t
+  \override PianoStaff.Arpeggio.arpeggio-direction = #UP
+  \new Staff = "u" \with { \consists "Merge_rests_engraver" }
+  {
+    \clef bass
+    \accidentalStyle piano
+    <<
+      \relative { \numericTimeSignature
+      \time 7/2
+      <c c'>2 <ees c'> <ees g> <d g> <des g>2~ 2. r8. g16 |
+      <g c>2 f4.. ges16 <f c'>2 |
+
+
+      }
+    >>
+  }
+  \new Staff = "d" \with { \consists "Merge_rests_engraver" }
+  {
+    \clef bass
+    \set Staff.pedalSustainStyle = #'mixed
+    \accidentalStyle piano
+    <<
+      \relative { \numericTimeSignature
+      \time 7/2
+      aes,,2 aes bes bes ces~ 2. r4 |
+      aes'2 aes bes |
+      }
+    >>
+  }
+>>
diff --git a/variables/a version number.ly b/variables/a version number.ly
new file mode 100644 (file)
index 0000000..36c9bed
--- /dev/null
@@ -0,0 +1 @@
+\version "2.24.0"
diff --git a/variables/bio.ly b/variables/bio.ly
new file mode 100644 (file)
index 0000000..d442921
--- /dev/null
@@ -0,0 +1,16 @@
+%fifteen inventions project
+
+xbio = \markup {
+  \center-column {
+    \override #'(line-width . 75) \justify \tiny { \bold "Tucker Johnson" is a composer, performer, and educator pursuing the Ph.D. in Music Composition at the Eastman School of Music in Rochester, NY. His musical practice includes works for soloists, ensembles, and electronic media, including pieces designed for indoor and outdoor installation. He seeks to create highly organized systems to build connections between philosophy, design, and personal experience. Many of his works commune with music from other times and places, establishing links and references to histories of musical culture. Experiences reading, hiking, and amateur botanizing can be found intertwined in his work, alongside a passion for open-source software and teaching. }
+    \vspace #0.8
+    \override #'(line-width . 75) \justify \tiny { Tucker's music has been concertized and honored at festivals and events, including the Dot-The-Line new music festival (Seoul), Longy Divergent Studio (Boston), soundSCAPE Festival (Cesena), Composing in the Wilderness (Prince William Sound & NYC), Shastra Rhythm Workshop (New Jersey), and the Penn State New Music Festival (State College). In 2021, he was awarded the Marjorie Jane Brewster Memorial Music Scholarship, given to one graduating Penn State student each year to pay for graduate studies at another institution. Additional honors include the Belle S. Gitelman Prize, Peter T. Luckie Award, and Warren Benson Scholarship. }
+    \vspace #0.8
+    \override #'(line-width . 75) \justify \tiny { A consistent supporter of new music, Tucker has helped organize many events, festivals, and concerts and served various music organizations throughout his academic career. Currently, he serves as technical director of OSSIA New Music, a student-run organization at the Eastman School of Music committed to performing the works of contemporary composers. He has also worked with the Hochstein School, WXXI Classical, Penn State's Living Music, and the New Music Consortium. Additionally, Tucker serves as a sound engineer, technician, and teaching assistant with the Electronic Music Studios at Eastman (EMuSE) and has produced and performed dozens of electroacoustic works in this position with artists such as Alan Pierson, percussionist Dan Druckman, and soprano Jamie Jordan. }
+    \vspace #0.8
+    \override #'(line-width . 75) \justify \tiny { In his research, he has worked to develop approaches to music composition and collaborative improvisation using mathematics, networked computer instruments, machine listening, ambisonics, and other computer-assisted methods, with a tendency to favor recycled and reclaimed computer hardware. Listeners can hear this work in improvised performances with Belgian saxophonist Floris Van Der Veken, recordings with percussionist/guitarist John McGovern, and performances with Ossia New Music. }
+    \vspace #0.8
+    \override #'(line-width . 75) \justify \tiny { He holds the MA and Catherine Filene Shouse Arts Leadership Certificate from the Eastman School of Music and the BM from Penn State University. He also studied at the University of South Florida. He has studied with Robert Morris, Matthew Barber, David Liptak, Baljinder Sekhon, Sarah Genevieve Burghart Rice, and Susanna Hancock. Tucker serves as instructor of the Penn State Young Composers Institute, a virtual program for high school students running in the fall and spring. }
+    \vspace #0.8
+  }
+}
diff --git a/variables/program notes.ly b/variables/program notes.ly
new file mode 100644 (file)
index 0000000..1409213
--- /dev/null
@@ -0,0 +1,9 @@
+%cowbell project
+
+xpnote = \markup {
+  \center-column {
+    \override #'(line-width . 100) \justify {
+      river sonata
+    }
+  }
+}
diff --git a/variables/scripts.ly b/variables/scripts.ly
new file mode 100644 (file)
index 0000000..ba8d802
--- /dev/null
@@ -0,0 +1,26 @@
+% river project
+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)
+    #})
diff --git a/variables/umbel.ly b/variables/umbel.ly
new file mode 100644 (file)
index 0000000..ad08921
--- /dev/null
@@ -0,0 +1,35 @@
+%fifteen inventions project
+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/variables/variables.ly b/variables/variables.ly
new file mode 100644 (file)
index 0000000..3c262e9
--- /dev/null
@@ -0,0 +1,87 @@
+%cowbell project
+%texts
+xtitle = \markup { River Sonata }
+xsub = \markup { dedicated to Amber Lucas }
+xcomp = \markup { Tucker Johnson }
+xinst = \markup  { Clarinet and Piano }
+xdur = \markup { \null }
+xcr = \markup \tiny { Copyright Tucker Johnson MMXXIII. All Rights Reserved }
+oddfoot = \markup { \fill-line { \null \center-column { \concat { " - " \fromproperty #'page:page-number-string " - " } \small { \xcomp } } \null } }
+evfoot = \markup { \fill-line { \null \center-column { \concat { " - " \fromproperty #'page:page-number-string " - " } \small { \xtitle } } \null } }
+finfoot = \markup { \fill-line { \null \center-column { \concat { " - " \fromproperty #'page:page-number-string " - " } \small \typewriter { "February 1st, 2022 - Rochester, New York" } } \null } }
+
+%music
+tmark = \tempo "Vivace" 4 = 132
+bh = \break
+ds = #2.5
+sods = #3.4
+phds = #3.9
+dtim = \override Staff.TimeSignature.style = #'single-digit
+
+
+%notationmarks
+lsp = \once \override TextSpanner.bound-details.left.text = "sp"
+rsp = \once \override TextSpanner.bound-details.right.text = " sp"
+lst = \once \override TextSpanner.bound-details.left.text = "st"
+rst = \once \override TextSpanner.bound-details.right.text = " st"
+lord = \once \override TextSpanner.bound-details.left.text = "ord"
+rord = \once \override TextSpanner.bound-details.right.text = " ord"
+rit = \once \override TextSpanner.bound-details.left.text = "rit."
+ace = \once \override TextSpanner.bound-details.left.text = "accel."
+acepoc = \once \override TextSpanner.bound-details.left.text = "accelerando poco a poco"
+ffsempre =
+    #(make-dynamic-script (markup #:combine #:transparent "f" "ff" #:combine
+#:transparent "f" #:normal-text #:italic "sempre" ) )
+psempre =
+    #(make-dynamic-script (markup #:combine #:transparent "f" "p" #:combine
+#:transparent "f" #:normal-text #:italic "sempre" ) )
+ppsempre =
+    #(make-dynamic-script (markup #:combine #:transparent "f" "pp" #:combine
+#:transparent "f" #:normal-text #:italic "sempre" ) )
+
+
+utwo = \change Staff = "ui2"
+dtwo = \change Staff = "di2"
+
+U = \change Staff = "u"
+D = \change Staff = "d"
+
+
+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