Strudelify

Wake Me Up Before You Go Go

Michael George

KeyC majorTempo163 bpm
0:00/0:00
// Wake Me Up Before You Go Go — Michael George
// 163 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 "E.PIANO 2" epiano2 (copy of ch 4 "MELODY" acoustic guitar nylon); ch 9 "TROMBONE" trombone (copy of ch 8 "BRASS 1" brass section)
// note: Full arrangement: all 154 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(163/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.

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  A B A B A B A C@2 D E F G D E H I J@8 K D E F G D E F G D E F G D E L M N O P Q N R@2 D E F G D E H I S@8 K D E F G D
  E F G D E F G D E L M N O P Q N R@2 T U V W T U V X Y Z AA AB AC AD AE AF AG AH AI AH AG AH AJ AK AG AH AI AH AG AH AJ
  AK AG AH AI AH AG AH AJ AK AG AH AI AH AG AH AJ AK AG AH AI AH AG AH AJ AL AG AH AI AH AG AH AJ AL AM
>`.pickRestart({
  A: "~@16 [c5,e5] ~ [a4,d5,f5]@4 [g4,c5,e5] ~, ~@8 g4 ~@3", B: "[a#4,e5,g5]@2 ~ [a#4,e5,g5]@3 ~@6",
  C: "[[a#4,e5,g5]@4 ~@2 [a#4,e5,g5]@6 ~@6 g5@2 ~ f#6 g6@10 f6 e6 [c6,d6] [a5,b5] [f5,g5] [d5,e5] [b4,c5] [g4,a4] ~@8]/2", // Edim Csus2 Asus2 Fsus2 Dsus2 Cmaj7 Gsus2
  D: "~@4 [g4,c5,e5]@3 ~@5 [g4,c5,e5]@8 ~@2 [g4,c5,e5]@2", E: "~@4 [g4,c5,e5] ~ [a4,d5,f5]@3 ~ [g4,c5,e5]@7 ~@7",
  F: "~@4 [a4,d5,f5]@3 ~@5 [a4,d5,f5]@8 ~@2 [g4,c5,e5]@2", G: "~@4 [g4,c5,e5] ~ [a4,d5,f5]@4 [g4,c5,e5]@6 ~@8",
  H: "[a4,d5,f5]@3 ~@3 [a4,d5,f5]@3 ~@3 [a4,d5,f5]@8 ~@2 [g4,c5,e5]@2", I: "~@6 [a4,d5,f5]@3 ~ [g4,c5,e5]@5 ~@9",
  J: "[[c5,f5,a5]@3 ~@7 [c5,f5,a5]@13 ~ [d5,g5,b5]@3 ~@7 [d5,g5,b5]@13 ~ [e5,a5,c6]@3 ~@7 [e5,a5,c6]@13 ~ [e5,g5,b5,d6]@3 ~@7 [e5,g5,b5,d6]@12 ~@2 [c5,f5,a5]@2 ~@8 [c5,f5,a5]@13 ~ [d5,g5,b5]@2 ~@8 [d5,g5,b5]@13 ~ [e5,a5,c6]@3 ~@7 [e5,a5,c6]@11 ~@3 [b4,d5,e5,g5]@4 ~@2 [b4,d5,e5,g5]@4 ~@2 [b4,d5,e5,g5]@4 ~@2 [c5,e5,f5,a5]@5 ~, a#-1]/8", // F G Am Em7 F G Am Em7 …
  K: "[a5,c6,d6,g6]@4 ~@2 [a5,c6,d6,g6]@5 ~@13", L: "[a#4,e5,g5]@2 ~@3 [a4,d5,f5]@2 ~@5",
  M: "[d5,g5,a#5]@4 ~@2 [d5,g5,a#5]@3 ~@3 [d5,g5,a#5]@4 ~@2 [d5,g5,a#5]@4 ~@2", // Gm
  N: "[c5,f5,a5]@4 ~@2 [c5,f5,a5]@4 ~@2 [c5,f5,a5]@4 ~@2 [c5,f5,a5]@5 ~", // F
  O: "[a#4,e5,g5]@2 ~ [a#4,e5,g5]@2 ~ [a#4,e5,g5]@2 ~ [a#4,e5,g5]@2 ~", // Edim
  P: "[a#4,e5,g5]@4 ~@2 [a#4,e5,g5]@4 ~@2 [a#4,e5,g5]@3 ~ [c5,f5,a5]@2 [a#4,e5,g5]@4 ~@2", // Edim F Edim
  Q: "[d5,g5,a#5]@2 ~ [d5,g5,a#5]@2 ~ [d5,g5,a#5]@2 ~ [d5,g5,a#5]@2 ~", // Gm
  R: "[[a#4,e5,g5]@2 ~@4 [a#4,e5,g5]@3 ~@3 [a#4,e5,g5]@4 ~@2 [a#4,e5,g5]@4 ~@2 [a#4,e5,g5]@3 ~@3 [a#4,e5,g5]@4 ~@2 [a#4,e5,g5]@3 ~@3 [a#4,e5,g5]@3 ~@3, g6@15 ~, f#6 ~@47]/2", // Edim
  S: "[[c5,f5,a5]@3 ~@7 [c5,f5,a5]@13 ~ [d5,g5,b5]@3 ~@7 [d5,g5,b5]@13 ~ [e5,a5,c6]@3 ~@7 [e5,a5,c6]@13 ~ [e5,g5,b5,d6]@3 ~@7 [e5,g5,b5,d6]@12 ~@2 [c5,f5,a5]@2 ~@8 [c5,f5,a5]@13 ~ [d5,g5,b5]@2 ~@8 [d5,g5,b5]@13 ~ [e5,a5,c6]@3 ~@7 [e5,a5,c6]@11 ~@3 [b4,d5,e5,g5]@4 ~@2 [b4,d5,e5,g5]@4 ~@2 [b4,d5,e5,g5]@4 ~@2 [c5,e5,f5,a5]@4 ~@2, a#-1]/8", // F G Am Em7 F G Am Em7 …
  T: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5]@3 ~@2 [g4,c5,e5]", U: "~@6 [a4,d5,f5]@3 ~ [g4,c5,e5]@6 ~@8",
  V: "~@4 [a4,d5,f5]@3 ~@5 [a4,d5,f5]@6 ~@6", // Dm
  W: "[a#4,e5,g5]@3 ~ [a4,d5,f5]@2 ~@2 [g4,c5,e5]@2 ~@2 [a4,d5,f5]@3 ~ [g4,c5,e5]@3 ~ [e4,a4,c5]@3 ~", // Edim Dm C Dm C Am
  X: "[g4,c5,e5]@3 ~@3 [a4,d5,f5]@3 ~ [g4,c5,e5]@6 ~@8", Y: "~@16 d4 ~ [a4,c5]@4 [g4,b4]@2, [f5,a5]@23 ~, c5@3 ~",
  Z: "~@10 e4 ~@5 b3@2 ~@6, [d5,g5,b5]@11 ~", AA: "~@18 [a4,c5]@3 ~ [g4,b4]@2, [e5,f5,a5,c6]@11 ~",
  AB: "~@4 [d3,e3,f3,g3,a3] ~@5 [g3,a3,b3,c4] ~@5 g4 [a#4,c#5] [b4,d5]@5 ~, [e5,g5,b5,d6]@23 ~", // Dm Cmaj7 A#m Bm Em7
  AC: "a4@3 ~@13 d4 ~ [a4,c5]@4 [g4,b4]@2, [f5,a5]@11 ~, c5@3 ~", AD: "~@9 [g4,b4]@2 [f4,a4], [d5,g5,b5]@11 ~",
  AE: "~@18 [a2,c#3]@2 d#3 f#3 [g#3,a#3] [c#4,d4,d#4,e4,f4,g4], [e5,f5,a5,c6]@21 [g3,a3]@2 ~, ~@9 [b2,c3,d3]@2 [b3,c4], ~@18 [g2,a#2] ~ [e3,f3]@3 ~", // A G#sus2 Fmaj7 Gsus2 Bm Cmaj7 Gm Fmaj7
  AF: "[a4,c5,f5,g5,c6,g6]", AG: "~@2 [g5,c6,e6] ~@3 [g5,c6,e6]@4 ~ [g5,c6,e6]",
  AH: "~@6 [a5,d6,f6]@3 ~ [g5,c6,e6]@3 ~@11", AI: "~@4 [a5,d6,f6]@2 ~@6 [a5,d6,f6]@7 ~@3 [g5,c6,e6]@2",
  AJ: "~@2 [a5,d6,f6] ~@3 [a5,d6,f6]@3 ~@3", // Dm
  AK: "[a#5,d#6,g6]@4 ~@2 [a5,d6,f6]@5 ~ [g5,c6,e6]@4 ~@2 [f5,a5,c6]@4 [e5,g5,c6]@2", // D# Dm C F C
  AL: "[a#5,e6,g6]@3 ~ [a5,d6,f6]@2 ~@2 [g5,c6,e6]@2 ~@2 [a5,d6,f6]@3 ~ [g5,c6,e6]@3 ~ [e5,a5,c6]@3 ~", // Edim Dm C Dm C Am
  AM: "[a#5,e6,g6]@4 f6 [a5,b5,c6] [f5,g5] [d5,e5] ~ f4 d4@2 ~@12, ~@4 d6@2 ~ c5@2 g4@2 ~@13, ~@8 [a4,b4]@2 e4 ~@13", // Edim Am Fsus2 Dsus2 Asus2
})).s("gm_rock_organ").gain(0.33).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B A B A B A B ~ C D E F C D E F G H I J K L M N O P@2 Q@2 R@2 S@2 T@2 U V W@2 X@3 Y Z AA AB AC AD C D E F C D E F G
  H I J K L M N O P@2 Q@2 R@2 AE@2 T@2 U V W@2 X@3 AF@3 AG AH@2 AI@2 AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW P@2 Q@2
  R@2 S@2 P@2 Q@2 R@2 S@2 AX@2 Q@2 R@2 S@2 AX@2 Q@2 R@2 S@2 AX@2 Q@2 R@2 AY AK AX@2 Q@2 R@2 AY AK AZ
>`.pickRestart({
  A: "~@16 g1 ~ a1@3 ~ g1 ~", B: "c2@2 ~ c2@2 ~@7", C: "c2@2 ~ c2@2 ~ c2@4 ~ c2", D: "~@4 g1@2 a1@3 ~ c2@9 ~@3 a1 ~",
  E: "d2@4 ~@2 d2@3 ~@3 d2@7 ~@3 c2@2", F: "~@4 g1@2 a1@2 ~ d#2 e2@4 ~@2 g2@7 ~", G: "d2@3 ~@7 d2@7 ~@5 a#2 ~",
  H: "a2 ~ g#2 ~ g2 ~ f#2 ~ f2 ~ e2@4 ~@2 e1@8", I: "f2@2 ~@3 f2@6 ~", J: "e2@6 ~@4 a2@3 ~@3 a1@6 ~@2",
  K: "d2@4 ~@6 d2@13 ~", L: "e2@2 ~@3 e1@7", M: "f2@3 ~@2 f2@5 ~ d2", N: "g2@4 d2@2 g2@4 d2@2 g2@3 ~ d2@2 g2@4 d2 ~",
  O: "g1@2 ~ g1@3 ~@6", P: "[c2@2 ~@2 g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2 ~]/2",
  Q: "[d2@3 ~ a1 ~ c2@3 ~ d2@5 ~ g1@2 a1@3 ~ c2@4 ~@2 g1 ~ a1@3 ~ g1@4 ~@2 g2@6 ~@2]/2",
  R: "[c2 ~ c2 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@2 ~@2 c2 ~]/2",
  S: "[d2@3 ~ a1 ~ c2@3 ~ d2@4 ~@2 g1 ~ a1@3 ~ c2@4 ~@2 e2@6 e2 ~ f2@4 ~@2 g2@4 ~@2]/2",
  T: "[c2@3 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@2 ~@2 c2@5 ~ g1 ~ a1@3 ~ c2 ~]/2",
  U: "d2@3 ~ a1 ~ c2@3 ~ d2@5 ~ g1 ~ a1@3 ~ c2@2", V: "~@4 g1 ~ a1@3 ~ g1@3 ~@3 g2@6 ~@2",
  W: "[c2@3 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@2 ~@2 c2 ~]/2",
  X: "[e2@4 ~@6 d2@4 ~@8 c2@41 ~ [g2,c3]@7 ~]/3", Y: "a#3@4 ~@2 a#3@4 ~@2 a3@3 ~ d2 ~ g3@4 d2 ~",
  Z: "f3@4 d2@2 e3@4 d2@2 d3@4 d2@2 c3@5 ~", AA: "c3@3 ~ a#2@15 ~@5", AB: "~@16 g2 ~ c3@2 g2 ~ e2 ~",
  AC: "e1@5 ~ f1@5 ~ f#1@5 ~ g1@5 ~", AD: "a1@4 ~@2 a#1@5 ~ a#1@5 ~ b1@4 ~@2",
  AE: "[d2@3 ~ a1 ~ c2@3 ~ d2@4 ~@2 g1 ~ a1@3 ~ c2@4 ~@2 e2@6 e2 ~ f2@4 ~@2 g2@4 ~@2, ~@28 f2 ~@19]/2",
  AF: "[a#3 ~ a#3@2 g3 ~ f3 ~ a#3 ~ g3@26 ~@4 e1@18 a1@8 f#1@5 ~]/3", AG: "g1@5 ~ a1@5 ~ d2@5 ~ b1@5 ~",
  AH: "[c2@4 c3@4 ~@4 c3@6 ~@4 c3@9 ~@3 e1@13 ~]/2",
  AI: "[c2@3 ~@3 c2@3 ~@3 c2@7 ~@3 c2@4 ~@2 g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@4 ~@2]/2", AJ: "d2@6 ~@4 d2@9 ~@5",
  AK: "e1@3 ~ f1@3 ~ g1@2 ~@2 e2@3 ~ c2@3 ~ a1@3 ~", AL: "c2@8 ~@2 c3 ~ c2@9 ~ c2 ~",
  AM: "c2@3 ~ g1 ~ a1@3 ~@3 c2@10 a1 ~", AN: "d2@7 ~@3 d2@12 ~@2", AO: "e1@3 ~ f1@3 ~ g1@3 ~ e2@9 ~@3",
  AP: "d2@3 ~@7 d2@5 ~@9", AQ: "~@4 e2 ~ b1@2 ~@2 b1 ~ g1 ~ f#1 ~ e1@8", AR: "f2@3 ~@3 f2@3 ~@3 f2@4 ~@2 f2@2 ~@2 f2 ~",
  AS: "e2@5 ~ a#2@4 a2@11 ~@3", AT: "d2 ~ f2 ~ a2 ~ d3@6", AU: "~@4 e2@7 ~ e1@11 ~",
  AV: "f2@3 ~ f2 ~ f2@3 ~@3 f2@4 ~@2 f2@2 ~@4", AW: "g1",
  AX: "[c2@3 ~ g1 ~ a1@3 ~ c2@5 ~ g1 ~ a1@3 ~ e1@8 f1@3 ~@3 f#1@3 ~@3 g1@5 ~]/2",
  AY: "d2@3 ~ a1 ~ c2@3 ~ d2@4 ~@2 g1 ~ a1@3 ~@3", AZ: "c2@7 ~@17",
})).s("gm_fretless_bass").gain(0.38)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B A B A B A B ~ C D E F C D E G ~@8 H I@2 J@2 K@2 L@2 M@2 N O P@2 Q@3 ~@6 C D E F C D E G ~@9 I@2 J@2 K@2 R@2 M@2 N
  O P@2 Q@3 ~@5 S ~@16 I@2 J@2 K@2 L@2 I@2 J@2 K@2 L@2 T@2 J@2 K@2 L@2 T@2 J@2 K@2 L@2 T@2 J@2 K@2 U V T@2 J@2 K@2 U V W
