Strudelify
Scuffle cover art

Upside Downside

Scuffle

Stern Mike

KeyD majorTempo95 bpm
0:00/0:00
// Scuffle — Stern Mike
// 95 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 141 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(95/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, A@4 for four bars: edit a riff to change every repeat.

// chords · epiano1
const epiano1 = note(`<
  ~@4 A B A C A B A C A B A C A B A C A B D@5 E@4 F@2 G@2 H I J@4 K@3 L M@4 N O@8 H I J@4 K@3 L M@4 N O@8 H I J@4 K@3 L
  M@4 N O@8 P@7 Q@8 R@6 S@8 T@3 U V@4
>`.pickRestart({
  A: "[d4,e4,a4] [g3,a3,d4] [c4,d4,g4]@2", B: "[d4,e4,a4] [g3,a3,d4]@3", C: "[d4,e4,a4]@5 [d4,a4,d5]@18 ~",
  D: "[[d4,e4,a4]@6 d4@6 ~@12 [f3,f4,a#4,c5,d#5]@42 ~@39 [f5,a#5,d#6]@14 ~, ~@6 [g3,a3]@8 ~@55 [f2,f3,a#3,c4,d#4]@48 ~@3, ~ [c4,d4,g4]@4 ~@5]/5", // Dsus2 Fsus4 D#sus2 Gsus2 Fsus4 Csus2
  E: "[[f#4,b4,c#5,e5]@31 ~@2 [f#3,b3,c#4,e4]@34 ~@4 [e2,d4,e4,a4]@5 ~@7 [c4,d4,g4]@3 ~ [c4,d4,g4] ~@7 [d4,e4,a4], f#2@55 ~@41]/4", // F#sus4 Dsus2 Csus2 Dsus2
  F: "[~@11 [d4,g4]@2 ~@2 [c4,d4,g4] ~@5 [a3,b3,e4]@6 ~@8 [d4,e4,a4]@3 ~ [c4,d4,g4] ~@8, ~@11 c4 ~@36]/2", // G5 Csus2 Asus2 Dsus2 Csus2
  G: "[[d4,e4,a4]@5 ~ [d4,e4,a4]@4 ~@2 [a3,b3,e4]@3 [a3,b3,e4]@20 ~@13]/2", H: "~ [e3,d4,e4,a4]",
  I: "[e3,d4,e4,a4] ~@7", // Dsus2
  J: "[[e3,d4,e4,a4] ~@5 [e3,c4,d4,g4]@3 ~@2 [e3,d4,e4,a4]@24 [e3,d4,g4,b4]@10 [e3,g4,a4,d5]@14 [g3,f4,a4,a#4,d5]@7 [g3,f4,d5] ~@29, ~@22 [a4,c5]@9 ~]/4", // Dsus2 C Dsus2 Em7 Gm7 G7 Am
  K: "[~@11 [g3,f4,a4,a#4,c5,d5]@24 [a3,g4,c5,e5]@24 [e3,d4,e4,a4]@3 [e3,d4,e4,a4] ~@9]/3", // Gm7 Am7 Dsus2
  L: "[e3,d4,e4,a4] ~@4 [c4,d4,g4]@2 ~@17, ~@5 e3 ~@18", // Dsus2 Csus2
  M: "[[e3,d4,e4,a4]@2 ~@6 [d3,e3,c4,d4,g4,a4] ~@2 [e3,d4,e4,a4]@19 [d4,g4,b4]@29 [g3,f4,a4,a#4,c5,d5]@19 g3 ~ [f4,a4,a#4,d5] g3 ~ [f4,a4,a#4,d5] ~@12]/4", // Dsus2 Am7 Dsus2 G Gm7 A#maj7
  N: "[g3,f4,a4,a#4,d5] ~@7 [g3,g4,c5,e5] ~@9 [f4,a#4,d5]@4 ~ [g3,f4,a#4,d5], ~@18 g3 ~@5", // Gm7 C A# Gm7
  O: "[~@12 [f3,a#4]@23 [f3,a#4]@25 a#4@26 [d#4,g#4,a#4]@22 [f#4,b4,c#5]@29 [f#4,b4,c#5,f#5]@18 [f#3,f#4,b4,c#5,e5]@24 [b2,a4,c#5,e5,f#5]@13, ~@12 [f4,c5,d#5]@48 [f3,f4,c5,d#5]@48 [f#3,e5]@47 ~@37, ~@35 [d#4,g#4]@27 ~@130]/8", // A#5 D#sus4 F#sus4 F#m7 F7 F#7 G#5
  P: "[~@12 [d3,c4,d4,g4,a4]@48 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 [g3,a3,d4]@6, ~@33 [g3,a3]@4 ~@20 [g3,a3]@4 ~@23]/7", // Dsus4 Dsus2 Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 …
  Q: "[[c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 [g3,a3,d4]@6, ~@21 [g3,a3]@4 ~@20 [g3,a3]@4 ~@20 [g3,a3]@4 ~@23]/8", // Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 D5 Dsus2 …
  R: "[[c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 [g3,a3,d4]@6, ~@21 [g3,a3]@4 ~@20 [g3,a3]@4 ~@23]/6", // Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 D5 Dsus2 …
  S: "[~@12 [f3,f4,a#4,c5,d#5]@42 ~@39 [f5,a#5,d#6]@14 ~ [f#4,b4,c#5,e5]@31 ~@2 [f#3,b3,c#4,e4]@34 ~@4 [e2,d4,e4,a4]@5 ~@7 [c4,d4,g4], [c4,d4,g4]@48 ~@9 [f2,f3,a#3,c4,d#4]@48 ~@3 f#2@55 ~@29]/8", // Fsus4 D#sus2 F#sus4 Dsus2 Csus2 Fsus4
  T: "[~@3 [c4,d4,g4] ~@7 [d4,e4,a4] ~@11 [d4,g4]@2 ~@2 [c4,d4,g4] ~@5 [a3,b3,e4]@6 ~@8 [d4,e4,a4]@3 ~ [c4,d4,g4] ~@8 [d4,e4,a4]@5 ~ [d4,e4,a4]@4 ~@2, ~@23 c4 ~@48]/3", // Csus2 Dsus2 G5 Csus2 Asus2 Dsus2 Csus2 Dsus2
  U: "[a3,b3,e4] e4@3 [d4,e4,a4]@2 [g3,a3,d4]@2, ~ b3@7, ~ a3@5 ~@2", // Asus2 Dsus2 Gsus2
  V: "[[c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [b3,d4,e4,a4]@18 ~@13, ~@21 [g3,a3]@4 ~@23]/4", // Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 Bm7 Gsus2
})).s("gm_epiano1").gain(0.27)

