Strudelify
KeyG majorTempo85 bpm
0:00/0:00
// 2 Hearts — Bruce Springsteen
// 85 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 102 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/4)

// 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.

// other · piano · "Tamb."
const piano = note(`<
  ~ A B A@4 C A@2 B A@2 D E F G H I J K L ~@2 M N O M@2 P M N Q R S T U V W X Y ~@2 Z AA@3 AB AC@4 ~ AD@2 AE AD@2 AF AD
  AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU ~@2 AV AW AX AY AG AD AZ@2 BA@2 ~@2 BB BC BD BE M BF BG BH A BI BJ BK ~
>`.pickRestart({
  A: "~@4 f#3 ~@11", B: "~@3 f#3 ~@8", C: "~@6 f#3 ~@17", D: "~@12 f#3@7 ~@17 f#3@5 ~@7",
  E: "~@11 f#3@3 ~@21 f#3@4 ~@9", F: "~@11 f#3@3 ~@21 f#3@2 ~@11", G: "~@5 f#3 ~@11 f#3@3 ~@4",
  H: "~@10 f#3@3 ~@20 f#3@4 ~@11", I: "~@3 f#3 ~@7 f#3@2 ~@3", J: "~@9 f#3@8 ~@15 f#3@10 ~@6",
  K: "~@8 f#3@8 ~@15 f#3@11 ~@6", L: "~@7 f#3@11 ~@13 f#3@9 ~@8", M: "~@7 f#3@3 ~@38", N: "~@2 f#3 ~@13",
  O: "~@3 f#3 ~@20", P: "~@3 f#3@2 ~@19", Q: "~@6 f#3@7 ~@17 f#3@5 ~@13", R: "~@6 f#3@3 ~@21 f#3@4 ~@14",
  S: "~@5 f#3@3 ~@21 f#3@2 ~@17", T: "~@5 f#3@2 ~@21 f#3@6 ~@14", U: "~@4 f#3@3 ~@21 f#3@4 ~@16",
  V: "~@4 f#3@3 ~@20 f#3@6 ~@15", W: "~@3 f#3@8 ~@15 f#3@10 ~@12", X: "~@3 f#3@8 ~@15 f#3@11 ~@11",
  Y: "~@2 f#3@11 ~@12 f#3@9 ~@14", Z: "f#3@7 ~@17 f#3@5 ~@19",
  AA: "[f#3@3 ~@21 f#3@4 ~@19 f#3@3 ~@21 f#3@2 ~@22 f#3@2 ~@21 f#3@6 ~@18 f#3@2]/3", AB: "~@11 f#3@2 ~@10 f#3",
  AC: "[~@21 f#3@6 ~@18 f#3@8 ~@15 f#3@10 ~@14 f#3@8 ~@16 f#3@11 ~@12 f#3@11 ~@13 f#3@9 ~@20]/4", AD: "~@43 f#3@3 ~@2",
  AE: "~@43 f#3@2 ~@3", AF: "~@43 f#3@4 ~", AG: "~@14 f#3 ~", AH: "~@7 f#3", AI: "~@19 f#3@5 ~@18 f#3@3 ~@3",
  AJ: "~@18 f#3@4 ~@20 f#3@3 ~@3", AK: "~@17 f#3@2 ~@22 f#3@2 ~@5", AL: "~@17 f#3@6 ~@17 f#3@7 ~",
  AM: "~@17 f#3@5 ~@18 f#3@3 ~@5", AN: "~@16 f#3@4 ~@19 f#3@3 ~@6", AO: "~@15 f#3@2 ~@22 f#3@2 ~@7",
  AP: "~@14 f#3@6 ~@18 f#3@7 ~@3", AQ: "~@14 f#3@5 ~@18 f#3@7 ~@4", AR: "~@14 f#3@5 ~@18 f#3@8 ~@3",
  AS: "~@12 f#3@10 ~@15 f#3@8 ~@3", AT: "~@12 f#3@11 ~@13 f#3@11 ~", AU: "~@11 f#3@9 ~@28", AV: "~@38 f#3@3 ~@7",
  AW: "~@39 f#3@4 ~@5", AX: "~@40 f#3@3 ~@5", AY: "~@41 f#3@4 ~@3", AZ: "[~@44 f#3@7 ~@19 f#3@5 ~@19 f#3@2]/2",
  BA: "[~@22 f#3@4 ~@21 f#3@3 ~@22 f#3@3 ~@21]/2", BB: "~ f#3 ~@14", BC: "~@3 f#3@4 ~@41", BD: "~@5 f#3@3 ~@40",
  BE: "~@5 f#3@4 ~@39", BF: "~@2 f#3 ~@9", BG: "~@3 f#3 ~@12", BH: "~@5 f#3@2 ~@17", BI: "~@13 f#3@4 ~@31",
  BJ: "~@14 f#3@3 ~@31", BK: "~@15 f#3@4 ~@29",
})).s("gm_piano").gain(0.62)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D E C@2 D C@2 D@2 F@8 G@6 H@7 I@4 J@2 K@4 L M@2 N O P@2 Q@4 R@2 S R T U V W X Y Z@7 AA AB@2 AC@8 AD AE@2 AF@4
  AG@8 AH AI@2 AJ ~
