Strudelify
KeyD majorTempo116 bpm
0:00/0:00
// Jellybelly — The Smashing Pumpkins
// 116 bpm, 4/4, key D 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: duplicate parts dropped: ch 2 distortion guitar (copy of ch 1 overdriven guitar); ch 7 synth choir (copy of ch 6 synth choir)
// note: Full arrangement: all 88 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(116/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
const overdriven_guitar = note(`<
  A B A C A D A E@3 F G E G E G E H I J K L M J K E@3 F N O P Q G O R I J K L M J K O@3 S T U T U T U V W X Y E@3 F Z AA
  AB AC AD AE AF AG I J K L M J K E@3 AH AI AJ AK AL AM AN AO@2
>`.pickRestart({
  A: "[g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [g2,d3,b3] [f#2,c#3,f#3]", // G F#5 D5 G F#5 D5 G F#5 …
  B: "[d2,a2,d3]@7 a3 b3@6 [d2,a2]@2", C: "[d2,a2,d3]@8 f2@7 ~",
  D: "[d2,a2,d3]@8 [d3,f#3] [e3,g3]@2 [g#2,a#3] [g#3,c4]@3 [d2,a2]", // D5 D Em G#sus2 G# D5
  E: "[d2,a2,d3]@2 [d2,a2,d3]!2 [c3,g3,c4] [g2,d3,b3]!2 [c3,g3,c4]@2 [c3,g3,c4] [d2,a2,d3]!2 [g2,d3,g3]@2 [g2,d3,g3]@2", // D5 C5 G C5 D5 G5
  F: "[d2,a2,d3]@2 [d2,a2,d3]!2 [c3,g3,c4] [g2,d3,b3]!2 [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3]", // D5 C5 G D5 G F#5 D5 G …
  G: "[a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3] [c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!2", // A5 C5
  H: "[a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3] [c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2 [g2,d3,g3]@2 [g2,d3,g3]!2", // A5 C5 G5
  I: "[d2,a2,d3]@3 [d2,a2,d3] [d2,a2,d3]@2 [d3,a3,e4] [d3,a3,e4]@2 [d3,a3,e4] [d3,a3,e4]@2 [d3,a3,e4]@2 [c3,g3]@2", // D5 Dsus2 C5
  J: "[c3,g3,d4]@2 [c3,g3,d4]!2 [c3,g3,d4]@2 [c3,g3,d4] [c3,g3,d4]@2 [c3,g3,d4] [c3,g3,d4]@2 [c3,g3,d4]@2 [c3,g3,d4]@2", // Csus2
  K: "[g2,d3,a3]@3 [g2,d3,a3] [g2,d3,a3]@2 [g2,d3,a3] [g2,d3,a3]@2 [g2,d3,a3] [g2,d3,a3]@2 [g2,d3,a3]@2 d2@2", // Gsus2
  L: "d2 [d3,d4]@2 d2 [e3,e4]@2 d2 [f#3,f#4]@2 d2 [a3,a4]@2 [a3,a4]@2 [a3,a4]@2", // D E F# A
  M: "[d2,a2,d3]@3 [d2,a2,d3] [d2,a2,d3]@2 [d3,a3,e4] [d3,a3,e4]@2 [d3,a3,e4] [d3,a3,e4]@2 [d3,a3,e4]@2 [d3,a3,e4]@2", // D5 Dsus2
  N: "[a2,e3,a3]@2 [a2,e3,a3]!2 [a2,e3,a3]@2 [a2,e3,a3] [c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!2", // A5 C5
  O: "[d2,a2,d3] [d3,a3,d4]@2 [d2,a2,d3] [c3,g3,c4]@2 [d2,a2,d3] [d3,a3,d4]@2 [d2,a2,d3] [c3,g3,c4] [d2,a2,d3] [g2,d3,g3]@2 [g2,d3,g3]@2", // D5 C5 D5 C5 D5 G5
  P: "[a2,e3,a3]@2 [a2,e3,a3]!2 [a2,e3,a3]@2 [a2,e3,a3] [c3,g3,c4]@2 [c3,g3,c4]!2 [d2,a2,d3] [g2,d3,g3]@2 [g2,d3,g3]@2", // A5 C5 D5 G5
  Q: "[d2,a2,d3] [f#2,c#3,f#3]@2 [d2,a2,d3] [g2,d3,g3]@2 [d2,a2,d3] [a2,e3,a3]@2 [d2,a2,d3] [b2,f#3,b3] [d2,a2,d3] [c3,g3,c4]@2 [c3,g3,c4]@2", // D5 F#5 D5 G5 D5 A5 D5 B5 …
  R: "[a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3]!2 [c3,g3,c4]!8", // A5 C5
  S: "[f#2,c#3,g#3]@3 [f#2,c#3,g#3] [f#2,c#3,g#3]@2 [f#2,c#3,g#3] [b2,f#3,c#4]@2 [b2,f#3,c#4] [b2,f#3,c#4]@2 [b2,f#3,c#4]@2 [b2,f#3,c#4]@2", // F#sus2 Bsus2
  T: "[d2,f#3,f#4]@2 [d2,f#3,f#4]!2 [d2,f#3,f#4]@2 [d2,f#3,f#4] [g2,d3,a3]@2 [g2,d3,a3] [g2,d3,a3]@2 [g2,d3,a3]@2 [g2,d3,a3]@2", // D Gsus2
  U: "[f#2,c#3,g#3]@2 [f#2,c#3,g#3]!2 [f#2,c#3,g#3]@2 [b2,f#3,c#4] [b2,f#3,c#4]@2 [b2,f#3,c#4] [b2,f#3,c#4]@2 [b2,f#3,c#4]@2 [d2,a2,d3]!2", // F#sus2 Bsus2 D5
  V: "[d2,a2,d3] [d#2,a#2,d#3] [e2,b2,e3] [f2,c3,f3]", // D5 D#5 E5 F5
  W: "[f#2,c#3,f#3]@3 [g2,d3,g3]@3 [g#2,d#3,g#3]@3 [a2,e3,a3]@3 [a#2,f3,a#3]@2 [b2,f#3,b3]@2", // F#5 G5 G#5 A5 A#5 B5
  X: "[c3,g3,c4]@3 [c3,g3,c4]@3 [c#3,g#3,c#4]@3 [d3,a3,d4]@3 [d#3,a#3,d#4]@2 [e3,b3,e4]@2", // C5 C#5 D5 D#5 E5
  Y: "[f3,c4,f4] [f#3,c#4,f#4] [g3,d4,g4] [g#3,d#4,g#4] [a3,e4,a4] [a#3,f4,a#4] [b3,f#4,b4] [c4,g4,c#5] [c#4,g#4,d5] [d4,a4,d#5] [d#4,a#4,e5] [e4,b4,f5] [f4,c5,f#5] [f#4,c#5,g5] [g4,d5,g#5] [g#4,d#5,a5]", // F5 F#5 G5 G#5 A5 A#5 B5 C …
  Z: "[a2,e3,a3]@4 [a2,e3,a3]!3 [b2,f#3,b3]@2 [b2,f#3,b3] [b2,f#3,b3]@2 [b2,f#3,b3]@2 [d3,a3,d4]!2", // A5 B5 D5
  AA: "[d3,a3,d4]@2 [d3,a3,d4]!5 [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4]@2 [g2,d3,g3]!2", // D5 E5 G5
  AB: "[g2,d3,g3]@4 [g2,d3,g3]!3 [a2,e3,a3]@2 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]!2", // G5 A5
  AC: "[c#3,a3,c#4]@4 [c#3,a3,c#4]!3 [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]!2", // F#m D5
  AD: "[e3,b3,e4]@4 [e3,b3,e4]!3 [g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3] [a2,e3,a3]", // E5 G5 A5
  AE: "[a2,e3,a3]@4 [a2,e3,a3]!3 [b2,f#3,b3]@2 [b2,f#3,b3]!3 [b2,f#3,b3]@2 [d3,a3,d4]!2", // A5 B5 D5
  AF: "[d3,a3,d4]@4 [d3,a3,d4]!3 [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4]@2 [g2,d3,g3]!2", // D5 E5 G5
  AG: "[g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3]@2", // G5
  AH: "[d2,a2,d3]@2 [d2,a2,d3]!2 [c3,g3,c4] [d3,a3,d4] [d2,a2,d3]!2 [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3]", // D5 C5 D5 G F#5 D5 G F#5 …
  AI: "[d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3]@4 [d2,a2,d3]@4", // D5 G F#5 D5 G F#5 G F#5 …
  AJ: "b3 c4@3 b3@4 [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3]", // G F#5 D5 G F#5 D5 G F#5
  AK: "[d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3]!2 [d2,a2,d3]@8", // D5 G F#5 D5 G F#5 D5
  AL: "[g2,d3]@5 ~@3 [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3], g3@7 ~@9", // G5 G F#5 D5 G F#5 D5 G …
  AM: "[d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [g2,d3,b3] [f#2,c#3,f#3] [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]!2", // D5 G F#5 D5 G F#5 G F#5 …
  AN: "a3!4 a3@2 [d2,a2,d3]!2 [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3]", // D5 G F#5 D5 G F#5 D5 G …
  AO: "[[d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3] [g2,d3,b3] [f#2,c#3,f#3] [g2,d3,b3] [f#2,c#3,f#3] [d2,a2,d3]@12 ~ [d2,a2,d3]@2 [d2,a2,d3] ~@8]/2", // D5 G F#5 D5 G F#5 G F#5 …
})).s("gm_overdriven_guitar").gain(0.49)

