Strudelify

Cupid de Locke

The Smashing Pumpkins

KeyE majorTempo92 bpm
0:00/0:00
// Cupid de Locke — The Smashing Pumpkins
// 92 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 45, 4/4 at bar 46) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 2 "Guitar" named as a guitar, played on electric guitar clean (its electric bass pick patch is not one)
// note: Full arrangement: all 66 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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.

// other · orchestral harp · "Lead Harp"
const orchestral_harp = note(`<
  [e4 g#4 b4 d#5 e5 d#5 b4 g#4 e4 g#4 b4 d#5 e5 d#5 b4 g#4]!44
  ~
  [~@8 e4 g#4 b4 d#5 e5 d#5 b4 g#4]
  [e4 g#4 b4 d#5 e5 d#5 b4 g#4 e4 g#4 b4 d#5 e5 d#5 b4 g#4]!19
  [e4 g#4 b4 d#5 e5 d#5 b4 g#4 ~@8]
>`).s("gm_orchestral_harp").gain(0.19)

// other · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  [e5@3 ~ e5@3 ~ e5@3 ~ d#5@8 e5@4 b4@4 e5@3 ~]!12
  ~@13
  [e5@3 ~ e5@3 ~ e5@3 ~ d#5@8 e5@4 b4@4 e5@3 ~]!4
  ~@13
  [e5@3 ~ e5@3 ~ e5@3 ~ d#5@8 e5@4 b4@4 e5@3 ~]!2
  ~@22
>`).s("gm_electric_guitar_clean").gain(0.2)

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~@2 A B C B C B C D@2 E@3 F G H I H J K L M N@2 O G I P Q R O S O@2 T U V W@2 X Y I O Z@8 AA@8 AB@3 ~@3
>`.pickRestart({
  A: "e2@7 ~ e2@4 f#2@7 ~ f#2@4 g#2@8", B: "e2@7 ~ e2@3 d#2@7 ~ d#2@5 b1@8", C: "e2@8 e2@4 d#2@12 b1@7 ~",
  D: "[e2@7 ~ e2@4 d#2@6 ~ d#2@5 b1@7 e2@8 ~ e2@4 d#2@7 d#2@5 b1@8]/2",
  E: "[e2@7 ~ e2@3 d#2@7 ~@2 d#2@4 b1@7 e2@8 ~ e2@4 d#2@12 b1@7 e2@8 ~ e2@4 d#2@12 b1@8]/3",
  F: "e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@7 ~", G: "e2@7 ~ e2@4 d#2@7 d#2@5 b1@8", H: "e2@2 e2 d#2@3 b1@2",
  I: "e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8", J: "e2@6 ~@2 e2@4 d#2@12 b1@7 ~", K: "e2@3 f#2@3 g#2@2",
  L: "c#2@12 g#2@8 c#2@4 ~@3 c#2@5, ~@12 g#2@3 ~", M: "a1@7 ~ a1@4 e2@7 ~ a1@4 e2@4 a1@4",
  N: "[f#2@15 g#2@16 a2@13 b2@4 a2@4 b2@4 a2@8]/2", O: "e2@7 ~ e2@4 d#2@12 b1@8", P: "e2@7 ~ e2@4 d#2@6 ~@2 d#2@4 b1@8",
  Q: "e2@11 d#2@13 b1@8", R: "e2@7 ~ e2@4 d#2@11 b1@9", S: "e2@6 ~@2 e2@4 d#2@6 ~ d#2@5 b1@8",
  T: "e2@7 ~ e2@4 d#2@6 ~ d#2@5 b1@8", U: "e2@7 ~ e2@4 d#2@6 ~@3 d#2@3 b1@7 ~", V: "e2@12 f#2@7 ~ f#2@4 g#2@8",
  W: "[c#2@12 g#2@7 c#2@4 g#2@4 c#2@4 a1@7 ~@2 a1@4 e2@7 ~ a1@4 e2@4 a1@4]/2", X: "f#2 g#2", Y: "a2@3 b2 a2 b2 a2@2",
  Z: "[a1@46 ~@2 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@4]/8",
  AA: "[~@4 d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@8 e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@4]/8",
  AB: "[~@4 d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@5 ~@23]/3",
})).s("gm_acoustic_bass").gain(0.32)

// bass · acoustic bass · "Bass" · soft notes
const bass_soft = note("<~@62 A@4>".pickRestart({
  A: "[~@8 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 e2@7 ~ e2@4 d#2@7 ~ d#2@4 b1@8 ~@16]/4",
})).s("gm_acoustic_bass").gain(0.12)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@2 A B@4 C@5 A D A E@3 F D G@5 H I H I J I J K@3 H I L@5 H M@7 N@8 O@5 ~@3
>`.pickRestart({
  A: "[e3,g#3,b3]@2 ~@2 [e3,g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@3 ~ [g#3,b3,g#4]@3 ~, ~@7 d#4@3 ~ g#3@3 ~@18", // E G#m B E G#m
  B: "[[e3,g#3,b3]@3 ~ [e3,b3]@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@3 ~@2 [b3,g#4]@3 [e3,g#3,b3]@3 ~ [e3,g#3,b3]@3 ~@2 d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3,g#4]@3 ~@2 g#4@2 ~ [e3,g#3,b3]@3 ~ [e3,g#3,b3]@3 ~ [g#3,b3,d#4]@2 ~@3 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [g#3,b3,g#4]@2 ~@2 [b3,g#4]@2 ~@2 e3 e3@3 [e3,g#3,b3]@3 ~@2 d#4@2 ~@2 d#4@2 ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~@2 g#4@2 ~ [g#3,b3,g#4]@3 ~ [e3,g#3,b3], ~@3 g#3@3 ~ b3@2 ~@2 [g#3,b3]@2 ~@14 g#3@3 ~@9 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [g#3,b3]@3 ~ [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@13 g#3@3 ~ g#3@3 ~ [g#3,b3]@3 ~@5 g#3@7 ~@5 [g#3,b3]@3 ~ [g#3,b3]@3 ~@9 [g#3,b3]@3 ~@6, ~@95 b3@2 ~@31]/4", // E E5 G#5 E G#m E G#m E …
  C: "[~@3 [e3,g#3,b3]@3 ~ [g#3,b3,d#4]@3 ~ [g#3,b3,d#4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@2 ~@2 [g#3,b3,g#4]@4 [e3,a3,c#4]@3 ~ [e3,a3,c#4]@3 ~@2 [a3,c#4,e4]@3 ~ a3@3 ~ [a3,c#4,g#4]@3 [a3,c#4]@3 ~@2 [a3,b4]@2 ~ [a3,c#4,b4]@3 ~@2 [e3,a3]@3 ~ [e3,a3]@3 ~ [a3,e4]@2 ~@2 e4@3 ~ g#4@2 ~ [a3,c#4,g#4]@3 ~ [a3,c#4,b4]@2 ~@2 [c#4,b4]@3 ~ [e3,g#3,b3]@3 ~ [e3,g#3,b3]@3 ~@2 d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3,g#4]@3 ~@2 g#4@2 ~ [e3,g#3,b3]@3 ~ [e3,g#3,b3]@3 ~ [g#3,b3,d#4]@3 ~ [g#3,b3,d#4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@3 ~ [g#3,b3,g#4]@3 ~@2, ~@43 [c#4,e4]@3 ~@5 g#4@4 c#4@3 ~@5 c#4@3 ~ c#4@3 ~ c#4@3 ~ [a3,c#4]@3 ~ [a3,c#4]@3 ~@9 a3 ~@11 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [g#3,b3]@3 ~ [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@34]/5", // E G#m E G#m A Amaj7 A Asus2 …
  D: "[e3,g#3,b3]@3 ~ [e3,b3]@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@3 ~@2 [b3,g#4]@3 ~, ~@3 g#3@3 ~ b3@2 ~@2 [g#3,b3]@2 ~@14 g#3@3 ~@2", // E E5 G#5 E G#m E G#m
  E: "[[e3,g#3,b3]@3 ~ [e3,b3]@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@3 ~@2 [b3,g#4]@3 [e3,a3,c#4]@3 ~ [e3,a3,c#4]@3 ~@2 [a3,c#4,e4]@3 ~ a3@2 ~@2 [a3,c#4,g#4]@3 [a3,c#4]@3 ~@2 [a3,b4]@2 ~ [a3,c#4,b4]@3 ~@2 [e3,a3]@3 ~ [e3,a3]@3 ~ [a3,e4]@2 ~@2 e4@3 ~ g#4@2 ~ [a3,c#4,g#4]@3 ~ [a3,c#4,b4]@2 ~@2 [c#4,b4]@3 ~ [g#3,b3], ~@3 g#3@3 ~ b3@2 ~@2 [g#3,b3]@2 ~@14 g#3@3 ~@13 [c#4,e4]@3 ~@5 g#4@4 c#4@3 ~@5 c#4@3 ~ c#4@3 ~ c#4@3 ~ [a3,c#4]@3 ~ [a3,c#4]@3 ~@9 a3 ~@4]/3", // E E5 G#5 E G#m E A Amaj7 …
  F: "[e3,g#3,b3]@2 ~@2 [e3,g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [g#3,b3,g#4]@3 ~ [g#3,b3,g#4]@3 ~, ~@7 d#4@3 ~ g#3@3 ~@18", // E G#m B E G#m
  G: "[[e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@3 [e3,b3]@4 ~ [c#3,b3]@3 ~ b3@3 [e3,b3,e4]@4 [e3,b3,g#4]@4 [e3,b3,g#4]@4 [e3,b3,b4]@4 [e3,b4]@4 [a2,e3,a3]@4 [a2,e3,a3]@4 [e3,a3,b3]@4 e3@4 [e3,e4]@3 ~ e3@3 ~ a4@3 ~ a4@3 ~ [e3,f#3,a3]@4 [e3,f#3,a3]@4 [e3,e4]@4 [f#3,a3]@2 ~@2 [f#3,g#3]@2 ~@2 [b3,e4]@4 [b3,g#4]@3 ~ [f#3,g#3]@2 ~@2 [a2,e3,a3]@4 [a2,e3,a3]@4 [e3,a3,b3]@4 e3@4 [e3,e4]@3 ~ e3@3 ~ a4@3 ~ a4@3 ~@2, ~@3 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@32 b3@12 ~@4 b3@24 b3@8 b3@4 b3@4 ~@7 e4@3 ~@22 e4@5 ~@2 a3@3 ~@3, ~@4 e3@27 c#3@3 ~ e3@4 [e3,e4]@4 ~@40 e4@5 ~@2 a3@3 ~@22 [f#3,g#3]@2 ~@2 [f#3,g#3]@2 ~@2 b3@12 ~@4 b3@21, ~@11 g#3@2 ~@14 g#3@3 ~@45 a3@7 a3@3 ~ [e3,a3]@4 e3@5 ~@8 [f#3,a3]@2 ~@2 e3@20 ~@12 a3@7 a3@3 ~ [e3,a3]@4 e3@6]/5", // E G#5 E G# E E5 C#7 E5 …
  H: "[e3,b3]@4 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,b3,g#4]@4 [g#3,b3,g#4]@4, g#3 ~ e3@14, ~@7 d#4@3 ~ g#3@3 ~@18", // E5 G#m B E G#m
  I: "[e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@4, ~@3 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@5, ~ e3@7, ~@11 g#3@2 ~@14 g#3@3 ~@2", // E G#5 E G# E
  J: "[e3,b3]@4 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,b3]@4 [g#3,b3,g#4]@4, g#3 ~ e3@14, ~@7 d#4@3 ~ g#3@3 ~@10 g#4@2 ~@6", // E5 G#m B E G#m
  K: "[[e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 g#4@3 [e3,a3,c#4]@4 [a3,c#4]@3 ~@2 [a3,c#4,e4]@3 ~ a3@3 ~ [a3,c#4,g#4]@3 [a3,c#4]@3 ~@2 [a3,b4]@2 ~ [a3,c#4,b4]@3 ~@2 e3@3 ~ a3@3 ~ [a3,e4]@2 ~@2 e4@3 ~ g#4@2 ~ [a3,c#4,g#4]@3 ~ [a3,c#4,b4]@2 ~@2 [c#4,b4]@3 ~@2, ~@3 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~ b3@68, ~@4 e3@27 ~@4 e3@29 a3@2 ~@2 e3@28, ~@11 g#3@2 ~@14 g#3@3 ~@13 [c#4,e4]@3 ~@5 g#4@4 c#4@3 ~@5 c#4@3 ~ c#4@3 ~ c#4@3 ~ [a3,c#4]@3 ~ [a3,c#4]@3 ~@9 a3 ~@4]/3", // E G#5 E G# A Amaj7 A Asus2 …
  L: "[[e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@3 [e3,b3]@4 ~ b3@3 ~ b3@3 [e3,b3,e4]@4 [e3,b3,g#4]@4 [e3,b3,g#4]@4 [e3,b3,b4]@4 [e3,b4]@4 [a2,e3,a3]@4 [a2,e3,a3]@4 [e3,a3,b3]@4 e3@4 [e3,e4]@3 ~ e3@3 ~ a4@3 ~ a4@3 ~ [f#3,a3]@2 ~@2 [e3,f#3]@4 [e3,e4]@4 [f#3,a3]@2 ~@2 [f#3,g#3]@2 ~@2 [b3,e4]@4 [b3,g#4]@3 ~ [f#3,g#3]@2 ~@2 [a2,e3,a3]@4 [a2,e3,a3]@4 [e3,a3,b3]@4 e3@4 [e3,e4]@3 ~ e3@3 ~ a4@3 ~ a4@3 ~@2, ~@3 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@32 b3@12 ~@4 b3@24 b3@8 b3@4 b3@4 ~@7 e4@3 ~@22 e4@5 ~@2 a3@3 ~@3, ~@4 e3@27 c#3@3 ~ e3@4 [e3,e4]@4 ~@32 a3@7 a3@3 ~ [e3,a3]@4 e3@5 e3@4 ~@4 [f#3,a3]@2 ~@2 e3@20 ~@12 a3@7 a3@3 ~ [e3,a3]@4 e3@6, ~@11 g#3@2 ~@14 g#3@3 ~@6 c#3@2 ~@45 e4@5 ~@2 a3@3 ~@6 a3@2 ~@14 [f#3,g#3]@2 ~@2 [f#3,g#3]@2 ~@2 b3@12 ~@4 b3@21]/5", // E G#5 E G# E E5 E E5 …
  M: "[[e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 b3@52 [e3,b3]@4 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,b3,g#4]@4 [g#3,b3,g#4]@4 [e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@3 [e3,g#3,b3]@4 [g#3,b3]@4 ~ d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3]@4 ~ g#4@2 ~ [e3,g#3,b3]@4 [g#3,b3]@4 [g#3,d#4]@3 ~@2 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [g#3,b3,g#4]@4 [g#3,b3]@5 [e3,b3]@4 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4, ~@3 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~ g#4@3 ~@56 d#4@3 ~@33 g#3@2 ~@14 g#3@3 ~@9 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 g#3@2 ~@6 [g#3,b3]@4 ~@8 b3@4 g#3@3 ~ g#3@3 ~ [g#3,b3]@4 ~@9 g#3@2 ~@9 g#3@3 ~@2, ~@4 e3@28 ~@52 e3@28 ~@4 e3@27 ~@4 e3@28 ~@4 e3@29 ~@4 e3@12, ~@11 g#3@2 ~@14 g#3@3 ~@50 g#3@2 ~@9 g#3@3 ~@21 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@24 b3@4 g#4@2 ~@34 g#4@2 ~@10 d#4@3 ~@6]/7", // E G#5 E G# E5 G#m B E …
  N: "[[g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,b3,g#4]@4 [g#3,b3,g#4]@4 [e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@3 [e3,g#3,b3]@4 [g#3,b3]@4 ~ d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3]@4 ~ g#4@2 ~ [e3,g#3,b3]@4 [g#3,b3]@4 [g#3,d#4]@2 ~@3 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [g#3,g#4]@2 ~@2 [g#3,b3]@5 [e3,b3]@4 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,b3]@4 [g#3,b3,g#4]@4 [e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@3 [e3,g#3,b3]@4 [g#3,b3]@4 ~ d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3]@4 ~ g#4@2 ~ [e3,g#3,b3]@4 [g#3,b3]@4 [g#3,d#4]@3 ~@2 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [b3,g#4]@4 [g#3,b3]@5 [e3,b3]@4 [g#3,b3]@3 ~ [g#3,b3]@3 ~ [b3,d#4]@4, ~@19 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@28 g#4@2 ~@34 g#4@2 ~@10 d#4@3 ~@14 g#4@2 ~@17 g#3@2 ~@14 g#3@3 ~@9 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 g#3@2 ~@6 [g#3,b3]@4 ~@8 b3@4 g#3@3 ~ g#3@3 ~ [g#3,b3]@4 g#3@2 ~@7 g#3@2 ~@9 g#3@3 ~@2, ~@20 e3@27 ~@4 e3@28 ~@4 e3@29 ~@4 e3@28 ~@4 e3@27 ~@4 e3@28 ~@4 e3@29 ~@4 e3@12, ~@27 g#3@2 ~@14 g#3@3 ~@9 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 ~@4 [g#3,b3]@4 ~@8 b3@4 g#3@3 ~ g#3@3 ~ [g#3,b3]@4 b3@4 ~@5 g#3@2 ~@9 g#3@3 ~@21 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@24 b3@4 g#4@2 ~@34 g#4@2 ~@10 d#4@3 ~@6]/8", // E G#m E G#5 E G# E G#m …
  O: "[[g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,b3,g#4]@4 [g#3,b3,g#4]@4 [e3,g#3,b3]@3 ~ b3@3 ~ [g#3,d#4]@3 ~ d#4@3 [g#3,b3,e4]@4 [g#3,b3,e4]@4 [g#3,g#4]@3 ~@2 [b3,g#4]@3 [e3,g#3,b3]@4 [g#3,b3]@4 ~ d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3]@4 ~ g#4@2 ~ [e3,g#3,b3]@4 [g#3,b3]@4 [g#3,d#4]@2 ~@3 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [g#3,b3,g#4]@4 b3@4 [e3,g#3,b3]@4 [g#3,b3]@4 ~ d#4@3 ~ d#4@3 ~ e4@2 ~ b3@4 ~@25, ~@19 g#3@3 ~ b3@4 b3@4 ~@8 b3@4 ~@28 g#4@2 ~@34 g#4@2 ~@51, ~@20 e3@27 ~@4 e3@28 ~@4 e3@28 ~@4 e3@28 ~@17, ~@27 g#3@2 ~@14 g#3@3 ~@9 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 ~@4 [g#3,b3]@4 ~@8 b3@4 g#3@3 ~ g#3@3 ~ [g#3,b3]@4 ~@16 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 ~@29]/5", // E G#m E G#5 E G# E G#m …
})).s("gm_string_ensemble_1").gain(0.27)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@43 A@3 ~@16 B@4>".pickRestart({
  A: "[~@32 [e3,a3]@49 ~@15, ~@31 a2@50 ~@15]/3", // A5
  B: "[~@4 e4@2 ~ [g#3,b3]@4 ~ g#4@2 ~ [e3,g#3,b3]@4 [g#3,b3]@4 [g#3,d#4]@2 ~@3 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [g#3,g#4]@2 ~@2 b3@4 [e3,g#3,b3]@4 [g#3,b3]@4 ~ d#4@3 ~ d#4@3 ~ e4@2 ~@2 e4@2 ~ [g#3,b3]@4 ~ g#4@2 ~ [g#3,b3]@4 [g#3,b3]@4 [g#3,d#4]@3 ~@2 [b3,d#4]@3 ~ [b3,e4]@3 ~ e4@2 ~ [g#3,g#4]@2 ~@2 g#4@2 ~@19, ~@3 g#3@3 ~ g#4@2 ~@2 [g#3,b3]@4 ~@4 e3@28 ~@4 e3@28 e3@7 ~@42, ~@23 b3@4 g#3@3 ~ g#3@3 ~ [g#3,b3]@4 b3@4 g#4@2 ~@10 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 [g#3,b3]@4 g#4@2 ~@2 [g#3,b3]@4 ~@8 b3@4 g#3@3 ~ g#3@3 ~ [g#3,b3]@4 b3@4 ~@21]/4", // G#m E G#m G#5 B E5 G# E …
})).s("gm_string_ensemble_1").gain(0.11)

// other · orchestral harp
const orchestral_harp_2 = note(`<
  ~@51
  [~@7 b5 e6 d#6 e6 b5 g#5 f#5 g#5 b5]
  [e6 d#6 e6 b5 g#5 f#5 g#5 b5 e6 d#6 e6 b5 g#5 f#5 g#5 b5]!10
  [e6 d#6 e6 b5 g#5 f#5 g#5 b5 e6 ~@7]
  ~@3
>`).s("gm_orchestral_harp").gain(0.21)

// other · orchestral harp · soft notes
const orchestral_harp_soft = note(`<
  ~@49
  [~@8 e6 d#6 e6 b5 g#5 f#5 g#5 b5]
  [e6 d#6 e6 b5 g#5 f#5 g#5 b5 e6 d#6 e6 b5 g#5 f#5 g#5 b5]
  [e6 d#6 e6 b5 g#5 f#5 g#5 ~@9]
  ~@10
  [~@9 d#6 e6 b5 g#5 f#5 g#5 b5]
  [e6 d#6 e6 b5 g#5 f#5 g#5 b5 e6 d#6 e6 b5 g#5 f#5 g#5 b5]!2
  [e6 d#6 e6 b5 g#5 f#5 g#5 b5 ~@8]
>`).s("gm_orchestral_harp").gain(0.1)

// other · orchestral harp
const orchestral_harp_3 = note("<~@25 A B C D ~@16 E F G H I J K L M I J K L N I J K L O ~@2>".pickRestart({
  A: "g#4@3 ~ g#4@4 b4@3 ~ b4@3 ~ d#5@4 d#5@3 ~ g#5@3 ~ g#5@3 ~",
  B: "g#4@4 g#4@3 ~ b4@3 ~ b4@4 d#5@3 ~ d#5@3 ~ g#5@4 g#5@3 ~",
  C: "g#4@3 ~ g#4@3 ~ b4@4 b4@3 ~ d#5@3 ~ d#5@4 g#5@3 ~ g#5@3 ~",
  D: "g#4@4 g#4@4 b4@3 ~ b4@3 ~ d#5@4 d#5@3 ~ g#5@3 ~ g#5@4", E: "~@20 g#4@3 ~ b4@3 ~ b4@3 ~",
  F: "d#5@4 d#5@3 ~ g#5@3 ~ g#5@4 ~@4 g#4@3 ~ b4@4 b4@4", G: "d#5@3 ~ d#5@3 ~ g#5@4 g#5@3 ~@5 g#4@4 b4@3 ~ b4@3 ~",
  H: "d#5@4 d#5@3 ~ g#5@3 ~ g#5@3 ~@5 g#4@3 ~ b4@3 ~ b4@4",
  I: "d#5@3 ~ d#5@3 ~ g#5@4 g#5@3 ~ g#4@3 ~ g#4@3 ~ b4@4 b4@3 ~",
  J: "d#5@3 ~ d#5@4 g#5@3 ~ g#5@3 ~ g#4@4 g#4@3 ~ b4@3 ~ b4@3 ~",
  K: "d#5@4 d#5@3 ~ g#5@3 ~ g#5@4 g#4@3 ~ g#4@3 ~ b4@4 b4@3 ~",
  L: "d#5@3 ~ d#5@3 ~ g#5@4 g#5@3 ~ g#4@3 ~ g#4@4 b4@3 ~ b4@3 ~",
  M: "d#5@4 d#5@4 g#5@3 ~ g#5@3 ~ g#4@4 g#4@3 ~ b4@3 ~ b4@4",
  N: "d#5@4 d#5@3 ~ g#5@3 ~ g#5@3 ~ g#4@4 g#4@3 ~ b4@3 ~ b4@4", O: "d#5@4 d#5@3 ~@25",
})).s("gm_orchestral_harp").gain(0.24)

// other · orchestral harp · soft notes
const orchestral_harp_soft_2 = note(`<
  ~@45
  [~@4 g#4 ~@3]
  [~@16 g#4@3 ~@13]!2
  [~@4 g#4 ~@3]
  ~@14
  [~@8 g#5@3 ~ g#5@3 ~ g#4@4 g#4@3 ~ b4@3 ~ b4@4]
  [d#5@3 ~ d#5@3 ~ g#5@4 g#5@3 ~ g#4@3 ~ g#4@3 ~ b4@4 b4@3 ~]
  [d#5@3 ~ d#5@4 g#5@3 ~ g#5@3 ~@17]
>`).s("gm_orchestral_harp").gain(0.12)

// chords · orchestral harp
const orchestral_harp_4 = note("<~@11 A@2 ~@31 B@2 ~@20>".pickRestart({
  A: "[~ e6!3 [b5,e6] [g#5,e6] g#5 d#6 b5 g#5 e5!2 d#6 b5 [b4,g#5] [g#4,b4,e5] b4 [e4,b4,d#5] [b4,e5] [g#4,b4]!2 [d#5,b5] [g#4,e5] [b4,e5,g#5] ~ b5 e6 ~@2 b5@2 e6@2 ~@31, ~@5 b5@2 g#5@2 [d#5,b5]@2 b4@2 [d#5,d#6]@2 g#5@2 ~ [e4,d#5]@2 g#5@2 [d#5,b5]@2 [e5,g#5]@3 [e5,e6]@3 ~@34, ~@6 [e5,e6]@2 [e5,d#6]@2 [g#5,e6]@2 [g#4,e5]@2 [e4,b5]@2 [g#4,e5]@3 e5@2 [e4,b4]@2 [g#4,e6]@2 d#5@3 g#5@2 ~@34, ~@24 b4@2 b5@3 ~@35]/2", // E5 C#m E Emaj7 E5 G#m C#m E …
  B: "[~@25 e6!3 [b5,e6] [g#5,e6] [e5,g#5] [e5,d#6] b5 g#5 e5!2 ~ b5 [b4,g#5] [g#4,b4,e5] b4 [e4,b4,d#5] [b4,e5] [g#4,b4] g#4 [d#5,b5] g#4 g#5 ~ b5 e6 ~ g#5@2 ~@10, ~@29 b5@2 [b4,g#5]@2 b5@3 [g#4,e5]@2 e4@3 ~ [e4,d#5]@2 g#5@2 [d#5,b5]@2 g#5@3 e6@6 ~@7, ~@30 e6@2 d#6@7 ~ [g#4,e5]@3 ~ b4@5 d#5@3 ~@12, ~@32 e5@2 [g#5,e6]@3 d#5@2 g#5@2 ~@2 e5@11 ~@10, ~@33 d#5@2 b4@3 b5@7 e4@2 [g#4,e6]@3 b5@6 ~@8]/2", // E5 C#m E Emaj7 E Emaj7 E5 G#m …
})).s("gm_orchestral_harp").gain(0.25)

// chords · orchestral harp · soft notes
const orchestral_harp_soft_3 = note(`<
  ~@11
  [~@8 d#5 ~ b4 g#4 d#5 e4 ~@7 g#4 ~@10]
  ~@33
  [d#5 ~ b4 g#4 d#5 e4 ~@7 g#4 ~@18]
  ~@20
>`).s("gm_orchestral_harp").gain(0.1)

// drums · kick
const kick = s("bd").struct("<~@4 A@17 B@2 C D A@13 B@2 C D A@2 ~ E F@17 G ~@2>".pickRestart({
  A: "x ~ x!3 ~ x ~@3 x ~ x ~@3", B: "x ~@3 x ~ x ~ x ~ x ~ x ~ x!2", C: "x ~@3 x ~ x!3 ~@3 x ~ x!2", D: "x!4",
  E: "~@8 x ~ x!3 ~ x ~", F: "~@2 x ~ x ~@3 x ~ x!3 ~ x ~", G: "~ x!2 ~@5",
})).gain(0.24)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@4 A@16 B ~@3 C A@12 B ~@3 C A@2 ~ C A@15 D ~@4>".pickRestart({
  A: "x!4", B: "x", C: "~@2 x!2", D: "x!3 ~",
})).gain(0.24)

// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~@20 A ~@16 A ~@23 B C D ~@2>".pickRestart({
  A: "~ x!3", B: "~@3 x", C: "x!4", D: "x!2 ~@2",
})).gain(0.12)

// drums · open hat
const open_hat = s("oh").struct("<~@24 [~@3 x ~ x ~@2] ~@16 [~@3 x ~ x ~@2] ~@24>").gain(0.28)

// drums · ride bell
const ride_bell = s("rd").struct("<~@20 A B C D E ~@12 A B C D E ~@24>".pickRestart({
  A: "~@2 x!2 ~@7 x ~@4", B: "~@4 x ~ x ~@5 x ~@6 x ~ x ~@10", C: "x ~@3 x ~ x ~@12 x ~ x ~@10",
  D: "~@3 x ~@15 x ~ x ~@10", E: "~@5 x ~@8 x ~@5 x ~ x ~@9",
})).gain(0.12)

// drums · tambourine
const tambourine = s("tb").struct("<~@20 A B C D E ~@12 A B C D E ~@24>".pickRestart({
  A: "x!4", B: "x ~@7 x ~@7 x ~@6 x ~@8", C: "x ~@7 x ~@7 x ~@6 x ~@7 x", D: "~@7 x ~@7 x ~@7 x ~@7 x",
  E: "~@7 x ~@7 x ~@8 x ~@7",
})).gain(0.12)

// drums · splash
const splash = s("cr").struct("<~@44 [~ x ~@30] ~@21>").gain(0.24)

stack(
  orchestral_harp, electric_guitar_clean, bass, bass_soft, string_ensemble_1, string_ensemble_1_soft, orchestral_harp_2,
  orchestral_harp_soft, orchestral_harp_3, orchestral_harp_soft_2, orchestral_harp_4, orchestral_harp_soft_3, kick,
  pedal_hat, pedal_hat_soft, open_hat, ride_bell, tambourine, splash
)

More by The Smashing Pumpkins