Strudelify

o brother where art thou - i am a man of constant sorrow

Carter Stanton

KeyF majorTempo120 bpm
0:00/0:00
// o brother where art thou - i am a man of constant sorrow — Carter Stanton
// 120 bpm, 2/2, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 5 "Bass" named as a bass, played on electric bass finger (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/166183; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 83 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// 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 · fiddle · "Tenor"
const fiddle = note(`<
  ~@19 A B C D E F ~ G@2 H@4 ~ I J K@2 L@4 M@2 N@4 ~@3 O P@2 Q@2 ~ R@3 P@2 S@2 T U V@3 W@8 X@7
>`.pickRestart({
  A: "~ a3 bb3 b3", B: "c4", C: "f4!3 c4", D: "a3", E: "~@13 eb3@3", F: "~ f3@4 c4@4 d4@7 d4@4 c4@7 ~@5",
  G: "[~@22 f3@7 ~ f3@7 f3@7 f3@7 ~ f3@7 f3@5]/2",
  H: "[~@2 f3@7 ~ f3@7 bb3@11 bb3@7 ~ bb3@3 bb3@7 ~ bb3@7 bb3@7 ~ bb3@7 bb3@7 c4@11 c4@7 ~ c4@3 c4@7 ~ c4@4 ~@18]/4",
  I: "~ eb3@7 ~ f3@3 c4@4 d4@7 d4@4 c4@5", J: "~@2 f3@11 ~ f3@7 f3@4 f3@7",
  K: "[f3@7 f3@7 ~ bb3@7 bb3@7 ~ f3@7 f3@7 f3@7 ~ f3@7 c4@5]/2",
  L: "[~@2 c4@7 ~ c4@7 c4@7 ~ d4@14 c4@15 d4@15 db4@5 d4@5 eb4@5 e4@14 d4@15 e4@15]/4",
  M: "[e4@5 c4@5 a3@5 a3@30 ~@7 a3@7 bb3@5]/2", N: "[~@2 b3@7 ~ c4@29 f4@7 ~ f4@7 f4@7 ~ c4@7 a3@30 ~@29]/4",
  O: "~@7 d3", P: "[~@2 d3@3 ~ d3@3 d3@6 d3@3 d3@3 ~ d3@6 d3@3 d3@3 d3@6 ~ d3@3 d3@3 g3@6 ~ g3@3 g3@3 g3@4]/2",
  Q: "[~@2 g3@3 ~ g3@3 g3@6 g3@3 g3@3 ~ g3@6 g3@3 g3@3 a3@6 ~ a3@3 a3@3 a3@6 ~ a3@3 a3@3 a3@3 ~]/2",
  R: "[~@12 f3@6 g3@3 ~ d4@3 e4@6 e4@3 d4@6 ~ d3@6 d3@3 d3@3 ~ d3@6 d3@3 d3@3 d3@6 ~ d3@3 d3@3 g3@6 ~ g3@3 g3@3 d3@4]/3",
  S: "[~@2 g3@3 ~ g3@3 g3@6 g3@3 g3@3 ~ g3@6 g3@3 g3@3 a3@6 ~ a3@3 a3@3 a3@6 ~ a3@3 a3@3 d4@3 ~]/2",
  T: "~@11 g4@3 gb4@2", U: "~@2 g4@13 ~@7 b3@6 c4@4", V: "[~@2 db4@6 ~ d4@25 g4@6 ~ g4@6 g4@6 ~ d4@6 b3@26 ~@10]/3",
  W: "[~@11 g3@8 g3@8 g3@8 c4@8 g3@8 g3@8 g3@8 g3@8 c4@8 c4@8 c4@8 c4@8 d4@16 d4@5]/8",
  X: "[~@3 d4@8 g3@16 g3@16 a3@32 gb3@16 g3@16 ~@5]/7",
})).s("gm_fiddle").gain(0.3)