// bass · electric bass pick
const bass = note(`<
  A B A C A D A E@3 F G E G E G E H I J K L M J K E@3 F N O P Q G O R I J K L M J K O@3 S T U T U T U V W X Y E@3 F Z AA
  AB AC AD AE AF AG I J K L M J K E@3 AH AI AJ AK AL AM AN AO@2
>`.pickRestart({
  A: "[g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [g1,d2,b2] [f#1,c#2,f#2]", // G F#5 D5 G F#5 D5 G F#5 …
  B: "[d1,a1,d2]@7 a2 b2@6 [d1,a1]@2", C: "[d1,a1,d2]@8 f2@7 ~",
  D: "[d1,a1,d2]@8 [d2,f#2] [e2,g2]@2 [g#1,a#2] [g#2,c3]@3 [d1,a1]", // D5 D Em G#sus2 G# D5
  E: "[d1,a1,d2]@2 [d1,a1,d2]!2 [c2,g2,c3] [g1,d2,b2]!2 [c2,g2,c3]@2 [c2,g2,c3] [d1,a1,d2]!2 [g1,d2,g2]@2 [g1,d2,g2]@2", // D5 C5 G C5 D5 G5
  F: "[d1,a1,d2]@2 [d1,a1,d2]!2 [c2,g2,c3] [g1,d2,b2]!2 [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2]", // D5 C5 G D5 G F#5 D5 G …
  G: "[a1,e2,a2]@3 [a1,e2,a2] [a1,e2,a2]@2 [a1,e2,a2] [c2,g2,c3]@2 [c2,g2,c3] [c2,g2,c3]@2 [c2,g2,c3]@2 [c2,g2,c3]!2", // A5 C5
  H: "[a1,e2,a2]@3 [a1,e2,a2] [a1,e2,a2]@2 [a1,e2,a2] [c2,g2,c3]@2 [c2,g2,c3] [c2,g2,c3]@2 [g1,d2,g2]@2 [g1,d2,g2]!2", // A5 C5 G5
  I: "[d1,a1,d2]@3 [d1,a1,d2] [d1,a1,d2]@2 [d2,a2,e3] [d2,a2,e3]@2 [d2,a2,e3] [d2,a2,e3]@2 [d2,a2,e3]@2 [c2,g2]@2", // D5 Dsus2 C5
  J: "[c2,g2,d3]@2 [c2,g2,d3]!2 [c2,g2,d3]@2 [c2,g2,d3] [c2,g2,d3]@2 [c2,g2,d3] [c2,g2,d3]@2 [c2,g2,d3]@2 [c2,g2,d3]@2", // Csus2
  K: "[g1,d2,a2]@3 [g1,d2,a2] [g1,d2,a2]@2 [g1,d2,a2] [g1,d2,a2]@2 [g1,d2,a2] [g1,d2,a2]@2 [g1,d2,a2]@2 d1@2", // Gsus2
  L: "d1 [d2,d3]@2 d1 [e2,e3]@2 d1 [f#2,f#3]@2 d1 [a2,a3]@2 [a2,a3]@2 [a2,a3]@2", // D E F# A
  M: "[d1,a1,d2]@3 [d1,a1,d2] [d1,a1,d2]@2 [d2,a2,e3] [d2,a2,e3]@2 [d2,a2,e3] [d2,a2,e3]@2 [d2,a2,e3]@2 [d2,a2,e3]@2", // D5 Dsus2
  N: "[a1,e2,a2]@2 [a1,e2,a2]!2 [a1,e2,a2]@2 [a1,e2,a2] [c2,g2,c3]@2 [c2,g2,c3] [c2,g2,c3]@2 [c2,g2,c3]@2 [c2,g2,c3]!2", // A5 C5
  O: "[d1,a1,d2] [d2,a2,d3]@2 [d1,a1,d2] [c2,g2,c3]@2 [d1,a1,d2] [d2,a2,d3]@2 [d1,a1,d2] [c2,g2,c3] [d1,a1,d2] [g1,d2,g2]@2 [g1,d2,g2]@2", // D5 C5 D5 C5 D5 G5
  P: "[a1,e2,a2]@2 [a1,e2,a2]!2 [a1,e2,a2]@2 [a1,e2,a2] [c2,g2,c3]@2 [c2,g2,c3]!2 [d1,a1,d2] [g1,d2,g2]@2 [g1,d2,g2]@2", // A5 C5 D5 G5
  Q: "[d1,a1,d2] [f#1,c#2,f#2]@2 [d1,a1,d2] [g1,d2,g2]@2 [d1,a1,d2] [a1,e2,a2]@2 [d1,a1,d2] [b1,f#2,b2] [d1,a1,d2] [c2,g2,c3]@2 [c2,g2,c3]@2", // D5 F#5 D5 G5 D5 A5 D5 B5 …
  R: "[a1,e2,a2]@3 [a1,e2,a2] [a1,e2,a2]@2 [a1,e2,a2]!2 [c2,g2,c3]!8", // A5 C5
  S: "[f#1,c#2,g#2]@3 [f#1,c#2,g#2] [f#1,c#2,g#2]@2 [f#1,c#2,g#2] [b1,f#2,c#3]@2 [b1,f#2,c#3] [b1,f#2,c#3]@2 [b1,f#2,c#3]@2 [b1,f#2,c#3]@2", // F#sus2 Bsus2
  T: "[d1,f#2,f#3]@2 [d1,f#2,f#3]!2 [d1,f#2,f#3]@2 [d1,f#2,f#3] [g1,d2,a2]@2 [g1,d2,a2] [g1,d2,a2]@2 [g1,d2,a2]@2 [g1,d2,a2]@2", // D Gsus2
  U: "[f#1,c#2,g#2]@2 [f#1,c#2,g#2]!2 [f#1,c#2,g#2]@2 [b1,f#2,c#3] [b1,f#2,c#3]@2 [b1,f#2,c#3] [b1,f#2,c#3]@2 [b1,f#2,c#3]@2 [d1,a1,d2]!2", // F#sus2 Bsus2 D5
  V: "[d1,a1,d2] [d#1,a#1,d#2] [e1,b1,e2] [f1,c2,f2]", // D5 D#5 E5 F5
  W: "[f#1,c#2,f#2]@3 [g1,d2,g2]@3 [g#1,d#2,g#2]@3 [a1,e2,a2]@3 [a#1,f2,a#2]@2 [b1,f#2,b2]@2", // F#5 G5 G#5 A5 A#5 B5
  X: "[c2,g2,c3]@3 [c2,g2,c3]@3 [c#2,g#2,c#3]@3 [d2,a2,d3]@3 [d#2,a#2,d#3]@2 [e2,b2,e3]@2", // C5 C#5 D5 D#5 E5
  Y: "[f2,c3,f3] [f#2,c#3,f#3] [g2,d3,g3] [g#2,d#3,g#3] [a2,e3,a3] [a#2,f3,a#3] [b2,f#3,b3] [c3,g3,c#4] [c#3,g#3,d4] [d3,a3,d#4] [d#3,a#3,e4] [e3,b3,f4] [f3,c4,f#4] [f#3,c#4,g4] [g3,d4,g#4] [g#3,d#4,a4]", // F5 F#5 G5 G#5 A5 A#5 B5 C …
  Z: "[a1,e2,a2]@4 [a1,e2,a2]!3 [b1,f#2,b2]@2 [b1,f#2,b2] [b1,f#2,b2]@2 [b1,f#2,b2]@2 [d1,a1,d2]!2", // A5 B5 D5
  AA: "[d1,a1,d2]@2 [d1,a1,d2]!5 [e1,b1,e2]@2 [e1,b1,e2] [e1,b1,e2]@2 [e1,b1,e2]@2 [g1,d2,g2]!2", // D5 E5 G5
  AB: "[g1,d2,g2]@4 [g1,d2,g2]!3 [a1,e2,a2]@2 [a1,e2,a2] [a1,e2,a2]@2 [a1,e2,a2]@2 [a1,e2,a2]!2", // G5 A5
  AC: "[c#1,a1,c#2]@4 [c#1,a1,c#2]!3 [d1,a1,d2]@2 [d1,a1,d2] [d1,a1,d2]@2 [d1,a1,d2]@2 [d1,a1,d2]!2", // F#m D5
  AD: "[e1,b1,e2]@4 [e1,b1,e2]!3 [g1,d2,g2]@2 [g1,d2,g2] [g1,d2,g2]@2 [g1,d2,g2]@2 [g1,d2,g2] [a1,e2,a2]", // E5 G5 A5
  AE: "[a1,e2,a2]@4 [a1,e2,a2]!3 [b1,f#2,b2]@2 [b1,f#2,b2]!3 [b1,f#2,b2]@2 [d1,a1,d2]!2", // A5 B5 D5
  AF: "[d1,a1,d2]@4 [d1,a1,d2]!3 [e1,b1,e2]@2 [e1,b1,e2] [e1,b1,e2]@2 [e1,b1,e2]@2 [g1,d2,g2]!2", // D5 E5 G5
  AG: "[g1,d2,g2]@2 [g1,d2,g2] [g1,d2,g2]@2 [g1,d2,g2] [g1,d2,g2]@2 [g1,d2,g2] [g1,d2,g2]@2 [g1,d2,g2] [g1,d2,g2]@2 [g1,d2,g2]@2", // G5
  AH: "[d1,a1,d2]@2 [d1,a1,d2]!2 [c2,g2,c3] [d2,a2,d3] [d1,a1,d2]!2 [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2]", // D5 C5 D5 G F#5 D5 G F#5 …
  AI: "[d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2]@4 [d1,a1,d2]@4", // D5 G F#5 D5 G F#5 G F#5 …
  AJ: "b2 c3@3 b2@4 [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2]", // G F#5 D5 G F#5 D5 G F#5
  AK: "[d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2]!2 [d1,a1,d2]@8", // D5 G F#5 D5 G F#5 D5
  AL: "g2@7 ~ [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2], d2@5 ~@11", // G F#5 D5 G F#5 D5 G F#5
  AM: "[d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [g1,d2,b2] [f#1,c#2,f#2] [a1,e2,a2]@2 [a1,e2,a2]@2 [a1,e2,a2]@2 [a1,e2,a2]!2", // D5 G F#5 D5 G F#5 G F#5 …
  AN: "a2!4 a2@2 [d1,a1,d2]!2 [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2]", // D5 G F#5 D5 G F#5 D5 G …
  AO: "[[d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2] [g1,d2,b2] [f#1,c#2,f#2] [g1,d2,b2] [f#1,c#2,f#2] [d1,a1,d2]@12 ~ [d1,a1,d2]@2 [d1,a1,d2] ~@8]/2", // D5 G F#5 D5 G F#5 G F#5 …
})).s("gm_electric_bass_pick").gain(0.5)

// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@57 A B C D E F G H I J K L ~@19>".pickRestart({
  A: "e5@6 e5 d5", B: "a5@7 b5@5 ~@2 [g5,d6]@2", C: "e6 [g5,d6] ~ [a5,e6]", D: "b5@7 ~@9", E: "[c#4,c#5]@7 [d4,d5]@9",
  F: "[e4,e5]@7 [f#4,f#5]@7 [e4,e5]@2", G: "~@7 [e4,e5]@9", H: "[c#4,c#5]@6 c#5 [d4,d5]@9",
  I: "[e4,e5]@6 [f#4,f#5] [f#4,f#5]@5 [g4,g5]@4", J: "[a4,a5]@3 [b4,b5]@3 [c5,c6]@2",
  K: "[d5,d6]@3 [e5,e6]@3 [f#5,f#6]@2", L: "[g5,g6]@6 [g5,g6]!2",
})).s("gm_overdriven_guitar").gain(0.61)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@22 A B C@2 D E F ~@7 G H I ~ J K L@2 M N O P Q P Q P Q ~@4 G H R S T U V W X Y Z AA AB AC@3 J K AD AE ~@11
>`.pickRestart({
  A: "e5@3 d5@3 a4@2", B: "e5 f#5@2 d5@3 a4@2", C: "[e5@3 d5@3 [e4,e5] [f#4,f#5]@8 [g4,g5]]/2",
  D: "[f#4,f#5]@4 [f#4,f#5]!2 [d4,d5]@2", E: "[a4,a5]@8 [a4,a5]@3 [a4,a5] [g4,g5]@4", F: "[f#4,f#5]",
  G: "[f#4,f#5]@6 [f#4,f#5] [g4,g5]", H: "[f#4,f#5]@3 [d4,d5]", I: "[a4,a5]",
  J: "[e5,e6]@2 [d5,d6] [d5,d6]@3 [a4,a5]@2", K: "[e5,e6] [f#5,f#6]@2 [d5,d6]@3 [a4,a5]@2",
  L: "[[e5,e6]@3 [d5,d6]@3 [e5,e6] [f#5,f#6]@6 ~@3]/2", M: "[d5,d6]", N: "a5@5 b5@3, d5",
  O: "[g4,b4,d5] [f#4,a#4,c#5] [f4,a4,c5] [e4,g#4,b4] [d#4,g4,a#4] [d4,f#4,a4] [c#4,f4,g#4] [c4,e4,g4] [d#4,g4,a#4] [d4,f#4,a4] [c#4,f4,g#4] [c4,e4,g4] [b3,d#4,f#4,b4,d#5,f#5] [a#3,d4,f4,a#4,d5,f5] [a3,c#4,e4,a4,c#5,e5] [g#3,c4,d#4,g#4,c5,d#5], c6@2 c#6 ~", // G F# F E D# D C# C …
  P: "[d3,a3,d4,a4]@2 [a4,a5] [f#4,f#5] [g4,g5] [f#4,f#5] [e4,e5] [f#4,f#5]@2 [e4,e5] [f#4,f#5] [e4,e5] [d4,d5]@2 [d4,d5]@2", // D5 A F# G F# E F# E …
  Q: "[c#4,c#5]@6 [b3,b4] [b3,b4]@9", R: "[a4,a5]@6 [f#4,f#5] [g4,g5]", S: "[f#4,f#5] ~", T: "[a3,a4]@6 ~ [b3,b4]@9",
  U: "d5@6 d5 [e4,e5]@9, d4@15 ~", V: "[f#4,f#5]@6 f#5 [g4,g5]@9", W: "g#4@6 g#4 [b3,b4]@5 [b3,b4]@4, g#3@11 ~@5",
  X: "b3@7 b4@5 [d4,d5]@4, b4 ~@6 b3@9", Y: "[f#4,f#5]@6 [g4,g5] [g4,g5]@5 [g4,g5]@4",
  Z: "[a4,a5]@4 [a4,a5]@3 [a4,a5]@5 [a4,a5]@4", AA: "[b4,b5]@6 [b4,b5]!2", AB: "[f#5,a5,d6,f#6]@3 [g5,b5,e6,g6]",
  AC: "[f#5,a5,d6,f#6]", AD: "[e5,e6]@3 [d5,d6]@3 [e5,e6] [f#5,f#6]", AE: "[f#5,f#6]@3 ~",
})).s("gm_distortion_guitar").gain(0.61)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@39 A ~@42 B C ~@2 D@2>".pickRestart({
  A: "[e4,g4,b4,a5,c#6,e6] [d#4,f#4,a#4,g#5,c6,d#6] [c#4,e4,g#4,f#5,a#5,c#6] [c4,d#4,g4,f5,a5,c6] [b3,d4,f#4,e5,g#5,b5] [a#3,c#4,f4,d#5,g5,a#5] [a3,c4,e4,d5,f#5,a5] [g#3,b3,d#4,c#5,f5,g#5] [g3,a#3,d4,c5,e5,g5] [f#3,a3,c#4,b4,d#5,f#5] [e5,g#5,b5] [d#5,g5,a#5] [d5,f#5,a5] [c#5,f5,g#5] [c5,e5,g5] [b4,d#5,f#5]", // A7 G#7 F#7 F7 E7 D#7 D7 C#7 …
  B: "~@8 [g4,b4,d5] [f#4,a#4,c#5] [f4,a4,c5] [e4,g#4,b4] [d#4,g4,a#4] [d4,f#4,a4] [c#4,f4,g#4] [c4,e4,g4], ~ c6", // G F# F E D# D C# C
  C: "[d#4,g4,a#4] [d4,f#4,a4] [c#4,f4,g#4] [c4,e4,g4] [b3,d#4,f#4,b4,d#5,f#5] [a#3,d4,f4,a#4,d5,f5] [a3,c#4,e4,a4,c#5,e5] [g#3,c4,d#4,g#4,c5,d#5] ~@8, c#6 ~@3", // D# D C# C B A# A G#
  D: "[~@8 [d3,a3,d4]@12 ~ [d3,a3,d4]@2 [d3,a3,d4] ~@8]/2", // D5
})).s("gm_distortion_guitar").gain(0.38)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A C D C E F C F C F C G H I@2 J H I K C F C L F J F J F M G H I@2 N H I K J@2 O L C@2 P C@2 Q R A S T C D
  C E C P C U C D C V H I@2 J H I K C F C W X Y X Y X Z AA AB
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~", B: "x!16", C: "x ~@2 x ~ x ~ x ~ x ~ x ~@4", D: "x ~@2 x ~ x ~ x ~@2 x!2 ~@4",
  E: "x ~@2 x ~ x ~ x ~ x ~@2 x ~ x ~", F: "x ~@2 x ~@3 x ~ x!2 ~@5", G: "x ~@2 x ~@3 x!3 ~@2 x!2 ~@2",
  H: "x!2 ~ x ~@3 x ~ x!2 ~@4 x", I: "x!2 ~ x ~@3 x ~ x!2 ~@3 x ~", J: "~ x ~@2 x ~@2 x ~@2 x ~ x ~ x ~",
  K: "x!2 ~ x ~@3 x!2 ~ x ~ x ~ x ~", L: "x ~@2 x ~@3 x ~ x!2 ~ x!3 ~", M: "~ x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2",
  N: "~ x ~@2 x ~@2 x ~@2 x ~ x!4", O: "~ x ~@2 x ~@2 x ~ x ~@2 x ~ x ~", P: "x ~@3 x ~@2 x ~ x ~ x ~@4",
  Q: "x ~@2 x ~ x ~ x ~ x ~ x!2 ~ x ~", R: "x!4", S: "x ~@2 x ~ x!2 ~@2 x ~@2 x ~ x!2", T: "~ x ~ x ~ x ~ x ~@8",
  U: "x ~@3 x ~@2 x ~@2 x!2 ~ x ~ x", V: "~ x!2 ~ x!2 ~ x!2 ~ x!6", W: "x ~@2 x ~@3 x!2 ~@2 x ~@2 x ~",
  X: "~ x ~@2 x ~ x ~ x ~ x ~ x ~ x ~", Y: "x ~ x ~ x ~@3 x ~@2 x ~@2 x ~", Z: "x ~ x ~ x ~ x ~ x ~@2 x ~@2 x ~",
  AA: "~ x ~@2 x ~ x ~ x ~@7", AB: "~@5 x ~ x ~@8",
})).gain(0.69)

// drums · snare
const snare = s("sd").struct(`<
  A ~ A B A ~ A C D E F C@3 E C E G H@3 I H@2 J E C E K C I C L C M G H@3 I H@2 J I L N K C O P O C O A@3 Q C D E F C R
  C S C D C I H@3 I H@2 J E C E F A T A T A@2 U V
