Strudelify

La mia banda suona il rock

Fossati Ivano

KeyF minorTempo120 bpm
0:00/0:00
// La mia banda suona il rock — Fossati Ivano
// 120 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 80 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@4 A B C D E F G H I J G K L J M N G O M O P Q R S P T U V W X C D ~ Y Z AA AB AC Z AD AE AC Z AF Z AG Z AH AI AJ AK
  AL AI AJ AM AN AI AO AK AP AI AJ AQ AN AI AJ AK AL AI AJ AR AS@5
>`.pickRestart({
  A: "~ a2@5 ~ a2@4 ~@5 g2@2 ~ g2@4 ~", B: "~ e2@5 ~ e2@4 a2@2 ~@3 a2@2 ~ a2@4 ~",
  C: "~ a2@4 ~@2 a2@4 ~@3 g2 ~ g2@2 ~ g2@4 ~", D: "~ e2@5 ~ e2@4 ~@2 a2@2 ~@9", E: "~@13 g2@5 ~ g2@5",
  F: "~ e2@4 ~@2 e2@4 a2@2 ~ a2 ~ a2 ~@2 a2@3 ~@2", G: "~ a2@4 a2 ~@5 g2@2 ~@3 g2@2 ~ g2@3 ~ g2",
  H: "~ e2@5 ~ e2@3 ~ a2@2 ~ a2 ~ a2 ~@2 a2@4 ~", I: "~ a2@3 ~@9 g2@5 ~ g2@5",
  J: "~ e2@5 ~ e2@4 a2@2 ~ a2 ~ a2 ~@2 a2@3 ~@2", K: "~ e2@4 ~@2 e2@4 a2 ~ a2 ~@2 a2@2 ~@4 a2@2",
  L: "~@4 a2@3 ~ a2 ~ a2 ~@2 g2@5 ~ g2@5", M: "~ a2@3 ~ a2 ~@5 g2@2 ~@3 g2@2 ~ g2@3 ~ g2",
  N: "~ e2@4 ~@2 e2@3 ~ a2@2 ~ a2 ~ a2 ~@2 a2@3 ~@2", O: "~ e2@4 ~@2 e2@4 a2@2 ~ a2 ~ a2 ~@2 a2@4 ~",
  P: "~ c3@6 g2@2 ~ a2@3 c3@6 d3@3 e3@2", Q: "~ g3@6 d3@2 ~@2 d3 ~ g2@6 gb2@2 ~ f2@2, ~@5 e3 ~@6",
  R: "~ e2@7 b2 ~ d3 ~@2 e3@8 ~@2 ab2, ~@11 g2", S: "~ a2@5 ~ a2@11 ~ a2@2 ~ b2@2",
  T: "~ g3@6 d3@2 ~ e3 d3 ~ g2@6 gb2@2 ~ f2@2", U: "~ e2@7 b2 ~ d3 b2@2 e3 b2@2 e2@3 ~@4 ab2, ~@11 g2",
  V: "~ a2@4 a2@5 a2@6 ~@8", W: "~ a2@4 ~@2 a2@4 ~@5 g2@2 ~ g2@4 ~", X: "~ e2@4 ~@2 e2@4 a2@2 ~@3 a2@2 ~ a2@4 ~",
  Y: "~ ab2@4 ab2@3 ~@5 bb2@3 bb2 ~@2 bb2@3 ~@2", Z: "~ bb2@3 ~ bb2 ~@5 ab2@2 ~@3 ab2@2 ~ ab2@3 ~ ab2",
  AA: "~ f2@5 ~ f2@3 ~ bb2@2 ~ bb2 ~ bb2 ~@2 bb2@3 ~@2", AB: "~ bb2@3 ~@9 ab2@5 ~ ab2@5",
  AC: "~ f2@5 ~ f2@4 bb2@2 ~ bb2 ~ bb2 ~@2 bb2@3 ~@2", AD: "~ f2@4 ~@2 f2@3 ~ bb2 ~ bb2 ~@2 bb2@2 ~@4 bb2@2",
  AE: "~@4 bb2@3 ~ bb2 ~ bb2 ~@2 ab2@5 ~ ab2@5", AF: "~ f2@4 ~@2 f2@4 bb2@2 ~ bb2 ~ bb2 ~@2 bb2@4 ~",
  AG: "~ f2@5 ~ f2@4 bb2@2 ~ bb2 ~ bb2 ~@2 bb2@4 ~", AH: "~ f2@4 ~@2 f2@3 ~ bb2@2 ~ bb2 ~ bb2 ~@2 bb2@3 ~@2",
  AI: "~ db3@6 ab2@2 ~ bb2@3 db3@6 eb3@3 f3@2", AJ: "~ ab3@6 eb3@2 ~@2 eb3 ~ ab2@6 g2@2 ~ gb2@2, ~@5 f3 ~@6",
  AK: "~ f2@7 c3 ~ eb3 ~@2 f3@8 ~@2 a2, ~@11 ab2", AL: "~ bb2@5 ~ bb2@11 ~ bb2@2 ~ c3@2",
  AM: "~ f2@7 c3 ~ eb3 c3@2 f3 c3@2 f2@3 ~@4 a2, ~@11 ab2", AN: "~ bb2@4 bb2@5 bb2@6 ~@8",
  AO: "~ ab3@6 eb3@2 ~ f3 eb3 ~ ab2@6 g2@2 ~ gb2@2", AP: "~ bb2@5 ~ bb2@11 ~ bb2@3 c3@2",
  AQ: "~ f2@7 c3 ~ eb3 c3 ~@2 c3@2 f2@3 ~@4 a2, ~@13 f3@2 ~@7 ab2@2",
  AR: "~ f2@7 c3 ~ eb3 c3 ~ f3 c3@2 f2@3 ~@4 a2, ~@11 ab2", AS: "[~ bb2@4 bb2@5 bb2@108 ~@2]/5",
})).s("gm_acoustic_bass").gain(0.52)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note(`<
  ~@4 A B C ~@2 D E ~@2 D E ~@2 D E ~ E ~ E ~@9 A B C ~@2 F G ~@2 F G ~@2 F G ~ G ~ G ~@29