>`.pickRestart({
  A: "~@21 d2@2 e2", B: "g2@17 ~ g1@24 d2@3 e2@3", C: "g2@18 g1@24 d2@3 e2@2 ~", D: "g2@6 g1@8 d2 e2",
  E: "g2@18 g1@24 d2@2 ~ e2@2 ~",
  F: "[g2@18 g1@28 ~ g1@15 ~@4 c2@20 ~@9 g2@7 e2@2 ~@3 d2@2 ~@5 e2@29 g1@18 ~ c2@20 ~@5 c2@2 ~ g2@6 e2@2 ~@4 d2 ~@6 e2@29 g1@14 ~@3 c2@25 ~@2 c2@2 ~ g2@6 e2@2 ~@4 d2 ~@6 e2@11 ~ e2@2 ~@3 e2@5 ~ e2@6 d2@21 g1@2 d2@2 ~@4 d2@17 ~@2 d2@3]/8",
  G: "[~@2 c2@2 ~@10 c2@24 g1 ~@5 d2@20 g1@2 ~ d2@2 ~@4 d2@15 ~@2 c2@25 g1@24 c2@42 d2@2 e2@2 ~ g2@19 g1@24 d2@2 e2@2 ~ g2@19 g1@24 d2@3 e2@2 g2@6]/6",
  H: "[~@12 g1@25 d2@2 e2@3 g2@19 g1@24 d2@3 e2@2 g2@19 g1@24 d2@2 e2@2 ~ g2@19 g1@24 d2@2 e2@3 ~ g2@17 g1@25 d2@2 e2@3 g2@18 g1@28 ~@2 g1@15 ~@4 c2@20 ~@8 g2@7]/7",
  I: "[e2@2 ~@4 d2@2 ~@4 e2@29 g1@18 ~ c2@20 ~@6 c2@2 g2@6 ~ e2@2 ~@4 d2 ~@5 e2@29 g1@14 ~@4 c2@25 ~@2 c2@2 g2@6 ~ e2@2]/4",
  J: "[~@4 d2 ~@5 e2@11 ~ e2@2 ~@3 e2@5 ~ e2@6 d2@21 g1@2 ~ d2@2 ~@3 d2@17 ~@2 d2@6 c2@2 ~]/2",
  K: "[~@8 c2@24 g1 ~@5 d2@21 g1@2 ~ d2@2 ~@4 d2@15 ~@2 c2@24 g1@24 c2@42 ~@5 g1@12]/4",
  L: "~@6 c2@20 ~@9 g2@7 e2@2 ~@4", M: "[d2@2 ~@4 e2@29 g1@18 ~ c2@20 ~@6 c2@2 ~ e2@11 g1 ~]/2", N: "~@4 a1@29 ~ g1@14",
  O: "~@4 c2@25 ~@2 c2@2 g2@6 ~ e2@2 ~@4 d2 ~",
  P: "[~@4 e2@11 ~ e2@2 ~@3 e2@5 ~ e2@6 d2@21 g1@2 d2@2 ~@4 d2@17 ~@2 d2@6 c2@2 ~@7]/2",
  Q: "[~@2 c2@24 g1 ~@5 d2@21 g1@2 ~ d2@2 ~@3 d2@15 ~@3 c2@24 g1@24 c2@42 d2@2 e2@2 ~ g2@18]/4",
  R: "~ g1@24 d2@3 e2@2 g2@18", S: "g1@25 d2@2 e2@3 g2@18", T: "~ g1@24 d2@2 e2@2 ~ g2@18",
  U: "~ g1@24 d2@3 e2@3 g2@17", V: "~ g1@24 d2@2 e2@3 ~ g2@17", W: "~ g1@28 ~ g1@15 ~@3",
  X: "~ c2@20 ~@8 g2@7 ~ e2@2 ~@3 d2@2 ~@4", Y: "~ e2@29 g1@18",
  Z: "[c2@20 ~@6 c2@2 ~ g2@6 e2@2 ~@4 d2 ~@5 e2@29 g1@14 ~@5 c2@20 ~@8 g2@7 e2@2 ~@4 d2@2 ~@4 e2@29 g1@18 ~ c2@20 ~@6 c2@2 g2@6 ~ e2@2 ~@4 d2 ~@5 e2@29 g1@14 ~@4 c2@20 ~@9 g2@23]/7",
  AA: "~ c2@24 d2@21 g1@2", AB: "[~ d2@2 ~@3 d2@17 ~@2 d2@6 c2@2 ~@9 c2@24 g1 ~@5 d2@21 g1@2 ~]/2",
  AC: "[d2@2 ~@4 d2@15 ~@2 c2@24 g1@24 c2@98 g1@14 ~@5 c2@30 g1@13 ~@6 e1@30 g1@15 ~@5 c2@27 ~@3 e2@13 ~@5 a1@31 g1@11 ~@7]/8",
  AD: "c2@31 g1@17", AE: "[~@2 e1@19 ~@5 e1@2 ~@4 d2@20 ~ g1@2 ~ d2@3 ~@4 d2@17 ~@2 d2@12 ~@2]/2",
  AF: "[~@4 c2@12 c2@3 ~@9 c2@2 ~@4 d2@22 g1@3 d2@2 ~@4 d2@18 ~ c2@24 g1@23 ~ c2@41 ~@3 d2@3 e2@3 g2@10]/4",
  AG: "[~@8 g1@25 d2@3 e2@3 g2@18 g1@25 d2@3 e2@3 ~ g2@18 g1@24 d2@3 e2@3 g2@18 ~ g1@25 d2@2 e2@2 ~ g2 g2@18 g1@25 d2@3 e2@3 g2@18 g1@25 d2@3 e2@3 g2@18 g1@25 d2@3 e2@3 g2@18 g1@25 d2@3 e2@2 ~ g2]/8",
  AH: "g2@18 g1@24 d2@3 ~ e2@2", AI: "[~ g2@18 g1@25 d2@3 e2@3 g2@18 g1@25 d2@3]/2", AJ: "e2@3 g2@18 g1@25 ~@2",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · overdriven guitar · "Guitar 1"
const overdriven_guitar = note(`<
  ~@12 A@8 B@4 C D C D E F G H@8 I@7 J K L@2 M@4 N O N P Q R N S T U V@7 W X@2 Y@4 ~@24