// other · viola · "Tenor"
const viola = note("<~@19 A B@2 C D E@4 F@2 G@2 ~ H I@6 J K@2 L@4 ~@2 M@3 N@3 ~ O@4 N@3 P Q R@3 S@8 T@7>".pickRestart({
  A: "~ f3!2 gb3", B: "[g3@5 g3 f3!2]/2", C: "f3", D: "~@13 eb3@3",
  E: "[~ f3@4 ab3@4 bb3@7 bb3@4 ab3@7 c4@44 ~@11 f3@33 ~@13]/4", F: "[~@17 bb3@4 bb3@22 ~@21]/2",
  G: "[~@9 c4@37 ~@18]/2", H: "~ eb3@7 ~ f3@3 ab3@4 bb3@7 bb3@4 ab3@5",
  I: "[~@2 c4@44 ~@16 f3@37 ~@22 bb3@14 ab3@15 bb3@15 a3@5 bb3@5 b3@5 c4@12]/6", J: "~@2 c4@15 c4@15",
  K: "[c4@5 ab3@5 f3@5 f3@30 ~@7 f3@7 f3@5]/2", L: "[~@2 gb3@7 ~ g3@37 g3@7 f3@7 ~ f3@7 f3@30 ~@29]/4",
  M: "[~@9 d4@38 ~@10 g3@16 ~@23]/3", N: "[~@15 c4@3 c4@19 ~@26 d4@32 ~]/3",
  O: "[~@12 f3@6 g3@3 ~ bb3@3 c4@6 c4@3 bb3@6 ~ d4@38 ~@7 g3@6 g3@13 ~@23]/4", P: "~@11 d4@3 db4@2",
  Q: "~@2 d4@13 ~@7 g3@6 g3@4", R: "[~@2 ab3@6 ~ a3@32 a3@6 g3@6 ~ g3@6 g3@26 ~@10]/3",
  S: "[~@11 d3@8 d3@8 d3@8 g3@8 d3@8 d3@8 d3@8 d3@8 g3@8 g3@8 g3@8 g3@8 a3@16 a3@5]/8",
  T: "[~@3 a3@8 d3@16 d3@16 d4@32 gb3@16 d3@16 ~@5]/7",
})).s("gm_viola").gain(0.3)