>`.pickRestart({
  A: "~@14 g2 ~@9", B: "~@14 a2 ~@9", C: "~@11 a2 ~@12", D: "~@23 a2", E: "~@7 a2@3 ~@4 g2 ~@9", F: "~@23 bb2",
  G: "~@7 bb2@3 ~@4 ab2 ~@9",
})).s("gm_acoustic_bass").gain(0.26)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@4 A B C@2 D E F G H I J K L E J G F G F G M N O P Q R S T U V W@2 ~ X Y Z AA AB AC AD AE AF AC Z Y Z Y Z AG AH AI AJ
  AK AL AM AN AG AO AP AJ AK AL AQ AR AG AS AI AJ AK AL AT AU ~@4
>`.pickRestart({
  A: "~ a4@3 ~@4 [c5,c6]@3 ~@3 g5@3 [b4,g5]@2 ~ b4@2 ~ d4, ~ a3@12 [g3,g4]@6 g4@5, ~ e4@6 e4@3 ~ b5@13, ~@5 [a4,a5]@6 b4@6 d5@5 d5@2, ~@5 g5", // C Em G A
  B: "~ [g4,b4]@3 g4 [g4,b4]@2 ~@4 [a4,c5,e5] a5 ~@7 [d5,d6]@3 e4, ~ e3@11 ~@7 [e4,a4]@4 ~, ~ e4@6 e4@5 ~@5 [c5,c6]@7, ~@4 [g4,b4,d5,g5]@2 ~ [b4,b5]@5, ~@10 b3@2 ~ a3@11", // G Am D A5 C G B
  C: "[~@5 c5@2 e5 [c5,e5,a5,c6]@3 [b4,d5]@2 ~ [b4,d5]@3 ~@3 b4@2 ~ d4@2 [g4,b4]@3 g4 b4@2 ~ [g4,b4,d5,g5]@3 b3 ~ [a4,c5,e5,a5]@2 ~@9, ~ a3@11 ~ g3@9 [b4,d5]@3 e4@6 e4@5 ~@12, ~ [a4,c6]@7 ~@3 e5 ~@2 g5@5 g4@6 e3@11 ~ a3 ~@10, ~ c5@3 e5@3 a4@3 ~@3 g4@4 [b4,d5]@3 g5@5 ~@23, ~@2 a5@6 ~@3 b5@14 ~@23]/2", // Am Bm G Am Bm Am Bm
  D: "~@22 d4 ~, ~@13 g3@9 ~@2, ~@19 [g4,b4,d5]@5", // G
  E: "~@7 [e4,g4,b4]@3 ~@4 [a4,c5,e5] ~@4 [a4,c5,e5]@3 e4 ~, ~ e3@9 ~ a3@7 ~@6", // Em Am
  F: "~@7 [a4,c5,e5]@5 ~@7 [g4,b4,d5]@5, ~ a3@8 ~@4 g3@8 ~@3", // Am G
  G: "~@7 [e4,g4,b4]@3 ~@4 [c5,e5] ~@4 [a4,c5,e5]@3 e4 ~, ~ e3@8 ~@2 a3@8 ~@5", // Em C Am
  H: "~ [a3,a4]@2 ~@19 d4 ~, ~ e4 ~@11 g3@9 ~@2, ~@19 [g4,b4,d5]@5", // A G
  I: "~@7 [e4,g4,b4]@3 ~@4 [a4,c5,e5] ~@4 [a4,c5,e5]@3 e4 ~, ~ e3@10 a3@7 ~@6", // Em Am
  J: "~@7 [a4,c5,e5]@6 ~@6 [g4,b4,d5]@5, ~ a3@8 ~@4 g3@8 ~@3", // Am G
  K: "~@7 [e4,g4,b4]@3 ~ a3 ~@4 [c5,e5] ~@5 [a4,c5,e5] ~, ~ e3@8 ~@7 a4@2 ~@6", // Em C Am
  L: "~@4 [a4,c5,e5] ~@3 c5 ~ [a4,c5,e5] ~@11 d4 ~, ~@13 g3@9 ~@2, ~@19 [g4,b4,d5]@5", // Am G
  M: "~ [c4,g4,c5,e5]@4 [g4,c5,e5,g5] ~ c4 ~@9 g4@2 ~ [g4,c5,e5,g5]@3 c4, ~ g5@2 ~@5 c4@10 ~ c4@3 ~@2, ~@8 g4@7 ~@9, ~@10 [c5,e5,g5]@9 ~@5", // C
  N: "~ [g4,b4,d5,g5]@3 ~ [g4,b4,d5,g5] ~ d4 ~@2 [g4,b4,d5,g5]@9 ~ [g4,b4,d5]@4, ~ g3@6 ~ g3@15 ~, ~@19 d4@2 ~@3, ~@10 g5 ~", // G
  O: "~ [e4,g4,b4,d5,e5]@4 [g4,b4,d5,e5] ~@4 [g4,b4,d5,e5]@9 ~ [g4,b4,d5,e5]@3 e4, ~@8 e4@9 ~@2 e4@3 ~@2", // Em7
  P: "~ [a4,c5,e5]@3 ~ [a4,c5,e5] ~ e4 ~@2 [a4,c5,e5]@5 ~ [a4,c5,e5]@3 ~ [a4,c5,e5]@3 e4, ~ a3@6 ~ a3@15 ~, ~@19 e4@2 ~@3", // Am
  Q: "~ [g4,c5,e5,g5]@3 ~ [g4,c5,e5,g5] ~@4 g4@6 ~ g4@2 ~ [g4,c5,e5,g5]@3 c4, ~ c4@4 ~@3 c4@10 ~ c4@3 ~@2, ~@10 [c5,e5,g5]@9 ~@5", // C
  R: "~ [g4,b4,d5,g5]@3 ~ [g4,b4,d5,g5] ~ d4 ~@2 [g4,b4,d5,g5]@9 ~ [g4,b4,d5,g5]@3 d4, ~ g3@6 ~ g3@15 ~, ~@19 d4@3 ~@2", // G
  S: "~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~@4 g4@6 ~ g4@2 ~ [g4,b4,d5]@3 e4, ~ e4@4 ~@3 e4@9 ~@2 e4@4 ~, ~@10 [b4,d5]@9 ~@5", // G Bm
  T: "~ [a3,a4,c5,e5]@3 ~@2 [a3,a4,c5,e5]@2 ~@2 [a4,c5,e5]@2 ~@12, ~@10 a3 ~@13", // Am
  U: "~ a4@3 ~@4 [c5,c6]@3 ~@3 g5@3 [b4,g5]@2 ~ b4 ~@2 d4, ~ a3@12 [g3,g4]@6 g4@5, ~ e4@6 e4@3 ~ b5@13, ~@5 [a4,a5]@6 b4@6 d5@5 d5@2, ~@5 g5", // C Em G A
  V: "~ [g4,b4]@3 g4 [g4,b4]@2 ~@4 a4 [e5,a5] ~@7 [d5,d6]@3 e4, ~ e3@10 c5@2 ~ [b4,b5]@10, ~ e4@6 e4@5 ~@7 [e4,a4]@4 ~, ~@8 [g4,b4,d5,g5]@4 ~@5 [c5,c6]@7, ~@10 b3@2 ~ a3@11", // G A5 D B A5 G C
  W: "[~@5 c5@2 [a4,e5]@2 [c5,e5,a5,c6]@2 [b4,d5]@2 ~ [b4,d5]@3 ~@3 b4@2 ~ d4@2 [g4,b4]@3 g4 b4@2 ~ [g4,b4,d5,g5]@3 b3 ~ [a4,c5,e5,a5]@2 ~@9, ~ a3@11 ~ g3@9 [b4,d5]@3 e4@6 e4@5 ~@12, ~ c6@8 ~@2 b5@14 ~@23, ~ a4@3 e5@3 ~@4 e5 ~ g4@4 [b4,d5]@3 g5@5 ~@23, ~ c5 a5@6 ~@6 g5@5 g4@6 e3@11 ~ a3 ~@10]/2", // A5 Am Bm G Am Bm
  X: "~ [ab4,c5,eb5,ab5]@3 ~ [ab4,c5,eb5,ab5]@2 ~@6 [bb4,db5,f5] [bb4,db5,f5]@5 [bb4,db5,f5]@3 f4 ~, ~@13 bb5@8 ~@3", // Ab Bbm
  Y: "~@7 [bb4,db5,f5]@5 ~@7 [ab4,c5,eb5]@5, ~ bb3@8 ~@4 ab3@8 ~@3", // Bbm Ab
  Z: "~@7 [f4,ab4,c5]@3 ~@4 [db5,f5] ~@4 [bb4,db5,f5]@3 f4 ~, ~ f3@8 ~@2 bb3@8 ~@5", // Fm Db Bbm
  AA: "~ [bb3,bb4]@2 ~@19 eb4 ~, ~ f4 ~@11 ab3@9 ~@2, ~@19 [ab4,c5,eb5]@5", // Bb Ab
  AB: "~@7 [f4,ab4,c5]@3 ~@4 [bb4,db5,f5] ~@4 [bb4,db5,f5]@3 f4 ~, ~ f3@10 bb3@7 ~@6", // Fm Bbm
  AC: "~@7 [bb4,db5,f5]@6 ~@6 [ab4,c5,eb5]@5, ~ bb3@8 ~@4 ab3@8 ~@3", // Bbm Ab
  AD: "~@7 [f4,ab4,c5]@3 ~ bb3 ~@4 [bb4,db5,f5] ~@5 [bb4,db5,f5] ~, ~ f3@8 ~@15", // Fm Bbm
  AE: "~@4 [bb4,db5,f5] ~@3 db5 ~ [bb4,db5,f5] ~@11 eb4 ~, ~@13 ab3@9 ~@2, ~@19 [ab4,c5,eb5]@5", // Bbm Ab
  AF: "~@7 [f4,ab4,c5]@3 ~@4 [bb4,db5,f5] ~@4 [bb4,db5,f5]@3 f4 ~, ~ f3@9 ~ bb3@7 ~@6", // Fm Bbm
  AG: "~ [ab4,db5,f5,ab5]@3 ~ [ab4,db5,f5,ab5] ~ db4 ~@9 ab4@2 ~ [ab4,db5,f5,ab5]@3 db4, ~ db4@4 ~@3 db4@10 ~ db4@3 ~@2, ~@8 ab4@7 ~@9, ~@10 [db5,f5,ab5]@9 ~@5", // Db
  AH: "~ [ab4,c5,eb5,ab5]@3 ~ [ab4,c5,eb5,ab5] ~ eb4 ~@2 [ab4,c5,eb5,ab5]@9 ~ [ab4,c5,eb5]@4, ~ ab3@6 ~ ab3@15 ~, ~@19 eb4@2 ~@3, ~@10 ab5 ~", // Ab
  AI: "~ [f4,ab4,c5,eb5,f5]@4 [ab4,c5,eb5,f5] ~@4 [ab4,c5,eb5,f5]@9 ~ [ab4,c5,eb5,f5]@3 f4, ~@8 f4@9 ~@2 f4@3 ~@2", // Fm7
  AJ: "~ [bb4,db5,f5]@3 ~ [bb4,db5,f5] ~ f4 ~@2 [bb4,db5,f5]@5 ~ [bb4,db5,f5]@3 ~ [bb4,db5,f5]@3 f4, ~ bb3@6 ~ bb3@15 ~, ~@19 f4@2 ~@3", // Bbm
  AK: "~ [ab4,db5,f5,ab5]@3 ~ [ab4,db5,f5,ab5] ~@4 ab4@6 ~ ab4@2 ~ [ab4,db5,f5,ab5]@3 db4, ~ db4@4 ~@3 db4@10 ~ db4@3 ~@2, ~@10 [db5,f5,ab5]@9 ~@5", // Db
  AL: "~ [ab4,c5,eb5,ab5]@3 ~ [ab4,c5,eb5,ab5] ~ eb4 ~@2 [ab4,c5,eb5,ab5]@9 ~ [ab4,c5,eb5,ab5]@3 eb4, ~ ab3@6 ~ ab3@15 ~, ~@19 eb4@3 ~@2", // Ab
  AM: "~ [ab4,c5,eb5]@3 ~ [ab4,c5,eb5] ~@4 ab4@6 ~ ab4@2 ~ [ab4,c5,eb5]@3 f4, ~ f4@4 ~@3 f4@10 ~ f4@3 ~@2, ~@5 [c5,eb5]@5 ~@2", // Ab Cm
  AN: "~ [bb3,bb4,db5,f5]@3 ~@2 [bb3,bb4,db5,f5]@2 ~@2 [bb4,f5]@2 ~@12, ~@10 [bb3,db5] ~@13", // Bbm Bb5 Bbm
  AO: "~ [ab4,c5,eb5,ab5]@3 ~ [ab4,c5,eb5,ab5] ~ eb4 ~@2 [ab4,c5,eb5,ab5]@9 ~ [ab4,c5,eb5,ab5]@3 ~, ~ ab3@6 ~ ab3@15 ~, ~@19 eb4@3 ~@2", // Ab
  AP: "~ [f4,ab4,c5,eb5]@4 [ab4,c5] [eb5,f5] ~@3 [ab4,c5,eb5,f5]@9 ~ [ab4,c5,eb5,f5]@3 f4, ~ f5@3 ~@4 f4@9 ~@2 f4@3 ~@2", // Fm7 Ab Ebsus2 Fm7
  AQ: "~ [ab4,c5,eb5]@3 ~ [ab4,c5,eb5] ~@4 ab4@6 ~ ab4@2 ~ [ab4,c5,eb5]@3 f4, ~ f4@4 ~@3 f4@9 ~@2 f4@4 ~, ~@10 [c5,eb5]@9 ~@5", // Ab Cm
  AR: "~ [bb3,bb4,db5,f5]@3 ~ [bb3,bb4,db5,f5]@3 ~@2 [bb4,db5,f5]@2 ~@12, ~@10 bb3 ~@13", // Bbm
  AS: "~ [ab4,c5,eb5,ab5]@3 ~ [ab4,c5,eb5,ab5] ~ eb4 ~@2 [ab4,c5,eb5,ab5]@9 ~ [ab4,c5,eb5,ab5]@3 ~, ~ ab3@6 ~ ab3@15 ~, ~@19 eb4@2 ~@3", // Ab
  AT: "~ [ab4,c5,eb5]@3 ~ [ab4,c5,eb5] ~@4 ab4@6 ~ ab4@2 ~ [ab4,c5,eb5]@3 f4, ~ f4@4 ~@3 f4@10 ~ f4@3 ~@2, ~@10 [c5,eb5]@9 ~@5", // Ab Cm
  AU: "~ [bb3,bb4,db5,f5]@3 ~@2 [bb3,bb4,db5,f5]@2 ~@2 [bb3,bb4,f5]@2 ~@12, ~@10 db5 ~@13", // Bbm Bb5
})).s("gm_piano").gain(0.76)

// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
  ~@4 A B C D E ~ F G E ~ F H I ~ F G F G F G ~ J ~@2 K ~@3 A B C D ~@2 L M N ~ L O P ~ L M L M L M ~ Q ~@2 R ~@4 Q ~@2
  R ~@4 Q ~@2 R ~@7
>`.pickRestart({
  A: "~@4 a4 ~@5 e4@3 ~@9 b4@2, ~@19 [g3,d4]@5", B: "~@16 e4@3 ~@4 a4", C: "~@5 a4 ~@6", D: "~ g5 ~@3 g4@3 ~@16",
  E: "~@17 d4@3 ~@4", F: "~@4 e4 ~@5 e4 ~@5 d4 ~@7", G: "~@4 b3 ~@9 a4 ~@2 e4 ~@6", H: "~@4 b3 ~@19",
  I: "~@8 a4 ~@8 d4@2 ~@5", J: "~@23 d4", K: "~@7 c4 ~@16", L: "~@4 f4 ~@5 f4 ~@5 eb4 ~@7",
  M: "~@4 c4 ~@9 bb4 ~@2 f4 ~@6", N: "~@17 eb4@3 ~@4", O: "~@4 c4 ~@19", P: "~@8 bb4 ~@8 eb4@2 ~@5", Q: "~@23 eb4",
  R: "~@7 db4 ~@16",
})).s("gm_piano").gain(0.38)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@8 A@2 ~@2 A@2 ~@2 A@2 ~@6 B C D E F G H ~@9 I@2 ~@2 I@2 ~@6 J K L M N O P ~ Q K L M N O P ~ J K L M N O P ~@5
>`.pickRestart({
  A: "[~@13 [b3,d4,g4]@19 ~@16]/2", B: "~ c4 c5@18 ~@4, ~ [e4,g4]@19 ~@4", C: "~ b4@18 ~@5, [d4,g4]@19 ~@5",
  D: "~ g4@23, [b3,e4]@23 ~", E: "~ a4@21 ~ c4, [c4,e4]@11 ~", F: "~ c5@20 ~@3, [e4,g4]@11 ~",
  G: "~ b4@21 ~@2, [d4,g4]@7 ~", H: "~ [e4,g4]@19 ~@4, b3@5 ~", I: "[~@13 [c4,eb4,ab4]@19 ~@16]/2",
  J: "~ db4 db5@18 ~@4, ~ [f4,ab4]@19 ~@4", K: "~ c5@18 ~@5, [eb4,ab4]@19 ~@5", L: "~ ab4@23, [c4,f4]@23 ~",
  M: "~ bb4@21 ~ db4, [db4,f4]@11 ~", N: "~ db5@20 ~@3, [f4,ab4]@11 ~", O: "~ c5@21 ~@2, [eb4,ab4]@7 ~",
  P: "~ [f4,ab4]@19 ~@4, c4@5 ~", Q: "~ db4 db5@18 ~@4, ~ [f4,ab4]@20 ~@3",
})).s("gm_electric_guitar_jazz").gain(0.41)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B A B A C A D E B A D E B A F G C A D A D A D H I J K L M N O A B A D ~ P Q R S T Q U V W Q R Q R Q R X Y Z AA AB AC
  AD AE X AF Z AA AB AC AD AG X Y Z AA AB AC AD AE ~@4
