From 0178da73a9dd85d1fd915b5f74db23b4431e6bb1 Mon Sep 17 00:00:00 2001 From: mwinter Date: Tue, 29 Dec 2020 23:58:43 +0100 Subject: [PATCH] first commit --- lilypond/includes/part_I.ly | 573 ++++++++++++++++++ lilypond/includes/part_II.ly | 573 ++++++++++++++++++ lilypond/includes/part_III.ly | 573 ++++++++++++++++++ lilypond/includes/part_star.ly | 573 ++++++++++++++++++ lilypond/to_kill_a_monarch_score.ly | 185 ++++++ lilypond/to_kill_a_monarch_score.midi | Bin 0 -> 2759 bytes lilypond/to_kill_a_monarch_score.pdf | Bin 0 -> 735747 bytes supercollider/tkam_gui.scd | 496 +++++++++++++++ supercollider/tkam_main.scd | 59 ++ supercollider/tkam_musical_data_generator.scd | 507 ++++++++++++++++ supercollider/tkam_sonifier.scd | 241 ++++++++ supercollider/tkam_transcriber.scd | 307 ++++++++++ 12 files changed, 4087 insertions(+) create mode 100644 lilypond/includes/part_I.ly create mode 100644 lilypond/includes/part_II.ly create mode 100644 lilypond/includes/part_III.ly create mode 100644 lilypond/includes/part_star.ly create mode 100644 lilypond/to_kill_a_monarch_score.ly create mode 100644 lilypond/to_kill_a_monarch_score.midi create mode 100644 lilypond/to_kill_a_monarch_score.pdf create mode 100644 supercollider/tkam_gui.scd create mode 100644 supercollider/tkam_main.scd create mode 100644 supercollider/tkam_musical_data_generator.scd create mode 100644 supercollider/tkam_sonifier.scd create mode 100644 supercollider/tkam_transcriber.scd 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 0000000000000000000000000000000000000000..d09eb930f460871472fb681d3ae5f5fc4a78440b GIT binary patch literal 2759 zcmZWqU2hvj6rFqk`W+K05JPVCrm?f7f2*G?Q~6N*4861+{67By-}q$n>uAQ3xF z6KG&}hXUeLK@~{lk&mZ7Kr8W!cn{~ytT&N}toZuQx#ymH=g!Q{TX%0OrCwAM>V=7q zZ{FIwhhOih^Ql+%cfEUC+uPoT_rdPY#@^;#bw2U(=H8u+{oTE$haayE-h9V}~Db*-uo|miu1RRx0YqK@fFdEXji)T7uD*U+_7u?B@;GK~iMya-bXM7_oM{9xCHfdTIYTcELiZ@AOBxsU1hMdR1iR89x+hT|qd(J1PXC~`28NmbjTHB=_F+KIer6GJDLpT*;3jZGPb7=}sgSa9i6<3ss z>!6D3Fq)#{CcaD1AD3X%;HcrdLWhGM1{PYv1X{?VoalHFm<7@;*y!)MgkL^3E{0g} zJP0gN0}~uK;OWRWUd)aonYKiA`NUDzHB2o*IYaayYsLQIW} zHVpe=vsSpos3yZ%7!O{Ig9q>*DY#7#U0IE7v^WK&$=dQffCq}oOj`!J&T84SOi>wG zxzfUS3*Q-E6%Golvv!7*W$0OGjU=wW+6t}8V^r;0H*!TZ2xiCHazGJmokr)FIgK9I z+n|F`pJlS|ZA`O`3FL{616RRQ>IAYXvFlue%!~u0wt6y81-ab54?U~BCD>e+S7%S_ z>c`;X$}3>nrbCX~vjIPs#x3@eBFK}XQpq*QOs>J0Mc!l<#te-a7)2QZ2qQ-$2P4m@ zJd7FCWHDKIPQKN^j0idmENB+Pm@;Y$o|6-m%pv>|^CQqRD#s}1D9EQ?Qm~*iAYtU> zJ1zki!J_PW`I+&Ir4$n6<-n=UI#MDN z&RcSw#&sB(rzlS;3GO@_K*|CxMw_lAk2J!tmbD9q$r6>BgUK?+qWlv$qKcdbP)WvP z$B1m>Fm0m>^0~GtZphF}ZU9>*)~QF*yc0x&C2HHD9KP93G|2V*Drv96Q=q{H&0}bQ zeWtUanR=b?WWK4M5BRw>GN*wlA-h3e%mNLx+VIXY&~A9_433Uj5Q^zhC952(9 zhxiABr`_Ph7!hp*-+XQjj*jV(26wMn!g)4JsKzYg2{3r-%m6cFaMhX+7m^9pi85u# zHYgrCj-8Gg&W=rAV|wbS9MOO{FkyeA9 zVl`DV^16fM|MzpG(|*Fh?S$>rb~k2`CKWl+aD zD_v(-E9?f3>qUQC>=?HUcd5%-XJs6#mKVt7 YR_Sp(RtNi`ts@&8zMI&|V-M%$KfEOwCjbBd literal 0 HcmV?d00001 diff --git a/lilypond/to_kill_a_monarch_score.pdf b/lilypond/to_kill_a_monarch_score.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1c1f1b757c40878204f58e39bdaf5bda37e82d0d GIT binary patch literal 735747 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

wlu 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 literal 0 HcmV?d00001 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