Strudelify

Cherub Rock

The Smashing Pumpkins

KeyE minorTempo335 bpm
0:00/0:00
// Cherub Rock — The Smashing Pumpkins
// 335 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 5 "Piano" named as a piano, played on piano (its distortion guitar patch is not one)
// note: Full arrangement: all 431 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(335/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 · electric bass pick · "Bass"
const bass = note("<~@22 A B@2 C A B@2 C ~@401>".pickRestart({
  A: "e1 e2!2 e1", B: "[e2!2 e1 e2@2 e2!2 e1]/2", C: "e2!3 e1",
})).s("gm_electric_bass_pick").gain(0.43)

// bass · fretless bass · "Bass"
const bass_2 = note("<~@30 A B@2 C A B@2 C ~@393>".pickRestart({
  A: "e2 e3!2 e2", B: "[e3!2 e2 e3@2 e3!2 e2]/2", C: "e3!3 e2",
})).s("gm_fretless_bass").gain(0.8)

// bass · lead 1 square · "Bass"
const bass_3 = note(`<
  ~@38 A B@2 C D B@2 C D B@2 C D B@2 C E F@2 G E F@2 G H I@2 J E F@2 G E F@2 G E K@2 G E K@2 L E K@2 G E K@2 L H I@2 J E
  K@2 G E K@2 L H I@2 J E K@2 G E K@2 L H I@2 M N O@2 P H I@2 Q R S@2 P H I@2 Q R S@2 P H I@2 Q N@4 E F@2 G E F@2 G E
  K@2 G E K@2 L E K@2 G E K@2 G H I@2 J E K@2 G E K@2 G H I@2 J E K@2 G E K@2 G H I@2 M N O@2 P H I@2 Q R S@2 P H I@2 Q
  R S@2 P H I@2 Q N@4 T U@2 V W X@2 P T U@2 V W X@2 P T U@2 V W X@2 P T U@2 V W X@2 P D B@2 C D B@2 C D B@2 C D B@2 C H
  Y@2 Q T K@2 G H Y@2 Q T K@2 G H Y@2 Q T K@2 G H Y@2 Q R Z@2 P H I@2 Q R S@2 P H I@2 Q R S@2 P H I@2 Q R S@2 P H I@2 Q
  R S@2 P H I@2 Q R S@2 P H I@2 Q R S@2 P H I@2 Q N@4 T U@2 V W X@2 P T U@2 V W X@2 P T U@2 V W X@2 P T U@2 V W X@2 P E
  F@2 G E F@2 G E K@2 G E K@2 L E F@2 G E F@2 G E F@2 G E F@2 AA@6
>`.pickRestart({
  A: "~ e3!2 e2", B: "[e3!2 e2 e3@2 e3!2 e2]/2", C: "e3!3 e2", D: "e2 e3!2 e2", E: "e2@2 e2!2",
  F: "[e3@2 e3 e2@2 e2@2 e2]/2", G: "e3!2", H: "d3@3 d3", I: "[d3@2 d3 a2@2 a2@2 a2]/2", J: "a2@2 a2!2",
  K: "[e3@2 e3 e2@2 e2!3]/2", L: "f#3", M: "a2 b2", N: "c3@2 c3!2", O: "[c3@2 g2 g2@2 g2!3]/2", P: "g2!2", Q: "a2!2",
  R: "c3@3 c3", S: "[c3@2 c3 g2@2 g2@2 g2]/2", T: "e2@3 e2", U: "[e2@2 e2 e2@2 e2!3]/2", V: "d3!2", W: "a2@3 a2",
  X: "[a2@2 b2 c3@2 c3!2 b2]/2", Y: "[d3@2 d3 a2@2 a2 a2@2]/2", Z: "[c3@2 c3 g2@2 g2!3]/2",
  AA: "[d2@21 e2@33 ~ e2@33 ~@8]/6",
})).s("gm_lead_1_square").gain(0.8)