>`.pickRestart({
  A: "[~@47 [g3,b3,d4,g4]@16 ~@3 [g3,c4,e4,g4]@27 ~@2 [g3,b3,d4,g4]@18 [e3,b3,e4,g4]@27 ~@2 [g3,b3,d4,g4]@17 ~@2 [g3,c4,e4,g4]@26 ~@3 [g3,b3,d4,g4]@18 [e3,b3,e4,g4]@28 ~ [g3,b3,d4,g4]@17 ~@2 [g3,c4,e4,g4]@27 ~@2 [g3,b3,d4,g4]@17 ~ [e3,b3,e4,g4]@29 ~ [d3,a3,d4,f#4]@24 [d3,a3,d4,f#4]@5 [d3,a3,d4,f#4]@18 [d3,a3,c4,f4]@4]/8", // G C G Em G C G Em …
  B: "[~@2 [d3,a3,c4,f4]@4 ~@8 [c3,e3,g3,c4,e4]@29 [d3,a3,d4,f#4]@24 ~ [d3,a3,f#4]@5 [d3,a3,d4,f#4]@17 ~ [c3,e3,g3,c4,e4]@23 ~ [g2,d3,g3,d4,g4]@23 [c3,e3]@49 ~@5, ~@67 d4@6 ~@65 g3@39 ~@15, ~@46 c4@11 ~@7, ~@23 e4@4 ~@5]/4", // Dm7 C D C G5 C
  C: "~@6 [d4,g4,b4]@2 ~@17 [d4,g4,b4]@2 ~@21", D: "~@7 [e4,g4,c5]@2 ~@16 [e4,g4,c5]@2 ~@21",
  E: "~@6 [d4,g4,b4]@2 ~@17 [d4,g4,b4]@3 ~@20", F: "~@6 [e4,g4,c5]@3 ~@16 [e4,g4,c5]@2 ~@21",
  G: "~@7 [d4,g4,b4]@2 ~@16 [d4,g4,b4]@2 ~@21", // G
  H: "[~@7 [e4,g4,c5]@2 ~@16 [g4,c5,e5]@2 ~@15 [g3,b3,d4,g4]@16 ~@2 [g3,c4,e4,g4]@27 ~@3 [g3,b3,d4,g4]@17 ~ e4@27 ~@2 [g3,b3,d4,g4]@17 ~ [g3,c4,e4,g4]@26 ~@4 [d4,g4]@17 ~ e4@28 ~ [g3,b3,d4,g4]@17 ~ [g3,c4,e4,g4]@27 ~@2 [g3,b3,d4,g4]@17 ~ [e3,b3,e4,g4]@29 ~ [d3,a3,d4,f#4]@24 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@17 ~ f4@5 [d3,a3,c4,f4]@4, ~@107 [e3,b3,g4]@27 ~@50 [g3,b3]@18 [e3,b3,g4]@28 ~@144 [d3,a3,c4]@5 ~@5]/8", // C G C G C G5 G C …
  I: "[~@8 [c3,e3,g3,c4,e4]@29 ~ [d3,a3,d4,f#4]@24 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@17 [c3,e3,g3,c4,e4]@23 ~ [g2,d3,g3,d4,g4]@23 ~ [c3,e3]@47 [g3,b3,d4,g4]@17 ~ [g3,c4,e4,g4]@29 ~ [d4,g4]@17 ~ e4@28 ~ [g3,b3,d4,g4]@18 [g3,c4,e4,g4]@26 ~@4 [e3,e4,g4,b4]@13, ~@133 g3@38 ~@56 [g3,b3]@18 [e3,b3,g4]@29 ~@62, ~@133 c4@33 ~@156 b3@14, ~@133 e4@24 ~@179]/7", // C D C G5 C G C G5 …
  J: "~@4 [a3,e4,a4,c5]@29 [g3,b3,d4,g4]@15", K: "~@4 [g3,c4,e4,g4]@28 ~ [g3,b3,d4,g4]@15",
  L: "[~@3 [e3,b3,e4,g4]@28 ~@2 [d3,a3,d4,f#4]@24 [d3,a3,d4,f#4]@5 [d3,a3,d4,f#4]@16 ~@2 [d3,a3,d4,f#4]@5 ~ [d3,a3,c4,f4]@4 ~@6]/2", // Em D Dm7
  M: "[~@2 [c3,e3,g3,c4,e4]@29 ~ [d3,a3,d4,f#4]@24 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@13 ~@4 [c3,e3,g3,c4,e4]@23 ~ [g2,d3,g3,d4,g4]@23 ~ [c3,e3]@37 ~@23 [d4,g4,b4]@2 ~@3, ~@127 g3@33 ~@32, ~@127 c4@27 ~@38, ~@127 e4@21 ~@44]/4", // C D C G5 C G
  N: "~@19 [d4,g4,b4]@2 ~@22 [e4,g4,c5]@2 ~@3", O: "~@19 [e4,g4,c5]@2 ~@22 [d4,b4]@2 ~@3, ~@21 g4 ~@2",
  P: "~@19 [e4,g4,c5]@2 ~@21 [d4,g4,b4]@2 ~@4", Q: "~@19 [d4,g4,b4]@3 ~@21 [e4,g4,c5]@3 ~@2",
  R: "~@19 [e4,g4,c5]@2 ~@22 [d4,g4,b4]@2 ~@3", S: "~@19 [g4,c5,e5]@2 ~@9 [g3,b3,d4,g4]@16 ~@2",
  T: "~ [g3,c4,e4,g4]@27 ~@2 [g3,b3,d4,g4]@18", U: "[e3,b3,e4,g4]@27 ~@2 [g3,b3,d4,g4]@17 ~@2",
  V: "[[g3,c4,e4,g4]@26 ~@3 [g3,b3,d4,g4]@17 ~ [b3,e4,g4]@28 ~ [g3,b3,d4,g4]@16 ~@2 [g3,c4,e4,g4]@27 ~@3 [g3,b3,d4,g4]@17 ~ e4@27 ~@2 [g3,b3,d4,g4]@17 ~ [g3,c4,e4,g4]@26 ~@4 [d4,g4]@17 ~ e4@28 ~ [g3,b3,d4,g4]@16 ~@2 [g3,c4,e4,g4]@27 ~@2 [g3,b3,d4,g4]@15 ~@8, ~@46 e3@28 ~@67 [e3,b3,g4]@27 ~@50 [g3,b3]@18 [e3,b3,g4]@28 ~@72]/7", // C G Em G C G C G5 …
  W: "~ [c3,e3,g3,c4,e4]@24 [d3,a3,d4,f#4]@23", // C D
  X: "[~ [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@17 ~ f4@5 [d3,a3,c4,f4]@4 ~@8 [c3,e3,g3,c4,e4]@29 ~ [d3,a3,d4,f#4]@24, ~@24 [d3,a3,c4]@5 ~@67]/2", // D Dm7 C D D7
  Y: "[[d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@17 ~ [e3,g3]@23 [g2,d3,g3,d4,g4]@23 ~ [c3,e3]@98 ~@23, ~@23 [c3,c4,e4]@23 ~@25 g3@92 ~@29, ~@71 c4@61 ~@60, ~@71 e4@49 ~@72]/4", // D Em G5 C
})).s("gm_overdriven_guitar").gain(0.22).pan(0.3)

// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note("<~@23 A@8 ~@22 B@8 ~@41>".pickRestart({
  A: "[~@43 g4@39 ~@10 e4@43 ~@4 g4@42 ~@7 [c4,e4]@43 ~@4 g4@45 ~@3 e4@45 ~@2 e3 g4@44 ~@4 e4@5, ~@39 g2@43 ~@8 g3@45 g2@46 ~@50 g2@50 e3@46 ~@3 [d3,g3,d4]@46 c3@8, ~@41 d3@40 ~@7 c3@48 ~@2 [d3,g3,d4]@43 ~@4 c3@48 [d3,g3]@49 [g3,c4]@45 ~@50 e3@7, ~@42 [g3,d4]@40 ~@7 e3@47 ~@50 e3@47 ~ e3@2 ~@44 c3@47 ~ g2@48 ~@8, ~@91 c4@45 ~@51 g3@46 ~ d4@48 ~@96 [g3,c4]@6]/8", // C G5 C5 G5 C5
  B: "[~@31 g4@39 ~@10 [c4,e4]@44 ~@3 g4@42 ~@7 [c4,e4]@44 ~@3 g4@45 ~@3 e4@45 ~@2 e3 [d4,g4]@45 ~@3 [c4,e4]@17, ~@27 g2@43 ~@7 e3@47 ~@2 [d3,g3,d4]@43 ~@4 c3@47 g2@49 e3@46 ~@50 e3@19, ~@30 [d3,g3,d4]@40 ~@6 c3@48 g2@46 ~@5 g3@46 g3@49 [g3,c4]@45 ~@51 g3@18, ~@79 g3@45 ~@50 e3@47 ~ [d3,d4]@49 ~@47 [d3,g3]@46 c3@20, ~@222 e3@2 ~@44 c3@47 ~ g2@48 ~@20]/8", // C G5 C G5 C5 D G5
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.7)

// chords · drawbar organ · "Organ"
const drawbar_organ = note("<~@12 A B C@8 D@2 ~@7 E@8 F@7 G@6 H@5 I@7 J@7 K@7 ~@4 L M@8 ~ N@6 O P Q ~>".pickRestart({
  A: "~@46 f5 [g5,a5], ~@8 [c2,d2]@3 a4, ~@11 e2@4 [b4,c5], ~@23 [d5,e5]", // Gsus2 Csus2 Cmaj7 Dsus2
  B: "[b4,d5]@18 [c5,e5]@27 ~@2 g5, g5@15 ~, b5 ~@47", // Bm C
  C: "[d5@17 e5@26 ~@4 [b4,d5]@18 [c5,e5]@27 ~@3 d5@17 e5@28 ~@2 [b4,d5]@17 ~ c5@27 ~@20 e5@30 [d5,f#5]@46 f5@18 [g4,e5]@29 ~ [a4,d5,f#5]@48 [g4,c5,e5]@5, b4@44 ~@3 g5@45 ~@3 [b4,g5]@45 ~@2 g5@45 ~@2 g5@48 ~@147, ~@159 e5@27 ~@3 d5@18 ~@30 a4@64 ~@83, ~@190 b4@48 ~@45 c5@47 ~@54]/8", // Bm C Bm D C D C Em
  D: "[~@19 [g4,d5]@23 ~ c5@48 ~@5, ~@3 b4@4 [g4,e5]@8 ~]/2", // G5 C
  E: "[~@41 [f5,g5] [a5,b5] ~@17 [c5,e5]@27 ~@3 d5@17 e5@26 ~@5 [b4,d5]@18 [c5,e5]@27 ~@2 d5@18 e5@28 ~ [b4,d5]@18 [c5,e5]@27 ~@3 d5@18 e5@29 ~ d5@45 ~ c5@10, ~@27 [c2,d2,e2]@12 [a4,b4]@3 [b4,d5]@19 ~@29 [b4,g5]@44 ~@51 [b4,g5]@45 ~@50 [b4,g5]@48 ~@56, ~@37 e4@4 e5@2 g5@45 ~@50 g5@45 ~@49 g5@45 ~@50 f#5@46 f5@11, ~@38 [f4,g4]@5 ~@341, ~@40 [c5,d5]@3 ~@284 a4@57]/8", // Fsus2 Asus2 C Bm C Bm C Asus2 …
  F: "[~@7 [g4,e5]@29 ~@2 [a4,d5,f#5]@47 ~ g4@22 ~ [g4,b4,d5]@24 [g4,c5,e5]@47 [b4,d5]@18 [c5,e5]@27 ~@3 d5@17 e5@26 ~@5 [b4,d5]@17 ~ c5@27 ~@2 [b4,e5,g5]@13, ~@85 [c5,e5]@24 ~@71 g5@45 ~@3 [b4,g5]@44 ~@4 g5@45 ~@15, ~@293 e5@27 ~@16]/7", // C D G C Bm C Bm Em …
  G: "[~@7 [a4,c5,e5]@27 [b4,d5]@18 [c5,e5]@27 ~@3 d5@17 e5@30 [a4,d5,f#5]@47 [a4,f5]@17 [g4,e5]@30 ~ [a4,d5,f#5]@47 ~ g4@16, ~@34 g5@45 ~@3 [b4,g5]@48 ~@46 c5@47 ~@48 [c5,e5]@17]/6", // Am Bm C D Dm C D Em …
  H: "[~@7 [g4,b4,d5]@23 ~ [c5,e5]@46 [c5,c#5]@2 d5@46 [c5,c#5]@2 d5@46 [c5,c#5]@2 d5@45 [c5,c#5]@2 d5@18, ~@5 g4@8 ~@27]/5", // G C C#maj7
  I: "[~@6 f#5 ~@12 f#5@11 ~ d5@46 c#5@2 d5@45 [c5,c#5]@2 d5@48 ~@33 [c2,d2,e2]@12 ~@2 f5 [g5,a5,b5] [b4,d5]@18 [c5,e5]@27 ~@2 d5@18 e5@26 ~@4 [b4,d5,g5]@18, ~@7 g5@167 b4@45 [a4,b4]@4 ~@113, ~@175 [d5,g5]@45 [c5,d5]@3 ~@47 [b4,g5]@44 ~@22, ~@221 e5@2 g5@45 ~@68]/7", // C#maj7 C G Bm C G Asus2 G5 …
  J: "[[c5,e5]@27 ~@2 d5@18 e5@28 ~@19 [c5,e5]@27 ~@3 d5@17 e5@26 ~@5 [b4,d5]@18 [c5,e5]@27 ~@2 d5@18 e5@28 ~ [b4,d5]@18 [c5,e5]@27 ~@3 [g4,b4,d5]@22, ~@29 [b4,g5]@45 ~@2 [b4,d5]@19 ~@29 [b4,g5]@44 ~@51 [b4,g5]@45 ~@72, ~@77 g5@45 ~@50 g5@45 ~@49 g5@45 ~@25]/7", // C Bm C Bm C G Em Bm …
  K: "[[c5,e5]@25 ~ [d5,f#5]@45 ~@18 [g4,e5]@29 ~@2 [a4,d5,f#5]@47 ~ g4@22 ~ [g4,b4,d5]@24 g4@98 ~@23, ~@25 a4@64 ~@247, ~@71 f5@19 ~@125 e5@46 ~@75, ~@72 c5@47 ~@48 [c5,e5]@24 ~@24 c5@80 ~@41]/7", // C D C D G C
  L: "~@15 c5 d5@8",
  M: "[~@32 e5@48 ~ d5@47 ~@3 e5@47 ~ d5@46 ~@2 d#5@2 e5@47 ~ d5@49 c#5@2 d5@48 c#5@2 ~@6, ~@89 c#5 ~@102]/8",
  N: "[~@40 c#5@2 d5@51 d5@47 ~ d5@47 c#5@2 d5@96 c#5@2, ~@70 c#5 ~@73]/6", O: "d5", P: "~ d5@23",
  Q: "~@3 d5@35 ~@10, ~ c#5 ~@22",
})).s("gm_drawbar_organ").gain(0.19).pan(0.6)

// chords · drawbar organ · "Organ" · soft notes
const drawbar_organ_soft = note("<~@12 A ~@10 B ~@7 C ~@26 D ~@2 E ~@19 F@3 G@2 H@8 I J K L M ~ N ~>".pickRestart({
  A: "~@11 g4, ~@36 a2@4 [f3,g3] [a3,b3] [c4,d4] [e4,f4]@5, ~@37 b2@11, ~@19 [c3,d3]@5, ~@13 e3@3", // Fsus2 Asus2 Csus2 Fmaj7 Csus2
  B: "~@43 a4 g4 ~@3, ~@41 d5@2 ~@5, ~@21 b4 ~@2",
  C: "~@37 d4@5 ~@6, ~@31 [a2,b2]@12 ~@5, ~@32 c3@3 [g3,a3]@8 ~@5, ~@33 [d3,e3]@10 ~@5, ~@17 f3 [b3,c4]@3 ~@3", // Asus2 Gsus2 Dsus2 Cmaj7
  D: "~@29 c5@2 ~@17",
  E: "~@27 g4@4 ~@17, ~@19 [a2,b2]@5 [a3,b3] [c4,d4] [e4,f4]@5 ~@17, ~@20 c3@3 g3@8 ~@17, ~@21 d3@10 ~@17, ~@22 [e3,f3]@9 ~@17", // Asus2 Csus2 Fmaj7
  F: "[~@28 c#5@2 f#5 ~@48 c#5@2 ~@46 d#5@2 f#5@15, ~@28 c5 ~ d5@48 ~@48 d5@2 ~@16, ~@31 g5@98 ~@15]/3",
  G: "[~@32 g5@49 ~ f#5@14, ~@31 c5@2 ~@49 d#5@2 ~@12, ~@32 c#5@3 ~@46 d5@3 ~@12]/2",
  H: "[~@33 c5@2 ~@47 d5@2 ~@47 c5 c#5@2 ~@47 c5@2 ~@49 c5@2 d5@46 c#5@2 d5@46 c5 ~@52 c#5 ~@2, ~@35 g5@349, ~@280 c5 ~@103]/8",
  I: "~@43 c5 ~@4", J: "~@44 c5 ~@3", K: "~@47 c#5", L: "~@23 c5", M: "~@25 f#5 g5@12 f#5@10", N: "~ c5@2 ~@45",
})).s("gm_drawbar_organ").gain(0.1).pan(0.6)

// chords · piano
const piano_2 = note(`<
  A B C D E F G H I J I D K L@7 M N O P@5 Q@4 R S T U V W X Y Z@8 AA AB AC AD AE AF@5 AG@4 AH AI@2 AJ@5 AK AL AM@2 AN@8
  AO AP@2 AQ AR AS AT AU@8 AV AW@4
