Strudelify
Quiet cover art

Siamese Dream

Quiet

The Smashing Pumpkins

KeyE majorTempo98 bpm
0:00/0:00
// Quiet — The Smashing Pumpkins
// 98 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (5/8 at bar 1, 4/4 at bar 1, 3/4 at bar 60, 4/4 at bar 62, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 3 "Elec Gtr 1 - Dist (Slide)" named as a guitar, played on electric guitar clean (its lead 2 sawtooth patch is not one); ch 5 "Elec Gtr 2 - Dist (Bass)" named as a bass, played on electric bass finger (its lead 2 sawtooth patch is not one)
// note: duplicate parts dropped: ch 4 "Elec Gtr 2 - Dist (Trbl)" distortion guitar (copy of ch 1 "Elec Gtr 1 - Dist (Trbl)" overdriven guitar); ch 2 "Elec Gtr 1 - Dist (Bass)" distortion guitar (copy of ch 5 "Elec Gtr 2 - Dist (Bass)" electric bass finger); ch 6 "Elec Gtr 3 - Dist (Trbl)" distortion guitar (copy of ch 3 "Elec Gtr 1 - Dist (Slide)" electric guitar clean)
// note: Full arrangement: all 86 bars on a 32-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): Elec Gtr 3 - Harmonizer.
setcpm(98/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 · overdriven guitar · "Elec Gtr 1 - Dist (Trbl)"
const overdriven_guitar = note(`<
  ~ A@12 B C B C B C B D A@12 B E@2 F G F H@4 I J K L@2 G F M@4 N@5 O P Q R S T Q U B C B C B C B V@6 W@6
>`.pickRestart({
  A: "[e2,b2] [f#2,c#3]!4 [g2,d3]!4 [a2,e3]!4 [b2,f#3]!3", // E5 F#5 G5 A5 B5
  B: "[c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3] [e2,b2] [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [e2,b2]!2", // C#5 E5
  C: "[c#3,g#3] [b2,f#3]!3 [b2,f#3]@2 [b2,f#3]!3 [a2,e3]!3 [a2,e3]@2 [a2,e3]!2", D: "[c#3,g#3] [b2,f#3]@7 ~@8",
  E: "[~ [c#3,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 ~ [e2,b2]@4 [e2,b2]@4 [e2,b2]@2]/2", // C#5 B5 A5 C#5 E5
  F: "[e2,b2] [c#3,g#3] [b2,f#3]!3 [b2,f#3]@2 [b2,f#3]!3 [a2,e3]!3 [a2,e3]@2 [a2,e3]", // E5 C#5 B5 A5
  G: "[a2,e3] [c#3,g#3]@2 [c#3,g#3]@2 [c#3,g#3] [e2,b2] [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [e2,b2]", // A5 C#5 E5
  H: "[~ [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [c#3,g#3]@2 [c3,g3]@63 b2!28]/4", // A5 C#5 E5 C#5 C5
  I: "b2!3 c3!16 c#3!13", J: "c#3!2 d3!8 d#3!8 e3!8 f3!6",
  K: "f3!2 f#3!4 g3!4 g#3!3 [g#3,a3] a3!3 a#3!4 b3!4 c4!4 c#4!3", // Amaj7
  L: "[c#4 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [c#3,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 ~ [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2]/2", // C#5 E5 C#5 B5 A5
  M: "[~ [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [c#3,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 ~ [e2,b2]@2 [c#3,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@4 [d3,a3]@2, ~@95 [e2,b2]@2 ~@31]/4", // A5 C#5 E5 C#5 B5 A5 C#5 E5 …
  N: "[[d3,a3]@2 [e2,b2]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [e2,b2]@2 [f#2,c#3] [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [e2,b2]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [e2,b2]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [e2,b2]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [a2,e3]@2 [a2,e3]@2 ~ [e2,b2]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [e2,b2]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2, ~@127 [a2,e3]@2 ~@31]/5", // D5 E5 F#5 G5 A5 E5 F#5 G5 …
  O: "[f#2,c#3] [g2,d3]!4 [a2,e3]!3 [e2,b2] [f#2,c#3]!4 [g2,d3]!3", // F#5 G5 A5 E5 F#5 G5
  P: "[g2,d3] [a2,e3]!4 [b2,f#3]!3 [e2,b2,f#4] [f#2,c#3,f#4]!4 [g2,d3,f#4]!3", // G5 A5 B5 Esus2 F#5 Gmaj7
  Q: "[g2,d3,f#4] [a2,e3,f#4]!3 [e2,b2,f#4] [f#2,c#3,f#4]!4 [g2,d3,f#4]!4 [a2,e3,f#4]!3", // Gmaj7 F#m7 Esus2 F#5 Gmaj7 F#m7
  R: "[e2,b2,f#4] [f#2,c#3,f#4]!4 [g2,d3,f#4]!4 [a2,e3,f#4]!3 [e2,b2,f#4] [f#2,c#3,f#4]!3", // Esus2 F#5 Gmaj7 F#m7 Esus2 F#5
  S: "[f#2,c#3,f#4] [g2,d3,f#4]!4 [a2,e3,f#4]!4 [b2,f#3,f#4]!3 [e2,b2,f#4] [f#2,c#3,f#4]!3", // F#5 Gmaj7 F#m7 B5 Esus2 F#5
  T: "[f#2,c#3,f#4] [g2,d3,f#4]!4 [a2,e3,f#4]!3 [e2,b2,f#4] [f#2,c#3,f#4]!4 [g2,d3,f#4]!3", // F#5 Gmaj7 F#m7 Esus2 F#5 Gmaj7
  U: "[e2,b2,f#4] [f#2,c#3,f#4]!4 [g2,d3,f#4]!4 [a2,e3,f#4]!4 [b2,f#3,f#4]!3", // Esus2 F#5 Gmaj7 F#m7 B5
  V: "[[c#3,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 ~ [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [c#3,g#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 ~ [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [c#3,g#3]@4 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@8 [e2,b2]@4 [e2,b2]@4 [e2,b2]@2 [e2,b2]@2 [c#3,g#3]@2, ~@16 [b2,f#3]@2 ~@109 [c#3,g#3]@2 ~@63]/6", // C#5 B5 A5 C#5 E5 C#5 B5 A5 …
  W: "[[b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [c#3,g#3]@3 [c#3,g#3]@4 [c#3,g#3]@2 [e2,b2]@2 [e2,b2]@135 ~@16]/6", // B5 A5 C#5 E5
})).s("gm_overdriven_guitar").gain(0.22)

// bass · electric bass finger · "Elec Gtr 2 - Dist (Bass)"
const bass = note(`<
  A B@12 C D C D C D C E B@12 C F G H I H J@6 K G H I H I L@3 M@4 N O P Q N R O Q B C D C D C D C S@6 T@6
>`.pickRestart({
  A: "~@24 d3 f#3 f3 e3 d#3 c#3 a#2 f#2", B: "[e2,b2,e3] [f#2,c#3,f#3]@4 [g2,d3,g3]@4 [a2,e3,a3]@4 [b2,f#3,b3]@3",
  C: "[c#3,g#3,c#4]@5 [e2,b2,e3]@11", D: "[c#3,g#3,c#4] [b2,f#3,b3]@8 [a2,e3,a3]@7",
  E: "[c#3,g#3,c#4]@2 [b2,f#3,b3]@22 d#3 g3 f#3 f3 e3 d3 b2 g2", F: "~ [c#3,g#3,c#4]@2 [b2,f#3,b3]@16 [a2,e3,a3]@13",
  G: "~ [c#3,g#3,c#4]@10 [e2,b2,e3]@21", H: "~ [c#3,g#3,c#4] [b2,f#3,b3]@8 [a2,e3,a3]@6",
  I: "~ [c#3,g#3,c#4]@5 [e2,b2,e3]@10", // C#5 E5
  J: "[~@3 [c#3,g#3,c#4]@10 [e2,b2,e3]@22 [c#3,g#3,c#4]@2 [b2,f#3,b3]@63 b2@31 c3@16 c#3@15 d3@8 d#3@8 e3@8 f3@6]/6", // C#5 E5 C#5 B5
  K: "~@2 f#3@4 g3@4 g#3@3 a3@4 a#3@4 b3@4 c4@4 c#4@3",
  L: "[~@3 [c#3,g#3,c#4]@2 [b2,f#3,b3]@16 [a2,e3,a3]@14 [c#3,g#3,c#4]@10 [e2,b2,e3]@21 [c#3,g#3,c#4]@2 [b2,f#3,b3]@16 [d3,a3,d4]@12]/3", // C#5 B5 A5 C#5 E5 C#5 B5 D5
  M: "[~@2 [e2,b2,e3]@2 [f#2,c#3,f#3]@8 [g2,d3,g3]@8 [a2,e3,a3]@6 [e2,b2,e3]@2 [f#2,c#3,f#3]@7 [g2,d3,g3]@8 [a2,e3,a3]@6 [e2,b2,e3]@2 [f#2,c#3,f#3]@8 [g2,d3,g3]@8 [a2,e3,a3]@6 [e2,b2,e3]@2 [f#2,c#3,f#3]@8 [g2,d3,g3]@8 [a2,e3,a3]@8 [b2,f#3,b3]@6 [e2,b2,e3]@2 [f#2,c#3,f#3]@8 [g2,d3,g3]@8 [a2,e3,a3]@5]/4", // E5 F#5 G5 A5 E5 F#5 G5 A5 …
  N: "[e2,b2,e3] [f#2,c#3,f#3]@4 [g2,d3,g3]@4 [a2,e3,a3]@3 [e2,b2,e3] [f#2,c#3,f#3]@3", // E5 F#5 G5 A5 E5 F#5
  O: "~ [g2,d3,g3]@4 [a2,e3,a3]@3 [e2,b2,e3] [f#2,c#3,f#3]@4 [g2,d3,g3]@3", // G5 A5 E5 F#5 G5
  P: "~ [a2,e3,a3]@4 [b2,f#3,b3]@3 [e2,b2,e3] [f#2,c#3,f#3]@4 [g2,d3,g3]@3", // A5 B5 E5 F#5 G5
  Q: "~ [a2,e3,a3]@3 [e2,b2,e3] [f#2,c#3,f#3]@4 [g2,d3,g3]@4 [a2,e3,a3]@3", // A5 E5 F#5 G5 A5
  R: "~ [g2,d3,g3]@4 [a2,e3,a3]@4 [b2,f#3,b3]@3 [e2,b2,e3] [f#2,c#3,f#3]@3", // G5 A5 B5 E5 F#5
  S: "[[c#3,g#3,c#4]@2 [b2,f#3,b3]@15 [a2,e3,a3]@14 [c#3,g#3,c#4]@10 [e2,b2,e3]@22 [c#3,g#3,c#4]@2 [b2,f#3,b3]@16 [a2,e3,a3]@14 [c#3,g#3,c#4]@10 [e2,b2,e3]@22 ~ [b2,f#3,b3]@16 [a2,e3,a3]@14 [c#3,g#3,c#4]@10 [e2,b2,e3]@22 [c#3,g#3,c#4]@2, ~@127 [c#3,g#3,c#4]@2 ~@63]/6", // C#5 B5 A5 C#5 E5 C#5 B5 A5 …
  T: "[[b2,f#3,b3]@16 [a2,e3,a3]@14 [c#3,g#3,c#4]@9 [e2,b2,e3]@137 ~@16]/6", // B5 A5 C#5 E5
})).s("gm_electric_bass_finger").gain(0.14)

// chords · guitar harmonics · "Elec Gtr 5 - Dist (Hrmx)"
const guitar_harmonics = note("<~@29 A@3 B ~@48 C@3 ~@2>".pickRestart({
  A: "a#3@2 a#3@2 a3@2 a3@2 g#3@2 g#3@2 f#3@2 ~ d3@2 d3@2 b2@2 b2@2 ~ b3@2 b3@2 b3@2 b3@2, ~@7 e3 ~@8",
  B: "a#3@2 a#3@2 a3@2 g#3@2 f#3@2 ~ d3@2 d3@2 b2@2 b2@2 g#2@2 g#2@3 ~@8, ~@5 e3 ~@10",
  C: "[~@29 e2@2 e2@2 ~ e2@2 e2@3 ~@2 e3@2 e3@3 e3!3 e3@2 e3 ~ e3!3 e3@2 e3@2 e3 e3@2 e3@3 ~ e3@2 ~ e3@4 ~@22, ~@36 e3 ~@2 e3@2 ~@11 e3@2 ~@42, ~@20 e2 ~@27]/3",
})).s("gm_guitar_harmonics").gain(0.24)

// chords · guitar harmonics · "Elec Gtr 5 - Dist (Hrmx)" · soft notes
const guitar_harmonics_soft = note("<~@82 A@2 ~@2>".pickRestart({
  A: "[~@4 g3 e3 ~@5 g#2@2 ~ c#3 ~ g3 [g#3,a#3]@2 [c4,c#4] ~ c#4 [a#3,c4] g3 ~ e3 ~ a#2 [g2,c3] [e2,g#2]@2 g2 a#2 ~ e3 [c3,g3]@2 [e3,a#3] c#4 e4 ~ a#3 ~ g3 ~ c#3 ~ e3@2 c3@2 g#2@2 e2@2 ~@9, ~@6 c3@2 [g#2,a#2]@2 e2@2 ~@19 e2@2 [g#2,c#3]@2 ~@9 [e3,c4]@2 [a#2,g#3]@2 ~@16, ~@7 c#3@2 g2@2 g2 ~ [a#2,c3]@2 ~@5 e4@2 ~@2 g#3@2 c#3@2 ~@10 g#3@2 [c4,c#4]@2 e4@2 ~@20]/2", // G#sus2 C#maj7 A#sus2 C5 E C5 Edim G#sus2 …
})).s("gm_guitar_harmonics").gain(0.16)

// bass · electric bass pick · "Bass Gtr"
const bass_2 = note(`<
  A B@12 C D C D C D C E B@12 C F@2 G H G I@4 J K L M@2 H G N@4 O@5 P Q R S T P R B C D C D C D C U@6 V@6
>`.pickRestart({
  A: "~@24 d2 f#2 f2 e2 d#2 c#2 a#1 f#1", B: "e1 f#1!4 g1!4 a1!4 b1!3", C: "c#2@2 c#2@2 e1!2 e1@4 e1@2 e1@2 e1!2",
  D: "c#2 b1!3 b1@2 b1!3 a1!3 a1@2 a1!2", E: "c#2@2 b1@22 d#2 g2 f#2 f2 e2 d2 b1 g1",
  F: "[~ c#2@2 b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 b1@2 a1@2 a1@2 a1@2 a1@4 a1@2 a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 ~ e1@4 e1@4 e1@2]/2",
  G: "e1 c#2 b1!3 b1@2 b1!3 a1!3 a1@2 a1", H: "a1 c#2@2 c#2@2 e1!2 e1@4 e1@2 e1@2 e1",
  I: "[~ a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 e1@2 e1@2 c#2@2 b1@63 b1!28]/4", J: "b1!3 c2!16 c#2!13",
  K: "c#2!2 d2!8 d#2!8 e2!8 f2!6", L: "f2!2 f#2!4 g2!4 g#2!3 [g#2,a2] a2!3 a#2!4 b2!4 c3!4 c#3!3",
  M: "[c#3 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 e1@2 e1@2 c#2@2 b1@2 b1@2 b1@2 b1@4 ~ b1@2 b1@2 b1@2 a1@2 a1@2 a1@2 a1@4 a1@2]/2",
  N: "[~ a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 e1@2 e1@2 c#2@2 b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 b1@2 a1@2 a1@2 a1@2 a1@4 a1@2 a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 ~ e1@2 c#2@2 b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 b1@2 d2@2 d2@2 d2@2 d2@4 d2@2, ~@95 e1@2 ~@31]/4",
  O: "[d2@2 e1@2 f#1@2 f#1@2 f#1@2 f#1@2 g1@2 g1@2 g1@2 g1@2 a1@2 a1@2 a1@2 e1@2 f#1 f#1@2 f#1@2 f#1@2 g1@2 g1@2 g1@2 g1@2 a1@2 a1@2 a1@2 e1@2 f#1@2 f#1@2 f#1@2 f#1@2 g1@2 g1@2 g1@2 g1@2 a1@2 a1@2 a1@2 e1@2 f#1@2 f#1@2 f#1@2 f#1@2 g1@2 g1@2 g1@2 g1@2 a1@2 a1@2 a1@2 e1@2 e1@2 e1@2 e1@2 e1@2 f#1@2 f#1@2 f#1@2 f#1@2 g1@2 g1@2 g1@2 g1@2 a1@2 a1@2 ~ e1@2 f#1@2 f#1@2 f#1@2 f#1@2 g1@2 g1@2 g1@2 g1@2 a1@2 a1@2 a1@2 e1@2 f#1@2 f#1@2 f#1@2, ~@127 a1@2 ~@31]/5",
  P: "f#1 g1!4 a1!3 e1 f#1!4 g1!3", Q: "g1 a1!3 e1!5 f#1!4 g1!3", R: "g1 a1!3 e1 f#1!4 g1!4 a1!3",
  S: "e1 f#1!4 g1!4 a1!3 e1 f#1!3", T: "f#1 g1!4 a1!3 e1!5 f#1!3",
  U: "[c#2@2 b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 ~ a1@2 a1@2 a1@2 a1@4 a1@2 a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 e1@2 e1@2 c#2@2 b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 b1@2 a1@2 a1@2 a1@2 a1@4 a1@2 a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 e1@2 e1@2 ~ b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 b1@2 a1@2 a1@2 a1@2 a1@4 a1@2 a1@2 c#2@4 c#2@4 e1@2 e1@2 e1@8 e1@4 e1@4 e1@2 e1@2 c#2@2, ~@16 b1@2 ~@109 c#2@2 ~@63]/6",
  V: "[b1@2 b1@2 b1@2 b1@4 b1@2 b1@2 b1@2 a1@2 a1@2 a1@2 a1@4 a1@2 a1@2 c#2@3 c#2@4 e1@2 e1@2 e1@135 ~@16]/6",
})).s("gm_electric_bass_pick").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  A B@3 C B@3 D B@3 E F G F G F G F ~ B@3 D B@3 H I@3 E F J K L M L N ~@2 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG
  AH AE AI AJ AK E F AL F AL F AL AM AN AO AP AO AQ AR AS AT ~@4
>`.pickRestart({
  A: "x", B: "~@4 x ~@4 x ~@2 x ~@3", C: "~@4 x ~ x!10", D: "~@4 x ~@4 x ~@2 x ~ x!2", E: "~@8 x ~@5 x!18",
  F: "~ x!2 ~@3 x ~", G: "~@4 x ~@7 x ~ x!2", H: "~@4 x ~@3 x!2 ~@2 x ~@3", I: "~ x!3",
  J: "~@9 x ~@9 x ~@5 x ~@3 x ~ x", K: "~@5 x ~@3 x ~@16 x ~@5", L: "~@5 x ~@4 x ~@2 x ~ x", M: "x ~@2 x ~ x ~@7 x ~@2",
  N: "~ x ~@5 x ~@3 x ~@15 x ~@4", O: "~@4 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  P: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~", Q: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  R: "~@2 x ~@3 x ~@3 x ~@2 x!2 ~ x!16", S: "x ~@4 x ~@3 x ~@15 x ~@6", T: "~@9 x ~@16 x ~@3 x ~",
  U: "~@3 x ~ x ~@7 x ~@2", V: "~@5 x ~@7 x ~ x", W: "~@6 x ~@3 x ~@16 x ~@4", X: "~@11 x ~@15 x ~@3 x",
  Y: "~@7 x ~@3 x ~@15 x ~@3 x", Z: "x!2 ~@3 x ~@3 x!7", AA: "x ~@4 x ~@4 x ~@5", AB: "~ x ~@9 x ~@13 x ~@6",
  AC: "~@3 x ~@13 x ~@3 x ~ x ~ x ~ x ~ x ~ x", AD: "~ x ~ x ~ x ~ x ~@9 x ~@9 x ~@4", AE: "~@4 x ~@4 x ~@6",
  AF: "x ~@4 x ~@6 x ~ x!2", AG: "x!8 ~@4 x ~@3", AH: "~ x ~@6 x ~@4 x ~@2", AI: "x ~ x!10 ~@4", AJ: "x!2 ~ x",
  AK: "x ~ x!2", AL: "~@2 x ~@3 x!2", AM: "~@2 x ~ x ~@7 x ~ x!2", AN: "x ~ x ~@5 x ~@5 x ~ x!2 ~@5 x ~@3 x ~ x ~@2",
  AO: "~@3 x ~@3 x ~@15 x ~@8", AP: "~@7 x ~@15 x ~@3 x ~@4", AQ: "~@3 x ~@3 x!2 ~@2 x ~ x ~@2",
  AR: "~ x ~ x ~@7 x ~@3 x", AS: "x ~@5 x ~@3 x ~ x ~ x ~@3 x ~@2 x ~ x ~@8", AT: "~ x ~@3 x ~@26",
})).gain(0.22)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@42
  [~@5 x!3 ~ x!2 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~]
  [x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!2 ~ x]
  [x!2 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x]
  [x!2 ~ x!3 ~ x!3 ~ x!2 ~@2 x ~@16]
  ~@40
>`).gain(0.11)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~ A@4 ~@7 B C A C A C A C ~@12 B C D E F E F G H ~@5 I J E F G K G H L D@3 A@9 C A C A C A C A M N M O P Q ~@5
>`.pickRestart({
  A: "x!8", B: "~@4 x!4", C: "~@8 x ~ x ~ x ~ x!2", D: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  E: "~@9 x ~ x ~ x ~ x", F: "x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~ x", G: "~@19 x ~@3 x ~@3 x ~@3 x", H: "~ x ~@30",
  I: "~@17 x ~@3 x ~@3 x ~@3 x ~ x", J: "~ x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~",
  K: "~ x ~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", L: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@2",
  M: "~@15 x ~@3 x ~@3 x ~@3 x ~ x ~ x", N: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4",
  O: "~ x ~ x ~@3 x ~ x ~ x ~ x ~@2", P: "~@7 x ~ x ~ x ~ x ~ x", Q: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@6",
})).gain(0.14)

// drums · open hat
const open_hat = s("oh").struct("<~@5 A B@3 A B@2 C ~@8 A B@3 A B@2 D A@3 E ~@45 F G ~@6>".pickRestart({
  A: "~ x!7", B: "x!8", C: "x!4 ~@4", D: "x!4 ~ x ~ x", E: "~ x!3 ~@4", F: "~@5 x!2 ~@9", G: "~@7 x",
})).gain(0.11)

// drums · crash
const crash = s("cr").struct(`<
  A B@3 C D ~@3 D ~@3 E B E B E B E F D ~@3 D ~@3 D@4 E G H I J I K L M N ~@3 O I J I K P K Q I G R S B@2 T B@2 U B@2 C
  E B E B E B E V W X W Y Z AA AB ~@4
