Strudelify

Down to the River To Pray

Traditional

KeyB♭ majorTempo144 bpm
0:00/0:00
// Down to the River To Pray — Traditional
// 144 bpm, 2/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5124750; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 184 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~@50 A@2 B C@5 A@2 B D E F ~@4 E G H I J K L M N O P Q R S@2 T U V T W Q X Y T U V T K Z AA@2 ~@18 AB AC AD AE AF AG
  AH AI AB AC AD AJ AK AL@2 ~@17 A@2 B AM@2 AA@2 T A@2 B D E G AN@6 ~@15
>`.pickRestart({
  A: "[g4@3 f4]/2", B: "ab4", C: "[f4 eb4@19]/5", D: "f4 eb4@3", E: "eb4@2 eb4!2", F: "eb4!2 ~@2", G: "eb4!2 eb4@2",
  H: "eb4 ~", I: "f4!3 ab4", J: "f4 eb4", K: "ab4@2 f4 eb4", L: "eb4 db4", M: "c4 ab3", N: "c4@3 db4", O: "eb4 ab4",
  P: "ab4 f4 eb4@2", Q: "f4", R: "f4 f4@2 f4", S: "[eb4@3 ~]/2", T: "eb4", U: "eb4!2", V: "ab4!2", W: "ab4 f4",
  X: "f4 f4@3", Y: "c4", Z: "eb4!2 db4@2", AA: "eb4/2", AB: "eb5!2", AC: "ab5!2", AD: "eb5", AE: "ab5 f5@3",
  AF: "f5@2 f5!2", AG: "f5!2 f5@2", AH: "c5", AI: "eb5 eb5@3", AJ: "ab5@2 f5 eb5", AK: "eb5!2 db5@2", AL: "c5/2",
  AM: "[f4 eb4@7]/2", AN: "eb4/6",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note("<~@101 A B C D E F G H I J K L M N@2 O ~@67>".pickRestart({
  A: "eb5@2 eb5!2", B: "eb5!2 eb5@2", C: "eb5 ~", D: "f5!3 ab5", E: "f5 eb5", F: "ab5@2 f5 eb5", G: "eb5 db5",
  H: "c5!2", I: "c5@3 db5", J: "eb5 ab5", K: "ab5 f5 eb5@2", L: "f5", M: "f5 f5@2 db5", N: "[c5@3 ~]/2", O: "eb5",
})).s("gm_clarinet").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note(`<
  ~@68 A B C D E F G H I J K L M N@2 O P Q R S L T U O P Q R V W X@2 ~@18 Y Z AA AB AC AD AE AF Y Z AA AG AH AI@2 ~@17
  AJ@2 AK AL@2 AM@2 L AJ@2 AK AN V W AO@6 ~@15
>`.pickRestart({
  A: "c4@2 c4!2", B: "c4!2 c4@2", C: "c4 ~", D: "db4!3 eb4", E: "db4 c4", F: "eb4@2 db4 c4", G: "c4@2 bb3 ab3",
  H: "ab3 f3", I: "ab3@3 bb3", J: "c4 eb4", K: "eb4 db4 c4@2", L: "db4", M: "db4 db4@2 db4", N: "[c4@3 ~]/2", O: "bb3",
  P: "bb3 c4", Q: "eb4!2", R: "db4 c4@3", S: "eb4 db4", T: "db4 db4@3", U: "ab3", V: "eb4@2 db4!2", W: "db4!2 db4@2",
  X: "eb4/2", Y: "bb4 c5", Z: "eb5!2", AA: "db5 c5@3", AB: "eb5 db5@3", AC: "db5@2 db5!2", AD: "db5!2 db5@2", AE: "ab4",
  AF: "bb4 bb4@3", AG: "eb5@2 db5!2", AH: "db5!2 bb4 ab4", AI: "ab4/2", AJ: "[eb4@3 db4]/2", AK: "c4", AL: "c4/2",
  AM: "db4/2", AN: "eb4", AO: "db4/6",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft_2 = note("<~@101 A B C D E F G H I J K L M N@2 O ~@67>".pickRestart({
  A: "c5@2 c5!2", B: "c5!2 c5@2", C: "c5 ~", D: "db5!3 eb5", E: "db5 c5", F: "eb5@2 db5 c5", G: "c5@2 bb4 ab4",
  H: "ab4!2", I: "ab4@3 bb4", J: "c5 eb5", K: "eb5 db5 c5@2", L: "db5", M: "db5 db5@2 ab4", N: "[ab4@3 ~]/2", O: "bb4",
})).s("gm_clarinet").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet_3 = note(`<
  ~@33 A B C D E F G H I J K L M N O P@2 N G Q R S E T U V G Q R H W X@2 ~@35 C D Y F G H I B K M Z N O P@2 AA AB AC E
  AD AE D AF AG AB AC E H W X@2 AH@8 ~ AI@8 AJ@3 X@2 AK@2 AL AJ@3 AM AN AO AP@6 ~@15