// other · piano
const piano = note(`<
  ~@38 A B@2 C D B@2 C E F@2 G H I@2 J K L@2 K@2 L@2 M N@4 K L@2 K@2 L@2 O P L@2 O Q L@2 O P L@2 O Q L@2 O N@4 P L@2 O Q
  L@2 O N@4 P L@2 O Q L@2 O N@4 R S@2 T N@4 U@4 N@4 U@4 N@4 V W@3 K L@2 K@2 L@2 X P L@2 O Q L@2 O P L@2 O Q L@2 Y N@4 P
  L@2 O Q L@2 Y N@4 P L@2 O Q L@2 Y N@4 R S@2 T N@4 U@4 N@4 U@4 N@4 V W@3 Z AA@2 AB AC AD@2 AE Z AA@2 AB AC AD@2 AE Z
  AA@2 AB AC AD@2 AE Z AA@2 AB AC AD@2 AE D B@2 C AF AG@2 AH AI AJ@2 AK AL AM@2 AN AO AP@2 AQ AR AS@2 AT AO AP@2 AQ AR
  AS@2 AT AO AP@2 AQ AR AS@2 AT AO AP@2 AQ V AU@2 AV N@4 AW@4 N@4 AX@4 AY@4 AZ@8 BA@4 BB@4 BC@4 BD@4 BE@4 BF@4 BG@4 Z
  AA@2 AB AC AD@2 AE Z AA@2 AB AC AD@2 AE Z AA@2 AB AC AD@2 AE Z AA@2 AB AC AD@2 AE K L@2 K@2 L@2 O P L@2 O Q L@2 O BH@4
  BI@4 BJ@4 BK@3 BL@6
>`.pickRestart({
  A: "~ [e3,b3,e4]!2 [e2,b2,e3]", B: "[[e3,b3,e4]!2 [e2,b2,e3] [e3,b3,e4]@2 [e3,b3,e4]!2 [e2,b2,e3]]/2",
  C: "[e3,b3,e4]!3 [e2,b2,e3]", D: "[e2,b2,e3] [e3,b3,e4]!2 [e2,b2,e3]", E: "[e3,e4] [g#3,g#4]!2 [e3,e4]",
  F: "[[g#3,g#4]!2 [e3,e4] [g#3,g#4]@2 [g#3,g#4]!2 [e3,e4]]/2", G: "[g#3,g#4]!3 [e3,e4]",
  H: "[e3,e4] [b3,b4]!2 [e3,e4]", I: "[[b3,b4]!2 [e3,e4] [b3,b4]@2 [b3,b4]!2 [e3,e4]]/2", J: "~@3 e3",
  K: "[f#3,f#4] [e3,e4] [e2,e3]!2", L: "[[g#3,g#4] [a3,a4] [e2,e3] [g#3,g#4]@2 [e2,e3]!3]/2",
  M: "[f#3,f#4] [e3,e4] ~@2", N: "[[d2,d3,f#3,f#4]@7 [a1,a2,e3,e4]@7 ~@2]/4", O: "[f#3,f#4]",
  P: "[g#2,g#3,g#4]@2 [e2,e3]!2", Q: "[g#3,g#4]@2 [e2,e3]!2", R: "[c2,c3,c4]", S: "[[c2,c3,c4]@3 [g1,g2,g3]@5]/2",
  T: "[g1,g2,g3]@3 ~", U: "[[c2,c3,e3,e4]@7 [g1,g2,d3,d4]@7 ~@2]/4", V: "[c2,c3,c4]@2 [c2,c3,c4]!2",
  W: "[[c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2, ~@3 g1@7 ~@2]/3", // C
  X: "[f#2,f#3,f#4]", Y: "[e3,e4]", Z: "[e1,e2,e3,e4]@3 [e1,e2,e3,e4]",
  AA: "[[e1,e2,e3,e4]@2 [e1,e2,e3,e4] [e1,e2,e3,e4]@2 [e1,e2,e3,e4]!3]/2", AB: "[d2,d3,d4,d5]!2",
  AC: "[a1,a2,a3,a4]@3 [a1,a2,a3,a4]", AD: "[[a1,a2,a3,a4]@2 [a1,a2,a3,a4] [c2,c3,c4,c5]@2 [c2,c3,c4,c5]!3]/2",
  AE: "[g1,g2,g3,g4]!2", AF: "[e2,b2,e3] [e3,g#3,g#4]!2 [e2,b2,e3]",
  AG: "[[e3,g#3,g#4]!2 [e2,b2,e3] [e3,g#3,g#4]@2 [e3,g#3,g#4]!2 [e2,b2,e3]]/2", AH: "[e3,g#3,g#4]!3 [e2,b2,e3]",
  AI: "[e2,b2,e3] [e3,b3,b4]!2 [e2,b2,e3]", AJ: "[[e3,b3,b4]!2 [e2,b2,e3] [e3,b3,b4]@2 [e3,b3,b4]!2 [e2,b2,e3]]/2",
  AK: "[e3,b3,b4]!3 [e2,b2,e3]", AL: "[e2,b2,e3] [e3,d4,d5]!2 [e2,b2,e3]",
  AM: "[[e3,d4,d5]!2 [e2,b2,e3] [e3,e4,e5]@2 [e3,e4,e5]!2 [e2,b2,e3]]/2", AN: "[e3,e4,e5]!3 [e2,b2,e3]",
  AO: "[d2,d3,d4]@2 [d2,d3]!2, ~ d4", AP: "[[d2,d3,d4]!3 [a1,a2,a3]@2 [a1,a2,a3]!3]/2", AQ: "[a1,a2,a3]",
  AR: "[e1,e2,e3,e4]@2 [e1,e2,e3,e4]!2", AS: "[[e1,e2,e3,e4]!3 [e1,e2,e3,e4]@2 [e1,e2,e3,e4]!3]/2", AT: "[e1,e2,e3,e4]",
  AU: "[[c2,c3,c4]!3 [g1,g2,g3]@2 [g1,g2,g3]!3]/2", AV: "[g1,g2,g3]",
  AW: "[e5@4 e5@2 d5 [g1,g2,d3,d4,d5]@7 ~@2, [c2,c3,e3,e4]@7 ~@9]/4", // G5 C
  AX: "[[g4,g5]@3 [f#4,f#5]@3 d4 [g1,g2,d3,d4]@7 ~@2, [c2,c3,e3,e4]@7 ~@9, ~@6 d5@7 ~@3]/4", // G F# G5 C
  AY: "[[d2,d3,f#3,f#4]@7 [a1,a2,e3,e4]@7 ~@2, a3 ~]/4", // D A5
  AZ: "[e5@4 e5@2 d5 [d4,d5]@5 ~@4 [a3,a4]@4 ~@4 [a3,a4]@4 [a3,a4]@4, [c2,c3,e3,e4]@7 [g1,g2,d3]@7 ~@2 [d2,d3,f#3,f#4]@7 [a1,a2,e3,e4]@7 ~@2, ~@12 [d4,d5]@9 ~@11, ~@5 [a3,a4] ~@2]/8", // D A C G5 D A5 D A
  BA: "[e5@4 e5@2 d5 [d4,d5]@5 [d4,d5]@4, [c2,c3,e3,e4]@7 [g1,g2,d3]@7 ~@2]/4", // D C G5
  BB: "[~@2 [a3,a4]@2 f#5 [e4,e5] [d4,d5] [a1,a2,e3,a3,e4,a4]@7 ~@2, [d2,d3,f#3]@7 ~@9, [d4,d5]@5 ~@11, f#4@4 f#4@3 ~@9]/4", // A E D A5 D
  BC: "[[g3,g4,g5]@4 [f#3,f#4,f#5]@3 [g1,g2,d3,d4,d5]@7 ~@2, [c2,c3,e3,e4]@7 ~@9]/4", // G F# G5 C
  BD: "[[d4,d5,d6]@2 [a3,a4,a5]@2 [f#5,f#6] [e4,e5,e6] [d4,d5,d6] [a1,a2,e3,a3,e4,a4,a5]@7 ~@2, [d2,d3,f#3]@7 ~@9, f#4@4 f#4@3 ~@9]/4", // D A F# E D A5 D
  BE: "[[g3,g4,g5,g6]@4 [f#3,f#4,f#5,f#6]@3 [d5,d6]@5 [b4,b5]@4, [c2,c3,e3,e4]@7 [g1,g2,d3,d4]@7 ~@2]/4", // G F# D B C G5
  BF: "[f#4@4 f#4@3 [a4,a5]@5 [g4,g5] [f#4,f#5] [e4,d5]@2, [d2,d3,f#3,b4,b5]@7 [a1,a2,e3,e4]@7 ~@2]/4", // A G F# E7 Bm A5
  BG: "[[c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2, [c5,c6], ~@7 g1@7 ~@2]/4", // C
  BH: "[g#3,g#4]!8", BI: "[a3,a4]!8", BJ: "[b3,b4]!8", BK: "[d4,d5]!8",
  BL: "[[d2,a2,d3,a3,d4,a4,d5]@21 [e2,b2,e3,b3,e4,b4,e5]@33 ~ [e2,b2,e3,b3,e4,b4,e5]@34 ~@7]/6", // D5 E5
})).s("gm_piano").gain(0.8)

