commit 0178da73a9dd85d1fd915b5f74db23b4431e6bb1 Author: mwinter Date: Tue Dec 29 23:58:43 2020 +0100 first commit diff --git a/lilypond/includes/part_I.ly b/lilypond/includes/part_I.ly new file mode 100644 index 0000000..a06ce93 --- /dev/null +++ b/lilypond/includes/part_I.ly @@ -0,0 +1,573 @@ +\new StaffGroup \with {\remove "System_start_delimiter_engraver"} +<< +\new Staff = "I" \with { +instrumentName = "I" +shortInstrumentName = "I" +midiInstrument = #"clarinet" + +} +<< + +{ +\set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 60 + \numericTimeSignature \time 2/2 + \clef treble + +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { r1 } +>> + | +<< + { r2 c'4^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } ~ c'8.[ ees'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ } +>> + | +<< + { ees'16[ g'8.^\markup { \pad-markup #0.2 "+2"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ g'4 ~ g'8.[ c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ c'4 ~ } +>> + | +<< + { c'1 ~ } +>> + | +<< + { c'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { c'2. ~ c'8.[ r16] } +>> + | +<< + { r8.[ aes'16^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ aes'2. ~ } +>> + | +<< + { aes'1 ~ } +>> + | +<< + { aes'2. ~ aes'8.[ ges'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c,16^\markup { "+0"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "-49"} \hide c'8 + c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c'16^\markup { "+0"} \hide c''8 + fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ges'1 ~ } +>> + | +<< + { ges'2. ~ ges'16[ r8.] } +>> + | +<< + { r16[ fis'8.^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ fis'4 ~ fis'16[ cis''8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ cis''4 ~ } +>> + | +<< + { cis''4 a'8^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }[ d''8^\markup { \pad-markup #0.2 "-8"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ d''8.[ b'16^\markup { \pad-markup #0.2 "+3"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] a'4^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } ~ } +>> + | +<< + { a'1 ~ } +>> + | +<< + { a'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { a'2. ~ a'16[ r8.] } +>> + | +<< + { r16[ cis''8^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ fis'16[ gis'16^\markup { \pad-markup #0.2 "-45"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } dis''16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } a'16^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] cis''8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }[ b'16^\markup { \pad-markup #0.2 "+3"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] gis'4^\markup { \pad-markup #0.2 "-45"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } } +>> + | +<< + { d''16^\markup { \pad-markup #0.2 "-8"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }[ cis''8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ cis''4 fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }[ a'8^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } gis'16^\markup { \pad-markup #0.2 "-45"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ gis'4 ~ } +>> + | +<< + { gis'1 ~ } +>> + | +<< + { gis'1 ~ } +>> + | +<< + { gis'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis'16^\markup { "-49"} \hide c''8 + dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { gis'1 ~ } +>> + | +<< + { gis'16[ r8.] r16[ bes'8.^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes'4 ees'8.^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }[ des''16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ } +>> + | +<< + { des''8.[ bes'16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes'2. ~ } +>> + | +<< + { bes'4 ges'16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }[ f'8^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } bes'16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes'16[ f'8.^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f'8.[ c''16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { c''1 ~ } +>> + | +<< + { c''1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "-49"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { c''1 ~ } +>> + | +<< + { c''2 ~ c''16[ r8.] r16[ a'8.^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ } +>> + | +<< + { a'8.[ bes'16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes'8.[ ees'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] f'16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }[ ges'8^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } c''16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ c''4 ~ } +>> + | +<< + { c''1 ~ } +>> + | +<< + { c''1 ~ } +>> + | +<< + { c''2 des''2^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } ~ } +>> + | +<< + { des''1 ~ } +>> + | +<< + { des''1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis16^\markup { "+16"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { des''2. r4 } +>> + | +<< + { bes'8.^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }[ ees'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ ees'4 ~ ees'8.[ f'16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f'8.[ ges'16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ } +>> + | +<< + { ges'1 ~ } +>> + | +<< + { ges'1 ~ } +>> + | +<< + { ges'1 ~ } +>> + | +<< + { ges'4 ~ ges'8.[ ees'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ ees'2 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + cis16^\markup { "-16"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis'16^\markup { "+16"} \hide c''8 + cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ees'2. ~ ees'8.[ r16] } +>> + | +<< + { r8.[ ges'16^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges'2. ~ } +>> + | +<< + { ges'2. ~ ges'8[ a'16^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" } f'16^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }] ~ } +>> + | +<< + { f'8[ aes'16^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } des'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des'16[ ees'8.^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] des'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }[ ges'8.^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] b'8^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }[ a'8^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { a'16[ f'8^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" } des'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des'2. ~ } +>> + | +<< + { des'1 ~ } +>> + | +<< + { des'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "+31"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { des'1 ~ } +>> + | +<< + { des'4 ~ des'8.[ r16] r8.[ ges'16^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges'16[ aes'8.^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ } +>> + | +<< + { aes'8[ a'8^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ a'2. ~ } +>> + | +<< + { a'1 } +>> + | +<< + { ges'1^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" } ~ } +>> + | +<< + { ges'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + cis,16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ges'1 ~ } +>> + | +<< + { ges'1 ~ } +>> + | +<< + { ges'4 ~ ges'8[ r8] r8[ ees'16^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } b'16^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ b'4 ~ } +>> + | +<< + { b'4 ~ b'16[ des'8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des'8[ a'8^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ a'16[ b'8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ } +>> + | +<< + { b'1 ~ } +>> + | +<< + { b'2. ~ b'8[ ges'8^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ } +>> + | +<< + { ges'2 r2 } +>> + | +<< + { r1 } +>> + | +<< + { r1 }>> \bar "|." +} + +>> +>> \ No newline at end of file diff --git a/lilypond/includes/part_II.ly b/lilypond/includes/part_II.ly new file mode 100644 index 0000000..52ab8d8 --- /dev/null +++ b/lilypond/includes/part_II.ly @@ -0,0 +1,573 @@ +\new StaffGroup \with {\remove "System_start_delimiter_engraver"} +<< +\new Staff = "II" \with { +instrumentName = "II" +shortInstrumentName = "II" +midiInstrument = #"clarinet" + +} +<< + +{ +\set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 60 + \numericTimeSignature \time 2/2 + \clef alto + +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { r1 } +>> + | +<< + { r8[ ees8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ ees8[ aes8^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ aes16[ bes16^\markup { \pad-markup #0.2 "-31"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } c8^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ges16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }[ ees8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } aes16^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { aes4 ~ aes16[ c8.^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ c2 } +>> + | +<< + { g2.^\markup { \pad-markup #0.2 "+2"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } ~ g16[ d8.^\markup { \pad-markup #0.2 "+4"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ } +>> + | +<< + { d16[ c8.^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ c2. ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { c1 ~ } +>> + | +<< + { c2 r4 cis'4^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } ~ } +>> + | +<< + { cis'8[ fis8^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ fis2 a4^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } ~ } +>> + | +<< + { a4 dis'2.^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c,16^\markup { "+0"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "-49"} \hide c'8 + c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c'16^\markup { "+0"} \hide c''8 + fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { dis'1 ~ } +>> + | +<< + { dis'4 ~ dis'8.[ r16] r8.[ c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] aes4^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 "13/8" } ~ } +>> + | +<< + { aes2 ~ aes8[ ges8^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges4 ~ } +>> + | +<< + { ges1 ~ } +>> + | +<< + { ges1 ~ } +>> + | +<< + { ges1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ges1 ~ } +>> + | +<< + { ges8.[ r16] r8.[ f16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f2 } +>> + | +<< + { ees2^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } ~ ees8[ ges8^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] bes4^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } ~ } +>> + | +<< + { bes1 ~ } +>> + | +<< + { bes4 ~ bes16[ f8.^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f2 } +>> + | +<< + { ges1^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis'16^\markup { "-49"} \hide c''8 + dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ges1 ~ } +>> + | +<< + { ges8.[ r16] r8.[ des'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ees2^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } ~ } +>> + | +<< + { ees8.[ bes16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes2 ~ bes16[ c'8.^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { c'4 ges2.^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } ~ } +>> + | +<< + { ges1 ~ } +>> + | +<< + { ges1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "-49"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ges1 ~ } +>> + | +<< + { ges2 ~ ges8.[ r16] r8.[ c'16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { c'2 ~ c'8[ ees8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] c'4^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" } ~ } +>> + | +<< + { c'16[ ges8^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } c'16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ c'2. ~ } +>> + | +<< + { c'1 ~ } +>> + | +<< + { c'1 ~ } +>> + | +<< + { c'1 ~ } +>> + | +<< + { c'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis16^\markup { "+16"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { c'2. ~ c'16[ r8.] } +>> + | +<< + { r16[ des8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des2. ~ } +>> + | +<< + { des2 ~ des8[ aes8^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ aes8[ ges8^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] } +>> + | +<< + { des16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }[ b16^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } ees8^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] f16^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }[ aes8.^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ aes4 ~ aes16[ des8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] } +>> + | +<< + { ges4^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" } ees16^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }[ f8.^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }] ~ f2 ~ } +>> + | +<< + { f1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + cis16^\markup { "-16"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis'16^\markup { "+16"} \hide c''8 + cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { f1 ~ } +>> + | +<< + { f4 ~ f16[ r8.] r16[ cis'8.^\markup { \pad-markup #0.2 "+33"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ cis'8[ a8^\markup { \pad-markup #0.2 "+47"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ } +>> + | +<< + { a16[ c'8^\markup { \pad-markup #0.2 "-17"}_\markup { \lower #3 \pad-markup #0.2 "11/8" } dis'16^\markup { \pad-markup #0.2 "-28"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] fis4^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } cis'16^\markup { \pad-markup #0.2 "+33"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }[ a8.^\markup { \pad-markup #0.2 "+47"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ a16[ cis'8.^\markup { \pad-markup #0.2 "+33"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ } +>> + | +<< + { cis'4 c'2.^\markup { \pad-markup #0.2 "-17"}_\markup { \lower #3 \pad-markup #0.2 "11/8" } ~ } +>> + | +<< + { c'2. ~ c'8.[ e'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ } +>> + | +<< + { e'1 ~ } +>> + | +<< + { e'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "+31"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { e'1 ~ } +>> + | +<< + { e'2 r4 des4^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } ~ } +>> + | +<< + { des1 ~ } +>> + | +<< + { des1 ~ } +>> + | +<< + { des1 ~ } +>> + | +<< + { des1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + cis,16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { des2. ~ des16[ r8.] } +>> + | +<< + { r16[ f8.^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }] ~ f2. ~ } +>> + | +<< + { f2 a8^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }[ ges8^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges8.[ a16^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { a16[ ees16^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } aes8^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ aes16[ b8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ b2 ~ } +>> + | +<< + { b1 ~ } +>> + | +<< + { b2. aes4^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } ~ } +>> + | +<< + { aes4 ~ aes8[ r8] r2 } +>> + | +<< + { r1 } +>> + | +<< + { r1 }>> \bar "|." +} + +>> +>> \ No newline at end of file diff --git a/lilypond/includes/part_III.ly b/lilypond/includes/part_III.ly new file mode 100644 index 0000000..5815394 --- /dev/null +++ b/lilypond/includes/part_III.ly @@ -0,0 +1,573 @@ +\new StaffGroup \with {\remove "System_start_delimiter_engraver"} +<< +\new Staff = "III" \with { +instrumentName = "III" +shortInstrumentName = "III" +midiInstrument = #"clarinet" + +} +<< + +{ +\set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 60 + \numericTimeSignature \time 2/2 + \clef bass + +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { r1 } +>> + | +<< + { r4 r8.[ bes,16^\markup { \pad-markup #0.2 "-31"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ bes,4 d,4^\markup { \pad-markup #0.2 "+4"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } } +>> + | +<< + { g,8^\markup { \pad-markup #0.2 "+2"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }[ c,8^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] bes,8.^\markup { \pad-markup #0.2 "-31"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }[ ees,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ ees,8[ ges,8^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges,8.[ c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ } +>> + | +<< + { c,4 ~ c,8[ d,8^\markup { \pad-markup #0.2 "+4"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ d,8[ ees,8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ ees,4 ~ } +>> + | +<< + { ees,1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ees,2. ~ ees,8.[ r16] } +>> + | +<< + { r8.[ ges,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges,4 ~ ges,16[ g,8.^\markup { \pad-markup #0.2 "+2"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ g,4 ~ } +>> + | +<< + { g,4 ~ g,8[ c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } aes,16^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ aes,2 ~ } +>> + | +<< + { aes,8.[ bes,16^\markup { \pad-markup #0.2 "-31"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ bes,8[ ees,8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ ees,2 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c,16^\markup { "+0"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "-49"} \hide c'8 + c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c'16^\markup { "+0"} \hide c''8 + fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ees,1 ~ } +>> + | +<< + { ees,8[ r8] r8[ ees,8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ ees,4 a,4^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "11/8" } ~ } +>> + | +<< + { a,2 ~ a,8.[ bes,16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes,4 ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,4 ~ bes,8.[ ees,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ ees,2 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ees,1 ~ } +>> + | +<< + { ees,2. ~ ees,16[ r8.] } +>> + | +<< + { r16[ b,8.^\markup { \pad-markup #0.2 "+3"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] cis4^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } gis,4^\markup { \pad-markup #0.2 "-45"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } ~ gis,16[ d8.^\markup { \pad-markup #0.2 "-8"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { d16[ a,8.^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ a,8.[ dis16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ dis2 ~ } +>> + | +<< + { dis1 ~ } +>> + | +<< + { dis1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis'16^\markup { "-49"} \hide c''8 + dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { dis1 } +>> + | +<< + { r4 fis,2.^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } ~ } +>> + | +<< + { fis,1 ~ } +>> + | +<< + { fis,1 ~ } +>> + | +<< + { fis,2. ~ fis,16[ b,8.^\markup { \pad-markup #0.2 "+3"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ } +>> + | +<< + { b,1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "-49"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { b,1 ~ } +>> + | +<< + { b,1 } +>> + | +<< + { r4 des2.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } } +>> + | +<< + { ges,8^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }[ bes,8^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes,8.[ c16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ c8.[ f,16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f,8.[ c16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { c8.[ bes,16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes,2. ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis16^\markup { "+16"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { bes,1 ~ } +>> + | +<< + { bes,8.[ r16] r8.[ fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ fis,4 ~ fis,8[ a,8^\markup { \pad-markup #0.2 "+47"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ } +>> + | +<< + { a,1 ~ } +>> + | +<< + { a,1 ~ } +>> + | +<< + { a,1 ~ } +>> + | +<< + { a,2 c2^\markup { \pad-markup #0.2 "-17"}_\markup { \lower #3 \pad-markup #0.2 "11/8" } ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + cis16^\markup { "-16"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis'16^\markup { "+16"} \hide c''8 + cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { c1 ~ } +>> + | +<< + { c4 ~ c16[ r8.] r16[ ees,8.^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] c16^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }[ des8^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } f,16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ } +>> + | +<< + { f,8.[ bes,16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes,2. ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,1 ~ } +>> + | +<< + { bes,1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "+31"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { bes,1 ~ } +>> + | +<< + { bes,16[ r8.] r16[ dis8.^\markup { \pad-markup #0.2 "-28"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ dis2 ~ } +>> + | +<< + { dis4 ~ dis8.[ fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ fis,2 ~ } +>> + | +<< + { fis,8[ c8^\markup { \pad-markup #0.2 "-17"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ c8.[ cis16^\markup { \pad-markup #0.2 "+33"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] a,2^\markup { \pad-markup #0.2 "+47"}_\markup { \lower #3 \pad-markup #0.2 "6/5" } ~ } +>> + | +<< + { a,2. ~ a,16[ e8.^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] } +>> + | +<< + { cis2^\markup { \pad-markup #0.2 "+33"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } ~ cis8.[ fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ fis,4 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + cis,16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { fis,1 ~ } +>> + | +<< + { fis,2 r4 ges,16^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }[ b,16^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } ees,16^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } aes,16^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ } +>> + | +<< + { aes,8.[ des,16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des,4 a,4^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" } ~ a,16[ b,8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ } +>> + | +<< + { b,4 ~ b,8.[ r16] r2 } +>> + | +<< + { r1 } +>> + | +<< + { r1 } +>> + | +<< + { r1 } +>> + | +<< + { r1 } +>> + | +<< + { r1 }>> \bar "|." +} + +>> +>> \ No newline at end of file diff --git a/lilypond/includes/part_star.ly b/lilypond/includes/part_star.ly new file mode 100644 index 0000000..126cf0f --- /dev/null +++ b/lilypond/includes/part_star.ly @@ -0,0 +1,573 @@ +\new StaffGroup \with {\remove "System_start_delimiter_engraver"} +<< +\new Staff = "*" \with { +instrumentName = "*" +shortInstrumentName = "*" +midiInstrument = #"clarinet" + +} +<< + +{ +\set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 60 + \numericTimeSignature \time 2/2 + \clef "treble_8" + +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { r1 } +>> + | +<< + { r8[ c8^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "1/1" }}] ~ c16[ d8.^\markup { \pad-markup #0.2 "+4"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "9/8" }}] ees4^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }} ges8^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "11/8" }}[ g8^\markup { \pad-markup #0.2 "+2"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "3/2" }}] ~ } +>> + | +<< + { g16[ aes8.^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "13/8" }}] ~ aes8.[ bes16^\markup { \pad-markup #0.2 "-31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "7/4" }}] ~ bes2 ~ } +>> + | +<< + { bes4 ~ bes8.[ c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "1/1" }}] ~ c'4 ~ c'8[ d'16^\markup { \pad-markup #0.2 "+4"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "9/8" }} ees'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }}] ~ } +>> + | +<< + { ees'16[ ges'8.^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "11/8" }}] ~ ges'16[ g'8.^\markup { \pad-markup #0.2 "+2"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "3/2" }}] ~ g'2 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +c,16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +c'16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { g'2. ~ g'8[ r8] } +>> + | +<< + { r8[ aes'8^\markup { \pad-markup #0.2 "+41"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "13/8" }}] ~ aes'2. ~ } +>> + | +<< + { aes'2 ~ aes'8[ b'8^\markup { \pad-markup #0.2 "+3"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "11/8" }}] ~ b'4 ~ } +>> + | +<< + { b'4 ~ b'8.[ cis''16^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "3/2" }}] ~ cis''2 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c,16^\markup { "+0"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "11/8" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "-49"} \hide c'8 + c16^\markup { \pad-markup #0.2 "+0"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c'16^\markup { "+0"} \hide c''8 + fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { cis''4 ~ cis''16[ r8.] r2 } +>> + | +<< + { r16[ cis8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "3/2" }}] ~ cis4 ~ cis8.[ d16^\markup { \pad-markup #0.2 "+4"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "9/8" }}] ~ d4 ~ } +>> + | +<< + { d4 ~ d8[ ges8^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "11/8" }}] ~ ges2 ~ } +>> + | +<< + { ges2. ~ ges16[ ges8.^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }}] } +>> + | +<< + { gis1^\markup { \pad-markup #0.2 "-45"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "9/8" }} ~ } +>> + | +<< + { gis2. ~ gis8[ a8^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "6/5" }}] ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + c16^\markup { "+0"} \hide c'8 + dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +fis'16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { a2. ~ a16[ r8.] } +>> + | +<< + { r16[ b8.^\markup { \pad-markup #0.2 "+3"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "11/8" }}] ~ b2 ~ b16[ cis'8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "3/2" }}] ~ } +>> + | +<< + { cis'1 ~ } +>> + | +<< + { cis'4 d'2.^\markup { \pad-markup #0.2 "-8"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "13/8" }} ~ } +>> + | +<< + { d'8.[ ges'16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "6/5" }}] ~ ges'8.[ gis'16^\markup { \pad-markup #0.2 "-45"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "9/8" }}] ~ gis'8.[ a'16^\markup { \pad-markup #0.2 "-33"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }}] ~ a'4 ~ } +>> + | +<< + { a'1 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s4. \startStaff \clef bass s16 +fis,16^\markup { \pad-markup #0.2 "-49"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "55/48" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis'16^\markup { "-49"} \hide c''8 + dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { a'2. ~ a'8[ r8] } +>> + | +<< + { r8[ c''8^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "13/8" }}] ~ c''16[ des''8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "7/4" }}] ~ des''4 ~ des''8.[ r16] } +>> + | +<< + { r4 r8.[ des16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "7/4" }}] ~ des4 ~ des8[ d8^\markup { \pad-markup #0.2 "-8"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "13/8" }}] ~ } +>> + | +<< + { d1 ~ } +>> + | +<< + { d16[ ges8.^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "6/5" }}] ~ ges4 bes2^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "3/2" }} ~ } +>> + | +<< + { bes2 ~ bes8[ c'8^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "13/8" }}] ~ c'4 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "-49"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "55/48" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +dis16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { c'2. ~ c'16[ r8.] } +>> + | +<< + { r16[ ges8.^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }] ~ ges8[ f8^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f8[ bes16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } f16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ f4 ~ } +>> + | +<< + { f2 ~ f8[ ees8^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] bes16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }[ des'8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ } +>> + | +<< + { des'2. ~ des'8.[ ees16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ } +>> + | +<< + { ees1 ~ } +>> + | +<< + { ees1 ~ } +>> + | +<< + { ees4 ~ ees16[ f16^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } des'8^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ des'2 ~ } +>> + | +<< + { des'4 ~ des'8.[ bes16^\markup { \pad-markup #0.2 "+18"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] ~ bes2 ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis16^\markup { "+16"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +dis'16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { bes2. ~ bes16[ r8.] } +>> + | +<< + { r16[ des'8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "7/4" }}] ~ des'4 ~ des'16[ f'8.^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "9/8" }}] ~ f'4 ~ } +>> + | +<< + { f'8.[ ges'16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "6/5" }}] ~ ges'16[ aes'16^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "3/2" }} a'8^\markup { \pad-markup #0.2 "+47"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }}] ~ a'2 } +>> + | +<< + { c''2.^\markup { \pad-markup #0.2 "-44"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "13/8" }} ~ c''8[ des''8^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "7/4" }}] ~ } +>> + | +<< + { des''2 ~ des''8[ r8] r4 } +>> + | +<< + { r8[ des8^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "7/4" }}] ~ des4 f2^\markup { \pad-markup #0.2 "+20"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "9/8" }} ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + dis,16^\markup { \pad-markup #0.2 "+16"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "6/5" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + cis16^\markup { "-16"} \hide c'8 + fis16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "8/7" } \startGroup + \stopStaff s8. \startStaff \clef treble s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis'16^\markup { "+16"} \hide c''8 + cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "8/7" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { f2. ~ f8[ r8] } +>> + | +<< + { r8[ ges8^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }}] ~ ges2. ~ } +>> + | +<< + { ges2 ~ ges16[ ges8.^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "11/8" }}] aes4^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "3/2" }} ~ } +>> + | +<< + { aes16[ a8.^\markup { \pad-markup #0.2 "+47"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "6/5" }}] ~ a8[ c'16^\markup { \pad-markup #0.2 "-17"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "11/8" }} des'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "7/4" }}] ~ des'8[ f'8^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "5/4" }}] ~ f'4 ~ } +>> + | +<< + { f'1 ~ } +>> + | +<< + { f'1 ~ } +>> + | +<< + { f'2 ges'4^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "6/5" }} ~ ges'16[ ges'8.^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "I"\normal-size-super "11/8" }}] ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + dis,16^\markup { "+16"} \hide c8 + fis,16^\markup { \pad-markup #0.2 "+31"}_\markup { \lower #3 \pad-markup #0.2 "6/5" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \hide c16 + \stopStaff s8. \startStaff \clef alto s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis16^\markup { "+31"} \hide c'8 + cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "48/35" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ges'1 } +>> + | +<< + { r4 a'2.^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "13/8" }} ~ } +>> + | +<< + { a'1 ~ } +>> + | +<< + { a'8.[ b'16^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "7/4" }}] c''2.^\markup { \pad-markup #0.2 "-17"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "III"\normal-size-super "11/8" }} ~ } +>> + | +<< + { c''4 ~ c''16[ ees''8.^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "9/8" }}] ~ ees''2 ~ } +>> + | +<< + { ees''4 ~ ees''8.[ r16] r4 r8.[ ees16^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 \concat{ "II"\normal-size-super "9/8" }}] ~ } +>> + \bar "||" +<< +\mark \markup { +\halign #-1 + \relMark ##{ { + \time 15/8 + \once \override Staff.Clef #'stencil = ##f + \stopStaff s8. \startStaff \clef bass s16 +\once \override TextScript.color = #(rgb-color 0.6 0.6 0.6) + \tweak Accidental.color #(rgb-color 0.6 0.6 0.6) + \tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) + fis,16^\markup { "+31"} \hide c8 + cis,16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "48/35" }^\markup{\large \raise #2 "III"}-\tweak HorizontalBracket.Y-offset #8.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 2) + -\tweak HorizontalBracket.edge-height #'(1 . 1) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(3 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \hide c16 + \stopStaff s4. \startStaff \clef alto s16 +cis16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "II"} \stopGroup \hide c'16 + -\tweak HorizontalBracket.Y-offset #5.5 + -\tweak HorizontalBracket.shorten-pair #'(1 . 3) + -\tweak HorizontalBracket.edge-height #'(0 . 0) + -\tweak HorizontalBracketText.text \markup { \normalsize \lower #0 \pad-markup #0.2 "1/1" } \startGroup + \stopStaff s4. \startStaff \clef treble s16 +cis'16^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }^\markup{\large \raise #2 "I"} \stopGroup \stopGroup + \hide c''16 + }#}} { ees2. ~ ees8[ r8] } +>> + | +<< + { r8[ des8^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des4 ~ des16[ b8.^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ b16[ a8.^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" }] ~ } +>> + | +<< + { a8[ aes8^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" }] b2^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" } ~ b16[ f8.^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }] } +>> + | +<< + { ees4^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" } ~ ees16[ aes8^\markup { \pad-markup #0.2 "-14"}_\markup { \lower #3 \pad-markup #0.2 "3/2" } ges16^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges16[ des8.^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" }] ~ des16[ f8.^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }] } +>> + | +<< + { a2.^\markup { \pad-markup #0.2 "+25"}_\markup { \lower #3 \pad-markup #0.2 "13/8" } des4^\markup { \pad-markup #0.2 "-16"}_\markup { \lower #3 \pad-markup #0.2 "1/1" } ~ } +>> + | +<< + { des8.[ f16^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" }] ~ f2 ~ f8.[ ees16^\markup { \pad-markup #0.2 "-12"}_\markup { \lower #3 \pad-markup #0.2 "9/8" }] ~ } +>> + | +<< + { ees2. ~ ees8[ f16^\markup { \pad-markup #0.2 "-29"}_\markup { \lower #3 \pad-markup #0.2 "5/4" } b16^\markup { \pad-markup #0.2 "-47"}_\markup { \lower #3 \pad-markup #0.2 "7/4" }] ~ } +>> + | +<< + { b2 ~ b8.[ ges16^\markup { \pad-markup #0.2 "+36"}_\markup { \lower #3 \pad-markup #0.2 "11/8" }] ~ ges4 ~ } +>> + | +<< + { ges4 ~ ges16[ r8.] r2 }>> \bar "|." +} + +>> +>> \ No newline at end of file diff --git a/lilypond/to_kill_a_monarch_score.ly b/lilypond/to_kill_a_monarch_score.ly new file mode 100644 index 0000000..313cfe3 --- /dev/null +++ b/lilypond/to_kill_a_monarch_score.ly @@ -0,0 +1,185 @@ +\version "2.19.83" + +#(define (override-color-for-all-grobs color) + (lambda (context) + (let loop ((x all-grob-descriptions)) + (if (not (null? x)) + (let ((grob-name (caar x))) + (ly:context-pushpop-property context grob-name 'color color) + (loop (cdr x))))))) + + #(define-markup-command (relMark layout props mus) (ly:music?) + #:properties ((size -2)) + (interpret-markup layout props + #{ + \markup { + \score { + \new Staff { $mus } + \layout { + \context { + \Staff + \remove Time_signature_engraver + fontSize = #-2 + \hide Stem + \override TextScript.outside-staff-priority = ##f + \override StaffSymbol.staff-space = #(magstep -2) + \override StaffSymbol.thickness = #(magstep -2) + \override TextScript.self-alignment-X = #-0.4 + \override TextScript.staff-padding = #1 + } + \context { + \Score + proportionalNotationDuration = #(ly:make-moment 1/16) + \remove "Separating_line_group_engraver" + \override SpacingSpanner.strict-note-spacing = ##t + } + \context { + \Voice + \consists "Horizontal_bracket_engraver" + \override HorizontalBracket.direction = #UP + } + indent = 0 + line-width = 4\cm + } + } + } + #})) + + +\paper { + #(set-paper-size "a4" 'portrait) + top-margin = 1 \cm + bottom-margin = 1 \cm + left-margin = 2.5 \cm + ragged-bottom = ##t + + top-system-spacing = + #'((basic-distance . 15 ) + (minimum-distance . 15 ) + (padding . 0 ) + (stretchability . 0)) + + system-system-spacing = + #'((basic-distance . 35 ) + (minimum-distance . 35 ) + (padding . 0 ) + (stretchability . 0)) + + last-bottom-spacing = + #'((basic-distance . 10 ) + (minimum-distance . 10 ) + (padding . 0 ) + (stretchability . 0)) + + systems-per-page = 3 + first-page-number = 5 + print-first-page-number = ##t + + print-page-number = ##t + oddHeaderMarkup = \markup { \fill-line { \line { \on-the-fly #not-first-page {\italic {to kill a monarch} }}}} + evenHeaderMarkup = \markup { \fill-line { \line { \on-the-fly #not-first-page {\italic {to kill a monarch} }}}} + oddFooterMarkup = \markup { \fill-line { + \concat { + "-" + \fontsize #1.5 + \on-the-fly #print-page-number-check-first + \fromproperty #'page:page-number-string + "-"}}} + evenFooterMarkup = \markup { \fill-line { + \concat { + "-" + \fontsize #1.5 + \on-the-fly #print-page-number-check-first + \fromproperty #'page:page-number-string + "-"}}} +} + +\header { + title = \markup { \italic {to kill a monarch}} + composer = \markup \right-column {"michael winter" "(berlin, germany; 2020)"} + tagline = "" +} + +#(set-global-staff-size 11) + +\layout { + indent = 0.0\cm + line-width = 17\cm + ragged-last = ##t + ragged-right = ##f + + \context { + \Score + \override BarNumber.stencil = #(make-stencil-circler 0.1 0.25 ly:text-interface::print) + \override Stem.stemlet-length = #0.75 + proportionalNotationDuration = #(ly:make-moment 1/16) + \remove "Separating_line_group_engraver" + \override RehearsalMark.self-alignment-X = #-1 + \override RehearsalMark.Y-offset = #10 + \override RehearsalMark.X-offset = #-8 + %\override RehearsalMark.outside-staff-priority = #0 + } + \context { + \Staff + + \override VerticalAxisGroup.staff-staff-spacing = + #'((basic-distance . 20 ) + (minimum-distance . 20 ) + (padding . 0 ) + (stretchability . 0)) + + \override VerticalAxisGroup.default-staff-staff-spacing = + #'((basic-distance . 20 ) + (minimum-distance . 20 ) + (padding . 0 ) + (stretchability . 0)) + + %\override TimeSignature.font-size = #2 + %\override TimeSignature.break-align-symbol = #'clef + %\override TimeSignature.X-offset = + % #ly:self-alignment-interface::x-aligned-on-self + %\override TimeSignature.self-alignment-X = #LEFT + %\override TimeSignature.Y-offset = #9 + %\override TimeSignature.extra-offset = #'(2 . 0) + %\override TimeSignature.break-visibility = #end-of-line-invisible + \override TextScript.staff-padding = #2 + \override TextScript.self-alignment-X = #0 + } + \context { + \StaffGroup + \name "SemiStaffGroup" + \consists "Span_bar_engraver" + \override SpanBar.stencil = + #(lambda (grob) + (if (string=? (ly:grob-property grob 'glyph-name) "|") + (set! (ly:grob-property grob 'glyph-name) "")) + (ly:span-bar::print grob)) + } + \context { + \Score + \accepts SemiStaffGroup + } +} + +\midi { } + + +%showLastLength = R1*10 +\score{ +\new Score + << + \new SemiStaffGroup { + << + \include "includes/part_I.ly" + \include "includes/part_II.ly" + \include "includes/part_III.ly" + >> + } + \include "includes/part_star.ly" + >> + + \layout{} + \midi{} +} + +%\markup { \center-column { \override #'(offset . 5) \underline "3" \override #'(offset . 5) \underline " 2 " \override #'(offset . 5) \underline "1" " 1 " } } \ No newline at end of file diff --git a/lilypond/to_kill_a_monarch_score.midi b/lilypond/to_kill_a_monarch_score.midi new file mode 100644 index 0000000..d09eb93 Binary files /dev/null and b/lilypond/to_kill_a_monarch_score.midi differ diff --git a/lilypond/to_kill_a_monarch_score.pdf b/lilypond/to_kill_a_monarch_score.pdf new file mode 100644 index 0000000..1c1f1b7 Binary files /dev/null and b/lilypond/to_kill_a_monarch_score.pdf differ diff --git a/supercollider/tkam_gui.scd b/supercollider/tkam_gui.scd new file mode 100644 index 0000000..3b697b4 --- /dev/null +++ b/supercollider/tkam_gui.scd @@ -0,0 +1,496 @@ +( +var genWindow, masterView, faderView, buildGenerator, buildTransport, buildMetronome, buildAuxControls, buildMasterFader, buildTrackFader; + +buildGenerator = {arg view; + var ranSeed; + HLayout( + ranSeed = TextField(view, Rect(10, 10, 10, 20)).string_("20200525"), + Button(view).states_([["reset seed"]]).action_(), + Button(view).states_([["random seed"]]).action_(), + Button(view).states_([["generate"]]).action_(), + Button(view).states_([["transcribe"]]).action_({~transcribe.value(~scoreData, ~sectionData)}.inEnvir), + [StaticText(view).string_(" "), stretch: 1] + ) +}; + +buildTransport = {arg win, view; + var sectionDisplay, updateSection; + HLayout( + Button(view).states_([["<<", Color.black]]).action_({arg pState; updateSection.value(-4)}.inEnvir), + Button(view).states_([["<", Color.black]]).action_({arg pState; updateSection.value(-1)}.inEnvir), + Button(view).states_([["play", Color.black], ["stop", Color.black, Color.grey]]).action_({~patterns.play}.inEnvir), + Button(view).states_([[">", Color.black]]).action_({arg pState; updateSection.value(1)}.inEnvir), + Button(view).states_([[">>", Color.black]]).action_({arg pState; updateSection.value(4)}.inEnvir), nil, + sectionDisplay = StaticText(win).string_("section: 1.1").font_(Font("Liberation Mono", 70)), nil) +}; + +buildMetronome = {arg win; + var clock, metronome; + HLayout( + clock = StaticText(win).string_(" 1.1").font_(Font("Liberation Mono", 200)), + StaticText(win).string_("|").font_(Font("Liberation Mono", 200)), + metronome = StaticText(win).string_([-30, -105, -104].collect({arg int; int.asAscii}) + .as(String)).font_(Font("Liberation Mono", 300)).stringColor_(Color.red)) +}; + +buildAuxControls = {arg view; + var tempo, address, updateSection; + HLayout( + tempo = TextField(view).string_("90"), + Button(view).states_([["set tempo"]]).action_({~tempoClock.tempo = tempo.string.asInteger / 60}.inEnvir), + StaticText(view).string_(" | "), + Button(view).states_([["auto advance", Color.black], ["auto advance", Color.black, Color.grey]]).action_({ + arg v; ~autoAdvance = if(v.value == 0, {false}, {true});~autoAdvance; + }.inEnvir).value_(1), + Button(view).states_([["interludes", Color.black], ["interludes", Color.black, Color.grey]]).action_({ + arg v; ~interludes = if(v.value == 0, {false}, {true}) + }.inEnvir), + StaticText(view).string_(" | "), + address = TextField(view, Rect(10, 10, 10, 20)).string_("127.0.0.1:57120"), + Button(view).states_([["set address:port"]]).action_({ + var addr, ip, port; + addr = address.string.split($:); + ip = addr[0]; + port = addr[1].asInteger; + thisProcess.openUDPPort(port); + addr = NetAddr(ip, port); + OSCdef(\externalAdvance_ ++ ~hash, {arg msg, time; {updateSection.value(1)}.inEnvir.defer},'/nextSubsection', addr); + }.inEnvir), + [StaticText(view).string_(" "), stretch: 1]) +}; + + +buildMasterFader = {arg view, masterVol, masterMute, masterIndicators; + HLayout( + VLayout( + [HLayout( + Slider(view).value_(0.8).action_( + {arg v; masterVol = v.value * 1.25; ~play.set(\masterVol, masterVol)}.inEnvir), + masterIndicators[0], + masterIndicators[1]), stretch: 2], + Button(view).states_([["mute", Color.black], ["mute", Color.black, Color.grey]]).action_( + {arg v; masterMute = (1 - v.value).abs; ~play.set(\masterMute, masterMute)}.inEnvir), + StaticText(view).string_(" master ").align_(\center) + ), nil) +}; + + +buildTrackFader = {arg view, name, index, initVal; + var trackIndicator; + + trackIndicator = LevelIndicator(); + + OSCFunc.new({arg msg; {trackIndicator.value = msg[3].ampdb.linlin(-50, 0, 0, 1)}.defer}, + '/trackLevel_' ++ index ++ "_" ++ ~hash, s.addr); + + HLayout( + VLayout( + HLayout( + Slider(view).value_(0.8).action_( + {arg v; var vol = v.value * 1.25; ~play.set(\vol_ ++ index, vol)}.inEnvir), + trackIndicator), + Button(view).states_([["mute", Color.black], ["mute", Color.black, Color.grey]]).action_( + {arg v; var mute = (1 - v.value).abs; ~play.set(\mute_ ++ index, mute)}.inEnvir).value_(initVal), + VLayout( + StaticText(view).string_("pan").align_(\center), + Knob(view).action_({arg v; var pan = v.value * 2 - 1; ~play.set(\pan_ ++ index, pan)}.inEnvir).value_(0.5) + ), //[StaticText(view).string_(" "), stretch: 0.1] + StaticText(view).string_(name).align_(\center) + ), + nil) +}; + + +masterView = {arg win; + var updateTransport, updateSection, + view, generator, transport, countOff, ranSeed, order, tempo, sectionDisplay, clock, metronome, address, auxControls; + + view = View(win); + generator = buildGenerator.value(view); + transport = buildTransport.value(win, view); + metronome = buildMetronome.value(win); + auxControls = buildAuxControls.value(view); + + view.layout_( + HLayout( + [ + VLayout( + metronome, + [StaticText(view).string_(" "), stretch: 1], //nil + transport, + [StaticText(view).string_(" "), stretch: 1], + auxControls, + [StaticText(view).string_(" "), stretch: 1], + generator), + alignment: \top + ] + ) + ) +}; + + +faderView = {arg win; + var view, masterIndicators, trackIndicators, master, tracks; + var partAbbr = ["*", "III", "II", "I", "accomp", "click"]; + var trackNames = ["*", "III", "II", "I", "accomp", "click"]; + var partVols, partMutes, partPans; + var masterMute, masterVol; + + // set initial mixer values + partVols = [1, 1, 1, 1, 1, 1]; + partMutes = [0, 1, 1, 1, 1, 0]; + partPans = [0, 0, 0, 0, 0, 0]; + masterMute = 1; + masterVol = 1; + + view = View(win); + masterIndicators = {LevelIndicator()} ! 2; + trackIndicators = {LevelIndicator()} ! 6; + + /* + OSCFunc.new({arg msg; { + {arg i; masterIndicators[i].value = msg[3 + i].ampdb.linlin(-40, 0, 0, 1)} ! 2}.defer}, + '/masterLevels' ++ ~hash, s.addr); + OSCFunc.new({arg msg; { + {arg i; trackIndicators[i].value = msg[3 + i].ampdb.linlin(-40, 0, 0, 1)} ! 6}.defer}, + '/trackLevels' ++ ~hash, s.addr); + */ + + master = buildMasterFader.value(view, masterVol, masterMute, masterIndicators); + tracks = {arg part; + buildTrackFader.value(view, trackNames[part], part, 0); + } ! 6; + view.layout_(HLayout(master, nil, *tracks)) +}; + + +~generateGUI = { + var win, tabButtonReset, transportButton, mixerButton, helpButton, tabs; + win = Window("to kill a monarch", Rect(500, 500, 1100, 575), false).front; + tabButtonReset = {transportButton.value = 1; mixerButton.value = 1; helpButton.value = 1}; + win.layout = VLayout( + HLayout( + HLayout( + [ + transportButton = Button().states_([["transport", Color.white, Color.grey], ["transport", Color.black]]).action_( + {tabButtonReset.value; transportButton.value = 0; tabs.index = 0 }.inEnvir).value_(0), stretch: 1 + ], [ + mixerButton = Button().states_([["mixer", Color.white, Color.grey], ["mixer", Color.black]]).action_( + {tabButtonReset.value; mixerButton.value = 0; tabs.index = 1 }.inEnvir).value_(1), stretch: 1 + ] + ), + helpButton = Button().states_([["help", Color.white, Color.grey], ["help", Color.black]]).action_( + {tabButtonReset.value; helpButton.value = 0; tabs.index = 2 }.inEnvir).value_(1) + ), + tabs = StackLayout(masterView.value(win), faderView.value(win)/*, helpView.value*/)); +}; + + +//~generateGUI.value + + +//~~FUNCTION THAT GENERATES THE GUI +/* +~generateGUI = { + var win, clockStringFunc, metronomeStringFunc, metronomeColorFunc, masterView, faderView, helpView, tabs; + var tabButtonReset, transportButton, mixerButton, helpButton, startPos = 0; + var partAbbr = ["guitar", "accompHigh", "accompLowLower", "accompLowUpper", "interlude", "click"]; + var trackNames = ["guitar", "high", "low 1", "low 2", "interlude", "click"]; + var partVols, partMutes, partPans; + var masterMute, masterVol; + + // set initial mixer values + partVols = [1, 1, 1, 1, 1, 1]; + partMutes = [0, 1, 1, 1, 1, 0]; + partPans = [0, 0, 0, 0, 0, 0]; + masterMute = 1; + masterVol = 1; + + // these funcs update the elements of the transport panel + clockStringFunc = { + arg measure, beat; + var measureString, beatString, leadSpace; + measureString = measure.asInteger.asString; + beatString = beat.asInteger.asString; + leadSpace = (3 - measureString.size).collect({" "}).join; + leadSpace ++ measureString ++ "." ++ beatString + }; + // [-30, -105, -104] and [-30, -105, -113] are unicode inverse bullet and normal bullet, respectively + metronomeStringFunc = { arg beat; if(beat == 1, + {[-30, -105, -104].collect({arg int; int.asAscii}).as(String)}, + {[-30, -105, -113].collect({arg int; int.asAscii}).as(String)})}; + metronomeColorFunc = { arg beat; if(beat == 1, {Color.red},{Color.black})}; + + win = Window("Counterfeiting in Colonial Connecticut", Rect(500, 500, 1100, 575), false).front; + masterView = { + var updateTransport, updateSection, + view, generator, transport, countOff, ranSeed, order, tempo, sectionDisplay, clock, metronome, address; + + // this func updates the whole transport panel + updateTransport = {arg measure, beat; + clock.string = clockStringFunc.value(measure, beat); + metronome.stringColor = metronomeColorFunc.value(beat); + metronome.string = metronomeStringFunc.value(beat); + {0.75.wait; {metronome.string = ""}.defer}.fork(~tempoClock, quant: 0); + }.inEnvir; + + // this func handles the movement between sections + updateSection = {arg shift, stop = true, manualCall = true; + var runThis; + runThis = (manualCall || (manualCall.not && ~autoAdvance)); + runThis = runThis && ((~currentSection + shift) < ~sectionOrder.size); + runThis = runThis && (((~currentSection % 4) == 3) && ~interludes && manualCall.not).not; + if(runThis, { + var truncOnly, section, subSection; + if(~isPlaying, { + if(stop, { + ~patterns[~sectionOrder[~currentSection]].stop + }) + }); + + truncOnly = case + {(~currentSection + shift) < 0} {true} + {(shift < 0) && ~isPlaying} {true} + {(shift < -1) && ((~currentSection % 4) > 0)} {true} + {true} {false}; + + if(truncOnly.not, { + ~currentSection = (~currentSection + shift).trunc(shift.abs); + }, { + ~currentSection = ~currentSection.trunc(shift.abs); + }); + + section = ((~sectionOrder[~currentSection] / 4) + 1).asInteger; + subSection = ((~sectionOrder[~currentSection] % 4) + 1).asInteger; + sectionDisplay.string = "section: " ++ section.asString ++ "." ++ subSection.asString; + if(~isPlaying, { + countOff = { + if(~interludes && ((~currentSection % 4) == 0), { + Pbind( + \instrument, \click ++ ~hash, + \beat, Pseq([1, 2, 1, 2]), + \dur, 1 + ).play(~tempoClock, quant: 0); + [1, 2, 1, 2].do({arg beat; + { + metronome.stringColor = metronomeColorFunc.value(beat); + metronome.string = metronomeStringFunc.value(beat); + }.defer; + 0.75.wait; + {metronome.string = ""}.defer; + 0.25.wait; + }); + }); + ~play.set(\sel, ~currentSection % 2); + ~patterns[~sectionOrder[~currentSection]].play(~tempoClock, quant: 0); + if(~interludes && ((~currentSection % 4) == 3) && (~currentSection != (~sectionOrder.size - 1)), { + var center, interval, freq1, freq2, tremRate; + center = 50 - 12.0.rand; + interval = 3.0.rand + 2; + freq1 = (center + (interval / 2)).midicps; + freq2 = (center - (interval / 2)).midicps; + tremRate = 50 + 4.0.rand2; + ~interludeTremelo.set(\gate, 1, \amp, 1, \freq1, freq1, \freq2, freq2, \tremRate, tremRate); + }); + if((~currentSection % 4) == 0, { + ~interludeTremelo.set(\gate, 0); + }); + if(((~currentSection % 4)) != 0 && ((~currentSection % 4) != 3), { + ~interludeTremelo.set(\gate, 0, \amp, 0); + }); + }.fork(~tempoClock, quant: 0); + }, { + var measure, beat; + measure = ~sectionStartMeasure[~sectionOrder[~currentSection]]; + beat = 1; + updateTransport.value(measure, beat); + }); + }); + }.inEnvir; + + // these funcs receive messages from the synth + OSCFunc({ arg msg, time; + { + var measure, beat; + measure = msg[3]; + beat = msg[4]; + updateTransport.value(measure, beat) + }.inEnvir.defer; + },'/measureClock' ++ ~hash, s.addr); + + OSCFunc({ arg msg, time; {updateSection.value(1, false, false)}.inEnvir.defer},'/nextSubsection' ++ ~hash, s.addr); + + OSCdef(\externalAdvance ++ ~hash, {arg msg, time; {updateSection.value(1)}.inEnvir.defer},'/nextSubsection', s.addr); + + view = View(win); + generator = HLayout( + ranSeed = TextField(view, Rect(10, 10, 10, 20)).string_("20200525"), + Button(view).states_([["reset seed"]]).action_({ ranSeed.string = "20200525"}.inEnvir), + Button(view).states_([["random seed"]]).action_({ ranSeed.string = 50000000.rand.asString}.inEnvir), + Button(view).states_([["generate"]]).action_({ + {~genAll.value(ranSeed.string.asInteger); ~appStatus.string = "status: ready"}.fork(AppClock); + ~appStatus.string = "status: generating"}.inEnvir), + Button(view).states_([["transcribe"]]).action_({ + {~transcribe.value(~scoreData, ranSeed.string); ~appStatus.string = "status: ready"}.fork(AppClock); + ~appStatus.string = "status: transcribing"}.inEnvir), + [~appStatus = StaticText(view).string_("status: ready"), stretch: 1], nil); + transport = HLayout( + Button(view).states_([["<<", Color.black]]).action_({arg pState; updateSection.value(-4)}.inEnvir), + Button(view).states_([["<", Color.black]]).action_({arg pState; updateSection.value(-1)}.inEnvir), + Button(view).states_([["play", Color.black], ["stop", Color.black, Color.grey]]).action_( + {arg pState; + if(pState.value == 0, { + var measure, beat; + countOff.stop; + ~isPlaying = false; + ~patterns[~sectionOrder[~currentSection]].stop; + ~interludeTremelo.set(\gate, 0); + measure = ~sectionStartMeasure[~currentSection]; + beat = 1; + updateTransport.value(measure, beat); + ~interludeTremelo.set(\gate, 0, \amp, 0); + },{ + countOff = { + Pbind( + \instrument, \click ++ ~hash, + \beat, Pseq([1, 2, 1, 2]), + \dur, 1 + ).play(~tempoClock, quant: 0); + [1, 2, 1, 2].do({arg beat; + { + metronome.stringColor = metronomeColorFunc.value(beat); + metronome.string = metronomeStringFunc.value(beat); + }.defer; + 0.75.wait; + {metronome.string = ""}.defer; + 0.25.wait; + }); + ~isPlaying = true; + ~play.set(\sel, ~currentSection % 2); + ~patterns[~sectionOrder[~currentSection]].play(~tempoClock, quant: 0); + if(~interludes && ((~currentSection % 4) == 3) && (~currentSection != (~sectionOrder.size - 1)), { + var center, interval, freq1, freq2, tremRate; + center = 50 - 12.0.rand; + interval = 3.0.rand + 2; + freq1 = (center + (interval / 2)).midicps; + freq2 = (center - (interval / 2)).midicps; + tremRate = 50 + 4.0.rand2; + ~interludeTremelo.set(\gate, 1, \amp, 1, \freq1, freq1, \freq2, freq2, \tremRate, tremRate); + }); + }.fork(~tempoClock, quant: 0); + }) + }.inEnvir + ), + Button(view).states_([[">", Color.black]]).action_({arg pState; updateSection.value(1)}.inEnvir), + Button(view).states_([[">>", Color.black]]).action_({arg pState; updateSection.value(4)}.inEnvir), nil, + sectionDisplay = StaticText(win).string_("section: 1.1").font_(Font("Liberation Mono", 70)), nil); + view.layout_(HLayout( + [VLayout( + HLayout(clock = StaticText(win).string_(" 1.1").font_(Font("Liberation Mono", 200)), + StaticText(win).string_("|").font_(Font("Liberation Mono", 200)), + metronome = StaticText(win).string_([-30, -105, -104].collect({arg int; int.asAscii}).as(String)).font_(Font("Liberation Mono", 300)).stringColor_(Color.red)), + nil, transport, nil, + HLayout( + tempo = TextField(view).string_("90"), + Button(view).states_([["set tempo"]]).action_({~tempoClock.tempo = tempo.string.asInteger / 60}.inEnvir), + StaticText(view).string_(" | "), + Button(view).states_([["auto advance", Color.black], ["auto advance", Color.black, Color.grey]]).action_({ + arg v; ~autoAdvance = if(v.value == 0, {false}, {true});~autoAdvance; + }.inEnvir).value_(1), + Button(view).states_([["interludes", Color.black], ["interludes", Color.black, Color.grey]]).action_({ + arg v; ~interludes = if(v.value == 0, {false}, {true}) + }.inEnvir), + StaticText(view).string_(" | "), + address = TextField(view, Rect(10, 10, 10, 20)).string_("127.0.0.1:57120"), + Button(view).states_([["set address:port"]]).action_({ + var addr, ip, port; + addr = address.string.split($:); + ip = addr[0]; + port = addr[1].asInteger; + thisProcess.openUDPPort(port); + addr = NetAddr(ip, port); + OSCdef(\externalAdvance ++ ~hash, {arg msg, time; {updateSection.value(1)}.inEnvir.defer},'/nextSubsection', addr); + }.inEnvir), + [StaticText(view).string_(" "), stretch: 1]), + [StaticText(view).string_(" "), stretch: 1], + HLayout( + order = TextField(view).string_("1-16"), + Button(view).states_([["set order"]]).action_({ + ~patterns[~sectionOrder[~currentSection]].stop; + ~sectionOrder = order.string.split($,).collect({arg secEntry; + var bounds; + bounds = secEntry.split($-).collect({arg item; item.asInteger - 1}); + ((bounds.minItem)..(bounds.maxItem)).collect({arg sec; + (sec.asInteger * 4) + [0, 1, 2, 3] + }); + }).flat; + ~currentSection = 0; + updateSection.value(0); + }.inEnvir), + [StaticText(view).string_(" "), stretch: 1]), + [StaticText(view).string_(" "), stretch: 1], generator + ), alignment: \top]))}; + faderView = { + var view, masterIndicators, trackIndicators, master, tracks; + view = View(win); + masterIndicators = {LevelIndicator()} ! 2; + trackIndicators = {LevelIndicator()} ! 6; + + OSCFunc.new({arg msg; { + {arg i; masterIndicators[i].value = msg[3 + i].ampdb.linlin(-40, 0, 0, 1)} ! 2}.defer}, + '/masterLevels' ++ ~hash, s.addr); + OSCFunc.new({arg msg; { + {arg i; trackIndicators[i].value = msg[3 + i].ampdb.linlin(-40, 0, 0, 1)} ! 6}.defer}, + '/trackLevels' ++ ~hash, s.addr); + + master = HLayout( + VLayout( + [HLayout( + Slider(view).value_(0.8).action_( + {arg v; masterVol = v.value * 1.25; ~play.set(\masterVol, masterVol)}.inEnvir), + masterIndicators[0], + masterIndicators[1]), stretch: 2], + Button(view).states_([["mute", Color.black], ["mute", Color.black, Color.grey]]).action_( + {arg v; masterMute = (1 - v.value).abs; ~play.set(\masterMute, masterMute)}.inEnvir), + StaticText(view).string_(" master ").align_(\center) + ), nil); + tracks = {arg part; + HLayout( + VLayout( + HLayout( + Slider(view).value_(0.8).action_( + {arg v; partVols[part] = v.value * 1.25; ~play.set(partAbbr[part] ++ "Vol", partVols[part])}.inEnvir), + trackIndicators[part]), + Button(view).states_([["mute", Color.black], ["mute", Color.black, Color.grey]]).action_( + {arg v; partMutes[part] = (1 - v.value).abs; ~play.set(partAbbr[part] ++ "Mute", partMutes[part])}.inEnvir).value_( + {if((part == 0) || (part == 5), {1}, {0})}.value), + StaticText(view).string_("pan").align_(\center), + Knob(view).value_(0.5).action_( + {arg v; partPans[part] = v.value * 2 - 1; ~play.set(partAbbr[part] ++ "Pan", partPans[part])}.inEnvir), + StaticText(view).string_(trackNames[part]).align_(\center) + ), + nil) + } ! 6; + view.layout_(HLayout(master, nil, *tracks))}; + helpView = { + TextView(win).string_(File.readAllString(~dir +/+ "cicc_readme.scd")).editable_(false); + }; + tabButtonReset = {transportButton.value = 1; mixerButton.value = 1; helpButton.value = 1}; + win.layout = VLayout( + HLayout( + HLayout( + [ + transportButton = Button().states_([["transport", Color.white, Color.grey], ["transport", Color.black]]).action_( + {tabButtonReset.value; transportButton.value = 0; tabs.index = 0 }.inEnvir).value_(0), stretch: 1 + ], [ + mixerButton = Button().states_([["mixer", Color.white, Color.grey], ["mixer", Color.black]]).action_( + {tabButtonReset.value; mixerButton.value = 0; tabs.index = 1 }.inEnvir).value_(1), stretch: 1 + ] + ), + helpButton = Button().states_([["help", Color.white, Color.grey], ["help", Color.black]]).action_( + {tabButtonReset.value; helpButton.value = 0; tabs.index = 2 }.inEnvir).value_(1) + ), + tabs = StackLayout(masterView.value, faderView.value, helpView.value)); +}; +*/ +) diff --git a/supercollider/tkam_main.scd b/supercollider/tkam_main.scd new file mode 100644 index 0000000..b8ddef5 --- /dev/null +++ b/supercollider/tkam_main.scd @@ -0,0 +1,59 @@ +( +// MAIN LAUNCH (loads necessary files and definitions) + +var appEnvironment; + +//push new environment +appEnvironment = Environment.make; +appEnvironment.push; + +s.waitForBoot({ + + ~hash = Date.getDate.hash.asString; + + // load all files + "tkam_musical_data_generator.scd".loadRelative; + "tkam_sonifier.scd".loadRelative; + "tkam_gui.scd".loadRelative; + "tkam_transcriber.scd".loadRelative; + + ~dUnit = 8.reciprocal; + ~musicData = ~genMusicData.value(~dUnit); + ~scoreData = ~genScoreData.value(~musicData[0]); + ~sectionData = ~musicData[2]; + ~sectionData.postln; + ~patterns = ~genPatterns.value(~musicData[0], ~musicData[1], ~dUnit); + //~patterns.play; + ~tempoClock = TempoClock.new(60); + ~dir = thisProcess.nowExecutingPath.dirname; + "loading app".postln; + ~play = Synth.new(\masterPlayerControl_ ++ ~hash); + ~generateGUI.value; + "ready".postln; + + // generate all the data + /* + ~genAll = {arg seed; + ~allMusicData = ~genMusicData.value(seed); + ~patterns = ~allMusicData[0]; + ~scoreData = ~allMusicData[1]; + ~sectionOffsets = ~allMusicData[2]; + ~currentSection = 0; + ~currentSubsection = 0; + ~isPlaying = false; + }; + + // set the global variables + ~tempoClock = TempoClock.new(60); + ~dir = thisProcess.nowExecutingPath.dirname; + "loading app".postln; + ~genAll.value(20200525); + ~play = Synth.new(\masterPlayerControl ++ ~hash); + + ~sectionOrder = ~patterns.size.collect({arg sec; sec}); + ~generateGUI.value; + "ready".postln; + */ +}); +appEnvironment.pop; +) diff --git a/supercollider/tkam_musical_data_generator.scd b/supercollider/tkam_musical_data_generator.scd new file mode 100644 index 0000000..81586a2 --- /dev/null +++ b/supercollider/tkam_musical_data_generator.scd @@ -0,0 +1,507 @@ +( +var frAdd, frDiff, frToFloat, frNearestInList, frCollapse, harmonicDistance, //helper functions +genMode, hdChoose, wchooseDict, collectRoots, +initModeState, advanceMode, +initTemporalState, genTemporalData, +initPartStates, distributeRoots, +genEnsemblePart, genAccompPart, genMusicData, genScoreData, genPatterns; + +//thisThread.randSeed = 1000; + +//~~~~~~~~~~~~FREQUENCY RATIO MATH FUNCTIONS~~~~~~~~~~~~ +//for frequency ratios in the form [numerator.factors, denominator.factors] +//we use arrays of factors in order to represent very complex ratios + +//add +frAdd = {arg fr0, fr1; + var num, den; + num = fr0[0] ++ fr1[0]; + den = fr0[1] ++ fr1[1]; + [[1] ++ num.difference(den).sort, [1] ++ den.difference(num).sort] +}; + +//difference +frDiff = {arg fr0, fr1; + var res; + res = frAdd.value(fr0, fr1.reverse); + if(frToFloat.value(res) < 1, {res = res.reverse}); + res +}; + +//convert to float +frToFloat = {arg fr; fr[0].asFloat.product / fr[1].asFloat.product}; + +//find nearest in list (not sharing the same root or itself) +frNearestInList = {arg frComp, frDict; + var frNearest, diffNearest, sub; + frNearest = nil; + diffNearest = 1000; + frDict.reject({arg item; + (item[\root][0] == frComp[1]) || + (item[\fr] == frComp[1]) + }).keys.do({arg fr; + var diff = abs(frToFloat.value(fr) - frToFloat.value(frComp[0])); + if(diff < diffNearest, {diffNearest = diff; frNearest = fr}); + }); + frNearest +}; + +//collapse into one octave +frCollapse = {arg fr; + var res = fr; + while({frToFloat.value(res) >= 2}, {res = frAdd.value(res, [1, 2])}); + while({frToFloat.value(res) < 1}, {res = frAdd.value(res, [2, 1])}); + res +}; + +//harmonic distance +harmonicDistance = {arg fr; log2(fr[0].asFloat.product * fr[1].asFloat.product)}; + + +//~~~~~~~~~~~~GENERATE MODE~~~~~~~~~~~~ +//TODO: Play with this a bit more (should I go back to the old way) +genMode = { + var mode; + mode = [ + [1, 1], + [9, 8], + [[5, 4], [6, 5]].wchoose([3, 1].normalizeSum), + [[4, 3], [11, 8]].wchoose([1, 10].normalizeSum), + [3, 2], + [[8, 5], [13, 8]].wchoose([1, 10].normalizeSum), + [[15, 8], [7, 4]].wchoose([1, 10].normalizeSum) + ]; + mode.collect({arg fr; [[1] ++ fr[0].factors, [1] ++ fr[1].factors]}); +}; + + +//~~~~~~~~~~~~CHOOSE AND COLLECT FUNCTIONS~~~~~~~~~~~~ +hdChoose = {arg mode, exp = 1, weights = [1, 1, 1, 1, 1, 1, 1]; + var probs; + probs = pow((1 / mode.collect({arg fr; + harmonicDistance.value(if(fr == [[1], [1]], {[[2], [1]]}, {fr}))})), exp) * weights; + mode.wchoose(probs.normalizeSum) +}; + +wchooseDict = {arg dict, exp = 1, limit = 0; + var keyList, probs; + keyList = dict.keys.asList; + probs = keyList.collect({arg key; + var count = dict[key][\count]; + if(count < limit, {0}, {count}) + }); + probs = pow(probs, exp); + keyList.wchoose(probs.normalizeSum) +}; + +collectRoots = {arg dict; dict.keys.collect({arg fr; dict[fr][\root][0]})}; + + +//~~~~~~~~~~~~GENERATE MODE SEQUENCE~~~~~~~~~~~~ +initModeState = { + var curModeState, frSet; + curModeState = Dictionary.new; + frSet = [[1, 1], [9, 8], [6, 5], [11, 8], [3, 2], [13, 8], [7, 4]].collect({arg fr; + [[1] ++ fr[0].factors, [1] ++ fr[1].factors]}); + frSet.do({arg fr; + var mode, count; + mode = genMode.value; + count = if(fr == [[1], [1]], {10}, {1}); + curModeState.add(fr-> + Dictionary.with(*[\count->count, \mode->frSet, \root->[[[1], [1]], frSet], \mult->fr, \fr->fr])) + }); + curModeState; +}; + +advanceMode = {arg lastModeState, lastCadenceState; + var frSet, curModeState, curRoots, lastRoots, lastCadenceRoot, changeCount; + + curModeState = lastModeState.deepCopy; + curRoots = collectRoots.value(curModeState); + lastRoots = collectRoots.value(lastModeState); + lastCadenceRoot = collectRoots.value(lastCadenceState).asList[0]; + changeCount = 0; + + //change either when there is a single root or a few notes have changed in the mode + while({ + ((curRoots == lastRoots) && (changeCount < 3)) || + ((changeCount < 2) && (curRoots.size > 1)) + }, { + var roots, rootSel, mults, multProbs, multSel, new; + + //bump for length of time its been around + curModeState.keysValuesDo({arg key, val; + val[\count] = val[\count] + 1; + if(val[\count] > 100, {val[\count] = 1}); + }); + + // max 3 roots that were not the last cadencial root and only in the mode of the last cadence + roots = curModeState.reject({arg val; + (val[\fr] == lastCadenceRoot) || + lastCadenceState.includesKey(val[\fr]).not || //consider two steps out? + ((curRoots.size >= 3) && curRoots.includes(val[\fr]).not) + }); + + rootSel = wchooseDict.value(roots, 1, 2); + mults = curModeState[rootSel][\mode]; + multProbs = mults.collect({arg fr; + if(curModeState.keys.includes(frCollapse.value(frAdd.value(rootSel, fr))), {1}, {2})}); + multSel = hdChoose.value(mults, 0.5, multProbs); + new = frCollapse.value(frAdd.value(rootSel, multSel)); + + curModeState[rootSel][\count] = curModeState[rootSel][\count] + 2; //bump if gets chosen as a root + + if(curModeState.includesKey(new), { + //bump if it gets chosen again + curModeState[new][\count] = curModeState[new][\count] + 1; + //"ran0".postln; + if((curModeState[new][\count] >= 20), { + //"ran1".postln; + curModeState[new][\root] = [rootSel, curModeState[rootSel][\mode]] + }); + }, { + var old; + //calculate nearest in list that does not share the same root + old = frNearestInList.value([new, rootSel], curModeState); + if(curModeState[old][\count] >= 20, { + var mode, root; + //"ran2".postln; + mode = genMode.value; + root = [rootSel, curModeState[rootSel][\mode]]; + curModeState.add(new -> + Dictionary.with(*[\count->1,\mode->genMode.value, \root->root, \mult->multSel, \fr->new])); + curModeState.removeAt(old); + changeCount = changeCount + 1; + }) + }); + curRoots = collectRoots.value(curModeState); + }); + curModeState +}; + + +//~~~~~~~~~~~~GENERATE TEMPORAL FRAMEWORK~~~~~~~~~~~~ +initTemporalState = { + Dictionary.with(*[[0, 1], [0, 1], [0, 1]].allTuples.collect({arg tuple; + tuple->Dictionary.with(*[\count->1])})) +}; + +//The temporal density could / should also be based on the parts contribution to the mode +genTemporalData = {arg lastTupleState, modeState, cadenceOverride, noParts = 4; + var cadence, curTupleState, timeToNextEvent, tuple, temporalData; + + cadence = if(collectRoots.value(modeState).size == 1, {cadenceOverride.not}, {false}); + curTupleState = lastTupleState.deepCopy; + timeToNextEvent = (64 + 50.rand + if(cadence, {50}, {0})).round(16); + tuple = wchooseDict.value(curTupleState); + //curTupleState = curTupleState.collect({arg dict; dict[\count] + 1}); + if(cadence, {tuple = [1, 1, 1]}); + curTupleState = curTupleState.keysValuesDo({arg key, val; + curTupleState[key][\count] = val[\count] + 1}); + curTupleState[tuple][\count] = 0; + tuple = if(cadence, {[1, 1, 1, 1]}, {[0] ++ tuple}); + + temporalData = noParts.collect({arg p; + var flourishDensity, genDensity, flourish, beforeLen, before, after, buffer; + flourishDensity = if(tuple[p] == 1, {0.125 + 0.5.rand}, {3}); + if((p == 0) && cadence.not, {flourishDensity = 3}); + genDensity = if(p == 0, {3}, {20}); + + flourish = (if(cadence, {16}, {8}) + 32.rand).collect({[0, 1].wchoose([flourishDensity, 1].normalizeSum)}); + buffer = 16.collect({0}); + beforeLen = if(cadence, {32.rand}, {((timeToNextEvent - flourish.size - buffer.size) / 2).asInteger.rand}); + before = beforeLen.collect({arg i; [0, 1].wchoose([genDensity, 1].normalizeSum)}); + //if(collectRoots.value(modeState).size == 1, {before = [0]}); + after = (timeToNextEvent - before.size - flourish.size - buffer.size).collect({[0, 1].wchoose([genDensity, 1].normalizeSum)}); + flourish = before ++ flourish ++ after; + if(flourish.sum == 0, {flourish[flourish.size.rand] = 1}); + flourish = buffer ++ flourish; + }); + + [temporalData, curTupleState] +}; + + +//~~~~~~~~~~~~GENERATE ENSEMBLE PARTS~~~~~~~~~~~~ +initPartStates = { + var allRatios; + allRatios = [[1, 1], [9, 8], [5, 4], [6, 5], [4, 3], [11, 8], [3, 2], [8, 5], [13, 8], [15, 8], [7, 4]]; + Dictionary.with(* + 4.collect({arg part; + part->Dictionary.with(*[\multCounts-> + Dictionary.with(*allRatios.collect({arg fr; + [[1] ++ fr[0].factors, [1] ++ fr[1].factors]->1})), + \noteCount->0, \index->part, \lastFreq->0, \lastFreqRatio->[[1], [1]], \lastDur->0 + ]) + }) + ) +}; + +//this is how a root is chosen this is where we need much more consideration / work +//change this to a dictionary +distributeRoots = {arg modeState, lastRoots; + var roots; + roots = modeState.keys.asList.collect({arg fr; modeState[fr][\root]}); + roots = roots.asBag.contents.asPairs.reverse.clump(2); + roots = roots.sort({arg a, b; a[0] > b[0]}).collect({arg item; item[1]}).wrapExtend(4); + roots = [roots[0]] ++ roots[..2].scramble; + roots = 4.collect({arg part; + var root, rootMod, rootFreq, mode; + //root = modeState.keys.collect({arg fr; modeState[fr][\root]}).choose; + //if(part == 0, {root = roots[0]}); + root = roots[part]; + rootMod = frDiff.value(root[0], lastRoots[part]); + rootFreq = 36.midicps * pow(2, [1, 0, 1, 2][part]) * frToFloat.value(root[0]); + [root[0], root[1], rootMod, rootFreq] + }); + roots = roots.collect({arg root, r; + var rootRels; + rootRels = 4.collect({arg p; frDiff.value(root[0], roots[p][0])}); + rootRels.removeAt(r); + root.add(rootRels) + }); + roots +}; + +genEnsemblePart = {arg partState, modeState, temporalData, roots, part, offset; + var trans, root, mults, rootMod, amp, firstChange, cadence, ensData; + + trans = pow(2, [1, 0, 1, 2][partState[\index]]); + # root, mults, rootMod = roots[part]; + amp = [0, 1, 2, 3].wchoose([0, 2, 2, 2].normalizeSum); + firstChange = false; + cadence = if(collectRoots.value(modeState).size == 1, {true}, {false}); + if(offset == 0, {cadence = false}); + + ensData = []; + temporalData.do({arg val, ts; + var timeStamp, comp, change; + + partState[\lastDur] = partState[\lastDur] + 1; + timeStamp = ts + offset; + change = [val == 1, (val == 1) && firstChange.not].wchoose([1, 2].normalizeSum);//5 * abs((curPulse / totalLen).clip(0, 1) - 1)].normalizeSum); + if( + (partState[\index] == 0) && + (frToFloat.value(partState[\lastFreqRatio]) >= 4.0) && + (partState[\lastDur] < 16) && cadence.not, + {change = false} + ); + + if(change, { + var mult, multWeights, freq, rootFreq, insRef; + + //this is is not working correctly + multWeights = mults.collect({arg fr; + var comp = frCollapse.value(frAdd.value(root, fr)); + if(modeState.keys.includes(comp), {3}, {1}) * pow(partState[\multCounts][fr], 1); + }); + + /* + mult = if( (i == (curPhrase.size - 1)), { + hdChoose.value(mults, 3, multWeights); + }, { + hdChoose.value(mults, 0.5, multWeights); + }); + */ + + mult = hdChoose.value(mults, 0.5, multWeights); + mults.do({arg fr; partState[\multCounts][fr] = partState[\multCounts][fr] + 1}); + partState[\multCounts][mult] = 0; + + freq = 36.midicps * trans * frToFloat.value(frAdd.value(root, mult)); + + //flute special case + if((partState[\index] == 0) && cadence.not, { + var mode, continue, freqRatio; + mode = modeState.keys.asList.collect({arg fr; + [ + frCollapse.value(frAdd.value(modeState[fr][\root][0], modeState[fr][\mult])), + modeState[fr][\root][0], modeState[fr][\mult] + ] + }); + mode = mode.sort({arg a, b; frToFloat.value(a[0]) < frToFloat.value(b[0])}); + mode = mode ++ mode.collect({arg fr; [frAdd.value(fr[0], [[2], [1]]), fr[1], fr[2]]}); + mode = mode ++ mode.collect({arg fr; [frAdd.value(fr[0], [[4], [1]]), fr[1], fr[2]]}); + continue = true; + //something is still not right here + while({continue}, { + # freqRatio, root, mult = mode[partState[\noteCount] % 15]; + freq = 36.midicps * trans * frToFloat.value(frAdd.value([[1], [1]], freqRatio)); + continue = (freq <= partState[\lastFreq]) && ((partState[\noteCount] % 15) != 0); + partState[\noteCount] = partState[\noteCount] + 1; + }); + partState[\lastFreq] = freq; + partState[\lastFreqRatio] = freqRatio; + insRef = roots.slice(nil, 0).deepCopy.drop(1).indexOfEqual(root) + 1; + }); + + rootFreq = 36.midicps * trans * frToFloat.value(root); + + if((partState[\index] == 0) && ((partState[\noteCount] % 15) == 1) && cadence.not, {ensData = ensData.add([0, timeStamp - 8, 0, 0, 0])}); + ensData = ensData.add([freq, timeStamp, amp, mult, insRef]); + firstChange = true; + partState[\lastDur] = 0; + if((partState[\index] == 0) && cadence, {partState[\lastDur] = 32}); + }); + }); + ensData = [[0, ensData[0][1] - 4, 0, 0, 0]] ++ ensData; + [ensData, partState] +}; + + +//~~~~~~~~~~~~GENERATE ELECTRONIC ACCOMPANIMENT~~~~~~~~~~~~ +genAccompPart = {arg modeState, temporalData, offset, trans, part; + var accompData; + accompData = []; + temporalData.do({arg val, tS; + var change; + change = [val == 1, tS == 0].wchoose([1, if(part == 0, {5}, {2})].normalizeSum); //5 * abs((curPulse / totalLen).clip(0, 0.8) - 1)].normalizeSum); + if(change, { + var sel, freq, amp; + sel = wchooseDict.value(modeState, 0.1); + freq = 48.midicps * trans * frToFloat.value(sel); + amp = [0, 1, 2, 3].wchoose([5, 2, 1, 1].normalizeSum); + accompData = accompData.add([freq, tS + offset, amp]); + }); + }); + accompData +}; + + +//~~~~~~~~~~~~GENERATE ALL MUSIC DATA~~~~~~~~~~~~ +~genMusicData = {arg dUnit; + var totalDur, totalLen, curLen, + modeState, temporalState, partStates, lastCadenceState, + ensData, accompData, sectionData, + roots, lastRoots; + + totalDur = 2 * 60; + totalLen = (totalDur / dUnit).round(16); + curLen = 0; + + modeState = initModeState.value; + temporalState = initTemporalState.value; + partStates = initPartStates.value; + lastCadenceState = modeState.deepCopy; + + ensData = 4.collect({[]}); + accompData = 4.collect({6.collect({[]})}); + sectionData = Dictionary.with(*[0->4]); + + while({curLen < totalLen}, { + var temporalData; + # temporalData, temporalState = genTemporalData.value(temporalState, modeState, curLen == 0); + + collectRoots.value(modeState).collect({arg fr; [fr[0].asFloat.product, fr[1].asFloat.product]}).postln; + //modeState.keys.postln; + "-----------".postln; + + lastRoots = if(curLen == 0, {4.collect({[[1], [1]]})}, {roots.slice(nil, 0)}); + roots = distributeRoots.value(modeState, lastRoots); + + sectionData.add((curLen / 4).asInteger->[roots.postln, lastRoots.collect({arg fr, part; + [fr, 36.midicps * pow(2, [1, 0, 1, 2][part]) * frToFloat.value(fr)]})]); + + 4.do({arg part; + var musicData, partState, noteCountInd; + # musicData, partState = genEnsemblePart.value(partStates[part], modeState, temporalData[part], roots, part, curLen); + ensData[part] = ensData[part] ++ musicData; + partStates[part] = partState; + + 6.do({arg register; + musicData = genAccompPart.value(modeState, temporalData[part], curLen, pow(2, part + register), part); + accompData[part][register] = accompData[part][register] ++ musicData; + }); + + }); + modeState = advanceMode.value(modeState, lastCadenceState); + if(collectRoots.value(modeState).size == 1, {lastCadenceState = modeState}); + curLen = curLen + temporalData[0].size; + }); + + //format + ensData = ensData.collect({arg partData; + partData.flop.collect({arg data, d; if(d == 1, {data.differentiate ++ [10]}, {[0] ++ data})}) + }); + + accompData = accompData.collect({arg voice; + voice.collect({arg partData; + partData.flop.collect({arg data, d; if(d == 1, {data.differentiate ++ [10]}, {[0] ++ data})}) + }); + }); + + [ensData, accompData, sectionData] +}; + + +//~~~~~~~~~~~~GENERATE SCORE DATA~~~~~~~~~~~~ +genScoreData = {arg ensData; ensData.collect({arg part; part.flop})}; + + +//~~~~~~~~~~~~DEFINE SYNTHS~~~~~~~~~~~~ +/* +SynthDef(\ens, {arg freq = 440, amp = 1, dur = 1, gate = 1; + Out.ar([0, 1], SinOsc.ar(freq, 2pi.rand, amp * 0.01) * EnvGen.kr(Env.asr(0.1, 1, 0.1), gate, doneAction: 2)) +}).add; + +SynthDef(\accomp, {arg freq = 440, amp = 1, attack = 1, dur = 1, gate = 1, bout = 0; + Out.ar(bout, SinOsc.ar(freq, 2pi.rand, 1) * 0.01 * amp * EnvGen.kr(Env.asr(attack, 1, 0.01), gate, doneAction: 2)) +}).add; + +SynthDef(\clip, {arg dur = 1, gate = 1, bin = 0; + //Out.ar([0, 1], (In.ar(bin)).clip(0, 1) * pow(Line.kr(0, 1, 240), 2)) + Out.ar([0, 1], (In.ar(bin)).clip(0, 1) * pow(Line.kr(0, 1, 10), 2)) +}).add; + + +//~~~~~~~~~~~~GENERATE PATTERNS~~~~~~~~~~~~ +genPatterns = {arg ensData, accompData, dUnit; + Ppar( + ensData.collect({arg musData, m; + Pbind( + \instrument, \ens, + \freq, Pseq(musData[0]), + //\freq, Pseq(musData[0].collect({arg freq; freq.cpsmidi.round(0.5).midicps})), + \dur, Pseq(musData[1] * dUnit), + \sustain, Pseq(musData[1] * dUnit), + \amp, [0.5, 0.3, 0.3, 0.3][m] //Pseq(musData[2].collect({arg item; [0, 0.25, 0.5, 0.75][item]}) * [1, 0.5, 0.25, 0.1][m] * 16);// * musData[3].collect({arg val; if(val < 0.25, {0}, {0.5})})) + ) + }) ++ + accompData.collect({arg voice, v; + voice.collect({arg musData; + Pbind( + \instrument, \accomp, + \freq, Pseq(musData[0]), + //\freq, Pseq(musData[0].collect({arg freq; freq.cpsmidi.round(0.5).midicps})), + \dur, Pseq(musData[1] * dUnit), + \sustain, Pseq(musData[1] * dUnit), + \amp, Pseq(musData[2].collect({arg item; [0, 2, 4, 8][item]}) * 0.0125 * 1), + //\attack, Pseq(musData[1] * abs(musData[3].clip(0, 0.25) * 2 - 1) * dUnit), + \attack, Pseq(musData[1] * 0.9 * dUnit), + \bout, v + 5 + ) + }).add( + Pmono( + \clip, + \bin, v + 5 + ) + ) + }).flatten + ); +}; +*/ + + +//~~~~~~~~~~~~MAIN / RUN~~~~~~~~~~~~ +/* +~dUnit = 8.reciprocal; +~musicData = genMusicData.value(~dUnit); +~scoreData = genScoreData.value(~musicData[0]); +~sectionData = ~musicData[2]; +~sectionData.postln; +~patterns = genPatterns.value(~musicData[0], ~musicData[1], ~dUnit); +//~patterns.play; +*/ +) + + diff --git a/supercollider/tkam_sonifier.scd b/supercollider/tkam_sonifier.scd new file mode 100644 index 0000000..53ae762 --- /dev/null +++ b/supercollider/tkam_sonifier.scd @@ -0,0 +1,241 @@ +( +//busses +~partStarBus = Bus.audio(s, 1); +~partIBus = Bus.audio(s, 1); +~partIIBus = Bus.audio(s, 1); +~partIIIBus = Bus.audio(s, 1); +~accompBus = Bus.audio(s, 1); +~clickBus = Bus.audio(s, 1); + +~busses = 6.collect({Bus.audio(s, 1)}); + +SynthDef(\masterPlayerControl_ ++ ~hash, { + var sigs, sigsPanned, masterSig, imp; + + sigs = ~busses.collect({arg bus, i; In.ar(bus) * NamedControl.kr(\vol_ ++ i, 1, 0.1)}); + sigsPanned = sigs.collect({arg sig, i; Pan2.ar(sig * NamedControl.kr(\mute_ ++ i, 1, 0.1), NamedControl.kr(\pan_ ++ i, 0.5, 0.1))}); + masterSig = Mix.ar(sigsPanned.drop(-1)) * NamedControl.kr("vol_master" ++ i, 1, 0.1) * NamedControl.kr("mute_master" ++ i, 1, 0.1); + + Out.ar(0, masterSig); + Out.ar(2, sigsPanned.last); //change this if you want the click to go somewhere else + + imp = Impulse.kr(10); + SendReply.kr(imp, '/masterLevels_' ++ ~hash, values: [Amplitude.kr(masterSig)]); + sigs.collect({arg sig, i; SendReply.kr(imp, '/trackLevel_' ++ i ++ "_" ++ ~hash, values: [Amplitude.kr(sig)])}); +}).add; + + +SynthDef(\transport_ ++ ~hash, {arg measure = 0, beat = 0, gate = 1, dur = 1; + SendReply.kr(Impulse.kr(0) * (measure > 0) * (beat > 0),'/measureClock_' ++ ~hash, values: [measure, beat]); + SendReply.kr(Impulse.kr(0) * (measure < 1) * (beat < 1),'/nextSubsection_' ++ ~hash); + EnvGen.kr(Env.sine(dur), gate, doneAction: 2); +}).add; + + +SynthDef(\click_ ++ ~hash, {arg beat = 0, gate = 1, dur = 1; + Out.ar(~busses[5], 10 * BPF.ar(WhiteNoise.ar * EnvGen.kr(Env.perc(0.01, 0.1), gate), 440 * ((beat <= 1) + 1), 0.02)); + EnvGen.kr(Env.sine(dur), gate, doneAction: 2); +}).add; + + +//~~~~~~~~~~~~DEFINE SYNTHS~~~~~~~~~~~~ +SynthDef(\ens_ ++ ~hash, {arg freq = 440, amp = 1, dur = 1, gate = 1, bus = 0; + Out.ar(bus, SinOsc.ar(freq, 2pi.rand, amp * 0.1) * EnvGen.kr(Env.asr(0.1, 1, 0.1), gate, doneAction: 2)) +}).add; + +SynthDef(\accomp_ ++ ~hash, {arg freq = 440, amp = 1, attack = 1, dur = 1, gate = 1, bout = 0; + Out.ar(bout, SinOsc.ar(freq, 2pi.rand, 1) * 0.01 * amp * EnvGen.kr(Env.asr(attack, 1, 0.01), gate, doneAction: 2)) +}).add; + +SynthDef(\clip_ ++ ~hash, {arg dur = 1, gate = 1, bin = 0, bus = 0; + //Out.ar([0, 1], (In.ar(bin)).clip(0, 1) * pow(Line.kr(0, 1, 240), 2)) + Out.ar(bus, (In.ar(bin)).clip(0, 1) * 10 * pow(Line.kr(0, 1, 10), 2)) +}).add; + + +//~~~~~~~~~~~~GENERATE PATTERNS~~~~~~~~~~~~ +~genPatterns = {arg ensData, accompData, dUnit; + var pattern; + pattern = EventPatternProxy.new; + pattern.source = + Ppar( + ensData.collect({arg musData, m; + Pbind( + \instrument, \ens_ ++ ~hash, + \freq, Pseq(musData[0]), + //\freq, Pseq(musData[0].collect({arg freq; freq.cpsmidi.round(0.5).midicps})), + \dur, Pseq(musData[1] * dUnit), + \sustain, Pseq(musData[1] * dUnit), + \amp, [0.5, 0.3, 0.3, 0.3][m], //Pseq(musData[2].collect({arg item; [0, 0.25, 0.5, 0.75][item]}) * [1, 0.5, 0.25, 0.1][m] * 16);// * musData[3].collect({arg val; if(val < 0.25, {0}, {0.5})})) + \bus, ~busses[m].index + ) + }) ++ + accompData.collect({arg voice, v; + voice.collect({arg musData; + Pbind( + \instrument, \accomp_ ++ ~hash, + \freq, Pseq(musData[0]), + //\freq, Pseq(musData[0].collect({arg freq; freq.cpsmidi.round(0.5).midicps})), + \dur, Pseq(musData[1] * dUnit), + \sustain, Pseq(musData[1] * dUnit), + \amp, Pseq(musData[2].collect({arg item; [0, 2, 4, 8][item]}) * 0.0125 * 1), + //\attack, Pseq(musData[1] * abs(musData[3].clip(0, 0.25) * 2 - 1) * dUnit), + \attack, Pseq(musData[1] * 0.9 * dUnit), + \bout, v + 6 + ) + }).add( + Pmono( + \clip_ ++ ~hash, + \bin, v + 6, + \bus, ~busses[4].index + ) + ) + }).flatten + ); +}; + + +//~~~~gen music +/* +~genPatterns = {arg partStarSeqIn, accompLowSeqIn, partISeqIn, sectionSeqIn, beatFrac = 1/8; + var calcSustains, genSectionSec, sectionLimits, measureCount; + + //~~~~helper sus function + calcSustains = {arg stringSeq, durSeq; + var res = []; + stringSeq.size.do({arg index; + var curString, dur, count; + if(stringSeq[index].isRest.not, { + curString = stringSeq[index]; + dur = durSeq[index]; + count = 1; + while({(stringSeq[(index + count).clip(0, stringSeq.size - 1)] != curString) && + (dur < 16) && (count < 100)}, { + dur = dur + durSeq[(index + count).clip(0, durSeq.size - 1)]; + count = count + 1; + }); + res = res.add(dur.clip(0, 16)); + }, { + res.add(Rest()); + }); + }); + res + }; + + genSectionSec = {arg seq, startTime, endTime, type; + var durSum, resSeqs, inSecs, mult; + durSum = 0; + resSeqs = []; + seq.do({arg item; + if((durSum >= startTime) && (durSum < endTime), { + var dur = durSum - startTime; + if((resSeqs.size == 0) && (dur > 0), { + switch(type, + 0, {resSeqs = resSeqs.add([Rest(-1), Rest(-1), dur])}, + 1, {resSeqs = resSeqs.add([Rest(-1), Rest(-1), dur])}, + 2, {resSeqs = resSeqs.add([Rest(-1), dur, dur])}) + }); + resSeqs = resSeqs.add(item); + }); + durSum = durSum + if(type == 2, {item[1]}, {item[2]}); + }); + resSeqs + }; + + measureCount = 0; + sectionLimits = []; + sectionSeqIn.slice(nil, 0).add(100000).doAdjacentPairs({arg a, b; sectionLimits = sectionLimits.add([a, b])}); + ~sectionStartMeasure = []; + sectionLimits.collect({arg timePair, secIndex; + var startTime, endTime, beatLength, beatSeq, measureSeq, + partStarSecSeq, accompLowSecSeq, partISecSeq, + stringSeq, fretSeq, harmLimit, freqSeq, durSeq, susSeq, trigSeq, openStrings, pattern; + + startTime = timePair[0]; + endTime = timePair[1]; + + if((secIndex % 4) == 0, {measureCount = 0}); + beatLength = (endTime - startTime) / 8; + beatSeq = ((beatLength / 2) - 1).asInteger.collect({[1, 2]}); + beatSeq = if((beatLength % 2) == 0, {beatSeq.add([1, 2])}, {beatSeq.add([1, 2, 3])}); + measureSeq = measureCount + beatSeq.collect({arg measure, mIndex; measure.collect({mIndex + 1})}).flat; + ~sectionStartMeasure = ~sectionStartMeasure.add(measureCount + 1); + measureCount = measureSeq.last; + beatSeq = beatSeq.flat; + measureSeq = measureSeq.add(0); + beatSeq = beatSeq.add(0); + + partStarSecSeq = genSectionSec.value(partStarSeqIn, startTime, endTime, 0); + accompLowSecSeq = genSectionSec.value(accompLowSeqIn, startTime, endTime, 1); + partISecSeq = genSectionSec.value(partISeqIn, startTime, endTime, 2); + + if(partISecSeq == [], {partISecSeq = [[Rest(-1), 1, 0], [Rest(-1), 1, 0]]}); + + openStrings = [1/1, 3/2, 2/1, 5/2, 35/12, 7/2]; + harmLimit = [9, 8, 7, 6, 5, 4]; + stringSeq = partStarSecSeq.slice(nil, 0); + fretSeq = partStarSecSeq.slice(nil, 1); + durSeq = partStarSecSeq.slice(nil, 2); + susSeq = calcSustains.value(stringSeq, durSeq); + freqSeq = stringSeq.collect({arg string, index; + if(string.isRest, {Rest()}, { + var midi, freq; + //this is transposed up because karplus-strong does not really sound correctly in the partStar range + midi = (62.midicps * openStrings[string]).cpsmidi + fretSeq[index]; + freq = midi.midicps * if((secIndex % 4) != 3, {1}, {[1, harmLimit[string].rand + 1].choose})}) + }); + + pattern = EventPatternProxy.new; + pattern.source = Ppar([ + Pbind( + \instrument, \karplus ++ ~hash, + \amp, 0.3, + \dur, Pseq(durSeq * beatFrac), + \sustain, Pseq(susSeq * beatFrac), + \freq, Pseq(freqSeq), + \bus, ~partStarBus.index), + if(accompLowSecSeq.size > 1, { + Pmono( + \accompBass ++ ~hash, + \amp, 0.5, + \freq1, Pseq(accompLowSecSeq.slice(nil, 0)), + \freq2, Pseq(accompLowSecSeq.slice(nil, 1)), + \dur, Pseq(accompLowSecSeq.slice(nil, 2)) * beatFrac, + \busLower, if(secIndex % 2 == 0, {~partIIBusA.index}, {~partIIBusB.index}), + \busUpper, if(secIndex % 2 == 0, {~partIIIBusA.index}, {~partIIIBusB.index})) + }, { + Pmono( + \accompBass ++ ~hash, + \amp, 0.5, + \freq1, Pseq([accompLowSecSeq[0][0]]), + \freq2, Pseq([accompLowSecSeq[0][1]]), + \dur, Pseq([accompLowSecSeq[0][2]]) * beatFrac, + \busLower, if(secIndex % 2 == 0, {~partIIBusA.index}, {~partIIBusB.index}), + \busUpper, if(secIndex % 2 == 0, {~partIIIBusA.index}, {~partIIIBusB.index})) + }), + Pbind( + \instrument, \accompTreble ++ ~hash, + //\freq, Pseq(partISecSeq.slice(nil, 0)), + \freq, Pseq(partISecSeq.slice(nil, 0).curdle(0.3).collect({arg item; item.cpsmidi - 0.16 + 0.32.rand}).midicps.flat), + \dur, Pseq(partISecSeq.slice(nil, 1) * beatFrac), + \sustain, Pseq(partISecSeq.slice(nil, 2) * beatFrac), + \amp, 0.5, + \bus, ~partIBus.index), + Pbind( + \instrument, \transport ++ ~hash, + \measure, Pseq(measureSeq), + \beat, Pseq(beatSeq), + \dur, beatFrac * 8 + ), + Pbind( + \instrument, \click ++ ~hash, + \beat, Pseq(beatSeq.drop(-1)), + \dur, beatFrac * 8 + ) + ]); + pattern + }); +}; +*/ + +) \ No newline at end of file diff --git a/supercollider/tkam_transcriber.scd b/supercollider/tkam_transcriber.scd new file mode 100644 index 0000000..1313394 --- /dev/null +++ b/supercollider/tkam_transcriber.scd @@ -0,0 +1,307 @@ +( +var formatMusicData, spellingDict, lyNoteNameStr, lyOctStr, lyFinalizeMusic, lyMeasureDef, +lyRelMark, lyRelMarkNote, lyHBracket, lyStaffDef, lyTie, +lyNoteName, lyCentDev, lyFreqRatio, lyDur, lyNote, lyBeamOpen, lyBeamClosed, +consolidateNotes, consolidateRests; + +// formats the data for the transcriber +formatMusicData = {arg rawMusicData; + var maxSize, musicData; + maxSize = 0; + musicData = rawMusicData.collect({arg partData, p; + var res; + res = partData.collect({arg item, i; + var freq, dur, amp, mult, insRef, sus, note, rest; + # freq, dur, amp, mult, insRef = item; + sus = dur * sign(amp); + note = sus.collect({[freq, mult, insRef, i]}); + rest = if(p < rawMusicData.size, {(dur - sus).collect({[-1, -1, -1, i]})}, {[]}); + note ++ rest + }).flatten; + if(res.size > maxSize, {maxSize = res.size}); + res + }); + + // make them all the same length + maxSize = maxSize.trunc(16) + 16; + musicData = musicData.collect({arg partData, p; partData.extend(maxSize, [-1, -1, -1, partData.last[1]])}); + musicData +}; + +// constants (spelling dictionaru note names and octaves) +spellingDict = Dictionary.with(* + [ + \major -> Dictionary.with(* + [0, 7, 2, 9, 4, 11].collect({arg pc; pc->\sharps}) ++ + [5, 10, 3, 8, 1, 6].collect({arg pc; pc->\flats}) + ), + \minor -> Dictionary.with(* + [9, 4, 11, 6, 1, 8].collect({arg pc; pc->\sharps}) ++ + [2, 7, 0, 5, 10, 3].collect({arg pc; pc->\flats}) + ) + ] +); + +lyNoteNameStr = Dictionary.with(* + [ + \sharps -> ["c", "cis", "d", "dis","e", "f", "fis", "g", "gis", "a", "ais", "b"], + \flats -> ["c", "des", "d", "ees","e", "f", "ges", "g", "aes", "a", "bes", "b"], + ] +); + +lyOctStr = [",,", ",", "", "'", "''", "'''", "''''"]; + +//define staff +lyStaffDef = {arg name, nameShort, nameMidi; + "\\new Staff = \"" ++ name ++ "\" \\with { \n" ++ + "instrumentName = \"" ++ name ++ "\" \n" ++ + "shortInstrumentName = \"" ++ nameShort ++ "\" \n" ++ + "midiInstrument = #\"" ++ nameMidi ++ "\"\n" ++ + "\n}\n" +}; + +// add music preamble +lyFinalizeMusic = {arg lyStr, part, name, nameShort, nameMidi, clef; + "\\new StaffGroup \\with {\\remove \"System_start_delimiter_engraver\"}\n<<\n" ++ + lyStaffDef.value(name, nameShort, nameMidi) ++ + "<<\n\n{ " + + "\n\\set Score.markFormatter = #format-mark-box-numbers " + + "\\tempo 2 = 60\n" + + //if(part != 0, {"\\override Staff.TimeSignature #'stencil = ##f"}, {""}) + + "\\numericTimeSignature \\time 2/2\n" + + "\\clef " ++ clef ++ "\n" ++ lyStr ++ + " }>> \\bar \"|.\" \n} \n\n>>" ++ + "\n>>" +}; + +lyRelMarkNote = {arg root, lastRoot, part, clef; + if(root[part][2] != [[1], [1]], { + "\\stopStaff s8. \\startStaff \\clef" + clef + "s16 \n" ++ + "\\once \\override TextScript.color = #(rgb-color 0.6 0.6 0.6) \n " ++ + "\\tweak Accidental.color #(rgb-color 0.6 0.6 0.6) \n " ++ + "\\tweak NoteHead.color #(rgb-color 0.6 0.6 0.6) \n " ++ + lyNote.value(lastRoot[part][1], 1, lastRoot[part][0], nil, \sharps, true, true, false) + + "\\hide c" ++ [nil, "", "'", "''"][part] ++ "8 \n " + }, { + "\\stopStaff s4. \\startStaff \\clef" + clef + "s16 \n" + }) ++ + lyNote.value(root[part][3], 1, root[part][2], nil, \sharps, true, false, true) +}; + +lyHBracket = {arg fr, yOffset, sPair1, sPair2, edgeH1, edgeH2; + "-\\tweak HorizontalBracket.Y-offset #" ++ yOffset ++ "\n " ++ + "-\\tweak HorizontalBracket.shorten-pair #'(" ++ sPair1 + "." + sPair2 ++") \n " ++ + "-\\tweak HorizontalBracket.edge-height #'(" ++ edgeH1 + "." + edgeH2 ++ ") \n " ++ + "-\\tweak HorizontalBracketText.text" + fr + "\\startGroup \n " +}; + +lyRelMark = {arg root, lastRoot; + "\\mark \\markup { \n" ++ + "\\halign #-1 \n " ++ + "\\relMark ##{ { \n " ++ + "\\time 15/8 \n " ++ + "\\once \\override Staff.Clef #'stencil = ##f \n " ++ + + lyRelMarkNote.value(root, lastRoot, 1, "bass") ++ "^\\markup{\\large \\raise #2 \"III\"}" ++ + + //lyHBracket.value(root[part][4], 8.5, 0, 1, 1, 1) + lyHBracket.value(lyFreqRatio.value(root[2][4][2], nil, true, 0, false), 8.5, 1, 2, 1, 1) ++ + lyHBracket.value(lyFreqRatio.value(root[2][4][1], nil, true, 0, false), 5.5, 3, 3, 0, 0) ++ + + "\\hide c16 \n " ++ + + lyRelMarkNote.value(root, lastRoot, 2, "alto") ++ "^\\markup{\\large \\raise #2 \"II\"}" + + "\\stopGroup \\hide c'16 \n " ++ + + lyHBracket.value(lyFreqRatio.value(root[1][4][2], nil, true, 0, false), 5.5, 1, 3, 0, 0) ++ + + lyRelMarkNote.value(root, lastRoot, 3, "treble") ++ "^\\markup{\\large \\raise #2 \"I\"}" + + "\\stopGroup \\stopGroup \n " ++ + "\\hide c''16 \n " ++ + "}#}}" +}; + +// barline and ossia definition +lyMeasureDef = {arg sectionData, insName, part, measure; + var ossia = "", barline = "|"; + if(sectionData != nil, { + var root, lastRoot; + root = sectionData[0]; lastRoot = sectionData[1]; + ossia = lyRelMark.value(root, lastRoot); + barline = "\\bar \"||\""; + }); + if(measure != 0, {"}\n>>\n" + barline}, {""}) + "\n<<\n" ++ ossia + "{" +}; + +// add tie +lyTie = {"~"}; + +lyNoteName = {arg freq, spellingPref = \sharps; + if(freq != -1, { + lyNoteNameStr[spellingPref][((freq.cpsmidi).round(1) % 12)] ++ + lyOctStr[(((freq).cpsmidi).round(1) / 12).asInteger - 2]; + },{"r"}); +}; + +lyCentDev = {arg freq, padding = true; + var centDev; + centDev = ((freq.cpsmidi - (freq.cpsmidi).round(1)) * 100).round(1).asInteger; + "^\\markup { " ++ if(padding, {"\\pad-markup #0.2 \""}, {"\""}) ++ + if(centDev >= 0, {"+"}, {""}) ++ centDev.asString ++ "\"}" +}; + +lyFreqRatio = {arg freqRatioMult, ref, padding = true, lower = 3, attachedToNote = true; + var res, ratio; + res = "\\markup {" + if(attachedToNote, {""}, {"\\normalsize"}) + + "\\lower #" ++ lower + if(padding, {"\\pad-markup #0.2 "}, {" "}); + ratio = "\"" ++ freqRatioMult[0].product.asInteger ++ "/" ++ freqRatioMult[1].product.asInteger ++ "\" }"; + res = if(ref != nil, + { + res ++ "\\concat{ \"" ++ [nil, "III", "II", "I"][ref] ++ "\"\\normal-size-super " ++ ratio ++ "}" + }, { + res ++ ratio + } + ); + if(attachedToNote, {"_" ++ res}, {res}) +}; + + +lyNote = {arg freq, noteLength, freqRatioMult, ref, spellingPref = \sharps, addMarkup = true, frHide = false, padding = true; + lyNoteName.value(freq, spellingPref) ++ + lyDur.value(noteLength) ++ + if(addMarkup, { + "" + }, {""}) +}; + +lyDur = {arg noteLength; + switch(noteLength, 1, {"16"}, 2, {"8"}, 3, {"8."}, 4, {"4"}); +}; + +lyBeamOpen = {"["}; + +lyBeamClosed = {"]"}; + +consolidateNotes = {arg lyStr, part; + var noteRegex, markupRegex, fullNoteRegex, restRegex, fullRestRegex, res; + noteRegex = "(?[a-g](?:es|is)?(?:[,']*?)?4)"; + markupRegex = if(part != 0, {"()?"}, {"()?"}); + fullNoteRegex = noteRegex ++ markupRegex ++ "(?:\\h+~\\h+\\k)"; + restRegex = "(?r4)"; + fullRestRegex = "(?r4)(?:(\\h+)\\k)"; + res = lyStr; + [6, 4, 3, 2].do({arg len; + [fullNoteRegex, fullRestRegex].do({arg regex; + res.findRegexp(regex ++ "{" ++ (len-1) ++ "}").clump(3).do({arg match; + var word, note, markup, lyDur; + word = match[0][1]; + note = match[1][1]; + markup = match[2][1]; + lyDur = switch(len, 6, {"1."}, 4, {"1"}, 3, {"2."}, 2, {"2"}); + res = res.replace(word, note.replace("4", lyDur) ++ markup)}); + }); + }); + res.replace("", ""); +}; + +~transcribe = {arg rawMusicData, sectionData; + var dir, basePath, musicData, insData, insNames, insNamesShort, insMidi, insClef; + + //dir = thisProcess.nowExecutingPath.dirname; + basePath = ~dir +/+ ".." +/+ "lilypond"; + basePath.mkdir; + + musicData = formatMusicData.value(rawMusicData); + + insData = [ + ["*", "*", "clarinet", "\"treble_8\""], + ["III", "III", "clarinet", "bass"], + ["II", "II", "clarinet", "alto"], + ["I", "I", "clarinet", "treble"] + ]; + + insNames = insData.slice(nil, 0); + insNamesShort = insData.slice(nil, 1); + insMidi = insData.slice(nil, 2); + insClef = insData.slice(nil, 3); + + musicData.do({arg part, p; + var lyFile, lyStr, lastMusAtom, measureCount, spellingPref, + tmpSectionData, pcRoot, partLookup, quality; + + //create file + lyFile = File(basePath +/+ "includes" +/+ "part_" ++ ["star", "III", "II", "I"][p] ++ ".ly".standardizePath,"w"); + + //start lypond directives + lyStr = ""; + lastMusAtom = nil; + measureCount = 0; + spellingPref = \sharps; + tmpSectionData = nil; + part.clump(4).do({arg beat, i; + var gSum; + gSum = 0; + beat.separate({arg a, b; + ((a[0] != -1) || (b[0] != -1)) && (a != b)}).do({arg group, g; + var noteLength, curMusAtom, freq, freqRatioMult, ref, isSame, isRest, isFirst, isLast, + isTied, isMeasureBound, isBeamStart, isBeamEnd; + + noteLength = group.size; + gSum = gSum + noteLength; + curMusAtom = group[0]; + freq = curMusAtom[0]; + freqRatioMult = curMusAtom[1]; + ref = curMusAtom[2]; + # isSame, isRest, isFirst, isLast = [curMusAtom == lastMusAtom, freq == -1, g == 0, gSum == 4]; + # isTied, isMeasureBound = [isSame && isRest.not, isFirst && ((i % 4) == 0)]; + # isBeamStart, isBeamEnd = [(noteLength != 4) && isFirst, (noteLength != 4) && isLast]; + + //add ties + if(isTied, {lyStr = lyStr + lyTie.value}); + + //add barline and ossia definition + if(isMeasureBound, {lyStr = lyStr + lyMeasureDef.value(sectionData[i], insNames[p], p, i)}); + + //add note data + if(sectionData[i] != nil, { + tmpSectionData = sectionData[i]; + }); + if(isTied.not, { + partLookup = if((p != 0) || [1, 2, 3].includes(ref).not , {p}, {ref}); + pcRoot = ((tmpSectionData[0][partLookup][3].cpsmidi).round(1) % 12).asInteger; + quality = if(tmpSectionData[0][partLookup][1][2] == [[ 1, 5 ], [ 1, 2, 2 ]], {\major}, {\minor}); + spellingPref = spellingDict[quality][pcRoot]; + if(p == 0, {[(i / 4).asInteger, partLookup, pcRoot, quality].postln}); + }); + + lyStr = lyStr + lyNote.value(freq, noteLength, freqRatioMult, ref, spellingPref, isSame.not && isRest.not); + + //beam group + if(isBeamStart, {lyStr = lyStr ++ lyBeamOpen.value}); + if(isBeamEnd, {lyStr = lyStr ++ lyBeamClosed.value}); + + lastMusAtom = curMusAtom; + }); + }); + + //wrap music and add staff definitions + lyStr = lyFinalizeMusic.value(lyStr, p, insNames[p], insNamesShort[p], insMidi[p], insClef[p]); + + //consolidate notes and rests + ("------------" ++ p).postln; + lyStr = consolidateNotes.value(lyStr, p); + + //write file + lyFile.write(lyStr); + lyFile.close; + }); +}; + +//~hdTranscribe.value(~scoreData, ~sectionData); + +//~~~~~~~~~~~~GENERATE SCORE DATA~~~~~~~~~~~~ +~genScoreData = {arg ensData; ensData.collect({arg part; part.flop})}; +) \ No newline at end of file