>`.pickRestart({
  A: "~ eb4", B: "eb4 f4", C: "ab4@2 ab4!2", D: "ab4!2 ab4@2", E: "ab4", F: "bb4!3 c5", G: "bb4 ab4", H: "c5@2 bb4 ab4",
  I: "ab4@2 f4 eb4", J: "eb4 c4", K: "eb4@3 f4", L: "ab4 f4", M: "ab4 c5", N: "bb4", O: "ab4 ab4@2 f4",
  P: "[eb4@3 ~]/2", Q: "c5 eb5", R: "bb4 ab4@3", S: "c5 bb4", T: "ab4 ab4@3", U: "eb4", V: "bb4 bb4@3",
  W: "ab4!2 f4 eb4", X: "eb4/2", Y: "ab4 ~", Z: "c5 bb4 ab4@2", AA: "g4", AB: "g4 ab4", AC: "c5!2", AD: "c5 bb4@3",
  AE: "ab4@2 ab4 f4", AF: "f4 eb4@3", AG: "g4 g4@3", AH: "eb4/8", AI: "db4/8", AJ: "eb4/3", AK: "f4/2", AL: "f4",
  AM: "c4", AN: "c4@2 bb3 ab3", AO: "ab3!2 ab3@2", AP: "ab3/6",
})).s("gm_clarinet").gain(0.25)

// other · clarinet · "Bass Clarinet"
const clarinet_4 = note(`<
  A B C D E F G H I J K L M N O P@2 N G Q R S E T U N G Q R H V W@2 ~@2 X@7 Y@8 Z@5 AA@3 AB@4 AC AD ~@37 AE AF AG AH AI
  AJ AK AL AM AN AO AP AQ AR@2 AS AT AU AV AW AX AY AS AZ AT AU AV BA BB BC@2 A B C D E F G H I J K L M N O W@2 N G Q R
  S E T U N G Q R H V BD@6 ~@15
>`.pickRestart({
  A: "~ eb3", B: "eb3 f3", C: "ab3@2 ab3!2", D: "ab3!2 ab3@2", E: "ab3", F: "bb3!3 c4", G: "bb3 ab3", H: "c4@2 bb3 ab3",
  I: "ab3@2 f3 eb3", J: "eb3 c3", K: "eb3@3 f3", L: "ab3 f3", M: "ab3 c4", N: "bb3", O: "ab3 ab3@2 f3",
  P: "[eb3@3 ~]/2", Q: "c4 eb4", R: "bb3 ab3@3", S: "c4 bb3", T: "ab3 ab3@3", U: "f3 eb3@3", V: "ab3!2 f3 eb3",
  W: "eb3/2", X: "eb3/7", Y: "db3/8", Z: "eb3/5", AA: "f3/3", AB: "eb3/4", AC: "db3@2 db3!2", AD: "db3!2 ~@2",
  AE: "eb4@2 eb4!2", AF: "eb4!2 eb4@2", AG: "eb4 ~", AH: "f4!3 ab4", AI: "f4 eb4", AJ: "ab4@2 f4 eb4", AK: "eb4 db4",
  AL: "c4!2", AM: "c4@3 db4", AN: "eb4 ab4", AO: "ab4 f4 eb4@2", AP: "f4", AQ: "f4 f4@2 db4", AR: "[c4@3 ~]/2",
  AS: "eb4", AT: "eb4!2", AU: "ab4!2", AV: "f4 eb4@3", AW: "ab4 f4@3", AX: "f4@2 f4!2", AY: "f4!2 f4@2",
  AZ: "eb4 eb4@3", BA: "ab4@2 f4!2", BB: "f4!2 db4@2", BC: "c4/2", BD: "eb3/6",
})).s("gm_clarinet").gain(0.25)

// other · clarinet · "Bass Clarinet"
const clarinet_5 = note(`<
  ~@17 A B C D E F G H A B C D I J K@2 ~@2 L@8 ~@7 L@8 ~@4 M N ~@37 O P Q R S T U E V W X Y Z AA@2 AB AC AD AE AF AG AH
  AI AJ AC AD AE AK AL AM@2 L@8 ~@9 AN@3 AO@4 AP AN@3 AP M AQ AR@6 ~@15
>`.pickRestart({
  A: "g3", B: "g3 f3", C: "ab3 c4", D: "f3 eb3@3", E: "ab3 f3", F: "f3", G: "eb3 eb3@3", H: "c3", I: "f3@2 f3 eb3",
  J: "eb3!2 db3@2", K: "eb3/2", L: "ab2/8", M: "ab2@2 ab2!2", N: "ab2!2 ~@2", O: "c4@2 c4!2", P: "c4!2 c4@2", Q: "c4 ~",
  R: "db4!3 eb4", S: "db4 c4", T: "eb4@2 db4 c4", U: "c4 bb3", V: "ab3@3 bb3", W: "c4 eb4", X: "eb4 db4 c4@2", Y: "db4",
  Z: "db4 db4@2 bb3", AA: "[ab3@3 ~]/2", AB: "bb3", AC: "bb3 c4", AD: "eb4 c4", AE: "ab3", AF: "eb4 db4@3",
  AG: "db4@2 db4!2", AH: "db4!2 db4@2", AI: "c4", AJ: "bb3 bb3@3", AK: "eb4@2 db4!2", AL: "db4!2 bb3@2", AM: "ab3/2",
  AN: "ab2/3", AO: "ab2/2", AP: "ab2", AQ: "ab2!2 ab2@2", AR: "ab2/6",
})).s("gm_clarinet").gain(0.25)

stack(clarinet, clarinet_soft, clarinet_2, clarinet_soft_2, clarinet_3, clarinet_4, clarinet_5)

More by Traditional