// other · electric guitar muted · "Guitar"
const electric_guitar_muted = note("<~@6 A@24 ~@401>".pickRestart({
  A: "[~ [e3,e4]!2 ~ [e3,e4]!2 ~ [e3,e4]@2 [e3,e4]!2 ~ [e3,e4]!3 e2, e2@3 e2@3 e2@5 e2@4 ~]/4", // E
})).s("gm_electric_guitar_muted").gain(0.73)

// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
  ~@30 A B@2 C D B@2 C E@8 F@4 E@4 G H@2 I G H@2 I J K@2 L G H@2 I G H@2 M N H@2 O P H@2 Q N H@2 O P H@2 Q J K@2 L N H@2
  O P H@2 Q J K@2 L N H@2 O P H@2 Q J K@2 R S T@2 U J K@2 V W X@2 Y J K@2 V W X@2 Y J K@2 V S@4 G H@2 I G H@2 Z N H@2 O
  P H@2 Q N H@2 O P H@2 AA J K@2 L N H@2 O P H@2 AA J K@2 L N H@2 O P H@2 AA J K@2 R S T@2 U J K@2 V W X@2 Y J K@2 V W
  X@2 Y J K@2 V S@4 AB AC@2 AD AE AF@2 AG AB AC@2 AD AE AF@2 AG AB AC@2 AD AE AF@2 AG AB AC@2 AD AE AF@2 AG E@16 AH AI@2
  AJ AK AL@2 AM AH AI@2 AJ AK AL@2 AM AH AI@2 AJ AK AL@2 AM AH AI@2 AJ AN AO@2 AP J K@2 V AQ AR@3 J K@2 V AS AT@2 AU
  AV@3 V AQ AR@3 AW AX@2 AY AQ AR@3 AZ BA@2 V BB BC@3 BD BE@2 V BF BG@3 BH@3 BI BJ@4 BK@8 BL@24 G H@2 I G H@2 M N H@2 O
  P H@2 Q G H@2 I G H@2 M G H@2 I G H@2 BM@6