>`.pickRestart({
  A: "x!16", B: "x ~@6 x!2 ~@7", C: "~@2 x!2 ~@2 x!2", D: "~@4 x ~ x ~@2 x ~@2 x ~ x ~", E: "~ x ~@2 x ~ x ~@5 x ~ x ~",
  F: "~@4 x ~ x ~ x!8", G: "~@2 x!3 ~ x ~", H: "~ x ~ x", I: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~", J: "~@4 x ~@3 x!8",
  K: "~@4 x ~ x ~ x ~@2 x ~@2 x!2", L: "x ~@2 x ~@2 x ~@2 x ~@2 x!4", M: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
  N: "x ~@2 x ~@2 x ~@2 x!7", O: "~ x ~@2 x ~@7 x ~ x ~", P: "~@3 x!3 ~@6 x ~ x ~", Q: "x ~@7 x!8",
  R: "~ x!6 ~@5 x ~ x ~", S: "~ x!6 ~@2 x ~@2 x ~ x ~", T: "~@8 x!8", U: "x!9 ~@7", V: "~@3 x!3 ~ x ~@8",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@17 A ~@2 B ~@7 C ~@5 B A ~@2 B ~@7 C ~@8 D E ~@7 B ~@3 F ~@2 B ~@9 G ~ G ~@3 H
>`.pickRestart({
  A: "~@11 x ~@3 x", B: "~@15 x", C: "~@13 x ~@2", D: "~ x ~ x!2 ~ x!2 ~ x ~ x!5", E: "x!2 ~ x ~ x ~ x ~@8",
  F: "~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~", G: "~@6 x!2 ~@8", H: "~@4 x!2 ~ x ~@8",
})).gain(0.46)