>`.pickRestart({
  A: "~@16 g2 ~ a2@3 ~ g2 ~", B: "c3@2 ~ c3@2 ~@7", C: "~@4 c4@2 ~@6 c4@7 ~@3 c4@2", D: "~@4 c4@2 a3@3 ~ c4@4 ~@10",
  E: "~@4 d4@3 ~@5 d4@7 ~@3 c4@2", F: "~@4 c4@2 a3@3 ~ c4@3 ~@3 c4@3 ~@5", G: "~@4 c4 ~ a3@3 ~ g3@4 ~@10",
  H: "g2@2 ~ g2@3 ~@6", I: "[c3@2 ~@2 g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3 ~]/2",
  J: "[d3@3 ~ a2 ~ c3@3 ~ d3@5 ~ g2@2 a2@3 ~ c3@4 ~@2 g2 ~ a2@3 ~ g2@4 ~@2 g3@6 ~@2]/2",
  K: "[c3 ~ c3 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@2 ~@2 c3 ~]/2",
  L: "[d3@3 ~ a2 ~ c3@3 ~ d3@4 ~@2 g2 ~ a2@3 ~ c3@4 ~@2 e3@6 e3 ~ f3@4 ~@2 g3@4 ~@2]/2",
  M: "[c3@3 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@2 ~@2 c3@5 ~ g2 ~ a2@3 ~ c3 ~]/2",
  N: "d3@3 ~ a2 ~ c3@3 ~ d3@5 ~ g2 ~ a2@3 ~ c3@2", O: "~@4 g2 ~ a2@3 ~ g2@3 ~@3 g3@6 ~@2",
  P: "[c3@3 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@2 ~@2 c3 ~]/2",
  Q: "[e3@4 ~@6 d3@4 ~@8 c3@41 ~@9]/3",
  R: "[d3@3 ~ a2 ~ c3@3 ~ d3@4 ~@2 g2 ~ a2@3 ~ c3@4 ~@2 e3@6 e3 ~ f3@4 ~@2 g3@4 ~@2, ~@28 f3 ~@19]/2",
  S: "~@10 e2@13 ~", T: "[c3@3 ~ g2 ~ a2@3 ~ c3@5 ~ g2 ~ a2@3 ~ e2@8 f2@3 ~@3 f#2@3 ~@3 g2@5 ~]/2",
  U: "d3@3 ~ a2 ~ c3@3 ~ d3@4 ~@2 g2 ~ a2@3 ~@3", V: "e2@3 ~ f2@3 ~ g2@2 ~@2 e3@3 ~ c3@3 ~ a2@3 ~", W: "c3@7 ~@17",
})).s("gm_electric_guitar_muted").gain(0.31).pan(0.7)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@10 A ~@3 B ~@2 C D E F G H I ~@26 A ~@3 B ~@2 C D E F G H I ~@64 J@5 K@8 L@2 M@2 ~@9
>`.pickRestart({
  A: "~@3 [d4,f4,a4,d5]@2 ~ [c4,e4,g4,c5]@3 ~@3", B: "~@3 [c3,f4,a4]@2 ~ [c3,e4,g4]@3 ~@3",
  C: "[a3,c4,f4,a4]@3 ~@7 [a3,c4,f4,a4]@13 ~", D: "[b3,d4,g4,b4]@3 ~@7 [b3,d4,g4,b4]@13 ~",
  E: "[c4,f4,a4,c5]@3 ~@7 [c4,f4]@14, ~@5 [a4,c5]@6 ~", F: "[d4,g4,b4,d5]@3 ~@7 [d4,g4,b4,d5]@13 ~",
  G: "[a3,c4,f4,a4]@3 ~@7 [a3,c4,f4,a4]@14", H: "[b3,d4,g4,b4]@3 ~@7 [b3,d4,g4,b4]@14",
  I: "[c4,f4,a4,c5]@3 ~@7 [c4,f4,a4,c5]@11 ~@3", // F
  J: "[~@6 e4@2 g4@3 a4@2 ~@4 e4 g4@3 a4@2 e4@3 c4@2 ~ c4 d4@2 e4@2 ~ f4@2 ~ e4 d4@2 c4 e4@3 g4@2 e4@3 c4@2 ~@2 e4@2 g4@3 a4]/5",
  K: "[~@10 e4@2 g4@6 a4@4 e4@6 c4@4 ~@2 g4@2 d4@4 e4@2 d4@4 f4@6 c4@2 c4@4 a3@2 c4@3 ~ c4@6 a3@6 ~@8 c5@4 a4@4 ~@2 g4@4 ~@8 e4@2 g4@6 a4@4 e4@6 c4@4 ~@2 c4@2 d4@4 e4@4 ~@2 f4@4 ~@2 e4@2 d4@4 c4@2 e4@6 g4@4 e4@6 c4@4 ~@4 e4@4 g4@4 ~@2 a4@2]/8",
  L: "[~@3 e4@2 g4@4 a4@2 e4@3 c4 a3@2 c4@3 ~@4]/2", M: "[e4@2 ~ c4 ~ d4@3 e4 d4@2 d4@5 ~@8]/2",
})).s("gm_epiano2").gain(0.44).pan(0.4)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@88 A B@2 C D E@2 F G@2 ~@6 H@2 ~@2 I ~@11 J K@6 L J M N O N P Q R S B@2 C T U@2 V D B@2 C T U@2 V D W
>`.pickRestart({
  A: "~@16 a4@2 c5@3 ~ d5@2", B: "[e5@4 ~@2 e5@3 ~@3 d5@4 c5@2 a4@3 ~ c5@4 ~@14 e5 ~ e5@3 ~ g5@2]/2",
  C: "f5@4 ~@2 e5@4 ~@2 d5@4 ~@2 c5@4 a4 ~", D: "e5 g5 a5 e6 c6 a5",
  E: "[c6@4 ~@2 c4@3 ~@3 e4@4 g4 ~ a4@3 ~ c5@4 ~@14 e5 ~ e5@3 ~ g5@2]/2", F: "a5@4 ~@2 e5@4 ~@2 d5@4 c5@2 a4@3 ~ g4@2",
  G: "[e4@3 ~ g4@3 ~@5 a4@3 ~ c5@2 e5@3 ~ d5@22 ~@4]/2", H: "[g5@15 ~ a5@2 g5@4 c6@4 ~@22]/2",
  I: "~@16 a5@2 g5@3 ~ c6@2", J: "c6@3 ~ c6@2 a5@3 ~ a5@2 g5@3 ~ g5@2 f5@3 ~ e5@2",
  K: "[~@4 [e5,g5]@3 ~@5 e5@9 ~@31 [a5,d6]@3 ~@5 [a5,d6]@9 ~@19 a5@2 g5@3 ~ c6@3 ~@3 [e5,g5]@3 ~@5 [e5,g5]@8 ~@20 [f5,a5]@2 [e5,g5]@2 ~@2 [a5,d6]@2, a#-1, ~@12 g5@7 ~@125]/6", // Em D5 Em F Em D5
  L: "~@2 [a5,d6] ~@3 [a5,d6]@4 ~@2", M: "~@4 [c5,e5]@2 ~@6 [c5,e5]@9 ~@3", N: "[c5,e5]@2 ~ [d5,f5]@2 [c5,e5]@2 ~@5",
  O: "~@4 [d5,f5]@2 ~@6 [d5,f5]@9 ~@3", P: "~@2 [c5,e5] ~@3 [c5,e5]@4 ~@2",
  Q: "[c5,e5]@4 ~@2 [d5,f5]@3 ~ [c5,e5]@4 ~@10", R: "~@4 [d5,f5]@3 ~@5 [d5,f5]@7 ~@5",
  S: "[d#5,g5] ~ [d#5,g5] ~ [d#5,g5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [a4,c5]@3 ~ [g4,c5]@2", // D# Dm C Am C5
  T: "e4 g4 a4 e5 c5 a4", U: "[c5@4 ~@2 c4@3 ~@3 e4@4 g4 ~ a4@3 ~ c5@4 ~@14 e5 ~ e5@3 ~ g5@2]/2",
  V: "f5@4 ~@2 e5@4 ~@2 d5@4 c5@2 a4@3 ~ g4@2", W: "c6 ~@2",
})).s("gm_brass_section").gain(0.49).pan(0.8)

// other · brass section · "BRASS 1"
const brass_section_2 = note(`<
  ~@88 A B@2 C D E@2 F G@2 ~@6 H@2 ~@2 I ~@11 J K@6 L J M N O N P Q R S B@2 C T U@2 V D B@2 C T U@2 V D W
