Strudelify

Not My Idea

Garbage

KeyA minorTempo100 bpm
0:00/0:00
// Not My Idea — Garbage
// 100 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 96 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Fuzz bass.
setcpm(100/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 · overdriven guitar · "Overdriven Gtr"
const overdriven_guitar = note(`<
  A B C D E F E F ~@12 A B C D E F E F ~@12 A B C D E F E F G H I J K L M N O G H I J K L M N O M N P Q R S T U T U G H
  I J K L M N O G H I J K L M N O M N
>`.pickRestart({
  A: "[a2,e3] ~@3 [a2,e3]@2 [a2,e3]@2 [a2,e3]@3 ~ [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@3 ~ [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2, [a3,e4]@7 ~ [a3,e4]@8 [a3,e4]@8 [a3,e4]@8", // A5
  B: "[a2,e3]@4 [a2,e3]@2 a2@2 [a2,e3]@3 ~ [a2,e3]@2 [a2,e3]@2 [a2,e3,a3,e4]@4 [a2,e3,a3,e4]@2 [a2,e3,a3,e4]@2 [a#2,f3,a#3,f4]@4 [a#2,f3,a#3,f4]@4, [a3,e4]!2 ~@2", // A5 A#5 A5
  C: "[a2,e3]@2 [a2,e3]!2 [a2,e3]@2 [a2,e3]!2 [a2,e3]@2 [a2,e3]!2 [a2,e3]@2 [a2,e3]!2, [a3,e4]!4", // A5
  D: "[a2,e3]@2 [a2,e3]!2 [a2,e3]@2 [a2,e3]!2 [a2,e3]@2 [a2,e3]!2 [a#2,f3,a#3,f4]@2 [a#2,f3,a#3,f4]@2, [a3,e4]@8 [a3,e4]@8 [a3,e4]@9 ~@7", // A5 A#5 A5
  E: "[a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@3 ~ [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [a2,e3]@3 ~ [a2,e3]@2 [a2,e3]@2, [a3,e4]!4", // A5
  F: "[a2,e3]@3 ~ [a2,e3]@2 [a2,e3]@2 [a3,e4]@4 [a2,e3]@2 [a2,e3,a3,e4]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [a#2,f3,a#3,f4]@4 [a#2,f3,a#3,f4]@4, [a3,e4]@8 ~@8 [a3,e4]@9 ~@7", // A5 A#5 A5
  G: "~ [f3,a3,c4] ~@2 c3 ~ c3 ~ [f3,a3,c4] ~@3 c3 ~ [f3,a3,c4] c3 ~@2 [e3,f3,g3,a3,c4] c3 ~ c3 ~ [f3,c4] [a3,b3] ~@2 c3 ~ [f3,c4] a3 ~", // F Fmaj7 F5 Asus2 F5
  H: "c3 ~@3 c3 ~ c3 f3 [a3,c4] ~@3 c3 ~ [f3,a3,c4] c3 ~ f3 [a3,c4] c3 ~ c3 ~ [f3,a3,c4] ~@3 c3 ~ [f3,a3,c4] ~@2", // Am F Am F
  I: "c3 ~@2 c3 ~ c3 ~@2 [f3,a3,c4] ~@3 c3 [f3,a3,c4] ~ c3 ~@2 [f3,a3,b3,c4] c3 ~ c3 ~@2 [f3,a3,b3,c4] ~@2 c3 ~@2 [f3,a3,c4] c3", // F
  J: "~@3 c3 ~@2 c3 ~ [f3,a3,b3,c4,d4] ~@2 c3 ~ [f3,a3,c4] ~ c3 ~ [f3,a3,c4] ~ c3 ~ c3 ~ f3 [a3,c4] ~@3 c3 ~ [f3,a3] ~", // Dm7 F Am F
  K: "c3 ~@3 c3 ~ c3 ~ [f3,a3,c4] ~@3 c3 ~ [f3,a3,c4] c3 ~@2 [f3,a3,c4] c3 ~@2 c3 ~ [f3,a3,c4] ~@3 c3 ~ [f3,a3,c4] ~", // F
  L: "c3 ~@3 c3 ~ c3 ~ [f3,a3,b3,c4] ~@3 c3 ~ [f3,a3,c4] c3 ~@2 [f3,a3,c4] c3 ~ c3 ~@2 [c3,f3,a3,c4] ~ c3 ~ [f3,a3,c4] ~ c3 ~", // F
  M: "[f3,a3,c4] ~@3 c3 ~ c3 ~ [f3,g3,a3,b3,c4] ~@3 c3 ~ [f3,a3,c4] c3 ~@2 [f3,a3,c4] c3 ~ c3 ~@2 [f3,a3,c4] c3 ~ [c3,f3,a3,c4] ~@4", // F
  N: "c3 ~@2 c3 ~ c3 ~ [f3,a3,c4] b3 ~@2 c3 ~ [f3,a3,c4] ~ c3 ~ [f3,a3,b3,c4,d4] ~ c3 ~ c3 ~ [f3,a3,c4] ~@3 c3 ~@2 [f3,a3,c4] c3", // F Dm7 F
  O: "~@3 c3 ~ c3 ~@2 [f3,a3,c4] ~@3 c3 ~ [f3,a3,c4] c3 ~@2 [f3,a3,c4] c3 ~ c3 ~ c3 [f3,a3,c4] ~@7", // F
  P: "[b2,f#3] ~@3 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@3 ~ [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@3 ~ [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2, [b3,f#4]@7 ~ [b3,f#4]@8 [b3,f#4]@8 [b3,f#4]@8", // B5
  Q: "[b2,f#3]@4 [b2,f#3]@2 b2@2 [b2,f#3]@3 ~ [b2,f#3]@2 [b2,f#3]@2 [b2,f#3,b3,f#4]@4 [b2,f#3,b3,f#4]@2 [b2,f#3,b3,f#4]@2 [c3,g3,c4,g4]@4 [c3,g3,c4,g4]@4, [b3,f#4]!2 ~@2", // B5 C5 B5
  R: "[b2,f#3]@2 [b2,f#3]!2 [b2,f#3]@2 [b2,f#3]!2 [b2,f#3]@2 [b2,f#3]!2 [b2,f#3]@2 [b2,f#3]!2, [b3,f#4]!4", // B5
  S: "[b2,f#3]@2 [b2,f#3]!2 [b2,f#3]@2 [b2,f#3]!2 [b2,f#3]@2 [b2,f#3]!2 [c3,g3,c4,g4]@2 [c3,g3,c4,g4]@2, [b3,f#4]@8 [b3,f#4]@8 [b3,f#4]@9 ~@7", // B5 C5 B5
  T: "[b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@3 ~ [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@3 ~ [b2,f#3]@2 [b2,f#3]@2, [b3,f#4]!4", // B5
  U: "[b2,f#3]@3 ~ [b2,f#3]@2 [b2,f#3]@2 [b3,f#4]@4 [b2,f#3]@2 [b2,f#3,b3,f#4]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [c3,g3,c4,g4]@4 [c3,g3,c4,g4]@4, [b3,f#4]@8 ~@8 [b3,f#4]@9 ~@7", // B5 C5 B5
})).s("gm_overdriven_guitar").gain(0.49)

// bass · distortion guitar · "Fuzz bass"
const bass = note("<A B ~@2 C D C D ~@12 A B ~@2 C D C D ~@12 A B ~@2 C D C D ~@20 E F ~@2 G H G H ~@20>".pickRestart({
  A: "~ a1@2 ~@2 a1 ~@14 a1 ~@11", B: "~@21 a1 ~@10", C: "~@14 a1 ~@17", D: "~@13 a1 ~@18",
  E: "~ b1@2 ~@2 b1 ~@14 b1 ~@11", F: "~@21 b1 ~@10", G: "~@14 b1 ~@17", H: "~@13 b1 ~@18",
})).s("gm_distortion_guitar").gain(0.72)

// chords · distortion guitar · "Lead Gtr"
const distortion_guitar = note("<~@4 A@4 ~@16 A@4 B C D E ~@8 A@8 ~@20 F@8 ~@20>".pickRestart({
  A: "[~@8 e4@4 g4@8 e4@8 b4@8 e4@8 g4@8 ~@20 e4@4 g4@7 ~ e4@8 a4@36, a3@2 a3 ~, ~@52 e4@17 ~@59]/4",
  B: "~ f#4@5 ~@2 b4@8 f#4@7 ~ b4@8", C: "f#4@8 b4@8 f#4@7 ~ b4@8", D: "f#4@8 b4@8 ~ f#4@7 b4@7 ~",
  E: "f#4@7 b4@8 ~ f#4@7 ~ b4@8",
  F: "[~@8 f#4@4 a4@8 f#4@8 c#5@8 f#4@8 a4@8 ~@20 f#4@4 a4@7 ~ f#4@8 b4@36, b3@2 b3 ~, ~@52 f#4@17 ~@59]/4",
})).s("gm_distortion_guitar").gain(0.49)

// chords · acoustic guitar steel · "Rhythm"
const acoustic_guitar_steel = note(`<
  ~@8 A B C D E F G H I J K L ~@8 A B C D E F G H I J K L ~@12 M N O P Q R S T U V W X M N O P ~@8 M N O P Q R S T M N O
  P Q R S T M N O P
>`.pickRestart({
  A: "[f3,a3,c4]@4 [f2,a2]@2 c3@2 ~ [a2,c3]@2 ~ [f2,a2,c3] ~ [f2,a2,c3,f3,a3,c4]@2 ~@2 [c3,a3] ~ [g#2,a2,c3,a3] ~@3 [f2,a2,c3]@2 ~@2 [g2,c3]@2 ~@2, [f2,a2,c3]@2 ~@6 [f3,a3,c4]@4 ~@11 c4@6 ~@3, ~@4 f2 ~@4 [f2,f3,c4]@2 ~ [f3,a3]@2 ~@2", // F Am F G# F C5 F F5 …
  B: "g2@2 ~@2 g2@2 c3 ~@2 [e3,g3]@3 [g2,c3]@2 ~ [g2,c3,e3,g3,c4] ~@2 g2 [e3,g3,c4]@4 ~@2 [g2,c3] ~@4 a2 ~, [e3,g3,c4]@7 ~ c4@4 ~@12 [e3,g3,c4]@6 ~@2, c3 ~@8 [g2,c3]@2 ~@8 c3 ~@3 [g2,c3]@2 ~@4 [g2,c3]@2 ~", // Em C5 C C5 C C5
  C: "~ [a2,c3]@2 ~@2 c3 a2 ~@2 [f3,a3,c4]@3 [f2,a2,c3] ~ [f2,a2,c3,f3,a3,c4] ~@3 [f2,f3,c4]@2 [a2,c3,a3]@2 ~@2 [f2,a2,c3]@2 ~@2 [g2,a2,c3] ~@3, ~ [f3,a3,c4]@6 ~@2 a2 ~@8 a3 ~@4 [f3,c4]@4 f2@2 ~@3, ~ f2 ~@2 f2@2 ~@3 [f2,c3]@2 ~@13 a3@5 ~@3", // Am F F5 Am F Am7 F F5
  D: "[g2,c3]@2 ~ g2@2 c3 ~@2 [e3,g3,c4]@3 ~ c3 ~ [g2,c3,e3,g3,c4]@2 ~@2 [e3,g3,c4]@3 g2 c3 ~ [g2,c3]@2 ~@2 [g2,c3]@2 ~@2, [e3,g3,c4]@6 ~@2 [g2,c3]@2 ~ g2@2 ~@5 g2@2 ~@12, ~@18 c3 ~@5 [e3,g3,c4]@7 ~", // C5 C C5 C C5 C
  E: "[f3,a3,c4]@4 [f2,a2,c3]@2 ~@2 [f3,a3,c4]@4 [f2,a2,c3] ~ [f2,a2,c3,f3,a3,c4]@2 ~@2 [c3,a3] a3 [a2,c3]@2 ~@2 c3 ~@3 c3 ~@3, [f2,a2,c3]@2 ~@6 [f2,c3]@2 ~@8 [f2,f3,c4]@3 ~@2 [f2,a2]@2 ~@2 g2@2 ~@3, ~@8 a2 ~@14 [f3,a3,c4]@6 ~@3", // F Am F F5 F
  F: "[e3,g3,c4]@4 g2@2 c3 ~@2 [e3,g3,c4]@3 [g2,c3]@2 [e3,g3,c4] [g2,c3]@2 ~ [e3,g3,c4]@3 c3 g2 ~ [e3,g3,c4]@4 [g2,c3]@2 ~@2, [g2,c3]@2 ~@6 g2@2 ~@8 [g2,c3]@2 ~@4 [g2,c3]@3 ~@5, ~@9 c3@2 ~@21", // C C5 C C5 C C5
  G: "[a2,c3] f2@2 ~ [f2,c3] a2@2 ~@2 a2 ~@2 [f2,a2,c3] ~@2 [f2,a2,c3,f3,a3,c4] ~@2 [f2,a2,c3] [f3,a3,c4] ~ [a2,c3] ~@2 [f2,a2,c3]@2 ~ f2 c3 g2 ~@2, [f3,a3,c4]@5 ~@3 [f3,a3,c4]@5 ~@11 [f3,a3,c4]@5 ~@3, ~@4 [f2,c3] ~@5 f2 ~@5", // Am F5 F Am F F5
  H: "[e3,g3,c4]@4 ~ c3 ~@2 [e3,g3,c4]@3 g2 c3 ~ [e3,g3,c4] [g2,c3]@2 ~ [e3,g3,c4] [g2,c3]@4 ~ [g2,c3]@2 ~@2 [g2,c3]@2 ~@2, c3@2 ~@21 [e3,g3,c4]@6 ~@3, g2 ~@3 g2@2 ~@2 [g2,c3]@2 ~@22", // C C5 C C5 C C5
  I: "[f2,a2,c3]@2 ~@2 [a2,c3]@2 ~@2 [f3,a3,c4]@3 [f2,c3] ~@2 [f2,a2,c3,f3,a3,c4] ~@3 [f2,f3,a3,c4]@2 [a2,c3]@2 ~@2 [f2,f3,a3]@4 [g2,c3] ~@3, [f3,a3,c4]@5 ~@3 c3@2 ~@13 c4@5 ~@4, ~@3 f2@2 ~@2 f2@2 ~@15 a2 ~@7, ~@8 a2 ~@15 c3@2 ~@6", // F Am F F5 F Am F C5 …
  J: "[e3,g3,c4]@4 [g2,c3]@2 ~@2 [g2,c3]@2 ~ [g2,c3]@2 ~ [g2,c3,e3,g3,c4]@2 ~@2 [g2,c3,e3,g3,c4]@2 ~@4 [e3,g3]@4 [g2,c3]@2 ~@2, c3@2 ~@6 [e3,g3,c4]@5 ~@10 c4@6 ~@3, g2 ~@22 [g2,c3]@2 ~@7", // C C5 C Em C5 C C5
  K: "[c3,f3,a3,c4]@4 [f2,a2]@2 c3 ~ [f2,a2,c3]@2 ~@2 [a2,c3] ~ [f2,a2,c3,f3,a3,c4]@2 ~@3 a2@2 c3@2 ~ [a2,c3]@2 ~@2 [g2,a2,c3] ~@3, [f2,a2]@3 ~@5 [f3,a3,c4]@5 ~@10 [f3,c4]@5 ~@4, ~@11 f2@2 ~@5 [f2,f3,a3,c4]@2 ~@3 f2@2 ~@7, ~@6 a3 ~", // F Am F Am Am7 F F5 F
  L: "[g2,c3]@2 ~ g2@2 ~ g2 ~ [e3,g3,c4]@3 [g2,c3]@2 ~ [g2,c3,e3,g3,c4]@2 ~@2 [g2,c3,e3,g3,c4]@3 ~@2 [e3,g3,c4]@4 ~@2 a2 ~@2, [e3,g3,c4]@5 c3@2 ~ [g2,c3]@2 ~@13 [g2,c3]@2 ~@2 g2@2 ~@3, ~@14 c3 ~", // C5 C C5 C C5
  M: "[g3,b3,d4]@4 [g2,b2]@2 d3@2 ~ [b2,d3]@2 ~ [g2,b2,d3] ~ [g2,b2,d3,g3,b3,d4]@2 ~@2 [d3,b3] ~ [a#2,b2,d3,b3] ~@3 [g2,b2,d3]@2 ~@2 [a2,d3]@2 ~@2, [g2,b2,d3]@2 ~@6 [g3,b3,d4]@4 ~@11 d4@6 ~@3, ~@4 g2 ~@4 [g2,g3,d4]@2 ~ [g3,b3]@2 ~@2", // G Bm G A# G D5 G G5 …
  N: "a2@2 ~@2 a2@2 d3 ~@2 [f#3,a3]@3 [a2,d3]@2 ~ [a2,d3,f#3,a3,d4] ~@2 a2 [f#3,a3,d4]@4 ~@2 [a2,d3] ~@4 b2 ~, [f#3,a3,d4]@7 ~ d4@4 ~@12 [f#3,a3,d4]@6 ~@2, d3 ~@8 [a2,d3]@2 ~@8 d3 ~@3 [a2,d3]@2 ~@4 [a2,d3]@2 ~", // F#m D5 D D5 D D5
  O: "~ [b2,d3]@2 ~@2 d3 b2 ~@2 [g3,b3,d4]@3 [g2,b2,d3] ~ [g2,b2,d3,g3,b3,d4] ~@3 [g2,g3,d4]@2 [b2,d3,b3]@2 ~@2 [g2,b2,d3]@2 ~@2 [a2,b2,d3] ~@3, ~ [g3,b3,d4]@6 ~@2 b2 ~@8 b3 ~@4 [g3,d4]@4 g2@2 ~@3, ~ g2 ~@2 g2@2 ~@3 [g2,d3]@2 ~@13 b3@5 ~@3", // Bm G G5 Bm G Bm7 G G5
  P: "[a2,d3]@2 ~ a2@2 d3 ~@2 [f#3,a3,d4]@3 ~ d3 ~ [a2,d3,f#3,a3,d4]@2 ~@2 [f#3,a3,d4]@3 a2 d3 ~ [a2,d3]@2 ~@2 [a2,d3]@2 ~@2, [f#3,a3,d4]@6 ~@2 [a2,d3]@2 ~ a2@2 ~@5 a2@2 ~@12, ~@18 d3 ~@5 [f#3,a3,d4]@7 ~", // D5 D D5 D D5 D
  Q: "[g3,b3,d4]@4 [g2,b2,d3]@2 ~@2 [g3,b3,d4]@4 [g2,b2,d3] ~ [g2,b2,d3,g3,b3,d4]@2 ~@2 [d3,b3] b3 [b2,d3]@2 ~@2 d3 ~@3 d3 ~@3, [g2,b2,d3]@2 ~@6 [g2,d3]@2 ~@8 [g2,g3,d4]@3 ~@2 [g2,b2]@2 ~@2 a2@2 ~@3, ~@8 b2 ~@14 [g3,b3,d4]@6 ~@3", // G Bm G G5 G
  R: "[f#3,a3,d4]@4 a2@2 d3 ~@2 [f#3,a3,d4]@3 [a2,d3]@2 [f#3,a3,d4] [a2,d3]@2 ~ [f#3,a3,d4]@3 d3 a2 ~ [f#3,a3,d4]@4 [a2,d3]@2 ~@2, [a2,d3]@2 ~@6 a2@2 ~@8 [a2,d3]@2 ~@4 [a2,d3]@3 ~@5, ~@9 d3@2 ~@21", // D D5 D D5 D D5
  S: "[b2,d3] g2@2 ~ [g2,d3] b2@2 ~@2 b2 ~@2 [g2,b2,d3] ~@2 [g2,b2,d3,g3,b3,d4] ~@2 [g2,b2,d3] [g3,b3,d4] ~ [b2,d3] ~@2 [g2,b2,d3]@2 ~ g2 d3 a2 ~@2, [g3,b3,d4]@5 ~@3 [g3,b3,d4]@5 ~@11 [g3,b3,d4]@5 ~@3, ~@4 [g2,d3] ~@5 g2 ~@5", // Bm G5 G Bm G G5
  T: "[f#3,a3,d4]@4 ~ d3 ~@2 [f#3,a3,d4]@3 a2 d3 ~ [f#3,a3,d4] [a2,d3]@2 ~ [f#3,a3,d4] [a2,d3]@4 ~ [a2,d3]@2 ~@2 [a2,d3]@2 ~@2, d3@2 ~@21 [f#3,a3,d4]@6 ~@3, a2 ~@3 a2@2 ~@2 [a2,d3]@2 ~@22", // D D5 D D5 D D5
  U: "[g2,b2,d3]@2 ~@2 [b2,d3]@2 ~@2 [g3,b3,d4]@3 [g2,d3] ~@2 [g2,b2,d3,g3,b3,d4] ~@3 [g2,g3,b3,d4]@2 [b2,d3]@2 ~@2 [g2,g3,b3]@4 [a2,d3] ~@3, [g3,b3,d4]@5 ~@3 d3@2 ~@13 d4@5 ~@4, ~@3 g2@2 ~@2 g2@2 ~@15 b2 ~@7, ~@8 b2 ~@15 d3@2 ~@6", // G Bm G G5 G Bm G D5 …
  V: "[f#3,a3,d4]@4 [a2,d3]@2 ~@2 [a2,d3]@2 ~ [a2,d3]@2 ~ [a2,d3,f#3,a3,d4]@2 ~@2 [a2,d3,f#3,a3,d4]@2 ~@4 [f#3,a3]@4 [a2,d3]@2 ~@2, d3@2 ~@6 [f#3,a3,d4]@5 ~@10 d4@6 ~@3, a2 ~@22 [a2,d3]@2 ~@7", // D D5 D F#m D5 D D5
  W: "[d3,g3,b3,d4]@4 [g2,b2]@2 d3 ~ [g2,b2,d3]@2 ~@2 [b2,d3] ~ [g2,b2,d3,g3,b3,d4]@2 ~@3 b2@2 d3@2 ~ [b2,d3]@2 ~@2 [a2,b2,d3] ~@3, [g2,b2]@3 ~@5 [g3,b3,d4]@5 ~@10 [g3,d4]@5 ~@4, ~@11 g2@2 ~@5 [g2,g3,b3,d4]@2 ~@3 g2@2 ~@7, ~@6 b3 ~", // G Bm G Bm Bm7 G G5 G
  X: "[a2,d3]@2 ~ a2@2 ~ a2 ~ [f#3,a3,d4]@3 [a2,d3]@2 ~ [a2,d3,f#3,a3,d4]@2 ~@2 [a2,d3,f#3,a3,d4]@3 ~@2 [f#3,a3,d4]@4 ~@2 b2 ~@2, [f#3,a3,d4]@5 d3@2 ~ [a2,d3]@2 ~@13 [a2,d3]@2 ~@2 a2@2 ~@3, ~@14 d3 ~", // D5 D D5 D D5
})).s("gm_acoustic_guitar_steel").gain(0.56)

// chords · pad warm · "Warm Pad"
const pad_warm = note(`<
  ~@8 A B@3 C D C E C F G E ~@8 A B@3 C D C E C F G E ~@12 H I@3 J K J L J M N L H I@3 ~@8 H I@3 J K J L H I@3 J K J L H
  I@3
>`.pickRestart({
  A: "~ [f3,a3,c4]@14 ~", B: "[[e3,g3]@30 ~@2 [f3,a3]@32 [e3,g3]@31 ~, c3@31 ~]/3", C: "[f3,a3], c3@29 ~@3",
  D: "[c3,e3,g3]", E: "[c3,e3,g3]@31 ~", F: "[e3,g3], c3@29 ~@3", G: "[c3,f3,a3]", H: "~ [g3,b3,d4]@14 ~",
  I: "[[f#3,a3]@30 ~@2 [g3,b3]@32 [f#3,a3]@31 ~, d3@31 ~]/3", J: "[g3,b3], d3@29 ~@3", K: "[d3,f#3,a3]",
  L: "[d3,f#3,a3]@31 ~", M: "[f#3,a3], d3@29 ~@3", N: "[d3,g3,b3]",
})).s("gm_pad_warm").gain(0.64)

// bass · fretless bass · "Clean Bass"
const bass_2 = note(`<
  ~@8 A B C D E F G H I J K L ~@8 A B C D E F G H I J K L ~@12 M N O P Q R S T U V W X U V U V ~@8 M N O P Q R S T M N O
  P Q R S T M N O P
>`.pickRestart({
  A: "~@2 f1@6 f1@4 ~@2 f1@2 ~@2 f1 ~ f1@2 ~@2 f1@7 ~", B: "c2@7 ~ c2@5 ~ c2@2 ~@2 c2@3 ~@3 c2@3 ~ c2 ~@3",
  C: "f1@6 ~@2 f1@5 ~ f1@2 ~@2 f1@2 f1@2 ~@2 f1@3 ~ f1@4, e1 ~@31",
  D: "c2@7 ~ c2@4 ~@2 c2@2 ~@2 c2@3 ~ c2 ~ c2@3 ~ c2@4",
  E: "f1@5 ~@3 f1@4 ~@2 f1@2 ~@2 f1@2 f1@2 ~@2 f1@8, ~@8 e1 ~@9 g1 ~@13", F: "c2@5 ~@3 c2@4 ~@4 c2 ~@3 c2@3 ~ c2@8",
  G: "f1@6 ~@2 f1@5 ~ f1@2 ~@4 f1@12", H: "c2@5 ~@3 c2@4 ~@2 c2@2 ~@4 c2@3 ~ c2@7 ~",
  I: "f1@6 ~@2 f1@5 ~ f1@2 ~@2 f1@14", J: "c2@6 ~@2 c2@5 ~@3 c2 ~@3 c2@12, b1 ~@31", K: "f1@3 ~ f1@2 ~ f1 ~@2 f1@6",
  L: "c2@6 ~@2 c2@4 ~@4 c2@2 ~@2 c2@5 ~@7", M: "~@2 g1@6 g1@4 ~@2 g1@2 ~@2 g1 ~ g1@2 ~@2 g1@7 ~",
  N: "d2@7 ~ d2@5 ~ d2@2 ~@2 d2@3 ~@3 d2@3 ~ d2 ~@3", O: "g1@6 ~@2 g1@5 ~ g1@2 ~@2 g1@2 g1@2 ~@2 g1@3 ~ g1@4, f#1 ~@31",
  P: "d2@7 ~ d2@4 ~@2 d2@2 ~@2 d2@3 ~ d2 ~ d2@3 ~ d2@4",
  Q: "g1@5 ~@3 g1@4 ~@2 g1@2 ~@2 g1@2 g1@2 ~@2 g1@8, ~@8 f#1 ~@9 a1 ~@13", R: "d2@5 ~@3 d2@4 ~@4 d2 ~@3 d2@3 ~ d2@8",
  S: "g1@6 ~@2 g1@5 ~ g1@2 ~@4 g1@12", T: "d2@5 ~@3 d2@4 ~@2 d2@2 ~@4 d2@3 ~ d2@7 ~",
  U: "g1@6 ~@2 g1@5 ~ g1@2 ~@2 g1@14", V: "d2@6 ~@2 d2@5 ~@3 d2 ~@3 d2@12, c#2 ~@31", W: "g1@3 ~ g1@2 ~ g1 ~@2 g1@6",
  X: "d2@6 ~@2 d2@4 ~@4 d2@2 ~@2 d2@5 ~@7",
})).s("gm_fretless_bass").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  A@7 B C D C@10 A@7 B C D C@10 A@7 B C D C D C D C@11 D C@2 A@7 B C D C@7 D C@7 D C@2
>`.pickRestart({
  A: "x!2 ~ x!3 ~ x", B: "x ~ x ~@3 x ~@3 x!2 ~ x ~@2", C: "x ~@8 x!2 ~@5", D: "x ~@4 x ~@2",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<A@7 B A@19 B A@19 B A@27 B A@20>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x ~ x ~@2 x ~ x ~",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct("x!8").gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<~@8 [~ x ~ x]!12 ~@8 [~ x ~ x]!12 ~@8 [~ x ~ x]!20 ~@8 [~ x ~ x]!20>").gain(0.8)

// drums · crash
const crash = s("cr").struct("<~ A ~ A ~ A ~@15 A ~ A ~ A ~@15 A ~ A ~ A ~@23 A ~ A ~ A ~@22>".pickRestart({
  A: "~@6 x!2",
})).gain(0.8)

stack(
  overdriven_guitar, bass, distortion_guitar, acoustic_guitar_steel, pad_warm, bass_2, kick, snare, hihat, open_hat,
  crash
)

More by Garbage