// drums · pedal hat
const pedal_hat = s("hh").struct("<A@7 ~@3 B ~@49 B ~@18 B A@6 C ~>".pickRestart({
  A: "x!8", B: "~@4 x!4", C: "x!4 ~@4",
})).gain(0.61)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@17 A ~@2 B C ~@6 D ~ C ~@3 B A ~@2 B C ~@3 C ~@2 D ~@5 C ~@11 E ~@3 F ~@2 B C ~@8 G ~ G ~@3 H
>`.pickRestart({
  A: "~@10 x!2 ~@2 x!2", B: "~@14 x!2", C: "~@6 x!2", D: "~@5 x ~@2", E: "~@7 x", F: "~@2 x ~@2 x ~@2 x ~@2 x ~@4",
  G: "~@3 x ~@12", H: "~@3 x ~ x ~ x ~@8",
})).gain(0.61)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@55 [~ x!3 ~ x!3 ~ x ~ x!5] ~@25 [~@4 x!3 ~@9] ~ [~@4 x!3 ~@9] ~@4>").gain(0.38)

// drums · open hat
const open_hat = s("oh").struct("<~@18 A@3 ~ A@3 ~@11 A@3 ~ A@3 ~@26 A@3 ~ A@3 ~@12>".pickRestart({
  A: "x!8",
})).gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@17 A ~@2 B ~@13 B A ~@2 B ~@16 C ~@8 D ~@3 E ~@2 B ~@9 F ~ F ~@3 G>".pickRestart({
// … 25 more lines

More by The Smashing Pumpkins