// bass · slap bass 1
const bass = note(`<
  ~@15 A@5 B C D E@4 F@2 G@2 H I J@2 K L M L N O P Q R L S L N O P T E U E V W X Y Z L M L N O P Q R L S L N O P T E U E
  V W X Y Z L M L N O P Q R L S L N O P T E U E V W X Y AA@2 AB ~@3 AC AD AC AE AF AG AH AI AJ AD AC AE AF AG AH AK E@3
  AL F@2 AM@2 AN@2 AO AP@2 AQ@2
>`.pickRestart({
  A: "[~@23 d2@4 e2@2 ~ g2@2 ~@15 d2@4 e2 ~@2 g2@2 ~ e2@2 ~@12 d2@4 e2@2 ~ g2@2 ~@15 d2@2 ~ e2 a1 ~@2 e2 ~@2 g1@2 ~ a1@5 ~ b1@4 ~ g1]/5",
  B: "~@2 g1 a1@2 ~ c2 ~@16 g1", C: "~@2 g1 a1 ~@2 c2@3 a1@2 g1 ~@6 d2@4 ~ g1", D: "~@2 g1 a1@2 ~ c2@3 a1@2 g1 ~@12",
  E: "f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2",
  F: "f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2",
  G: "[f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1@2 e1@11 ~ d1@4 e1@3 g1@3 e1@2 ~, ~@35 e1 ~@12]/2",
  H: "~@11 d1 ~@2 d1 e1@3 g1@3 e1@3", I: "~@11 d1@4 e1@3 g1@2 ~ e1@2 ~", J: "[c2@6 b1@5 ~ g1@3 e1@15 ~@18]/2",
  K: "~@14 e2 d2@3 b1@3 d2@2 e2", L: "e1 ~ e1@2 ~@10 e2 d2@3 b1@3 d2 ~ e2",
  M: "g1@2 ~ a1@2 b1 g1@5 e1@3 e2 d2@3 b1@3 d2@2 e2", N: "g1@3 a1@2 b1 g1@3 ~@2 g1@3 ~ f2@3 d2@3 f2@2 g2, ~@7 g2 ~@4",
  O: "g1 ~ g1@2 ~@10 g2 f2@3 d2@3 f2 ~ g2", P: "a#1@3 c2@2 d2 a#1@3 ~@2 g1@3 ~ f2@2 ~ d2@3 f2@2 g2, ~@7 g2 ~@4",
  Q: "g1 ~ g1@2 ~@10 a2 g2@3 e2@3 g2 ~ a2", R: "c#2@3 d2@2 d#2 e2@5 e1@3 ~ d2@2 ~ b1@3 d2@2 e2, ~@7 e2 ~@4",
  S: "g1@2 ~ a1@2 b1 g1@5 e1@3 e2 d2@3 b1@3 d2 ~ e2", T: "g1@11 f1@3 ~ f1 ~@2 f1 ~@2 f1 ~@2",
  U: "f1 ~@2 f1 ~@2 f1 ~ c2 f1 ~ f1@3 ~ f1@2 ~ f1 ~@2 f1 ~@2",
  V: "f1 ~ c2 f1@3 f2@3 f1@2 f#1@3 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~",
  W: "f#1@2 ~ f#1@2 ~ f#1 ~@2 f#1@2 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~",
  X: "f#1@2 ~ f#1 ~@2 f#1 ~ c#2 f#1 ~ f#1@3 ~ f#1 ~@2 f#1 ~@2 f#1 ~@2",
  Y: "f#1 ~@2 f#1@2 ~ f#1 ~@2 f#1@2 b1@3 ~ b1@2 ~ b1@2 ~ b1 ~@2",
  Z: "b1 ~@2 b1 ~@2 b1 ~@2 b1@2 ~@3 e2 d2@3 b1@3 d2@2 e2",
  AA: "[b1 ~@2 b1 ~@2 b1 ~@2 b1@2 ~ d1@5 d2@4 d1@19 ~ d1 d2@2 d1 ~@3]/2", AB: "~@3 d1 ~@4 d1 ~@15",
  AC: "~@11 d2@4 e2@2 ~ g2@2 ~@4", AD: "~@11 d2@4 e2 ~@2 g2@2 ~ e2@2 ~", AE: "~@11 d2@2 ~ e2 a1 ~@2 e2 ~@2 g1@2 ~",
  AF: "a1@5 ~ b1@4 ~ g1 ~@2 g1 a1@2 ~ c2 ~@5", AG: "~@11 g1 ~@2 g1 a1 ~@2 c2@3 a1@2 g1",
  AH: "~@6 d2@4 ~ g1 ~@2 g1 a1@2 ~ c2@3 a1@2 g1", AI: "~@11 d1 ~@2 d1 e1@2 ~ g1@3 a1 ~@2",
  AJ: "c2@2 ~ d2 ~@2 a1@2 g1@3 d2@4 e2@2 ~ g2@2 ~@4", AK: "~@12 f1@2 ~ f1 ~@2 f1 ~@2 f1 ~@2",
  AL: "f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f#1@2 ~ f#1 ~@2 f#1 ~@2 f#1 ~@2",
  AM: "[f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1@2 e1@11 ~ d1@4 e1@3 g1@3 e1@2 ~@12 d1, ~@23 e1 ~@24]/2",
  AN: "[~@2 d1 e1@3 g1@3 e1@4 ~@10 d1@4 e1@3 g1@2 ~ e1@2 ~ c2@6 b1@5 ~]/2", AO: "g1 ~@3 d2@2 g1@2, ~ e1@5 ~@2",
  AP: "[c2@2 d2 g1@3 d2 g1]/2", AQ: "[c2@12 d2@5 e1@18 ~@13]/2",
})).s("gm_slap_bass_1").gain(0.37)