>`.pickRestart({
  A: "~@3 x", B: "x!4", C: "x!2 ~@2", D: "x", E: "x ~@2 x ~@2 x ~", F: "~@23 x!2 ~@7", G: "~ x ~@7 x ~@7 x ~@7 x ~@6",
  H: "~ x ~@11 x ~@12 x ~@5", I: "~ x ~@3 x ~@3 x ~@3 x ~@2", J: "~ x ~@5 x ~@5 x ~@2", K: "~@3 x ~@11 x ~@11 x ~@4",
  L: "~@30 x!2", M: "x!7 ~ x!7 ~ x!6 ~ x ~ x!7", N: "~ x!3 ~@28", O: "~ x ~@11 x ~@11 x ~@6",
  P: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", Q: "~@5 x ~ x ~@7 x", R: "~ x ~@7 x ~@7 x ~@14", S: "~@9 x ~@7 x ~@7 x ~@6",
  T: "~@2 x!2", U: "x ~@2 x", V: "~@8 x ~@10 x ~@3 x ~@3 x ~@3 x", W: "~@11 x ~@11 x ~@7 x",
  X: "~@7 x ~@7 x ~@7 x ~@3 x ~@3 x", Y: "~@3 x ~@7 x ~ x ~ x", Z: "~@5 x ~@5 x ~@4",
  AA: "~@6 x ~@3 x ~ x ~ x ~@3 x ~@2 x ~ x ~@5 x ~@2", AB: "~@9 x ~@22",
})).gain(0.14)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@20 [x!23 ~@9] ~@19 [~@3 x!27 ~@2] [~@7 x ~@7 x ~@8 x ~@7] x ~@43>").gain(0.03)

stack(
  overdriven_guitar, bass, guitar_harmonics, guitar_harmonics_soft, bass_2, snare, snare_soft, pedal_hat, open_hat,
  crash, crash_soft
)

More by The Smashing Pumpkins