Strudelify
Non dimenticarti di me cover art

Cento di queste vite

Non dimenticarti di me

Pooh

KeyG majorTempo150 bpm
0:00/0:00
// Non dimenticarti di me — Pooh
// 150 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: duplicate parts dropped: ch 12 electric guitar muted (copy of ch 13 electric guitar clean); ch 15 electric guitar clean (copy of ch 13 electric guitar clean, 0.417 beats late)
// note: Full arrangement: all 167 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 29.
setcpm(150/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.

// bass · fretless bass
const bass = note(`<
  ~@2 A@2 B@2 C@2 D E F@4 G@2 H@2 I@2 J@2 K L M@2 N O P@2 Q@2 R S T U V W X Y Z AA AB AC AD@2 N AE AF AG AD@2 AH AI AJ
  AK AL AM AN AO AP AQ AR@2 AS@2 AT AU AP AQ AR@2 AS@2 AT AU AV AW AS@2 AV AW AX@2 AP AQ AY AZ@2 R S T U V W X Y Z AA AB
  AC AD@2 N AE AF AG AD@2 AH AI AJ AK AL AM AN AO AP AQ AR@2 AS@2 AT AU AP AQ AR@2 AS@2 AT AU AV AW AS@2 AV AW BA@4 AV
  BB BC@2 BD@2 BE@2 AV BB BF BC BD@2 BG BH AV BB BI@2 BJ BK@3
>`.pickRestart({
  A: "[g1@19 ~ g1@2 ~@2 a1@2 b1@2 d2@2 ~@2]/2", B: "[e2@31 ~]/2", C: "[b1@27 ~ a1@2 b1 ~]/2", D: "d2@5 ~ d2@5 ~ a1@4",
  E: "d2 a1 d2 a1", F: "[g1@31 ~]/2", G: "[b1@31 ~]/2", H: "[c2@31 ~]/2", I: "[d#2@31 ~]/2", J: "[d2@31 ~]/2", K: "f2",
  L: "e2", M: "[a1@31 ~]/2", N: "c2@15 ~", O: "d2@15 ~", P: "[g1@27 ~ g2@3 ~]/2",
  Q: "[g2@21 ~ d2 ~ a1@2 b1 ~ d2@3 ~]/2", R: "g1@11 ~ g1@3 ~", S: "g1@15 ~", T: "b1@11 ~ b1@3 ~", U: "b1@15 ~",
  V: "c2@11 ~ c2@3 ~", W: "c2@11 ~ c2@2 d2 ~", X: "d#2", Y: "d#2@15 ~", Z: "d2@11 ~ d2@2 ~@2", AA: "d2@11 ~ g1@2 f#1 ~",
  AB: "f1@11 ~ f1@2 ~@2", AC: "e1@7 ~ e1@7 ~", AD: "a1@11 ~ a1@2 ~@2", AE: "d#2@7 ~ c2@3 ~ d#2@3 ~",
  AF: "e2@5 ~ g2@5 ~ b2@3 ~", AG: "c3@15 ~", AH: "b1@11 ~ b1@2 ~@2", AI: "b1@7 ~ d#2@7 ~", AJ: "e2@11 ~ e2@2 ~@2",
  AK: "c2@11 ~ c2@2 ~@2", AL: "a1@11 ~ a1 ~ e1 ~", AM: "a1@11 ~ a1@3 ~", AN: "d2@6 a1@5 ~ d1@4",
  AO: "~@2 a1@6 a1@2 b1 ~ d2@2 b1 ~", AP: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~", AQ: "g1@3 ~ g1@3 ~ a1@2 b1@2 d2@3 ~",
  AR: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~", AS: "b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~", AT: "d2@5 ~ a1@4 ~@2 d1@4",
  AU: "~@2 d1 ~ d1 ~ d1@2 d2 ~ a1@2 d1@3 ~", AV: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", AW: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  AX: "[d1@6 a1@5 ~ d2@7 ~ d2@11 ~]/2", AY: "e1@3 ~ e1@3 ~ e1@3 ~ e1 ~ g1 ~", AZ: "[a1 ~ b1 ~ d2@27 ~]/2",
  BA: "[d2@63 ~]/4", BB: "a1@3 ~ a1@3 ~ b1@2 c#2@2 e2@3 ~", BC: "f#2@3 ~ f#2@3 ~ f#2@3 ~ f#2@3 ~",
  BD: "c#2@3 ~ c#2@3 ~ c#2@3 ~ c#2@3 ~", BE: "[e2@5 ~ e2@5 ~ e2@8 b2@3 ~ e3@4 e2@3 ~]/2",
  BF: "f#2@3 ~ f#2@3 ~ f#2@3 ~ f#2@2 ~@2", BG: "e2@5 ~ b1@4 ~@2 e1@4", BH: "~@2 e1 ~ e1 ~ e1@2 e2 ~ b1@2 e1@3 ~",
  BI: "f#1@3 ~ f#1@3 ~ f#1@3 ~ f#1@3 ~", BJ: "a1@5 ~ a1@5 ~ a1@4", BK: "[~ a1@40 ~@7]/3",
})).s("gm_fretless_bass").gain(0.53)

// chords · piano
const piano = note(`<
  ~@2 A B A C D E F G H@2 I@2 J@2 K@2 L@2 M@2 N O P@2 ~ Q A B A B R@2 S@2 T@2 U@2 V@2 W X Y@2 Z AA AB AC AD@2 AE AF AG
  AH AI@2 AJ AK AL@2 AM AN AO@2 AP@2 AL@2 AM AN AO@2 AQ@2 AC AR AS AT AU@2 AV@2 A B AW AX@2 R@2 S@2 AY@2 AZ@2 V@2 BA X
  BB@2 BC AA AB AC AD@2 AE AF AG AH AI@2 AJ AK AL@2 AM AN AO@2 AP@2 AL@2 AM AN AO@2 AQ@2 AC AR AS AT AU@2 BD ~@3 BE@2 BF
  BG BH@2 BI@2 BE@2 BF BG BH@2 BJ@2 BK BL BK BL BM@4
>`.pickRestart({
  A: "[b3,d4,g4]@3 [b3,d4]@3 [b3,d4,a4]@2, ~@3 g4@5", B: "[b3,d4,g4]", C: "[b3,d4,g4]@15 ~", D: "[d4,f#4]",
  E: "[a3,b3,d4,f#4,a4]", F: "[a3,d4,e4,f#4]", G: "[c4,d4,e4,g4]@8 [a3,d4,f#4]@7 ~",
  H: "[b3@3 b3 [d4,g4]@2 [d4,g4]@2, g3, [d4,g4]@4 b3 ~ b3 ~]/2", // G5
  I: "[b3@5 ~ a3!2, [g2,g3,g4], [a3,d4]@3 d4, ~@10 b3@3 ~@3, ~@11 d3@5]/2", // G D5
  J: "[a3@3 a3 a3 ~ a3!2, b2, b3@10 a3 f#3@5, f#3@2 [d4,f#4] [b3,d4,f#4], d4 a4]/2", // D Bm
  K: "[g3@4 ~@2 g3!2, [c2,d4], [c4,e4]@3 [c4,e4], ~@2 g3 ~, ~@11 e3@2 ~@3]/2", // Csus2 C
  L: "[g3@6 ~@7 d#3@3, c4@3 g4, d#3@11 ~ [g3,c4]@2 ~@2, ~ d#4]/2", // C5
  M: "[~@13 d3@3, d2, d4@3 [d4,g4], d3@11 d3@2 ~@3, g4@3 b3 g4@2 b3 ~]/2", N: "d4!2, f2, f3 ~@3",
  O: "~@3 e3, ~ [g#3,b3]", P: "[~@12 e3 ~ e3@2, a1@31 ~, ~@16 e4@11 ~@5, ~@11 a2@2 a2@3, ~@3 [a3,c4]]/2",
  Q: "~@8 c4@4 [a3,c4,d4]@3 ~, ~@8 a4@7 ~", R: "[b3@5 ~ a3!2, [g3,g4], [a3,d4]@3 d4, ~@10 b3@3 ~@3, ~@11 d3@5]/2",
  S: "[a3@3 a3 a3 ~ a3!2, b3@11 f#3@5, f#3@5 a3 [b3,d4,f#4]@2, d4 a4, ~@2 [d4,f#4] ~]/2", // Bm D
  T: "[g3@8 ~@2 e3 ~@3 g3@2, d4, [c4,e4]@3 [c4,e4], ~@4 g3@2 g3 ~, ~@11 e3@2 e3@3]/2", // C
  U: "[g3@6 ~@7 d#3@3, c4@3 g4, d#3@11 d#3@2 ~@3, ~@3 g3@2 g3 [g3,c4] ~, ~ d#4]/2", // C5
  V: "[b3@3 ~@4 b3, d4@3 [d4,g4], d3@11 d3@2 d3@3, g4@2 g4 ~, ~@3 b3@2 b3!2 ~]/2", // G5
  W: "f3 ~@2 f3, [a3,b3], d4!2, ~ f3@2 ~", X: "~@2 e3!2, c4, ~ [g#3,b3]",
  Y: "[e3@2 e3@4 ~@6 e3 ~ e3@2, a3@3 [a3,c4], c4@8 ~@8 e4@11 ~@5, ~@11 a2@2 a2@3]/2", Z: "g3@11 ~@5",
  AA: "~@3 d#4, c4, d#4@3 ~, ~ f#4", AB: "[g3,b3,e4]", AC: "[g3,c4,e4]",
  AD: "[[a3,e4,g4]@11 ~ [g3,a3,c4,g4]@4, ~@11 e3@5]/2", AE: "[b3,e4]", AF: "[b3,d#4] [d#3,g3,a3,b3,d#4]",
  AG: "[e2,e3]@3 [e2,e3], [b3,e4]", AH: "[c2,c3]@3 [c2,c3], [c4,e4]",
  AI: "[[a2,g3,a3,c4,d4]@14 ~@2 [g3,a3,c4,d4]@15 ~, a1@31 ~, ~@7 a2@9]/2", AJ: "[a3,c4,d4]",
  AK: "[c4,d4,e4,g4] [d4,e4,f#4,a4]", AL: "[[b3,d4]@3 [b3,d4,a4], g4]/2", AM: "[d4,e4,g4]",
  AN: "g4@10 ~@3 a4@3, [d4,e4], ~@5 g4@3", AO: "[~@3 [a3,d4], [e4,f#4,a4]]/2",
  AP: "[[a3,e4,f#4]@3 [a3,e4,g4]@3 [e4,f#4,a4]@4 [d4,e4,g4]@3 [e4,f#4,a4]@3]/2", // F#m7 A7 F#m7 Em7 F#m7
  AQ: "[[a3,e4]@3 [a3,e4,g4]@3 [a3,e4,f#4,a4]@10, [d4,f#4]@13 ~@19]/2", AR: "[g3,c4,d4,e4]",
  AS: "[a3,d4] [a3,d4,g4], a4", AT: "[a3,d4,f#4]@8 [a3,d4,g4]@7 ~", AU: "[c4!2 e4 [e4,g4], g3, e4 c4]/2",
  AV: "[[d4,g4,a4]@12 [d4,g4,a4,d5]@19 ~]/2", AW: "[b3,d4,e4,g4]@3 [b3,d4,e4,g4]@3 [b3,d4,e4,a4]@2",
  AX: "[[b3,d4,e4,g4] [g3,c4,d4]@7]/2", // Em7 Gsus4
  AY: "[~@10 e3 ~ g3@2 g3@2, d4, [c4,e4]@3 [c4,e4], g3@2 g3 ~, ~@6 e3@4 ~ e3@2 ~@3]/2", // C
  AZ: "[g3@3 ~@4 c4, c4@3 g4, d#3@11 d#3@2 d#3@3, ~@3 g3@2 g3 [g3,c4] ~, ~ d#4]/2", BA: "d4@2 ~ f3, [a3,b3], f3 ~ d4@2",
  BB: "[e3@2 e3@4 ~@6 e3 ~ e3@2, a3@3 [a3,c4], c4@4 ~@2 e3@4 ~ a2@2 a2@3, ~@16 e4@11 ~@5]/2", BC: "g3@11 ~ g3@4",
  BD: "[d4,g4,a4]@3 ~@5", BE: "[[c#4,e4]@3 [c#4,e4,b4], a4]/2", BF: "[e4,f#4,a4]",
  BG: "a4@10 ~@3 b4@3, [e4,f#4], ~@5 a4@3", BH: "[~@3 [b3,e4], [f#4,g#4,b4]]/2",
  BI: "[[f#4,g#4,b4]@3 [f#4,g#4,b4]@3 [f#4,g#4,b4]@4 [e4,f#4,a4]@3 [f#4,g#4,b4]@3, e2@5 ~@3]/2", // G#m7 F#m7 G#m7
  BJ: "[[b3,f#4]@3 [b3,f#4,a4]@3 [b3,f#4,g#4,b4]@10, [e4,g#4]@13 ~@19]/2", // B5 B7 G#m7 E
  BK: "[c#4,e4,a4]@3 [c#4,e4]@3 [c#4,e4,b4]@2, ~@3 a4@5", BL: "[c#4,e4,a4]",
  BM: "[[c#4,e4,a4]@6 [c#4,e4]@6 [c#4,e4,b4]@5 [c#4,e4,a4]@40 ~@7, ~@6 a4@11 ~@47]/4", // A C#m C#m7 A
})).s("gm_piano").gain(0.54).pan(0.4)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@11 A ~ B ~@2 C@2 D@2 E A F G H@2 I J ~@5 B ~@2 K@2 ~ L ~@3 M N@2 O P ~@2 Q@2 R S ~@36 B ~@3 T ~ U ~@2 V M W@2 X P
  ~@2 Q@2 R S ~@56
>`.pickRestart({
  A: "~ b3 ~ b3", B: "~@5 b3@3", C: "[~@6 e3@4 e3 ~@2 e3@3]/2", D: "[~@6 g3@4 ~ d#3@2 ~ [g3,c4]@2, d#2, ~@5 g3 ~@2]/2",
  E: "b3@3 ~", F: "~ f3@2 f3, [a3,b3]", G: "[e3,g#3]@2 e3 ~, [e2,c4]",
  H: "[e3 ~@2 e3@2 e3 ~@2, a3@3 ~, c4 c4@2 ~, ~ e3@2 ~@5]/2", I: "g3@11 ~ g3@4, [c2,d#3,c4]",
  J: "g3@4 g3@11 ~, d2@15 ~, d4@3 ~, c4 ~", K: "[~@3 e3@2 ~@3]/2", L: "~@3 [g3,c4]", M: "[e3,g#3] ~",
  N: "[~@3 e3@2 e3 ~@2, ~ c4@2 ~]/2", O: "~@3 g3, [d#3,c4]", P: "f#3", Q: "[c4@23 ~@9]/2", R: "a3", S: "a3 ~",
  T: "~@5 e3@3", U: "~@3 g3", V: "~ f3@2 ~", W: "[~@5 e3 ~@2, ~ c4@2 ~]/2", X: "[d#3,c4]",
})).s("gm_piano").gain(0.27).pan(0.4)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A@2 B@2 C@2 D@3 E ~@12 F G H@2 I J K@4 L@4 M@2 N@2 O@2 F G H@2 P Q R S T@4 U@6 V@4 W@2 X@2 Y@4 W@2 Z@2 AA@4 AB AC@3
  B@2 AD@3 L@4 M@2 N@2 O@2 F G H@2 P Q R S AE@4 U@6 V@4 W@2 X@2 Y@4 W@2 Z@2 AA@4 AB AF AG@4 AH@4 AI@2 AJ@2 AK@4 AL@2
  AM@2 AN@8
>`.pickRestart({
  A: "[g2,g3,a3,b3,d4,g4]/2", B: "[b3,d4]/2", C: "[d4,e4,g4]/2", D: "[a3,d4,f#4]/3", E: "[c4,e4,g4] [d4,f#4]",
  F: "[b3,d4]", G: "c4 b3, g#3", H: "[a3,c4]/2", I: "c4", J: "a3", K: "[b3,d4]/4", L: "[[b3,g4]@2 ~ a4, d4, ~ f#4]/4",
  M: "[c4,e4]/2", N: "[g4@3 a4, d#4]/2", O: "[d4,g4]/2", P: "[g3,c4]", Q: "a4 f#4, [c4,d#4]", R: "[e4,b4]",
  S: "[g4,c5]", T: "[[c4,a4]@32 e4@16 ~@8 b3@7 ~, a3@7 ~, e6@3 d#4]/4", U: "[b4@16 c5@16 ~@48 d2@15 ~, g4, ~ d5@2]/6",
  V: "[d4 [e2,e4], g4, g1@23 ~@41]/4", W: "[b1,f#4,a4]/2", X: "[d2@5 ~@10 a4@17, [a3,d4]]/2",
  Y: "[g1@23 ~@9 e2@32, [g4,b4]]/4", Z: "[~@15 a4@17, [a3,d4]]/2",
  AA: "[c4@16 g4@15 ~ a4@8 g4@8 f#4@8 g4@8, e4@31 d4@33]/4", AB: "[a3,c4]", AC: "[c4 ~ [d4,a4]@4, e4 ~@2, ~ g4@5]/3",
  AD: "[[d4,e4,g4]@19 ~ [d4,e4,g4,a4,d5]@28]/3", AE: "[[c4,a4]@32 e4@16 ~@8 b3@7 ~, a3@7 ~, ~@3 [d#4,d#6]]/4",
  AF: "c4 g4, e4", AG: "[d2,c4,d4,e4,g4,a4]/4", AH: "[e4 [f#2,f#4], a4, a1@23 ~@41]/4", AI: "[c#2,g#4,b4]/2",
  AJ: "[e2,b3,e4]/2", AK: "[a1@32 f#2@31 ~, [a4,c#5]]/4", AL: "[g#4,b4]/2", AM: "[~@15 b4@17, [b3,e4]]/2",
  AN: "[a3@32 f#4@32 ~@17 [b4,c#5]@40 ~@7, e6@121 ~@7, c#4@64 [e4,a4]@57 ~@7]/8", // Bsus2 A5
})).s("gm_synth_strings_1").gain(0.27).pan(0.4)

// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note("<~ A ~@24 B C ~@22 D@2 ~ E F@2 ~@51 G@3 ~ F@2 ~@54>".pickRestart({
  A: "[d6,d7]", B: "g3", C: "d4", D: "[[g4,d5]@31 ~]/2", E: "d#6", F: "e6/2", G: "[[g4,d5]@31 ~@17, e6]/3",
})).s("gm_synth_strings_1").gain(0.16).pan(0.4)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@2 A@4 B@2 ~ C@3 ~@15 D@7 ~@13 E@3 ~@8 F@6 G@2 ~@2 H@4 G@2 ~@2 I J B@2 I J ~ K@5 L@3 ~@13 E@3 ~@8 F@6 G@2 ~@2 H@4 G@2
  ~@2 I J B@2 I J ~@4 M@4 N@2 O@2 P Q R@4 S T@5 ~@4
>`.pickRestart({
  A: "[[g3,d4,g4]@31 g3 g4@6 ~@2 g4@24, g2@19 ~@12 e2@33, ~ d4]/4", B: "b2/2", C: "[~ g3@2, ~@7 g4@17, ~@5 d4@11]/3",
  D: "[~@16 [d4,g4]@6 g4@4 ~@2 g4 a4@3 ~@16 [d4,g4]@6 g4@4 ~@2 g4 a4@3 ~@16 g3@31 ~, ~@15 [g2,g3]@7 d4@24 ~ [g2,g3]@7 d4@24 g4@33 ~, ~@79 d4@32 ~]/7", // G5 G
  E: "[~@2 c4, ~@15 [e3,b3]@16 ~@17, ~@16 e4@31 ~]/3", // E5
  F: "[[d2,d3]@31 ~ [d4,g4]@31 ~ [d4,g4]@31 ~, ~@31 [g2,g3]@32 g3@31 ~@2]/6", G: "[[d4,f#4]@31 ~]/2",
  H: "[[d4,g4]@31 ~ [d4,g4]@31 ~, ~@31 g3@31 ~@2]/4", I: "a2", J: "c3",
  K: "[~@16 [d4,g4]@6 g4@4 ~@2 g4 a4@3 ~@16 [d4,g4]@6 g4@4 ~@2 g4 a4@3 ~@16, ~@15 [g2,g3]@7 d4@24 ~ [g2,g3]@7 d4@13 ~@13]/5", // G5 G
  L: "[~@16 g3@31 ~, ~@14 g4@33 ~, ~@15 d4@32 ~]/3", M: "[a4@31 ~ [e4,a4]@31 ~, ~@31 a3@31 ~@2]/4",
  N: "[[e4,g#4]@31 ~]/2", O: "[~@2 c#6 ~@14 e4!4 ~ e4!7 ~ e4!2, [e2,e3,b3]@31 ~]/2",
  P: "[a1,d#3] e3@2 a1 ~ a1 d#3 ~ a1 ~ a1 ~ [a1,d#3] ~ a1 ~, [a2,a3]@4 ~@2 [a2,a3]@4 ~@2 [a2,a3]@3 ~, ~@7 e3@4 ~@2 e3@3", // Adim A
  Q: "[a1,a2,e3,a3]@15 ~", R: "[~ [c#2,c#3,g#3], [f#2,f#3,c#4] ~, ~@12 c#6@7 ~@13]/4", S: "[e2,e3]",
  T: "[~@16 [e4,a4]@6 a4@4 ~@2 a4 b4@3 ~@16 [e4,a4]@6 a4@4 ~@2 a4 b4@3 ~@16, ~@15 [a2,a3]@7 e4@24 ~ [a2,a3]@7 e4@24 ~@2]/5", // A5 A
})).s("gm_distortion_guitar").gain(0.38).pan(0.6)

// other · piano
const piano_2 = note("<~@49 A@4 ~@22 B C@2 D E F@2 ~@24 G@4 ~@22 B C@2 H@2 I@2 ~@28>".pickRestart({
  A: "[e4@12 d4@8 c4@6 e4@3 d4@6 c4@3 e4@6 d4@12 ~@8]/4", B: "~@6 a3 b3", C: "[c4@5 e3@2 a3]/2", D: "g3 b3@5 ~@2",
  E: "~@5 a3@2 b3", F: "[~ c4@19 e3@12]/2", G: "[e4@12 d4@8 c4@6 e4@3 d4@6 c4@3 e4@6 d4@8 ~@12]/4",
  H: "[g3 b3@12 a3@2 b3]/2", I: "[c4@20 e3@5 ~@7]/2",
})).s("gm_piano").gain(0.05)

// other · overdriven guitar
const overdriven_guitar = note("<~@28 A@4 ~@119 B@2 ~@14>".pickRestart({
  A: "[~@6 [d4,g4]@9 ~]/2", B: "[d#4 ~ a2 ~ a2 ~ d#4 ~ a2 ~ a2 ~ d#4 ~ a2 ~@17, ~ e4@2 ~@4 e4@3 ~@3 e4@18 ~]/2",
})).s("gm_overdriven_guitar").gain(0.26).pan(0.6)

// other · distortion guitar
const distortion_guitar_2 = note(`<
  ~@2 A@2 B@2 C@4 ~@50 D E F@2 G@4 D E F@2 H@4 I J K L I J M@2 A@2 N@3 ~@28 D E F@2 G@4 D E F@2 G@4 I J K L I J M@2 ~@2
  O P Q@2 R@3 S T@2 U V W X Y Z AA@2 AB@2 AC AD@3