>`.pickRestart({
  A: "e2 [e1,e2,e3,e4] [e1,e2]!2, ~ [e3,e4]", // E
  B: "[[e1,e2,e3,e4] [e1,e2]!3 [e1,e2] [e1,e2,e3,e4] [e1,e2]!2, ~ [e3,e4]@2 [e3,e4]@2 ~ [e3,e4]@2]/2", // E
  C: "[e1,e2,e3,e4]!2 [e1,e2]!2, ~ [e3,e4]", D: "[e1,e2,e3] [e1,e2,e3,e4] [e1,e2]!2, ~ [e3,e4]",
  E: "[e2 [e2,e3]!2 e2 [e2,e3]!2 e2 [e2,e3]@2 [e2,e3]!2 e2 [e2,e3]!3 [e1,e2], e1@2 ~ e1@2 ~ e1@2 ~@3 e1@2 ~@3]/4", // E
  F: "[e2 [e2,e3]!2 e2 [e2,e3]!2 e2 [e2,e3]@2 [e2,e3]!2 e2 [e2,e3]!3 [e1,e2], f#1@2 ~ e1@2 ~ e1@2 ~@3 e1@2 ~@3]/4", // E
  G: "[e3,f#3,f#4] [e3,e4] [e1,e2,e3]!2, [e1,e2] ~", // Esus2 E
  H: "[[g#3,g#4] [a3,a4] [e1,e2,e3] [e1,e2,e3,g#3,g#4]@2 [e1,e2,e3]!3, [e1,e2,e3] ~@3]/2", // G# A E
  I: "[e1,e2,e3,f#3,f#4] [e1,e2,e3,e4] [e1,e2,e3]!2", J: "[d2,d3,d4]",
  K: "[[d2,d3,d4]@3 [a1,a2,a3]@2 [a1,a2,a3]@2 [a1,a2,a3]]/2", L: "[a1,a2,a3]!4", M: "f#1!4, [f#2,f#3,f#4]",
  N: "e3!2 [e1,e2,e3]!2, [e1,e2,g#3,g#4] ~", O: "[e1,e2,e3]!4, [f#3,f#4]", P: "[e1,e2,e3,g#3,g#4]@2 [e1,e2,e3]!2",
  Q: "[f#1,f#2,f#3,f#4]", R: "[a1,a2,a3] [b1,b2,b3]", S: "[c2,c3,c4]@2 [c2,c3,c4]!2",
  T: "[[c2,c3,c4]@2 [c2,c3,c4] [g1,g2,g3]@2 [g1,g2,g3]!3]/2", U: "[g1,g2,g3]@2 [g1,g2,g3]!2", V: "[a1,a2,a3]!2",
  W: "[c2,c3,c4]", X: "[[c2,c3,c4]@3 [g1,g2,g3]@2 [g1,g2,g3]@2 [g1,g2,g3]]/2", Y: "[g1,g2,g3]!2", Z: "e1!4, [f#2,f#3]",
  AA: "[e2,e3]@2 [e2,e3]!2, f#1", AB: "e3!2 [e1,e2,e3]!2, [e1,e2] ~",
  AC: "[[e1,e2,e3]@2 [e1,e2,e3] [e1,e2,e3]@2 [e1,e2,e3]!3]/2", AD: "[d2,d3,d4]!4", AE: "[a1,a2,a3]@2 [a1,a2,a3]!2",
  AF: "[[a1,a2,a3]@2 [a1,a2,a3] [c2,c3,c4]@2 [c2,c3,c4]!3]/2", AG: "[g2,g3]@2 [g2,g3]!2, g1",
  AH: "[d2,a2,d3,a3,d4]@3 [d2,a2,d3,a3,d4]", // D5
  AI: "[[d2,a2,d3,a3,d4]@2 [d2,a2,d3,a3,d4] [a1,e2,a2,e3,a3]@2 [a1,e2,a2,e3,a3] [a1,e2,a2,e3,a3]@2]/2", // D5 A5
  AJ: "[a1,e2,a2,e3,a3]!2", AK: "[e2,b2,e3,b3,e4]@3 [e2,b2,e3,b3,e4]",
  AL: "[[e2,b2,e3,b3,e4]@2 [e2,b2,e3,b3,e4] [e2,b2,e3,b3,e4]@2 [e2,b2,e3,b3,e4] [e2,b2,e3,b3,e4]@2]/2", // E5
  AM: "[e2,b2,e3,b3,e4]!2", AN: "[c2,g2,c3,g3,c4]@3 [c2,g2,c3,g3,c4]",
  AO: "[[c2,g2,c3,g3,c4]@2 [c2,g2,c3,g3,c4] [g1,d2,g2,d3,g3]@2 [g1,d2,g2,d3,g3] [g1,d2,g2,d3,g3]@2]/2", // C5 G5
  AP: "[g1,d2,g2,d3,g3]!2", AQ: "[c2,c3,c4,e4]",
  AR: "[e4@2 d4 [g1,g2,g3]@2 [g1,g2,g3]@2 [g1,g2,g3] [g1,g2,g3]@2 [g1,g2,g3]@2, [c2,c3,c4]@3 d4@8 ~]/3", // G C
  AS: "[c2,c3,c4,g4]", AT: "[[c2,c3,c4,f#4]@3 [g1,g2,g3]@2 [g1,g2,g3]@2 [g1,g2,g3], ~@3 d4@5]/2",
  AU: "[g1,g2,g3]!2, b3", AV: "[[d2,d3,d4]@4 [d2,d3,d4]@3 [a1,a2,a3]@2 [a1,a2,a3]@2 [a1,a2,a3], a3@7 ~@5]/3",
  AW: "[d2,d3,a3,d4,a4,a5]", // D5
  AX: "[[d2,d3,a3,d4]@3 ~@2 [a1,a2,a3]@2 [a1,a2,a3], [a4,a5] [a4,a5], ~@3 [a1,a2,a3]@2 ~@3]/2", // D5 A
  AY: "[a1,a2,a3]!2, [a4,a5]", AZ: "d5 [a3,a4], [d2,d3,d4]",
  BA: "[[f#4,f#5] [f4,f5] [e4,e5] [a1,a2,a3]@2 [a1,a2,a3]@2 [a1,a2,a3], [d2,d3,d4]@3 a4@5]/2", BB: "[c2,c3,c4,g4,g5]",
  BC: "[[c2,c3,c4,f#4,f#5]@3 [g1,g2,g3]@2 [g1,g2,g3]@2 [g1,g2,g3] [g1,g2,g3]@2 [g1,g2,g3]@2, ~@3 [d4,d5]@7 ~@2]/3", // Cdim G D
  BD: "[d5,d6] [a3,a4,a5], [d2,d3,d4]", // D A D
  BE: "[[f#4,f#5,f#6] [f4,f5,f6] [e4,e5,e6] [a1,a2,a3]@2 [a1,a2,a3]@2 [a1,a2,a3], [d2,d3,d4]@3 [a4,a5]@5]/2", // F# F E A D A
  BF: "[c2,c3,c4,g4,g5,g6]", // C5
  BG: "[[c2,c3,c4,f#4,f#5,f#6]@3 [g1,g2,g3]@2 [g1,g2,g3]@2 [g1,g2,g3] [g1,g2,g3]@2 [g1,g2,g3]@2, ~@3 d4@7 ~@2, ~@3 [d5,d6]@5 [b4,b5]@4]/3", // Cdim G D B
  BH: "[~@2 a3@2 [d2,d3,d4]@3 [a1,a2,a3]@2 [a1,a2,a3]@2 [a1,a2,a3], [b4,b5]@7 [a4,a5]@5, [d2,d3,d4] ~@2]/3", // D A B A D
  BI: "[g4,g5] [f#4,f#5] [a1,a2,d4,d5]@2, [a1,a2,a3] ~", // G F# D5 A
  BJ: "[[c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2 [c2,c3,c4]@2 [c2,c3,c4]!2, [c5,c6]]/4", // C
  BK: "[e3@2 e3@2 [e1,e2,e3]@2 [e1,e2,e3,a3]@2 [e1,e2,e3,a#3]@4 [e1,e2,e3,a#3]@2 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 [c2,c3,c4]@2 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3, [e5,e6]@9 [e5,e6]@9 [e5,e6]@9 [e5,e6]@5, a3@6 ~@40 c4@3 ~@3 b3 ~@3 [g2,g3]@4 [g2,g3]@2 [g2,g3]@2, [e1,e2]@2 ~@5 [e1,e2,e3]@2 [e1,e2,e3]!3 [d2,d3,d4]!4 [a1,a2,a3]@2 [a1,a2,a3]!2 [a1,a2,a3]@2 [a1,a2,a3] [c2,c3]@2 [c2,c3,c4] ~ [c2,c3,c4] g1@4]/8", // E A5 Edim C E G E D …
  BL: "[b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3 [c2,c3,c4]@2 b3 a#3 b3 c4 b3 a#3 b3 c4 b3 a#3, [e5,e6]@9 [e5,e6]@9 [e5,e6]@9 [e5,e6]@5, [e1,e2]@2 [e1,e2,e3]!2 [e1,e2,e3]@2 [e1,e2,e3] [e1,e2,e3]@2 [e1,e2,e3]!3 [d2,d3,d4]!4 [a1,a2,a3]@2 [a1,a2,a3]!2 [a1,a2,a3]@2 [a1,a2,a3] [c2,c3]@2 [c2,c3,c4] ~ [c2,c3,c4] g1@4, e3@2 e3@2 ~@42 c4@3 ~@3 b3 ~@3 [g2,g3]@4 [g2,g3]@2 [g2,g3]@2]/8", // C E D A C G
  BM: "[[d1,a1,d2,a2,d3,a3,d4]@21 [e1,b1,e2,b2,e3,b3,e4]@33 ~ [e1,b1,e2,b2,e3,b3,e4]@33 ~@8]/6", // D5 E5
})).s("gm_overdriven_guitar").gain(0.39)

// bass · slap bass 2 · "Strings"
const bass_4 = note(`<
  ~@122 A B@2 C D E@2 F G B@2 C D E@2 F G B@2 C H@4 ~@56 I B@2 C D E@2 F G B@2 C D E@2 F G B@2 C H@4 ~@80 J B@2 C D E@2
  F G B@2 C K@3 F G B@2 C D E@2 F G B@2 C D E@2 F G B@2 C D E@2 F G B@2 C D E@2 F L@3 M H@4 ~@63 N@6