// other · cello · "Baritone"
const cello = note(`<
  ~@10 A B A@2 C@2 D E F G H I F J K L M@2 N@4 ~ O P Q@2 R@3 S T@2 U@4 ~@3 V W@2 X@2 ~ Y@3 W@2 Z@2 AA AB AC@3 AD@8 AE@7
>`.pickRestart({
  A: "c3!2", B: "c3 f3", C: "f3!2", D: "g3", E: "g3!2", F: "c3", G: "~ c3 d3 eb3", H: "e3", I: "f3!2 c3!2",
  J: "~@13 eb3@3", K: "~ f3@4 eb3@4 f3@7 f3@4 eb3@7 ~@5", L: "~@25 c3@7",
  M: "[c3@7 f3@7 ~ f3@7 c3@7 ~ c3@7 c3@7 c3@7 ~ c3@7 c3@5]/2",
  N: "[~@2 c3@7 ~ c3@7 f3@11 f3@7 ~ f3@3 f3@7 ~ f3@7 f3@7 ~ f3@7 f3@7 g3@11 g3@7 ~ g3@3 g3@7 ~ g3@4 ~@18]/4",
  O: "~ eb3@7 ~ f3@3 eb3@4 f3@7 f3@4 eb3@5", P: "~@2 c3@11 ~ c3@7 c3@4 c3@7",
  Q: "[c3@7 c3@7 ~ f3@7 f3@7 ~ c3@7 c3@7 c3@7 ~ c3@7 c3@5]/2",
  R: "[~@2 c3@7 ~ c3@7 c3@7 ~ f3@14 f3@15 f3@15 e3@5 f3@5 gb3@5 g3@12]/3", S: "~@2 g3@15 g3@15",
  T: "[g3@5 eb3@5 c3@5 c3@30 ~@7 c3@7 d3@5]/2", U: "[~@2 eb3@7 ~ e3@29 f3@7 ~ f3@7 c3@7 ~ c3@7 c3@30 ~@29]/4",
  V: "~@2 b2@6 ~ b2@3 b2@3 e3@6 ~ e3@3 e3@3 b2@4",
  W: "[~@2 b2@3 ~ b2@3 b2@6 b2@3 b2@3 ~ b2@6 b2@3 b2@3 b2@6 ~ b2@3 b2@3 e3@6 ~ e3@3 e3@3 e3@4]/2",
  X: "[~@2 e3@3 ~ e3@3 e3@6 e3@3 e3@3 ~ e3@6 e3@3 e3@3 gb3@6 ~ gb3@3 gb3@3 gb3@6 ~ gb3@3 gb3@3 gb3@4]/2",
  Y: "[~@12 f3@6 g3@3 ~ f3@3 g3@6 g3@3 f3@6 ~ b2@6 b2@3 b2@3 ~ b2@6 b2@3 b2@3 b2@6 ~ b2@3 b2@3 e3@6 ~ e3@3 e3@3 b2@4]/3",
  Z: "[~@2 e3@3 ~ e3@3 e3@6 e3@3 e3@3 ~ e3@6 e3@3 e3@3 gb3@6 ~ gb3@3 gb3@3 gb3@6 ~ gb3@3 gb3@3 gb3@3 ~]/2",
  AA: "~@11 g3@3 gb3@2", AB: "~@2 g3@13 ~@7 d3@6 e3@4", AC: "[~@2 f3@6 ~ gb3@25 g3@6 ~ g3@6 d3@6 ~ d3@6 d3@26 ~@10]/3",
  AD: "[~@11 d3@8 d3@8 d3@8 g3@8 d3@8 d3@8 d3@8 d3@8 g3@8 g3@8 g3@8 g3@8 a3@16 a3@5]/8",
  AE: "[~@3 a3@8 d3@16 d3@16 gb3@32 db3@16 d3@16 ~@5]/7",
})).s("gm_cello").gain(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@10 A B A@2 C@2 D E F@2 G@2 F H@3 I@2 J@4 K@2 L M@2 N@3 O P Q R S@2 T U@2 V@2 W@2 X@2 Y@2 V@2 W@2 Z@2 AA AB AC@3 AD@8
  AE@7
>`.pickRestart({
  A: "f2!2", B: "f2 bb2", C: "bb2!2", D: "c3", E: "c3!2", F: "f2", G: "c3/2",
  H: "[f2@7 f2@7 ~ f2@7 f2@7 ~ f2@7 f2@7 f2@7 ~ f2@7 f2@11 f2@7 ~ f2@3 f2@7 ~ f2@7]/3",
  I: "[f2@7 bb2@7 ~ bb2@7 f2@7 ~ f2@7 f2@7 f2@7 ~ f2@7 f2@5]/2",
  J: "[~@2 f2@7 ~ f2@7 bb2@11 bb2@7 ~ bb2@3 bb2@7 ~ bb2@7 bb2@7 ~ bb2@7 bb2@7 c3@11 c3@7 ~ c3@3 c3@7 ~ c3@4 ~@18]/4",
  K: "[~@7 f2@7 ~ f2@7 f2@7 ~ f2@7 f2@7 f2@7 ~ f2@7 f2@5]/2", L: "~@2 f2@11 ~ f2@7 f2@4 f2@7",
  M: "[f2@7 f2@7 ~ bb2@7 bb2@7 ~ f2@7 f2@7 f2@7 ~ f2@7 f2@5]/2",
  N: "[~@2 f2@7 ~ f2@7 f2@7 ~ bb2@14 ab2@15 bb2@15 a2@5 bb2@5 b2@5 c3@12]/3", O: "~@2 c3@15 c3@15",
  P: "c3@5 ab2@5 f2@5 f2@11 f2@6", Q: "~ f2@4 f2@7 f2@7 ~ f2@7 f2@5", R: "~@2 f2@7 ~ c3@11 c3@7 c3@4",
  S: "[c3@7 c3@7 ~ c3@7 c3@7 ~ c3@7 f2@27]/2", T: "~@2 f2@6 ~ f2@3 f2@3 f2@6 ~ f2@3 f2@3 f2@4",
  U: "[~@2 f2@3 ~ f2@3 f2@6 f2@6 ~ gb2@6 gb2@3 gb2@3 gb2@6 ~ gb2@6 g2@6 ~ g2@3 g2@3 g2@4]/2",
  V: "[~@2 g2@3 ~ g2@3 g2@6 g2@3 g2@3 ~ g2@6 g2@3 g2@3 g2@6 ~ g2@3 g2@3 c3@6 ~ c3@3 c3@3 g2@4]/2",
  W: "[~@2 g2@3 ~ g2@3 g2@6 g2@3 g2@3 ~ g2@6 g2@3 g2@3 g2@6 ~ g2@3 g2@3 c3@6 ~ c3@3 c3@3 c3@4]/2",
  X: "[~@2 c3@3 ~ c3@3 c3@6 c3@3 c3@3 ~ c3@6 c3@3 c3@3 d3@6 ~ d3@3 d3@3 d3@6 ~ d3@3 d3@3 d3@4]/2",
  Y: "[~@22 g2@6 g2@3 g2@3 g2@6 ~ g2@3 g2@3 g2@6 ~ g2@3 g2@3 g2@4]/2",
  Z: "[~@2 c3@3 ~ c3@3 c3@6 c3@3 c3@3 ~ c3@6 c3@3 c3@3 d3@6 ~ d3@3 d3@3 d3@6 ~ d3@3 d3@3 a2@3 ~]/2",
  AA: "~@11 g2@3 gb2@2", AB: "~@2 g2@13 ~@7 b2@6 c3@4", AC: "[~@2 db3@6 ~ d3@32 c3@6 bb2@6 ~ g2@6 g2@26 ~@10]/3",
  AD: "[~@11 g2@8 g2@8 g2@8 c3@8 g2@8 g2@8 g2@8 g2@8 c3@8 c3@8 c3@8 c3@8 d3@16 d3@5]/8",
  AE: "[~@3 d3@8 g2@16 g2@16 d3@32 gb2@16 g2@16 ~@5]/7",
})).s("gm_electric_bass_finger").gain(0.3)

stack(fiddle, viola, cello, bass)