Strudelify

Raining in Baltimore

Counting Crows

KeyF majorTempo103 bpm
0:00/0:00
// Raining in Baltimore — Counting Crows
// 103 bpm, 3/4, 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 3 "Accordian" named as an organ, played on accordion (its piano patch is not one); ch 4 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Full arrangement: all 158 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(103/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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.

// chords · piano
const piano = note(`<
  A@5 B@4 C@7 D@6 E@4 F@4 G@2 H@3 I@6 J@5 K@8 L@2 M@2 N@2 M@2 O@2 M@2 P Q R S@7 T@5 U@5 V W X@3 Y@8 Z AA@7 AB@4 AC@4
  AD@8 AE@7 AF@8 AG@4 AH@8 AI@8
>`.pickRestart({
  A: "[~@16 d4@16 ~ f4@7 ~@2 [bb3,d4,f4]@26 [c4,e4]@16 ~@2 e4@8 ~ f3@25, ~@14 [d2,a4]@27 bb2@27 [c2,c3,g4]@27 ~@25, ~@15 f4@16 ~ d4@9 ~@44 c4@9 ~@26, ~@16 d3@27 ~@51 [f2,c4,f4,a4]@26]/5", // Bb C D5 C5 F
  B: "[~@19 [d4,f4]@9 [bb3,d4]@17 [bb3,d4]@9 ~ c2@17 ~@9 [c4,e4,g4]@8 [d4,g4]@7, ~@2 a4@24 ~@29 [c4,e4,g4]@23 ~@18, ~@2 [d4,f4]@16 ~@10 [bb1,bb2,f4]@27 ~@17 c2@8 ~@16, ~@3 d3@27 ~@25 c3@20 ~@2 c3@19]/4", // Dm Bb C G5 C Dm Bb5
  C: "[~@2 d4@8 ~ d4@16 ~ f4@7 ~@2 [bb2,bb3,d4,f4]@26 [c4,e4]@16 ~@2 [c4,e4]@9 ~ f3@26 ~ d4@16 [d4,f4]@9 [bb3,d4]@17 ~ [bb3,d4]@7, ~ [c4,g4]@8 ~ [d2,d3,a4]@27 ~@26 [c2,c3,g4]@27 [f2,c4,f4,a4]@27 d3@27 ~@24, ~@10 f4@16 ~ d4@9 ~@81 f4@16 ~@10 [bb1,bb2,f4]@25, ~@118 a4@25 ~@25]/7", // Bb C Dm Bb C5 D5 C5 F …
  D: "[~@2 [c2,c3,c4,e4,g4]@54 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 ~ f4@21 ~@2 [a3,c4,f4]@16, ~@56 bb1@37 [bb3,d4,f4]@9 ~@2 [a3,c4]@21 ~@19, ~@80 bb2@21 ~@4 f2@35 ~@4, ~@31 f3@2 ~@15, ~@96 bb1@7 ~@41]/6", // C Bb F Bb Am
  E: "[[a3,c4]@8 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@22 ~@2 [a3,c4,f4]@15 ~, ~@8 bb1@37 [bb3,d4,f4]@9 ~@42, ~@32 bb2@21 ~@3 f2@35 ~@5, ~@15 f3@2 ~@15, ~@48 bb1@7 ~@41]/4", // Am Bb F Bb
  F: "[[a3,c4,f4]@8 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@23 ~ [a3,c4,f4]@15 ~, ~@8 bb1@37 [bb3,d4,f4]@9 ~@42, ~@32 bb2@21 ~@3 f2@35 ~@5, ~@15 f3@2 ~@15, ~@48 bb1@7 ~@41]/4", // F Bb F Bb
  G: "[[a3,c4,f4]@8 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 [f2,f3,bb3,d4,f4]@3, ~@8 bb1@37 ~@3, ~@2 bb2]/2", // F Bb
  H: "[~@2 d2@3 c3@3 [f2,a3,c4,f4]@50 ~@2 d4@12, bb1@7 ~@51 [d2,d3,a4]@14, ~@59 f4@13]/3", // F D5
  I: "[~@5 f4@7 ~@2 [bb3,d4,f4]@25 ~ e4@15 ~@2 [c4,e4,g4]@9 [f2,f3,c4,f4,a4]@26 ~@17 [d4,f4,a4]@9 ~ [bb3,d4,f4]@16 ~ [bb3,d4,f4]@8, ~@4 [d4,a4]@9 bb2@26 c3@26 ~@29 d3@26 ~@24, ~@39 [c4,g4]@15 ~@39 [d4,f4,a4]@15 ~@11 [bb1,bb2]@25]/6", // Bb C F Dm Bb D5 C5 Dm …
  J: "[~@27 [c4,e4,g4]@8 ~@5 c2@3 ~@5 c2@3 ~ [d4,f4]@15 ~@2 [d4,f4,a4]@9 [bb3,d4,f4]@16 ~ [bb3,d4,f4]@8 ~ [c3,c4,e4,g4]@16, ~ [c4,e4,g4]@23 ~@11 [c4,d4,g4]@8 [c4,d4,g4]@8 a4@15 ~@54, ~ c3@20 ~@2 c3@27 ~@28 bb2@25 ~@17, ~@18 c2@8 ~@25 [d2,d3]@26 ~@43]/5", // C Dm Bb C Csus2 D
  K: "[~ [c4,e4,g4]@9 ~ f3@26 ~@18 d4@8 ~@18 [bb3,d4]@9 [c3,c4,e4,g4]@54 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3, ~@10 [c4,f4,a4]@26 ~@2 a4@25 ~ bb2@26 ~@54 bb1@37 f3@6 ~@5, ~@38 [d4,f4]@16 f4@9 f4@26 ~@92 [bb3,d4,f4]@9 ~@2, ~@39 d3@24 [bb3,d4]@16 ~@89 bb2@21 ~@3, ~@184 bb1@7 ~]/8", // C Bb C Bb F Dm Bb
  L: "[~ a3@21 ~@2 [a3,c4]@15 ~ [a3,c4]@8, f2@35 ~@13, [c4,f4]@7 ~ f4@8]/2", // Am F5
  M: "[[bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3, bb1@37 [bb3,d4,f4]@9 ~@2, ~@8 bb2@7 ~, ~@37 f3@6 ~@5, ~@40 bb1@7 ~]/2", // Bb
  N: "[[a3,c4,f4]@22 ~@2 [a3,c4,f4]@15 ~ [a3,c4,f4]@8, f2@35 ~@13]/2", // F
  O: "[[a3,c4,f4]@23 ~ [a3,c4,f4]@15 ~ [a3,c4,f4]@8, f2@35 ~@13]/2", P: "[a3,c4,f4]@15 ~ [a3,c4,f4]@7 ~, f2@23 ~",
  Q: "[a3,c4,f4]@7 ~ [g3,c4,e4]@7 ~ [f3,bb3,d4]@7 ~, f2", R: "[c3,c4,e4,g4]@7 ~",
  S: "[~ c4@21 ~ [bb2,bb3,d4,f4]@21 ~@3 [bb2,d4]@21 ~ [c3,c4,e4,g4]@21 ~@4 [c3,c4,e4,g4]@21 ~@2 [bb3,d4,f4]@21 ~@2 [bb2,bb3,d4,f4]@21 ~ [c3,c4,e4,g4]@6, [c3,e4,g4]@21 ~@25 [bb3,f4]@21 ~@49 bb2@21 ~@31]/7", // Bb C Bb C Bb5
  T: "[~@19 g4@21 ~@2 [bb2,bb3,d4,f4]@21 ~@2 [f2,f3,a3,c4]@22 ~@2 [bb2,bb3,d4,f4]@22 ~@2 [f2,f3,a3,c4]@7, ~@6 [c3,c4,e4]@7 ~@27]/5", // Bb F Bb F C
  U: "[~@17 g3@16 ~ g3@6 g3@2 ~ [c3,g3]@17 ~ g3@5 g3@2 ~ [c3,g3]@17 ~ g3@5 g3@2 ~ [g3,c4,e4,g4]@8 [c4,d4,g4]@8 ~ [c3,c4,d4,g4]@8, ~@17 [e4,g4]@78 ~@25, ~@17 [c3,c4]@25 ~ c4@25 ~ c4@25 ~ c3@12 ~@13]/5", // C5 C Csus2 Em C
  V: "~ d4@15 ~@2 f4@6, [d2,a4], f4@15 ~@2 d4@7, ~ d3@23", W: "~ [bb3,d4,f4]@7, ~ bb2@11",
  X: "[~@4 [c4,e4]@15 ~@3 e4@8 ~ f3@26 ~ [d3,d4,a4]@14, ~@2 [c2,c3,g4]@13 [f2,c4,f4,a4]@13 ~@8, ~@7 c4@3 ~@9 f4@5]/3", // C D5 C5 F
  Y: "[~ [d4,f4]@9 ~ [bb3,d4]@16 ~ [bb3,d4]@9 c2@16 ~@9 [c4,e4,g4]@8 [c4,d4,g4]@6 c2@3 ~@5 c2@3 ~ [d4,f4]@15 ~@2 [d4,f4,a4]@9 [bb3,d4,f4]@16 ~ [bb3,d4,f4]@8 [c4,e4,g4]@15 ~@3 [c4,e4,g4]@9 [f3,c4,f4,a4]@26, ~@11 [bb1,bb2,f4]@26 [c4,e4,g4]@23 ~@19 [c4,d4,g4]@8 a4@15 ~@90, ~@37 c3@20 ~@2 c3@27 ~@28 bb2@25 ~@53, ~@54 c2@8 ~@25 [d2,d3]@26 ~@26 [c2,c3]@26 ~@27]/8", // Dm Bb C Csus2 Dm Bb C F …
  Z: "~ d3@11, f4, ~ [d4,a4]@23", // D5
  AA: "[~@2 [bb2,bb3,d4,f4]@26 [c3,c4,e4,g4]@54 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@23 ~ [a3,c4,f4]@14, ~@82 bb1@37 [bb3,d4,f4]@9 ~@40, ~@106 bb2@21 ~@3 f2@35 ~@3, ~@119 f3@6 ~@43, ~@122 bb1@7 ~@39]/7", // Bb C Bb F Bb
  AB: "[~ [a3,c4,f4]@8 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@23 ~ [a3,c4,f4]@15, ~@9 bb1@37 [bb3,d4,f4]@9 ~@41, ~@33 bb2@21 ~@3 f2@35 ~@4, ~@23 f3@3 ~@22, ~@49 bb1@7 ~@40]/4", // F Bb F Bb
  AC: "[~ [a3,c4,f4]@7 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@23 ~ [a3,c4,f4]@15 ~, ~@8 bb1@37 [bb3,d4,f4]@9 ~@42, ~@32 bb2@21 ~@3 f2@35 ~@5, ~@15 f3@2 ~@15, ~@48 bb1@7 ~@41]/4", // F Bb F Bb
  AD: "[[a3,c4,f4]@8 [bb2,bb3,d4,f4]@23 [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@23 ~ [a3,c4,f4]@15 ~ [a3,c4,f4]@8 [bb2,bb3,d4,f4]@22 [bb3,d4,f4]@10 ~@2 f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@22 [a3,c4,f4]@14 ~ [a3,c4,f4]@7, ~@8 bb1@36 [bb3,d4,f4]@9 ~@139, ~@31 bb2@21 ~@3 f2@35 ~@35 bb2@20 ~@3 f2@33 ~@11, ~@44 f3@6 ~@87 [f3,bb3,d4,f4]@8 ~@47, ~@47 bb1@7 ~@49 bb1@35 ~@2 bb1@7 ~@45]/8", // F Bb F Bb F Bb
  AE: "[~ [bb2,bb3,d4,f4]@22 [bb3,d4,f4]@10 ~@2 f2@3 ~@2 d2@3 c3@2 [a3,c4,f4]@22 ~ [a3,c4,f4]@14 ~ [a3,c4,f4]@7 [bb2,bb3,d4,f4]@22 ~ [bb3,d4,f4]@10 ~@2 f2@3 ~@2 d2@3 c3@2 [a3,c4,f4]@22 ~ [a3,c4,f4]@10, ~ bb1@34 [f3,bb3,d4,f4]@8 ~@82 [f3,bb3,d4,f4]@8 ~@35, ~@23 bb2@20 ~@2 f2@33 ~@35 bb2@20 ~@2 f2@33, ~@38 bb1@7 ~@45 bb1@35 ~@3 bb1@7 ~@33]/7", // Bb F Bb F Bb
  AF: "[~@5 [a3,c4,f4]@7 [bb2,bb3,d4,f4]@22 ~ [bb3,d4,f4]@10 ~@2 f2@3 ~@2 d2@2 c3@3 [a3,c4,f4]@22 ~ [a3,c4,f4]@14 ~ [a3,c4,f4]@7 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~ f2@3 ~@2 d2@3 c3@3 [a3,c4,f4]@23 ~ [a3,c4,f4]@15 ~ [a3,c4,f4]@3, ~@12 bb1@35 [f3,bb3,d4,f4]@8 ~@83 [bb3,d4,f4]@9 ~@45, ~@35 bb2@20 ~@2 f2@33 ~@36 bb2@21 ~@2 f2@34 ~@9, ~@50 bb1@7 ~@45 bb1@36 f3@6 ~@48, ~@141 bb1@7 ~@44]/8", // F Bb F Bb F Bb
  AG: "[~@4 [bb2,bb3,d4,f4]@23 ~ [bb3,d4,f4]@11 ~@2 f2@3 ~@2 d2@3 c3@2 [a3,c4,f4]@23 ~ [a3,c4,f4]@15 ~ [a3,c4,f4]@5, ~@4 bb1@37 [bb3,d4,f4]@9 ~@46, ~@28 bb2@21 ~@2 f2@34 ~@11, ~@41 f3@6 ~@49, ~@44 bb1@7 ~@45]/4", // Bb F Bb
  AH: "[~@3 [bb2,bb3,d4,f4]@24 ~ [bb3,d4,f4]@11 ~@7 d2@3 c3@3 [a3,c4,f4]@24 ~ [a3,c4,f4]@16 ~ [a3,c4,f4]@8 [bb2,bb3,d4,f4]@24 ~ [bb3,d4,f4]@11 ~@8 d2@3 c3@3 [a3,c4,f4]@24 ~ [a3,c4,f4]@15, ~@3 bb1@38 [bb3,d4,f4]@9 ~@91 [bb3,d4,f4]@9 ~@42, ~@28 bb2@22 ~@77 bb2@22 ~@43, ~@41 [f2,f3]@6 ~@5 f2@36 ~@53 [f2,f3]@6 ~@5 f2@36 ~@4, ~@44 bb1@8 ~@50 bb1@39 ~@3 bb1@8 ~@40]/8", // Bb F Bb F Bb F
  AI: "[~@2 [a3,c4,f4]@8 [bb2,bb3,d4,f4]@24 ~ [bb3,d4,f4]@11 ~@8 d2@3 c3@3 [a3,c4,f4]@24 ~ [a3,c4,f4]@16 ~ [a3,c4,f4]@8 f4@74 ~@8, ~@10 bb1@39 [bb3,d4,f4]@9 ~@52 d4@69 ~@13, ~@35 bb2@22 ~@53 bb3@66 ~@16, ~@49 [f2,f3]@6 ~@5 f2@36 ~@14 bb2@59 ~@23, ~@52 bb1@8 ~@50 bb1@55 ~@27]/8", // F Bb F Bb F
})).s("gm_piano").gain(0.25)