// chords · synth brass 2
const synth_brass_2 = note(`<
  ~@4 A B A C A B A C A B A C A B A C A B A D@2 E@2 F@2 G@2 H@2 I@2 ~@15 J@8 ~@15 J@8 ~@15 J@8 K@7 L@8 M@6 N@8 O@3 P Q@4
>`.pickRestart({
  A: "[d4,e4,a4] [g3,a3,d4] [c4,d4,g4]@2", B: "[d4,e4,a4] [g3,a3,d4]@3", C: "[d4,e4,a4]@5 [d4,a4,d5]@18 ~",
  D: "[f3,a#3,c4,d#4]/2", E: "[~@2 f3@7 ~@2 a#3@5, ~ [c4,d#4]@7, ~@2 a#3@9 ~@5, ~@9 f3@7]/2",
  F: "[~@11 [f#4,b4,c#5,e5]@5, [f#3,b3,c#4,e4]]/2", // F#sus4
  G: "[[f#3,b3,c#4,e4]@22 ~ [d4,e4,a4]@7 ~@5 [c4,d4,g4]@3 ~ [c4,d4,g4] ~@7 [d4,e4,a4]]/2", // F#sus4 Dsus2 Csus2 Dsus2
  H: "[~@11 [d4,g4]@2 ~@2 [c4,d4,g4] ~@5 [a3,b3,e4]@6 ~@8 [d4,e4,a4]@3 ~ [c4,d4,g4] ~@8, ~@11 c4 ~@36]/2", // G5 Csus2 Asus2 Dsus2 Csus2
  I: "[[d4,e4,a4]@5 ~ [d4,e4,a4]@4 ~@2 [a3,b3,e4]@3 [a3,b3,e4]@20 ~@13]/2", // Dsus2 Asus2
  J: "[~@12 [a#3,c4,d#4,f4]@48 [a#3,c4,d#4,f4]@47 [b3,c#4,e4,f#4]@48 [b3,c#4,e4,f#4]@24 [a3,c#4,e4,f#4]@13, ~@179 d#4 ~@12]/8", // A#sus4 Bsus4 F#m7
  K: "[~@12 [d3,c4,d4,g4,a4]@48 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 [g3,a3,d4]@6, ~@33 [g3,a3]@4 ~@20 [g3,a3]@4 ~@23]/7", // Dsus4 Dsus2 Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 …
  L: "[[c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 [g3,a3,d4]@6, ~@21 [g3,a3]@4 ~@20 [g3,a3]@4 ~@20 [g3,a3]@4 ~@23]/8", // Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 D5 Dsus2 …
  M: "[[c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [d4,a4,d5]@18 ~ [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 [g3,a3,d4]@6, ~@21 [g3,a3]@4 ~@20 [g3,a3]@4 ~@23]/6", // Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 D5 Dsus2 …
  N: "[[c4,d4,g4]@12 [f3,a#3,c4,d#4]@48 ~@6 f3@21 ~@6 a#3@15 ~@33 [f#4,b4,c#5,e5]@15 [f#3,b3,c#4,e4]@22 ~ [d4,e4,a4]@7 ~@5 [c4,d4,g4], ~@66 [c4,d#4]@43 ~@83, ~@22 a#3@9 ~@5 [f#3,b3,c#4,e4]@16 ~@12, ~@87 f3@22 ~@83]/8", // Csus2 Fsus4 F#sus4 Dsus2 Csus2 Cm F#sus4
  O: "[~@3 [c4,d4,g4] ~@7 [d4,e4,a4] ~@11 [d4,g4]@2 ~@2 [c4,d4,g4] ~@5 [a3,b3,e4]@6 ~@8 [d4,e4,a4]@3 ~ [c4,d4,g4] ~@8 [d4,e4,a4]@5 ~ [d4,e4,a4]@4 ~@2, ~@23 c4 ~@48]/3", // Csus2 Dsus2 G5 Csus2 Asus2 Dsus2 Csus2 Dsus2
  P: "[a3,b3,e4] e4@3 [d4,e4,a4]@2 [g3,a3,d4]@2, ~ b3@7, ~ a3@5 ~@2", // Asus2 Dsus2 Gsus2
  Q: "[[c4,d4,g4]@12 [d4,e4,a4]@6 [g3,a3,d4]@18 [d4,e4,a4]@6 d4@6 [c4,d4,g4]@12 [d4,e4,a4]@5 [b3,d4,e4,a4]@18 ~@13, ~@21 [g3,a3]@4 ~@23]/4", // Csus2 Dsus2 Gsus2 Dsus2 Csus2 Dsus2 Bm7 Gsus2
})).s("gm_synth_brass_2").gain(0.27).pan(0.7)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@8 A B C D E@2 F G A B C D E@2 H I J K L M N O@2 P Q R ~ S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK@2 AL AM
  AN@2 AO AP AQ AR@2 AS AT@3 AU AV@2 AW@3 AX AY AZ BA BB BC BD@2 BE ~@27 BF BG Q BH BI BJ BK@2 BL BG Q BH BI BJ BM@4
  BN@2 BO@2 BP BQ@2 BR BS ~ BT BU@2