>`.pickRestart({
  A: "[~@10 g2 ~ a2 b2 [d3,d4]@2, [g2,g3]@19 ~@13, ~@8 g4@7 ~]/2", B: "[d4@7 ~ d4@15 ~ f4@7 ~]/2",
  C: "[d4@23 ~ a3@39 ~]/4", D: "g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~", E: "g2@3 ~ g2@3 ~ a2@2 b2@2 d3@4", F: "e3/2",
  G: "[f#3@36 ~@4 e4@3 ~ d4@3 ~ d4@15 ~, ~@9 a3@7]/4", H: "[f#3@36 ~@4 e4@3 ~ d4@3 ~@9 a4@8, ~@9 a3@7, ~@48 d4@15 ~]/4",
  I: "~ c4", J: "e4 g4", K: "a4 g4", L: "f#4 g4", M: "a4/2", N: "[d4@19 ~ d4@27 ~]/3", O: "a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~",
  P: "a2@3 ~ a2@3 ~ b2@2 c#3@2 e3@4", Q: "f#3/2", R: "[~@34 c#6 ~@5 b5@8, g#3@3 ~]/3",
  S: "~ a5 f#5 e5 c#5 ~ f#5 e5 c#5 b4 e5 c#5 b4 ~ a4 f#4", T: "[[e4,a4]@2 ~@4 [e4,a4]@2 ~@4 [e4,a4]@11 ~ b4@6 a4 ~]/2",
  U: "b4@3 d5@3 g5@2", V: "c#6", W: "b5@7 a5 b5@6 a5 ~", X: "e5@9 ~ f#5@6", Y: "f#5@10 e5 ~ f#5 g#5 a5 b5", Z: "e5@7 ~",
  AA: "[~@10 a2 ~ b2 c#3 [e3,e4]@2, [a2,a3]@19 ~@13, ~@8 a4@7 ~]/2", AB: "[e4@7 ~ e4@22 ~@2]/2",
  AC: "[e4,a4]@5 ~ [e4,a4]@5 ~ [e4,a4]@4", AD: "[~ [e4,a4]@40 ~@7]/3",
})).s("gm_distortion_guitar").gain(0.47).pan(0.3)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@4 A@2 B@4 ~@74 C@2 D@2 ~@65 E F G H I J K@4 ~@4>".pickRestart({
  A: "[~ d4@7 ~ d4@15 ~ f4@7]/2", B: "[~ d4@23 ~ a3@39]/4", C: "[~@6 [d4,g4]@9 ~]/2", D: "[~@12 [d4,g4]@7 ~@13]/2",
  E: "b4@3 d5@3 g5@2", F: "c#6", G: "~@7 a5 ~ b5@6 a5", H: "e5@9 ~ f#5@6", I: "f#5@9 ~@2 e5 f#5 g#5 a5 b5",
  J: "~ e5@14 ~", K: "[~@6 [e4,a4]@9 ~]/2",
})).s("gm_overdriven_guitar").gain(0.15).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@7 A ~@20 B C B C ~@2 D@2 ~@2 E@2 F@2 G H I@2 J K ~@4 L@2 M@4 ~@33 D@2 ~@2 E@2 F@2 G H I@2 J K ~@4 L@2 M@4 ~@52
>`.pickRestart({
  A: "[d3,a3]@3 ~@3 [d3,a3]@3 ~@3 [d3,a3]@3 ~", B: "~@3 a3", C: "g3@7 ~", D: "[~@4 f#3@4 g3@4 d4@19 ~]/2",
  E: "[~@2 c4 d4@3 c4@2]/2", F: "[[g3,b3]@15 ~]/2", G: "~@3 a3, ~@4 f4@11 ~, ~@8 d4@7 ~",
  H: "[g#3,c4]@7 ~ [g#3,b3]@7 ~", I: "[~ a3 b3 c4@2 e4@3]/2", J: "~@3 g3, ~ d#4@3, ~ c4", K: "~@3 f#3, ~ d#4@3, ~ c4",
  L: "[~@8 e4@4 d#4@4 f#4@15 ~, ~@4 a3@27 ~]/2",
  M: "[~@12 g3@11 ~@5 c4@11 ~@5 g4@19 ~, ~@4 e4@19 ~ e4@15 ~@25, ~@8 b3@15 ~@17 g3@23 ~]/4",
})).s("gm_electric_guitar_clean").gain(0.24)

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

// drums · rim
const rim = s("rim").struct("<~@10 A@18 ~@4 A@17 ~ A@8 ~@31 A@17 ~ A@8 ~@52>".pickRestart({
  A: "~ x",
})).gain(0.47)

// … 76 more lines

More by Pooh