>`.pickRestart({
  A: "~@2 a3 ~@2 a0 ~@2 e2 ~@4 a0 [g3,b3] ~ [g3,b3] ~@2 [g3,b3]@3 ~@2, ~ [g3,b3]@2 ~@4 [d2,a2,g3,b3]@2 ~@15", // G
  B: "~@2 b2@3 [d3,g3,b3] ~@2 [g0,a0] ~ [d3,g3,b3] [e3,a3]@3 e3 ~ [e3,a3,c4] ~@2 [e3,a3,c4]@2 ~ a0 ~, ~ [a2,d3,g3,b3]@2 ~@11 ab0@6 ~@4", // G Gsus2 G A5 Am G
  C: "~@2 b2@3 [d3,g3,b3] ~@2 [g0,a0] ~ [d3,g3,b3] [e3,a3]@3 e3 ~ [e3,a3,c4] ~@2 [e3,a3,c4] ~@2 a0 ~, ~ [a2,d3,g3,b3]@2 ~@11 ab0@6 ~@4", // G Gsus2 G A5 Am G
  D: "~@2 b2@3 [d3,g3,b3] ~@2 [g0,a0] ~ [d3,g3,b3] [e3,a3]@3 ~@10, ~ [a2,d3,g3,b3]@2 ~@21", // G Gsus2 G A5 G
  E: "~@16 [g3,b3] ~@2 [g3,b3]@3 ~@2", // G
  F: "~@2 b2@3 [d3,g3,b3] ~@2 [g0,a0] ~ [d3,g3,b3] [e3,a3] ~@4 [c3,e3,a3] ~@5 [c3,e3,a3] ~, ~ [a2,d3,g3,b3]@2 ~@21", // G Gsus2 G A5 Am G
  G: "~@4 [c3,e3,a3] ~@3 [c3,e3,a3] ~ [c3,e3,a3] ~@5 [g3,b3] ~@2 [g3,b3]@3 ~@2", // Am G
  H: "~@4 [c3,e3,g3] ~@2 c1 [c3,e3] ~@2 c1 ~ [c3,e3,g3]@3 c1 [c3,e3,g3] ~@2 c1 ~ [c3,e3,g3]@2", // C
  I: "~ b0 ~@2 [b2,d3,g3] ~@2 c1 [b2,d3,g3] ~@2 c1 ~ [b2,d3,g3]@3 ~ [b2,d3,g3] ~@2 c1 ~ [b2,d3,g3]@2", // G
  J: "~@8 [g2,b2,d3] ~@4 [g2,b2,d3]@3 ~ [b2,d3] ~@2 c1 ~ [b2,d3]@2", // G Bm
  K: "~ b0 ~@2 [a2,c3,e3] ~@2 a0 [a2,c3,e3] ~@2 b0 ~ [a2,c3,e3] b0 ~@2 [a2,c3,e3]@3 b0 ~ [a2,c3,e3]@2", // Am
  L: "~ b0 ~@2 [c3,e3,g3] ~@2 b0 [c3,e3,g3] ~@2 b0 ~ [e3,g3]@4 c3 ~@2 b0 ~ [c3,e3,g3]@2, ~@13 c3@3 ~@8", // C Em C
  M: "~ b0 ~@2 [b2,d3,g3] ~@2 b0 [b2,d3,g3] ~@2 b0 ~ [d3,g3]@4 b2 ~@2 b0 ~ [b2,d3,g3]@2, ~@13 b2@3 ~@8", // G G5 G
  N: "~ a0 ~@2 [g2,b2,d3] ~@2 b0 ~@3 b0 ~ [b2,d3]@4 g2 ~@2 c1 ~ [g2,b2,d3]@2, ~@13 g2@3 ~@8", // G Bm G
  O: "~ [a2,c3,e3]@2 ~ [b0,c1] ~ [a2,c3,e3]@2 [b0,c1] ~ [a2,c3,e3]@2 ~@12", // Am Cmaj7 Am Cmaj7 Am
  P: "~ [c3,eb3,ab3] ~@4 [c3,eb3,ab3]@2 ~@6 f3 ~ [f3,bb3,db4] ~@2 [f3,bb3,db4]@2 ~ bb0 ~, ~@7 a0@3 ~@2", // Ab Bbm
  Q: "~@2 bb3 ~@2 bb0 ~@2 f2 ~@4 bb0 [ab3,c4] ~ [ab3,c4] ~@2 [ab3,c4]@3 ~@2, ~ [ab3,c4]@2 ~@4 [eb2,bb2,ab3,c4]@2 ~@15", // Ab
  R: "~@2 c3@3 [eb3,ab3,c4] ~@2 [ab0,bb0] ~ [eb3,ab3,c4] [f3,bb3]@3 ~@10, ~ [bb2,eb3,ab3,c4]@2 ~@21", // Ab Absus2 Ab Bb5 Ab
  S: "~@16 [ab3,c4] ~@2 [ab3,c4]@3 ~@2", // Ab
  T: "~@2 c3@3 [eb3,ab3,c4] ~@2 [ab0,bb0] ~ [eb3,ab3,c4] [f3,bb3]@3 f3 ~ [f3,bb3,db4] ~@2 [f3,bb3,db4]@2 ~ bb0 ~, ~ [bb2,eb3,ab3,c4]@2 ~@11 a0@6 ~@4", // Ab Absus2 Ab Bb5 Bbm Ab
  U: "~@2 c3@3 [eb3,ab3,c4] ~@2 [ab0,bb0] ~ [eb3,ab3,c4] [f3,bb3]@2 ~@3 [db3,f3,bb3] ~@5 [db3,f3,bb3] ~, ~ [bb2,eb3,ab3,c4]@2 ~@21", // Ab Absus2 Ab Bb5 Bbm Ab
  V: "~@4 [db3,f3,bb3] ~@3 [db3,f3,bb3] ~ [db3,f3,bb3] ~@5 [ab3,c4] ~@2 [ab3,c4]@3 ~@2", // Bbm Ab
  W: "~@2 c3@3 [eb3,ab3,c4] ~@2 [ab0,bb0] ~ [eb3,ab3,c4] [f3,bb3]@3 f3 ~ [f3,bb3,db4] ~@2 [f3,bb3,db4] ~@2 bb0 ~, ~ [bb2,eb3,ab3,c4]@2 ~@11 a0@6 ~@4", // Ab Absus2 Ab Bb5 Bbm Ab
  X: "~@4 [db3,f3,ab3] ~@2 db1 [db3,f3] ~@2 db1 ~ [db3,f3,ab3]@3 db1 [db3,f3,ab3] ~@2 db1 ~ [db3,f3,ab3]@2", // Db
  Y: "~ c1 ~@2 [c3,eb3,ab3] ~@2 db1 [c3,eb3,ab3] ~@2 db1 ~ [c3,eb3,ab3]@3 ~ [c3,eb3,ab3] ~@2 db1 ~ [c3,eb3,ab3]@2", // Ab
  Z: "~@8 [ab2,c3,eb3] ~@4 [ab2,c3,eb3]@3 ~ [c3,eb3] ~@2 db1 ~ [c3,eb3]@2", // Ab Cm
  AA: "~ c1 ~@2 [bb2,db3,f3] ~@2 bb0 [bb2,db3,f3] ~@2 c1 ~ [bb2,db3,f3] c1 ~@2 [bb2,db3,f3]@3 c1 ~ [bb2,db3,f3]@2", // Bbm
  AB: "~ c1 ~@2 [db3,f3,ab3] ~@2 c1 [db3,f3,ab3] ~@2 c1 ~ [f3,ab3]@4 db3 ~@2 c1 ~ [db3,f3,ab3]@2, ~@13 db3@3 ~@8", // Db Fm Db
  AC: "~ c1 ~@2 [c3,eb3,ab3] ~@2 c1 [c3,eb3,ab3] ~@2 c1 ~ [eb3,ab3]@4 c3 ~@2 c1 ~ [c3,eb3,ab3]@2, ~@13 c3@3 ~@8", // Ab Ab5 Ab
  AD: "~ bb0 ~@2 [ab2,c3,eb3] ~@2 c1 ~@3 c1 ~ [c3,eb3]@4 ab2 ~@2 db1 ~ [ab2,c3,eb3]@2, ~@13 ab2@3 ~@8", // Ab Cm Ab
  AE: "~ [bb2,db3,f3]@2 ~ [c1,db1] ~ [bb2,db3,f3]@2 [c1,db1] ~ [bb2,db3,f3]@2 ~@12", // Bbm Dbmaj7 Bbm Dbmaj7 Bbm
  AF: "~ c1 ~@2 [c3,eb3,ab3] ~@2 db1 [c3,eb3,ab3] ~@2 db1 ~ [c3,eb3,ab3]@3 ~ [c3,eb3,ab3] ~@3 db1 [c3,eb3,ab3]@2", // Ab
  AG: "~ [bb2,db3,f3]@2 ~ [c1,db1] [bb2,db3,f3]@2 ~ [c1,db1] ~ [bb2,db3,f3]@2 ~@12", // Bbm Dbmaj7 Bbm Dbmaj7 Bbm
})).s("gm_electric_guitar_muted").gain(0.64)

// chords · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  A B A B A B A ~@2 B A ~@2 B A ~@2 B A ~ A ~ A ~ C ~@3 D ~ E ~ A B A ~@2 F G ~@2 F G ~@2 F G ~ G ~ G ~ H ~@3 I ~ J ~ H
  ~@3 I ~ J ~ H ~@3 I ~ J ~@5
>`.pickRestart({
  A: "~@2 c4 ~@5 [a3,c4] ~@2 a0 ~@12", B: "~@23 a0", C: "~@8 g3 ~@15", D: "~@17 e3 ~@6", E: "~@8 [b2,d3] ~@15",
  F: "~@23 bb0", G: "~@2 db4 ~@5 [bb3,db4] ~@2 bb0 ~@12", H: "~@8 ab3 ~@15", I: "~@17 f3 ~@6", J: "~@8 [c3,eb3] ~@15",
})).s("gm_electric_guitar_muted").gain(0.4)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@4 A@2 ~@2 B A C ~ B A C ~ B A C ~ C ~ C ~@9 A@2 ~@3 B C ~ B A C ~ B A C ~ C ~ C ~@29
>`.pickRestart({
  A: "~@7 x ~@11 x ~@4", B: "~@19 x ~@4", C: "~@7 x ~@16",
})).gain(0.27)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@3 C D B@2 E F B@2 G H B@2 E B E B I B@3 J B@3 K B@3 C ~ D B E F B@2 G H B@2 E B E B I B@3 J B@3 K B@3 J B@3 L
  B@3 J B@3 M ~@4
>`.pickRestart({
  A: "~@13 x ~@10", B: "~@7 x ~@11 x ~@4", C: "~@10 x!2 ~@12", D: "~@19 x ~@4", E: "~@7 x ~@11 x ~@3 x",
  F: "~ x ~@17 x ~@4", G: "~@7 x ~@8 x ~@5 x ~", H: "~@4 x ~@3 x ~@2 x ~@7 x ~@4", I: "~@4 x!2 ~@6",
  J: "~@7 x ~@6 x ~@9", K: "~ x ~@3 x ~@4 x ~@5 x ~@2 x ~@4", L: "~ x ~@4 x ~@3 x ~@5 x ~@2 x ~@4",
  M: "~ x ~@3 x ~@4 x ~@13",
})).gain(0.54)
// … 115 more lines