>`.pickRestart({
  A: "~@2 a3 b3 ~@4 d4 e4 ~@2 a4@5 ~ [d4,e4]@2 d4 b3@2 a3, ~@12 g4 ~@11", // Dsus2
  B: "~@2 b3 d4@2 b3 g4@2 ~ e4 d4 b3 ~@2 b4 a4 g4 e4 a4@2 g4 e4@2 d4",
  C: "~@2 a3 b3 ~@4 d4 e4 ~@2 a4@4 ~ b4 a4 [e4,g4] ~ d4 [a3,b3] ~, ~@12 g4 ~@11", // Em Asus2
  D: "a3 ~ b3 d4@2 e4 a4@2 b4 g4 ~@4 a3 b3 ~@4 d4 e4 ~@2",
  E: "[~@2 g4 a4 ~@4 b4 a4 g4 e4 a4@2 g4 e4 ~ d4 g4 ~ e4 d4 ~ a3@2 ~ a3 b3 ~@4 d4 e4 ~@4 a4 b4 ~@5 b4 a4 g4, ~@22 a4 ~]/2",
  F: "a3@2 b3 d4 ~ e4 g4@2 a4 g4 ~ b4@3 ~ b4 a4 g4 e4 d4 b3 a3 g3 e3",
  G: "d3 ~ d3 b2@2 a2@7 ~@3 e3@2 ~@3 g3 a3@2 ~, ~@7 d3 ~@4",
  H: "a3@2 b3 d4 ~ e4 g4@2 a4 g4 ~ b4@3 ~ b4 a4 g4 e4 g4 a4 b4 c#5 d5",
  I: "d#5@5 c5 ~@2 a#4 g#4@5 d#4 f4@2 g#4 ~@3 a#4@2 [b4,c5], ~@10 g#4 ~", J: "~@2 d#5 c5@2 a#4 ~@2 g#4 f4@2 d#4@7 ~@6",
  K: "d#5@5 c5 ~@2 a#4 g#4@4 ~ d#4 f4@2 g#4 a#4@2 c5 a#4 g#4 f4",
  L: "d#4 ~ d#5 c5@2 a#4 g#4@2 a#4 g#4@2 d#4@2 f4 g#4 a#4 f4 g#4 a#4 g#4 c5 a#4 d#5 e5",
  M: "f#5@4 ~ d#5 ~@2 c#5 b4@4 ~ g#4 b4@3 ~@2 b4 c#5@2 ~",
  N: "~@3 d#5@2 c#5 b4@2 c#5 b4 ~ f#4@3 ~@4 g#4@2 b4 c#5@2 d#5, ~@2 f#5@2 ~@13 f#4@2 ~@5",
  O: "[f#5@5 d#5 ~@2 c#5 b4@4 ~ f#4 g#4@2 b4 c#5 d5 d#5 d5 c#5 a4@3 a3 b3@2 d4 e4@2 g4 e4 ~@4 a3 b3 ~@4 d4 e4 ~@2, ~@23 g#4 ~@24]/2",
  P: "a4@4 ~@2 e4@2 d4 b3 ~ a3@2 ~ b3 d4@2 b3 f4 g4@2 e4@2 ~, g4 ~@23",
  Q: "~@2 b4 a4 g4 e4 a4@2 g4 e4@2 d4 ~@2 a3 b3 ~@4 d4 e4 ~@2",
  R: "a4@3 ~@3 a4 g4 e4 d4 b3 a3 g3@2 ~ e3@2 ~@7, g4 ~@4 b4@2 ~@17", S: "~@14 g4@4 d4@2 e4 ~@3",
  T: "d4 ~@10 g4@9 a4 ~ a4 ~, ~@21 b4@2 ~", U: "a4 ~@2 g4 ~ b4@2 a4@4 g4 ~@12",
  V: "~@2 d4 e4 d4 g4@2 e4 d4 a4@2 e4 ~@11 c#4",
  W: "d4 ~ e4 g4 ~ d#4 e4 ~ g4 a4 ~ g4 ~@5 d4 g4@2 d4 ~ d4 ~, ~@21 c5@2 ~",
  X: "~ g4 ~ a#4@2 ~ a4@5 f4@3 a#4 ~@9, a#4 ~@11", Y: "~@3 a4 f4 a4 a#4@2 ~ f4 ~ a4 d5@2 ~ f4 ~ a4 ~@6, ~ a#4 ~@10",
  Z: "~@2 d5@2 ~ g4 c5@2 ~ d5 ~ c5 ~ g4 c5 a#4 ~ b4 g4@2 a#4 b4 ~ c5",
  AA: "c#5 ~ d5 d#5 ~ e5 e5@2 g5 e5 ~ b4@2 ~ d4 e4 ~ d4 g4@3 e4@3",
  AB: "~@2 d4 e4 d4 g4 d4 e4 d4 a4 d4 e4 d4 a4 d4 e4 d4 g4 d4 e4 d4 ~ d4 e4, ~@21 a4@2 ~",
  AC: "d4 g4 d4 [d4,e4] a4 d4 [d4,e4] a4 [d4,e4] d4 b4 d4 ~@3 a4 ~ e4 g4 ~ a4 g4 ~ e4, ~@7 b4 ~@4", // Dsus2
  AD: "a4 g4 e4 d4 b3 d4@2 b3 a3 b3 g3 e3@5 ~@4 e3 g3 ~ d#3",
  AE: "e3@2 ~ b3@2 g3@2 ~ c4@2 ~ d4@7 c5@2 g4 a#4@2 g4, ~ g3 ~@10", AF: "c5@2 g4 d5@2 g4 ~@8 d5 ~@2 c5 ~ d5 ~ g4 ~ d5",
  AG: "~@2 a4 ~ c5 ~ d5@3 ~@2 c5 ~@2 a4 g4 a#4 g4 c5 g4 ~ g4 a4 g#4, ~@10 a#4 ~",
  AH: "c5 a4 c5 g#4 d5 a4 c5@3 g5@4 f#5 ~ f5@2 d#5 d5@2 d#5 c#5@2 d#5",
  AI: "c5@2 c#5 c5 ~ a#4 a4@2 c#5 a4 ~ c#5 ~ g#4 c5 f4 ~ a#4 e4 ~ a4 d#4 ~ f4",
  AJ: "c4@2 ~ c4 ~ a#3@3 d#4 c4 f4 c4 d#4 c5 d#4 f4 d#4 ~ d#4 c5 d#4 f4 d#4 g4, ~@17 g4@2 ~@5",
  AK: "[d#4 c5 d#4 f4 d#4 a#4 d#4 f4 d#4 g4 d#4 f4 d#4@2 ~ g4 ~ g#4 a#4@2 ~ b4@2 ~ c5 ~@2 c#5@2 ~ c5@2 g#4@3 ~ b4 e5 b4 f#5 ~@2 c#5 f#5 b4 e5 c#5 f#5, ~@14 f4@2 ~@4 f#4@2 ~ g4@2 ~ g#4@2 ~ a4@2 ~@10 [c#5,e5]@2 ~@5]/2", // C#m
  AL: "b4 e5 c#5 ~ b4 e5 c#5 f#5 b4 e5 c#5 f#5 b4 e5 c#5 ~ b4 e5 c#5 f#5 b4 e5 c#5 f#5, ~@3 f#5@2 ~@10 f#5@2 ~@7",
  AM: "b4 e5 c#5 ~ b4 e5 c#5 f#5 b4 c#5 e5 ~@7 b4@4 g#5@2, ~@3 f#5@2 ~@6 f#5@9 ~@4",
  AN: "[e5 f#5@5 e5 ~ f#5 e5 ~ a4@4 b4 ~@2 b4@2 ~ a4 ~ b4@2 ~ b4@3 a4 b4@2 ~ g4@2 d4@3 e4 ~@2 d4 g4@2 d4 e4@2 d4, ~@16 d4 ~@7]/2",
  AO: "a4@2 d4 e4@2 d4 a4@2 d4 e4 ~ [d4,b4]@2 ~ b4 e4@2 b4 e4@2 a4@4, ~@13 e4@2 ~@9", // G
  AP: "e4@2 a4 e4 ~ a4 e4@2 d4 b3@2 e4@6 d4@4 ~@3",
  AQ: "~@3 g3 e3 ~ f3 c4 f3 ~ f3 ~ g#3 c4 g#3 b3 g3 d4 a3 f4 a3 ~ a3 f#4, ~@2 e3@2 ~ a3@2 ~@2 g3@2 a3@2 ~@8 d4@2 ~",
  AR: "[a#4@2 ~ f#4@2 b4 f4@2 a4 d5 ~ c5@10 a#4@2 ~ d5@2 ~ c5@2 a4 ~@2 a4@2 ~ a4@6 ~ f4 ~@2 a#4@2 ~, ~@2 d4@2 ~@19 a4@2 ~@23]/2",
  AS: "g4@2 c5 ~@3 c5@2 ~@3 c5@2 ~ g4 ~@9",
  AT: "[~@2 d5@3 ~ c5@2 g4 a#4@2 g4 ~ a#4@2 c5@2 e5 a5 ~ c6@2 ~ a5@2 ~ f#5 g5 ~@2 f5 d#5 ~ d5 ~@2 b4 ~@2 b4 ~ d5 ~@2 b4 ~@2 b4@6 e4@2 ~@7 e4 g4 e4 a#4 ~ b4 ~ d5 ~ g4, ~@5 g4@2 ~@5 a4@2 ~@8 a#5@2 ~ b5@2 ~@2 f#5@2 ~@4 a5@2 ~@35]/3",
  AU: "~ b4 d4 e4 ~ e4 ~ e4 d4 a4 ~ g4@2 ~ e4@2 ~@8",
  AV: "[~@2 b4 g4 a4 e4 g4@2 ~@6 d4 e4 d4 g4 ~@5 a3@2 b3 ~ a3 ~ d4 e4@2 d4@2 ~ g4 ~@2 d5 ~@2 a4 ~@5 g4]/2",
  AW: "[a4 ~ c5 ~ e5 c5 a4@2 c5 e5 a4 g5 b5 ~@2 b5 ~@2 f#5@2 f5 a5 ~@2 a5 ~ e5 d#5@2 e5 f5 ~@2 f5 ~ a5@10 ~@2 d5@12 g5 d#5 g5 d#5 c6 d#5 f5 d#5 g5 d#5 c6 d#5 f5, ~@14 d6@2 ~ g5@2 ~@4 c6@2 ~@7 a5@2 ~@11 g5@2 ~@25, ~@23 f5 ~@12]/3",
  AX: "d#5 g5 d#5 a#5 d#5 f5 d#5 g5 d#5 f5 d#5 f5 d#5 g5 d#5 a#5 d#5 f5 d#5 g5 d#5 a#5 d#5 f5",
  AY: "d#5 g5 d#5 a#5 d#5 f5 d#5 c6 d5 f5 d5 a#5 d#5 f5 d#5 g5 d#5 a#5 c#5 f5 c#5 g#5 c#5 f5",
  AZ: "c5 a#5 c5 f5 c5 g#5 b4 f5 a#4 ~ a#4 f5 b4 f#5 b4 f5 c5 f#5 c5 e5 c5 f#5 c#5 e5, ~@9 g#5@2 ~@13",
  BA: "c#5 d#5 c5 d5 c5 d#5 b4 c5 b4 c#5 b4 c5 b4 c#5 b4 d#5 b4 f#5 b4 c#5 b4 d#5 b4 f#5",
  BB: "b4 c#5 a#4 f#5 a#4 c#5 a#4 [c#5,f#5] b4 [c#5,d#5] b4 c#5 b4 d#5 b4 c#5 g#4 a#5 g#4 c#5 g#4 a#5 b4 c#5", // F#5 C#sus2
  BC: "b4 a#5 b4 c#5 b4 g#4 g#5@2 ~ g#5@2 f#5 d#5@2 f#5 g#5@2 c#5 ~@2 c#5 ~ d#5@2",
  BD: "[~@3 c#5@2 d#5 c#5@2 ~ d#5@2 e5@27 e4 ~@3 e4 ~@5]/2", BE: "e4 ~@23", BF: "~@14 a3 b3 ~@4 d4 e4 ~@2",
  BG: "a4@5 ~ [d4,e4]@2 d4 b3@2 a3 ~@2 b3 d4@2 b3 g4@2 ~ e4 d4 b3, g4 ~@23", // Dsus2
  BH: "a4@4 ~ b4 a4 [e4,g4] ~ d4 [a3,b3] ~ a3 ~ b3 d4@2 e4 a4@2 b4 g4 ~@2, g4 ~@23", // Em Asus2
  BI: "~@2 a3 b3 ~@4 d4 e4 ~@4 g4 a4 ~@4 b4 a4 g4 e4", BJ: "a4@2 g4 e4 ~ d4 g4 ~ e4 d4 ~ a3@2 ~ a3 b3 ~@4 d4 e4 ~@2",
  BK: "[~@2 a4 b4 ~@5 b4 a4 g4 a3@2 b3 d4 ~ e4 g4@2 a4 g4 ~ b4@3 ~ b4 a4 g4 e4 d4 b3 a3 g3 e3 d3 ~ d3 b2@2 a2@7, ~@4 a4 ~@19]/2",
  BL: "~@3 e3@2 ~@3 g3 a3@2 ~@3 a3 b3 ~@4 d4 e4 ~@2, ~ d3 ~@10",
  BM: "[~@2 a4 b4 ~@5 b4 a4 g4 a3@2 b3 d4 ~ e4 g4@2 a4 g4 ~ b4@3 ~ b4 a4 g4 e4 g4 a4 b4 c#5 d5 d#5@5 c5 ~@2 a#4 g#4@5 d#4 f4@2 g#4 ~@3 a#4@2 [b4,c5] ~@2 d#5 c5@2 a#4 ~@2 g#4 f4@2 d#4@7 ~@6 d#5@5 c5 ~@2 a#4 g#4@3, ~@4 a4 ~@23 g#4 ~@19]/4", // Cmaj7
  BN: "[~@2 d#4 f4@2 g#4 a#4@2 c5 a#4 g#4 f4 d#4 ~ d#5 c5@2 a#4 g#4@2 a#4 g#4@2 d#4@2 f4 g#4 a#4 f4 g#4 a#4 g#4 c5 a#4 d#5 e5 f#5@4 ~ d#5 ~@2 c#5 b4@3]/2",
  BO: "[~@2 g#4 b4@3 ~@2 b4 c#5@2 ~@4 d#5@2 c#5 b4@2 c#5 b4 ~ f#4@3 ~@4 g#4@2 b4 c#5@2 d#5 f#5@5 d#5 ~@2 c#5 b4@3, ~@14 f#5@2 ~@13 f#4@2 ~@17]/2",
  BP: "~@2 f#4 g#4@2 b4 c#5 d5 d#5 d5 c#5 a4@3 a3 b3@2 d4 e4@2 g4 e4 ~@2, ~@11 g#4 ~@12",
  BQ: "[~@2 a3 b3 ~@4 d4 e4 ~@2 a4@4 ~@2 e4@2 d4 b3 ~ a3@2 ~ b3 d4@2 b3 f4 g4@2 e4@2 ~@3 b4 a4 g4 e4 a4 ~ g4 e4@2 d4, ~@12 g4 ~@35]/2",
  BR: "~@2 a3 b3 ~@4 d4 e4 ~@2 a4@3 ~@3 a4 g4 e4 d4 b3 a3, ~@12 g4 ~@4 b4@2 ~@5", BS: "g3@2 ~ e3@2 ~@19",
  BT: "~@12 a4@5 ~ d4@6", BU: "[g4@12 a4@5 d5@19 ~@12]/2",
})).s("gm_overdriven_guitar").gain(0.39)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A ~@7 C D C E@2 F G H G I J K L M G N G I J K O ~@7 F G H G I J K L M G N
  G I J K O ~@7 F G H G I J K L M G N G I J K O ~@9 P Q R Q R Q R Q R Q R Q R Q R Q R Q R S ~@6 T@2 U@2 V Q W X@2
>`.pickRestart({
  A: "d4 ~ d4!2 ~ d4 ~@3 d4 ~ d4 ~@3 d4 ~@2 d4 ~ d4 ~@3", B: "d4 ~ d4 ~@2 d4 ~@3 d4 ~ d4 ~@2 d4!2 ~@2 e4@6",
  C: "~@11 d2@4 e2@3 g2@3 e2@2 ~", D: "~@11 d2 ~@2 d2 e2@3 g2@3 e2@3", E: "[c3@6 b2@5 ~ g2@3 e2@15 ~@18]/2",
  F: "~@14 e3 d3@3 b2@3 d3@2 e3", G: "e2 ~ e2@2 ~@10 e3 d3@3 b2@3 d3 ~ e3",
  H: "g2@2 ~ a2@2 b2 g2@5 e2@3 e3 d3@3 b2@3 d3@2 e3", I: "g2@3 a2@2 b2 g2@3 ~@2 g2@3 ~ f3@3 d3@3 f3@2 g3, ~@7 g3 ~@4",
  J: "g2 ~ g2@2 ~@10 g3 f3@3 d3@3 f3 ~ g3", K: "a#2@3 c3@2 d3 a#2@3 ~@2 g2@3 ~ f3@2 ~ d3@3 f3@2 g3, ~@7 g3 ~@4",
  L: "g2 ~ g2@2 ~@10 a3 g3@3 e3@3 g3 ~ a3", M: "c#3@3 d3@2 d#3 e3@5 e2@3 ~ d3@2 ~ b2@3 d3@2 e3, ~@7 e3 ~@4",
  N: "g2@2 ~ a2@2 b2 g2@5 e2@3 e3 d3@3 b2@3 d3 ~ e3", O: "g2@11 ~@13", P: "~@12 d4 ~ d4!2 ~ d4 ~@3 d4 ~ d4",
  Q: "~@3 d4 ~@2 d4 ~ d4 ~@3 d4 ~ d4 ~@2 d4 ~@3 d4 ~ d4", R: "~@2 d4!2 ~@2 e4@6 d4 ~ d4!2 ~ d4 ~@3 d4 ~ d4",
  S: "~@3 d4 ~@2 d4 ~ d4 ~@15", T: "[~@23 d2@4 e2@3 g2@3 e2@2 ~@12 d2]/2",
  U: "[~@2 d2 e2@3 g2@3 e2@4 ~@10 d2@4 e2@3 g2@2 ~ e2@2 ~ c3@6 b2@5 ~]/2",
  V: "g2@3 ~@9 d4 ~ d4!2 ~ d4 ~@3 d4 ~ d4, ~ e2@5 ~@2", W: "~@2 d4!2 ~@2 e4@6 d4 ~ d4!2 ~ d4 d4@2 ~ d4 ~ d4, ~@2 a4 ~",
  X: "[~@3 d4 ~@2 d4 ~ d4 ~@3 a4@5 [f#4,d5]@16 ~@15, g4@5 ~@19]/2", // D
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.3)

// other · electric guitar muted · soft notes
const electric_guitar_muted_2 = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A ~@83 C D C D C D C D C D C D C D C D C D C E ~@10 C D C E ~
>`.pickRestart({
  A: "~@8 d4 ~@5 d4 ~@9", B: "~@3 d4 ~@4 d4 ~@15", C: "~@20 d4 ~@3", D: "~@2 d4 ~@12 d4 ~@4 d4 ~@3", E: "~@2 d4 ~@21",
})).s("gm_electric_guitar_muted").gain(0.11).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@7 A ~@3 A ~@3 A ~@3 A ~@3 B@6 C D E F G H I J K L M N O L M P Q L R J K S T@6 U V J K L M N O L M P Q L R J K S T@6
  U V J K L M N O L M P Q L W J K S T@6 U X Y Z AA@3 AB AC AD AE AF AG@2 AE AF AC AD AE AH AG AI AJ T@6 U AK AL G AM AA
  AN AO ~
>`.pickRestart({
  A: "~@7 x", B: "x ~@3 x!2 ~@2", C: "x ~@11 x ~@2 x ~@7 x", D: "~@15 x ~@4 x!2 ~@2", E: "x ~@4 x ~ x",
  F: "~ x ~ x!3 ~ x", G: "x!2 ~ x!3 ~ x", H: "~ x ~ x ~ x ~@2", I: "~@11 x!2 ~@11", J: "x ~ x ~@6 x ~@5 x ~@8",
  K: "x ~@2 x ~@5 x ~ x ~@3 x ~@8", L: "x ~ x ~@8 x ~@3 x ~@5 x ~@2", M: "x ~@10 x ~@3 x ~@5 x ~@2",
  N: "x ~@2 x ~@7 x ~@3 x ~@5 x ~@2", O: "x ~@10 x ~@3 x ~@8", P: "x ~@2 x ~@7 x ~@3 x ~@8", Q: "x ~ x ~@8 x ~@3 x ~@8",
  R: "x ~@8 x ~ x ~@12", S: "x ~ x ~@8 x ~@12", T: "x!2 ~@2 x ~@3", U: "x ~@2 x ~@7 x ~@12",
  V: "~@3 x ~@4 x ~@3 x ~@11", W: "x ~@10 x ~@12", X: "~@3 x ~@4 x ~@3 x ~@8 x ~@2", Y: "~@3 x ~@4 x ~@6 x ~@5 x ~@2",
// … 151 more lines