>`.pickRestart({
  A: "~@42 d4@3 e4@2 ~", B: "~@42 d4@3 e4@2 ~, [b3,d4,g4]@5 ~, ~ g3@45 ~@2, ~@3 g2@5",
  C: "~@42 d4@2 ~ e4@2 ~, g3@23 ~, [c4,e4,g4]@41 ~@7, ~@3 g2@5", // C
  D: "~@42 d4@2 ~ e4@2 ~, [b3,d4,g4]@5 ~, ~ g3@46 ~, ~@3 g2@5", // G
  E: "~@42 d4@2 ~ e4@2 ~, g3@15 ~, [c4,e4,g4]@5 ~, ~@3 g2@5", F: "~@42 d4@3 e4@2 ~, g3@15 ~, [b3,d4,g4]@5 ~, ~@3 g2@5",
  G: "~@42 d4@3 e4@2 ~, g3@15 ~, [c4,e4,g4]@41 ~@7, ~@3 g2@5", // C
  H: "~@42 d4@2 ~ e4@2 ~, g3@23 ~, [b3,d4,g4]@5 ~, ~@3 g2@5", // G
  I: "~@42 d4@2 ~ e4 ~@2, g3@23 ~, [c4,e4,g4]@41 ~@7, ~@3 g2@5", // C
  J: "~@42 d4@3 e4@2 ~, g3@23 ~, [b3,d4,g4]@19 ~@5, ~@3 g2@5", K: "~@9 g2@14 ~, [g3,c4,e4,g4]@23 ~",
  L: "[[d5,g5,b5]@14 ~@4 [c5,e5,g5]@25 ~@4 [b4,d5,g5]@15 ~@3 [b4,e5,g5]@5 ~ g5@5 ~ e5@2 ~@4 e5@6 d5@2 ~ e5 ~@2 [b4,d5,g5]@13 ~@5 [c5,e5,g5]@17 ~@12 [b4,d5,g5]@14 ~@5 g5@8 ~@3 b4@3 a4@2 ~ g4@5 ~ a4@2 ~@6 g4@10 d5@2 ~@3 e5@12 g5@12 g4@3 a4 ~@2 [g4,b4]@12 d5@3 ~@3 [g4,b4]@11 ~ b4@5 ~ a4@5 ~ g4@3 ~@3 a4@10 ~@2 [f#4,a4]@4 ~ [f#4,a4]@4 ~@2 [f#4,a4]@4 ~@2 a4@4 ~@2 [f#4,a4]@5 b4@4 ~@4 a4@3, ~@160 [b4,e5]@8 ~@22 b4@11 ~@6 c5@20 ~@86 f#4@4 ~@15 f#4@4]/7", // G C G Em G C G F#m …
  M: "~@2 [e4,g4]@3 ~@9 [e4,g4]@18 b4@3 a4@3 g4@6 a4@4", // Em
  N: "~@8 f#4@4 ~ [f#4,a4]@3 ~@3 [f#4,a4]@3 ~@3 [f#4,a4]@2 ~@4 [f#4,a4]@5 ~ b4@3 ~@3 [c5,e5]@5, ~@7 a4@4 ~@37", // F#m C
  O: "~@3 b4@8 ~ a4@7 b4@8 a4@8 g4@2 ~@6 [e4,g4,c5]@5, ~@19 d5@24 ~@5", // C
  P: "[~@36 d4@2 ~ e4@2 ~@43 d4@3 e4@2 ~@43 d4@3 e4@2 ~@43 d4@2 ~ e4@2 ~@43 d4@2 ~ e4 ~@3 [g3,b3,d4]@5, ~@43 g3@45 ~@2 g3@45 ~@3 g3@46 ~@3 g3@46 ~@7, ~@43 [b3,d4,g4]@40 ~@7 [c4,e4,g4]@41 ~@8 [b3,d4,g4]@40 ~@7 [c4,e4,g4]@41 ~@7 g4@6, ~@61 g2@30 ~@17 g2@31 ~@17 g2@30 ~@18 g2@31 ~@5]/5", // G C G C
  Q: "[~@36 d4@3 e4@2 ~@44 d4@2 ~ e4 ~@44 d4@2 e4@2 ~@20 g2@28 ~@2 [d4,g4,b4]@5, ~@12 g2@30 ~ g3@46 ~@2 g3@46 ~@2 [g3,c4,e4,g4]@46 ~@7, ~@43 [c4,e4,g4]@41 ~@7 [b3,d4,g4]@40 ~@61, ~@60 g2@32 ~@17 g2@31 ~@52]/4", // G C G
  R: "~@6 d5@3 ~@3 [g4,c5,e5]@6 ~@12 [c5,e5,g5]@5 ~@7 [d4,g4,b4]@4 ~@2", // C G
  S: "~@24 g5@3 ~@3 a5@2 g5@2 ~ e5@3 ~@3 [g4,b4,d5]@5 ~@2, ~@23 b5@3 ~@22", // G
  T: "~@11 [g4,c5,e5]@4 ~@14 [c5,e5,g5]@4 ~@8 [g4,b4,d5]@4 ~@3", // C G
  U: "~@17 [g4,b4]@5 ~ a4@4 ~@2 g4@4 ~ a4@2 ~@4 [g4,b4]@8", // G
  V: "~@4 d5@3 ~@3 [g4,c5,e5]@8 ~@9 [c5,e5,g5]@5 ~@8 [g4,b4,d5]@6 ~@2", // C G
  W: "~@10 [g4,b4,e5]@13 ~@4 a4@5 ~ g4@4 ~@2 a4@9", // Em
  X: "~@3 [f#4,a4]@4 ~ [f#4,a4]@4 ~@2 [f#4,a4]@4 ~@2 [f#4,a4]@4 ~@3 a4@5 b4@4 ~@3 [f#4,a4]@5 ~ [e4,g4]@3, ~@26 f#4@5 ~@17", // F#m Em
  Y: "~@8 [e4,g4]@19 ~@2 a4@3 g4@6 a4@10, ~@27 b4@4 ~@17", // Em
  Z: "[~@2 [f#4,a4]@4 ~@2 [f#4,a4]@3 ~@3 [f#4,a4]@3 ~@3 [f#4,a4]@2 ~@4 [f#4,a4]@5 b4@3 ~@3 c5@9 b4@8 a4@7 b4@8 ~ a4@8 g4@2 ~@6 g4@39 ~@3 a4@3 ~@13 d5@6 [g4,c5,e5]@11 ~@15 a4@3 ~@13 d5@6 [e4,g4,b4]@23 ~@3 a4@3 ~@11 d5@6 [g4,c5,e5]@13 ~@11 a4@6 ~@13 g4@6 ~@25 a4@3 ~@12 d5@6 [g4,c5,e5]@11 ~@15 a4@2 ~@2 [d4,g4,b4]@13 d5@2, ~@37 e5@23 ~ d5@23 ~@2 [e4,c5]@46 ~@29 [c5,e5,g5]@17 ~@43 g4@6 ~@30 g5@17 g4@13 ~@28 g4@5 ~@43 g4@5 ~@16, ~@125 g4@6 [d4,g4,b4]@19 ~@23 g4@6 [d4,g4,b4]@19 ~@29 [d4,g4,b4]@17 ~@18 g4@12 [e4,b4]@19 [c4,e4,a4]@28 [d4,g4,b4]@18 ~@45, ~@281 a4@12 ~@58 [c5,e5,g5]@17 ~@16]/8", // F#m C Em C G C G E5 …
  AA: "~@2 b4@13 ~@12 g4@6 [f#4,a4]@11 [f#4,a4]@4, ~ e4@16 ~@7, ~@2 g4@25 ~@21, ~@15 b4@19 ~@14, ~@7 a4@4 ~@5", // F#m
  AB: "~@2 [f#4,a4]@4 ~@2 [f#4,a4]@4 ~@3 [f#4,a4]@4 ~@7 [g4,b4]@6 [f#4,a4]@6 [f4,a4]@10, ~@20 [f#4,a4]@11 ~@17", // F#m G F#m F F#m
  AC: "~@2 [c4,e4]@18 b4@3 a4@2 g4@6 a4@12 ~ [f#4,a4]@4", // C F#m
  AD: "~ [f#4,a4]@5 ~ [f#4,a4]@5 ~ [f#4,a4]@5 ~@7 [g4,b4]@5 c5@9 b4@8 a4, ~@19 [f#4,a4]@11 e5@18", // F#m G F#m
  AE: "~@7 b4@8 ~ a4@7 ~ g4@2 ~@5 [e4,g4,c5]@17, ~@7 d5@24 ~@17", // C
  AF: "[~@25 d4@3 e4@3 ~@41 d4@3 e4@2 ~@43 d4@3 ~ e4@2 ~@42 d4@2 ~ e4@2 ~@43 d4@2 ~@2 e4 ~@2 [g3,b3,d4,g4]@17, ~@31 g3@45 ~@3 g3@45 ~@3 g3@46 ~@2 g3@46 ~@19, ~@31 [b3,d4,g4]@40 ~@7 [c4,e4,g4]@41 ~@8 [b3,d4,g4]@40 ~@8 [c4,e4,g4]@41 ~@24, ~@49 g2@30 ~@17 g2@31 ~@17 g2@30 ~@18 g2@31 ~@17]/5", // G C G C
  AG: "[~@25 d4@3 e4@2 ~@43 d4@2 ~ e4 ~@44 d4@2 ~ e4@2 ~@19 g2@28 ~@2 [d4,g4,b4]@5 ~@6 d5@3 ~@3, ~ g2@30 g3@46 ~@2 g3@46 ~@2 [g3,c4,e4,g4]@46 ~@19, ~@31 [c4,e4,g4]@41 ~@7 [b3,d4,g4]@40 ~@73, ~@49 g2@32 ~@16 g2@31 ~@64]/4", // G C G
  AH: "[g4,c5,e5]@6 ~@12 [c5,e5,g5]@5 ~@7 [d4,g4,b4]@4 ~@14", // C G
  AI: "[~@6 d5@2 ~ e5 ~@2 g5 ~@2 a5 ~@2 [e5,g5]@6 e5@6 [g4,b4,d5]@5 ~@12 [g4,c5,e5]@4 ~@14 [c5,e5,g5]@4 ~@8 [g4,b4,d5]@4 ~@15, ~ b4 ~@14]/2", // Em G C G
  AJ: "[~@11 [b4,e5]@2 ~@3 e5@2 ~ d5@2 ~ b4@2 ~ a4 ~@2 [d4,g4,b4]@4 ~@8 d5@4 ~@2 [g4,c5,e5]@5 ~@13 [c5,e5,g5]@4 ~@8 [g4,b4,d5]@5 ~@13 [g4,b4,e5]@4 ~@7 b4@3 a4@3 g4@2 ~@4 a4@2 ~@4 [d4,g4,b4]@9 ~@3 d5@3 ~@3 [g4,c5,e5]@7 ~@5 [e5,g5]@4 ~@8 a5@3 ~@3 [g5,b5]@6 ~@6 d6@2 ~@3 [b5,e6]@9 ~@9 e6@3 d6@3 b5@2 ~ a5@2 ~ [g5,b5]@7 ~@5 [g5,b5]@4 ~@2 a5@4]/5", // E5 G C G Em G C Em …
  AK: "~@7 [e5,g5]@8 ~@4 [e5,g5]@4 ~@3 [b4,d5]@6 ~@2 a4@6 ~@2 g4@3 ~@3, ~@41 b4@3 ~@4", // Em Bm
  AL: "~ [g4,c5,e5]@24 [d4,a4]@10 ~@2 [f#4,a4]@4 ~@2 a4@4 ~, ~@21 f#4@2 ~", // C D5 F#m
  AM: "[~ a4@4 ~ [f#4,a4]@4 ~@3 a4@5 b4@4 ~@3 [f#4,a4]@5 ~ [e4,g4]@3 ~@8 [e4,g4]@19 ~@2 a4@3 g4@6 a4@10 ~@2 [f#4,a4]@4 ~@2 [f#4,a4]@3 ~@3, f#4@4 ~@8 f#4@5 ~@44 b4@4 ~@31]/2", // F#m Em F#m
  AN: "[[f#4,a4]@3 ~@3 [f#4,a4]@2 ~@4 [f#4,a4]@5 [g4,b4]@3 ~@3 c5@9 b4@8 a4@7 b4@8 ~ a4@8 g4@2 ~@6 g4@91 g4@3 a4@2 ~@13 d5@6 ~@28 a4@3 ~@13 d5@6 g4@24 ~@3 a4@3 ~@12 d5@6 ~@32 [e4,g4]@5 ~@7 g4@6 ~@24 g4@4 a4@3 ~@12 d5@6, ~@23 e5@47 ~@2 [e4,c5]@95 ~@2 [d4,g4,b4]@19 g4@24 g4@6 ~ [d4,g4,b4]@19 ~@23 g4@6 ~@19 [c5,e5]@32 ~@17 [a3,c4,e4]@30 ~ [d4,g4,b4]@18, ~@47 d5@48 ~@93 [c5,e5]@31 ~@18 [e4,b4]@31 [d4,g4,b4]@18 g4@25 g4@6 b4@19 ~@48, ~@200 g5@19 ~@79 g5@20 ~@66, ~@314 a4@5 ~@4 a4@13 ~@48]/8", // F#m G Em C G C Am G …
  AO: "~@28 a4@3 ~@13 d5@4, [c5,e5]@31 ~@17, g4@24 ~ g4@6 [d4,g4,b4]@17, ~@3 g5@5 ~@4", // C G
  AP: "[~@26 e4@6 ~ [f#4,a4]@12 [f#4,a4]@6 [f#4,a4]@6 [f#4,a4]@6 [f#4,a4]@6 ~@6 b4@6 ~@7 g4@8, ~ g4@31 ~@37 [f#4,a4]@13 ~@14, ~ e4@25 ~@6 d4@49 [d4,f4,a4]@15, ~ b4@15 ~@32]/2", // F#m Dm
  AQ: "~@2 [c4,e4,g4]@15 [d4,f#4,a4]@6 [f#4,a4]", // C D F#m
  AR: "~@5 [f#4,a4]@6 [f#4,a4]@6 [f#4,a4]@6 ~@6 b4@5 ~@2 [e4,g4,c5]@9 b4@3, ~@23 [f#4,a4]@12 ~@13", // F#m C F#m
  AS: "~@5 a4@7 ~@19 g4@6 [e4,g4,c5]@11, ~@12 [d4,b4]@25 ~@11, ~@12 g4@19 ~@17, ~@21 a4@16 ~@11", // C G
  AT: "~@32 d4@3 e4@2 ~@2 g3@9, ~@19 [b3,d4,g4]@5", // G
  AU: "[~@33 d4@3 e4@2 ~@44 d4@3 e4@2 ~@44 d4@2 ~@2 e4@2 ~@43 d4@2 ~ e4@2 ~@45 d4@3 e4@2 ~@44 d4@3 e4@2 ~@44 d4@2 ~ e4@2 ~@44 d4@2 ~ e4@2 ~@2, ~@8 g2@31 [c4,e4,g4]@42 ~@8 [b3,d4,g4]@41 ~@8 [c4,e4,g4]@41 ~@8 [b3,d4,g4]@41 ~@8 [c4,e4,g4]@42 ~@7 [b3,d4,g4]@41 ~@8 [c4,e4,g4]@41 ~@9, ~@40 g3@47 ~@2 g3@47 ~@2 g3@46 ~@3 g3@46 ~@3 g3@47 ~@3 g3@47 ~@2 g3@46 ~@3, ~@58 g2@32 ~@17 g2@32 ~@17 g2@32 ~@17 g2@32 ~@17 g2@32 ~@17 g2@32 ~@17 g2@32]/8", // C G C G C G C
  AV: "~@42 d4@3 e4@2 ~, g3@23 ~, [b3,d4,g4]@41 ~@7, ~@3 g2@5", // G
  AW: "[~@44 d4@3 e4@2 ~@44 d4@2 ~ e4@2 ~@19 g2@32 ~@43, ~ g3@47 ~@2 g3@47 ~@2 g3@46 ~@47, ~ [c4,e4,g4]@42 ~@7 [b3,d4,g4]@41 ~@8 [c4,e4,g4]@41 ~@52, ~@19 g2@32 ~@17 g2@32 ~@92]/4", // C G C
})).s("gm_piano").gain(0.42).pan(0.4)

// other · glockenspiel · "Glock"
const glockenspiel = note(`<
  ~@24 A B C D E A C F ~@10 G H@3 I@4 J K@3 L M N O P Q P R ~@27 S T U V W X Y Z AA AB AC AD ~