>`.pickRestart({
  A: "~@16 a3@2 c4@3 ~ d4@2", B: "[e4@4 ~@2 e4@3 ~@3 d4@4 c4@2 a3@3 ~ c4@4 ~@14 e4 ~ e4@3 ~ g4@2]/2",
  C: "f4@4 ~@2 e4@4 ~@2 d4@4 ~@2 c4@4 a3 ~", D: "e4 g4 a4 e5 c5 a4",
  E: "[c5@4 ~@2 c3@3 ~@3 e3@4 g3 ~ a3@3 ~ c4@4 ~@14 e4 ~ e4@3 ~ g4@2]/2", F: "a4@4 ~@2 e4@4 ~@2 d4@4 c4@2 a3@3 ~ g3@2",
  G: "[e3@3 ~ g3@3 ~@5 a3@3 ~ c4@2 e4@3 ~ d4@22 ~@4]/2", H: "[g4@15 ~ a4@2 g4@4 c5@4 ~@22]/2",
  I: "~@16 a4@2 g4@3 ~ c5@2", J: "c5@3 ~ c5@2 a4@3 ~ a4@2 g4@3 ~ g4@2 f4@3 ~ e4@2",
  K: "[~@4 [e4,g4]@3 ~@5 e4@9 ~@31 [a4,d5]@3 ~@5 [a4,d5]@9 ~@19 a4@2 g4@3 ~ c5@3 ~@3 [e4,g4]@3 ~@5 [e4,g4]@8 ~@20 [f4,a4]@2 [e4,g4]@2 ~@2 [a4,d5]@2, a#-1, ~@12 g4@7 ~@125]/6", // Em D5 Em F Em D5
  L: "~@2 [a4,d5] ~@3 [a4,d5]@4 ~@2", M: "~@4 [c4,e4]@2 ~@6 [c4,e4]@9 ~@3", N: "[c4,e4]@2 ~ [d4,f4]@2 [c4,e4]@2 ~@5",
  O: "~@4 [d4,f4]@2 ~@6 [d4,f4]@9 ~@3", P: "~@2 [c4,e4] ~@3 [c4,e4]@4 ~@2",
  Q: "[c4,e4]@4 ~@2 [d4,f4]@3 ~ [c4,e4]@4 ~@10", R: "~@4 [d4,f4]@3 ~@5 [d4,f4]@7 ~@5",
  S: "[d#4,g4] ~ [d#4,g4] ~ [d#4,g4] ~ [d4,f4] ~ [d4,f4] ~ [d4,f4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [a3,c4]@3 ~ [g3,c4]@2", // D# Dm C Am C5
  T: "e3 g3 a3 e4 c4 a3", U: "[c4@4 ~@2 c3@3 ~@3 e3@4 g3 ~ a3@3 ~ c4@4 ~@14 e4 ~ e4@3 ~ g4@2]/2",
  V: "f4@4 ~@2 e4@4 ~@2 d4@4 c4@2 a3@3 ~ g3@2", W: "c5 ~@2",
})).s("gm_brass_section").gain(0.44).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~ A ~ A ~ A ~ A ~ B C B C B C B C@3 D E C@3 D A B C B C B C B C B C B C B C F G H@7 B C B C B C B C@3 D E C@3 D A B C
  B C B C B C B C B C B C F G H@7 C@3 I C@4 J@8 B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C
  B C B I B C B C B C B I J
>`.pickRestart({
  A: "x!2 ~@2", B: "x!2", C: "x ~@4 x ~@2 x ~@3", D: "x ~@4 x ~@2 x ~@2 x", E: "~@2 x ~@2 x ~@2 x ~@3",
  F: "x ~@4 x ~@5 x", G: "~ x!3", H: "x!4", I: "~@4 x!2", J: "x",
})).gain(0.38)