// other · accordion · "Accordian"
const accordion = note("<~@67 A B@2 C@8 D@8 ~@72>".pickRestart({
  A: "a4 g4 f4", B: "[[e4,g4]@23 f4]/2",
  C: "[~@6 bb4@8 d5@8 f5@19 e5@2 d5@2 [g4,e5]@47 c5@23 bb4@8 a4@15 g4@47 a4@7, ~@115 c5@24 ~@53]/8", // C
  D: "[~ bb4@11 c5@2 d5@2 c5@24 [bb4,c5]@24 [f4,a4]@24 [g4,c5]@104]/8", // Bbsus2 F C5
})).s("gm_accordion").gain(0.4)

// bass · electric bass finger · "Bass"
const bass = note("<~@67 A B@7 C@6 D@5 ~@72>".pickRestart({
  A: "f2 g2 bb1", B: "[~@23 c2@23 bb2@21 ~@3 bb2@8 a2@7 g2@8 ~@23 c2@23 ~ bb2@21 ~@2 bb2@5, c3@47 ~@46 c3@47 ~@28]/7",
  C: "[~@3 a2@8 ~@3 g2@4 ~@24 c2@23 bb2@21 ~@2 f2@22 ~@2 bb2@22 ~@2 f2@8, ~@18 c3@47 ~@79]/6", D: "[~@2 [c2,c3]@13]/5",
})).s("gm_electric_bass_finger").gain(0.51)

stack(piano, accordion, bass)

More by Counting Crows