>`.pickRestart({
  A: "[d2,a2]@3 [d2,a2,d3]", B: "[[d2,a2,d3]@2 [d2,a2,d3] [a1,e2,a2]@2 [a1,e2,a2]@2 [a1,e2,a2]]/2",
  C: "[a1,e2,a2]@2 [a1,e2,a2]!2", D: "[c2,g2,c3]@3 [c2,g2,c3]",
  E: "[[c2,g2,c3]@2 [c2,g2,c3] [g1,d2,g2]@2 [g1,d2,g2]@2 [g1,d2,g2]]/2", F: "[g1,d2,g2]@2 [g1,d2,g2]!2",
  G: "[d2,a2,d3]@3 [d2,a2,d3]", H: "[c2,g2,c3]@2 [c2,g2,c3]!2", I: "~@3 [d2,a2,d3]", J: "[d2,d3]@3 [d2,a2,d3]",
  K: "[[c2,g2,c3,f#3]@3 [c2,g2,c3] [c2,g2,c3]@2 [c2,g2,c3] [g1,d2,g2]@2 [g1,d2,g2]@2 [g1,d2,g2], ~@3 f3@3 c#3@5 ~]/3", // C C5 G5
  L: "[[d2,a2,d3]@3 [d2,a2,d3] [d2,a2,d3]@2 [d2,a2,d3] [a1,e2,a2]@2 [a1,e2,a2]@2 [a1,e2,a2], b3@7 a3@5]/3", // D5 A5
  M: "g3 f#3 [a1,e2,a2]!2, [a1,e2,a2] d3", N: "[d3@21 ~ [e1,e2,e3]@33 [e1,e2,e3]@34 ~@7]/6",
})).s("gm_slap_bass_2").gain(0.8)

// other · lead 1 square · "Strings" · A#maj7 G#maj7 Dmaj7
const lead_1_square = note(`<
  ~@273
  [[f#3,g3,g#3] [a3,a#3] ~@2 [a3,a#3] [g3,g#3] f#3 [d#3,e3,f3] [c#3,d3] c3@3 g#3 [f3,f#3,g3] [d#3,e3,f3] [c#3,d3,d#3], ~ b3@3 ~@12]
  ~@157
>`).s("gm_lead_1_square").gain(0.8)

// other · pad choir · "Strings"
const pad_choir = note("<~@277 A@2 B@2 C D E@7 F G@3 H@3 I J K@2 L M N@2 O ~@125>".pickRestart({
  A: "[~@6 g#5@4 g5 f#5 f5 e5@3]/2", B: "[e5 f#5 e5 c#6@5]/2", C: "b5", D: "g#5 b5!2 g#5",
  E: "[a5@2 g#5@2 e5@2 f#5@15 ~@17 c#5@6 d5@2 e5@8 ~@2, ~@3 d6@5]/7", F: "b5 g#5@3", G: "[e5 f#5 g#5 f#5@8 ~]/3",
  H: "[g#5 f#5@5 f#5 e5@2 g#4 f#4 e4]/3", I: "f#4", J: "f#4 e4@3", K: "[e4@3 e4@2 g#4 b4@2]/2", L: "e5 f#5", M: "g5",
  N: "[g5 f#5@2 d5@5]/2", O: "b4",
})).s("gm_pad_choir").gain(0.8)

// bass · slap bass 2 · "Melody"
const bass_5 = note("<~@302 A B@2 C ~@125>".pickRestart({
  A: "[c2,g2,c3]@3 [c2,g2,c3]", B: "[[c2,g2,c3]@2 [c2,g2,c3] [g1,d2,g2]@2 [g1,d2,g2] [g1,d2,g2]@2]/2",
  C: "[g1,d2,g2]@2 [g1,d2,g2]!2", // G5
})).s("gm_slap_bass_2").gain(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A ~@3 B ~@7 C D C E C D C E C D C E C D C E C D C E C D C F G H F I G H F I G H F I G H F E G H F I G H F J C H F
  K G H F I G H F B C H F B G H K ~ C H F D G H K E C H F K C H F D G H K E C H F K C H F D G H K E C H F ~ C H ~ F C E
  F H C E H K C E F H C E H K C E F H L@3 M G H F I G H F B C H F B G H K ~ C H F B G H K ~ C H F K C H F B G H K@2 C H
  F K C H F B G H K@2 C H F ~ C H J B C E F H C E H K C E F H C E H K C E F H L@3 M C H F D C H F K C H F D C H F K C H
  F D C H F K C H F D C H E N C D C E C D C E C D C E C D C E C H F B G H F J C H F B G H F J C H F B G H F J C H F B G
  H E K C E F H C E H K C E F H C E H K C E F H C E H K C E F H L O G H C E F H C E H K C E F H C E H K C E F H L@3 M C
  H F D C H F K C H F D C H F K C H F D C H F K C H F D C H F K G H F I G H F B C H F B G H K J M@15 B P ~ Q ~@2
>`.pickRestart({
  A: "~@3 x ~@12", B: "x", C: "x ~@2 x", D: "~ x", E: "~ x ~ x", F: "~@3 x", G: "x!2 ~ x", H: "~@2 x!2",
  I: "~@2 x ~@3 x!2", J: "~ x ~@2", K: "~ x!3", L: "x ~ x!2", M: "x!2", N: "x!4", O: "~ x!2 ~", P: "~@5 x ~@10",
  Q: "~@7 x ~@8",
})).gain(0.67)

// drums · snare
const snare = s("sd").struct(`<
  A B C ~ D E F ~@7 G H G I G H G I G H G I G H G I G H G I G H G J ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ I ~ F ~ F ~ F ~ I ~ F
  ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ K ~ F ~ F ~ F ~ I ~ F ~ F ~ F ~ F ~ F ~ I ~ F ~ F ~ F ~ F ~ F ~ I ~ F B K ~ F G L ~
  F ~ F ~ F B F ~ F ~ F ~ F B F ~ F ~ F@5 ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ K ~ F ~ F ~ F ~ K ~ F ~ F ~ F ~ F ~ F ~ I ~ F ~
  F ~ F ~ F ~ F ~ I ~ F B K ~ F B F ~ F ~ F ~ F B F ~ F ~ F ~ F B F ~ F ~ F@4 ~@2 F ~ I ~ F G F ~ F ~ I ~ F G F ~ F ~ I
  ~ F G F ~ F ~ I ~ F L ~ G H G I G H G I G H G I G H G I ~ F ~ F ~ F ~ I ~ F ~ F ~ F ~ I ~ F ~ F ~ F ~ I ~ F ~ F ~ F@2
  M ~ F ~ F ~ F B F ~ F ~ F ~ F B F ~ F ~ F ~ F B F ~ F ~ F N O L N F@2 ~ F ~ F B F@3 ~ F ~ F B F@3 ~ F@4 ~@2 F ~ I ~ F
// … 89 more lines

More by The Smashing Pumpkins