>`.pickRestart({
  A: "~@13 [g4,g5]@17 ~@18", B: "~@13 [g4,g5]@20 ~@15", C: "~@13 [g4,g5]@19 ~@16", D: "~@13 g5@17 ~@18, ~@2 g4@3 ~@3",
  E: "~@4 [g4,g5]@5 ~@7", F: "~@12 [g4,g5]@13 ~@23", G: "~@30 g5@3 a5@2 ~ b5@11 ~",
  H: "[d6@6 e6@12 g6@8 ~@3 g5@2 ~ a5@2 ~ b5@7 ~@5 d6@7 b5@19 ~@4 g5@3 a5@2 ~ b5@10 ~@2 d6@6 e6@12 g6@3 ~@3 g5@5 a5@4 ~@2 b5@5 ~ a5@4 ~@2 g5@2]/3",
  I: "[~@5 e5@18 ~@5 g5@3 a5@2 ~ b5@12 d6@6 e6@11 g6@8 ~@4 g5@3 a5@2 ~ b5@12 d6@5 ~ b5@14 ~@16 a5@11 ~ a5@6 a5@6 a5@3 ~@2 a5@3 ~@3 a5@4 ~@2 b5@3 ~@3 a5@5 ~ g5@6 ~@4]/4",
  J: "~@2 e5@27 ~@15 a5@4", K: "[~@2 a5@3 ~@3 a5@3 ~@3 a5@3 ~@2 a5@3 ~@3 b5@2 ~@4 c6@23 g5@24 c6@31 ~@35]/3",
  L: "~ g5@25 ~@22, g4@25 ~@23", M: "~ [g4,g5]@28 ~@19", N: "[g4,g5]@5 ~@3", O: "[g4,g5]@7 ~@5", P: "~ [g4,g5]@25 ~@22",
  Q: "[g4,g5]@25 ~@23", R: "[g4,g5]@11 ~@13", S: "~@3 [g4,g5]@6 ~@7", T: "~@5 [g4,g5]@10 ~@9",
  U: "~@11 [g4,g5]@19 ~@18", V: "~@2 [g4,g5]@3 ~@3", W: "~@13 [g4,g5]@16 ~@19", X: "~@7 [g4,g5]@9 ~@8",
  Y: "~@15 [g4,g5]@20 ~@13", Z: "~@8 [g4,g5]@7 ~@9", AA: "~@3 [g4,g5]@3 ~@2", AB: "~@19 [g4,g5]@20 ~@9",
  AC: "~@20 [g4,g5]@19 ~@9", AD: "~@7 [g4,g5]@6 ~@3",
})).s("gm_glockenspiel").gain(0.11).pan(0.7)

// other · overdriven guitar · "Guitar 3"
const overdriven_guitar_2 = note("<~@46 A@3 B C D@3 ~@48>".pickRestart({
// … 108 more lines

More by Bruce Springsteen