// drums · rim
const rim = s("rim").struct("<~ A B A B A B A B ~@145>".pickRestart({
  A: "~@3 x", B: "~ x ~@2",
})).gain(0.33)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B@11 C B@4 D B@14 E ~@7 F B@11 C B@4 D B@14 E ~@7 G B@3 H B@3 I ~@8 B@39 H B@7 H ~
>`.pickRestart({
  A: "~@6 x!6", B: "~ x ~ x", C: "~@3 x ~@5 x ~ x", D: "x!2 ~@2", E: "~@3 x ~@4 x!2 ~@2", F: "~@8 x!2 ~@2", G: "x!12",
  H: "x!4 ~@2", I: "~@3 x ~@5 x!3",
})).gain(0.44)

// drums · clap
const clap = s("cp").struct(`<
  ~ A B A B A B A B ~@17 C@14 ~ C@7 B ~@17 C@14 ~ C@7 ~ C@3 ~ C@4 ~@8 C@39 ~ C@7 ~@2
>`.pickRestart({
  A: "~@3 x", B: "~ x ~@2", C: "~ x ~ x",
})).gain(0.44)

// drums · hihat
const hihat = s("hh").struct("<A B A B A B A B ~@89 C@7 ~@50>".pickRestart({
  A: "~@8 x ~@2 x", B: "~@2 x ~@2 x ~@6", C: "~ x ~ x",
})).gain(0.16)

// drums · open hat
const open_hat = s("oh").struct("<A B A B A B A B ~@146>".pickRestart({
  A: "~@3 x", B: "x!2 ~@2",
})).gain(0.16)

// drums · crash
const crash = s("cr").struct(`<
  ~@9 A ~@3 A ~@3 B@2 C ~ B@3 ~@2 A ~@13 D ~@8 A ~@3 A ~@3 B@2 C ~ B@3 ~@2 A ~@13 D ~@8 A ~@3 A ~@11 A ~@7 A ~@7 A ~@7 A
  ~@7 A ~@7 A ~@7 A
>`.pickRestart({
  A: "x", B: "~@5 x ~@6", C: "~@5 x ~@5 x", D: "x ~@4 x ~@5 x",
})).gain(0.27)

// drums · tambourine
const tambourine = s("tb").struct("<~@9 A@16 B A@15 ~@8 A@16 B A@15 ~@8 A@8 ~@8 A@48 ~>".pickRestart({
// … 7 more lines

More by Michael George