Strudelify
Baba cover art

1998 · Supposed Former Infatuation Junkie

Baba

Alanis Morissette

KeyF♯ majorTempo68 bpm
0:00/0:00
// Baba — Alanis Morissette
// 68 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 71 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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.

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@12 A B C D E F ~@8 G H I J K L M@2 N@5 ~@7 O P Q R S T U V W X Y Z@6 AA@3 AB AC@4
>`.pickRestart({
  A: "~@2 a#3@3 ~ a#3@3 ~ g#3@3 ~ g#3@3 ~ f#3@3 ~ f#3@3 ~ f#3 ~ f#3 ~ f#3 ~", B: "e3 ~ e3@2 ~ c#3@10 ~@17",
  C: "~@2 a#4@2 ~@2 a#4@3 ~ g#4@2 ~@2 g#4@2 ~ f#4@3 ~@3 f#4@2 g#4@4 ~@3",
  D: "~ a#4@3 ~ a#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@3 ~ e4 ~ f#4 ~ g#4@2 ~@5",
  E: "~ a#4@3 ~ a#4@3 ~ g#4@3 ~@2 g#4@3 ~ f#4@2 ~ f#4@3 ~ f#4 ~ f#4 ~ f#4 ~ e4", F: "~ e4@2 ~@2 c#4@15 ~@12",
  G: "~@2 a#4@3 a#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@3 ~ d#4 ~ f#4 ~ g#4@6 ~",
  H: "~@2 a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@3 ~ f#4@3 ~ d#4 ~ f#4 ~ g#4 f#4@3 ~@2",
  I: "~@2 a#4@3 ~ a#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@2 ~ f#4@3 ~@2 f#4 ~ f#4!2 ~ e4", J: "~ e4@2 ~@2 c#4@21 ~@6",
  K: "~@2 a#4@3 ~ a#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@4 e4 f#4@3 ~@6",
  L: "~ a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@3 ~ f#4@3 ~ d#4 ~ f#4 ~ g#4 ~ f#4@5",
  M: "[~ a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@3 ~ f#4@3 ~ f#4@3 ~ f#4 ~ f#4 ~ f#4 ~ e4@2 ~ e4@2 ~ c#4@12 ~@15]/2",
  N: "[~@24 e3@17 ~@13 e2@83 ~@23, ~@11 e4@123 ~@26, ~@6 e5@61 ~@13, ~@6 e2@7 ~@27, ~@44 e3@89 ~@27]/5",
  O: "~@2 a#4@3 a#4@3 ~@2 g#4@3 ~ g#4@3 f#4@2 ~@2 f#4@3 ~ g#4@5 ~@2",
  P: "~ a#4@3 ~ a#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@3 ~@3 f#4@2 g#4@4 ~@3",
  Q: "~ a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@3 ~ f#4@2 ~@2 f#4@3 ~ f#4 ~ f#4@2 ~@2 e4", R: "~ e4@2 ~@2 c#4@19 ~@8",
  S: "~ a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@3 ~ f#4@3 ~ d#4 ~ f#4@2 g#4@6 ~",
  T: "~@2 a#4@3 ~ a#4@3 ~ g#4@3 ~ g#4@2 ~ f#4@3 ~ d#4 ~ f#4 ~ g#4 ~ f#4@4 ~",
  U: "~@2 a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@2 ~ f#4@2 ~@2 f#4@3 ~ f#4 ~ f#4 ~ f#4 ~ e4", V: "~ e4@2 ~@2 c#4@23 ~@4",
  W: "~ a#4@3 ~ a#4@3 ~ g#4@2 ~@2 g#4@2 ~@2 f#4@2 ~@2 f#4@3 ~ g#4@5 ~@2",
  X: "~ a#4@3 ~ a#4@3 ~ g#4@2 ~@3 g#4@2 ~ f#4@3 ~@2 f#4@2 ~@2 g#4@2 ~@4",
  Y: "~@2 a#4@2 ~ a#4@3 ~ g#4@2 ~@2 g#4@3 ~ f#4@2 ~@2 f#4@3 ~ f#4 ~ f#4 ~ f#4 ~ e4",
  Z: "[~ e4@2 ~@2 c#4@15 ~@11 [a#2,a#3,a#4]@12 [g#3,g#4]@13 [f#3,f#4]@3 [b3,b4]@16 [a#3,a#4]@18 ~@2 [a#3,a#4]@11 ~ g#4@12 [f#3,f#4]@4 [d4,d5]@12 [c#4,c#5]@3 ~ [c#4,c#5]@17 ~@3 [a#3,a#4]@12 [g#3,g#4]@12 [f#3,f#4]@4 [b3,b4]@5, ~@106 g#3@13 ~@73]/6", // A# G# F# B A# F# D C# …
  AA: "[~@6 [a#3,a#4]@3 ~@2 [a#3,a#4]@18 ~@2 [a#3,a#4]@13 [g#3,g#4]@11 ~ f#4@4 [d4,d5]@12 [c#4,c#5]@3 [c#4,c#5]@20 ~, ~@55 f#3@4 ~@37]/3", // A# G# D C#
  AB: "[a#3,a#4]@11 [g#3,g#4]@12 [f#3,f#4]@9", // A# G# F#
  AC: "[~ [b3,b4]@10 [a#3,a#4]@20 [a#3,a#4]@12 [g#3,g#4]@11 ~ f#4@4 [d4,d5]@12 [c#4,c#5]@4 ~ c#4@51 ~, ~@54 f#3@5 ~@16 c#5@51 ~@2]/4", // B A# G# D C#
})).s("gm_string_ensemble_1").gain(0.36)

// other · violin
const violin = note("<~@10 A B C D E F G ~@9 A H I ~ E J K ~@13 L M N ~ O P Q ~ R S T U@6 V@3 ~@5>".pickRestart({
  A: "~ c#5@2 ~@2 c#5@3 ~ b4@3 ~ b4@2 ~@2 a#4@3 ~ g#4 ~ a#4 ~ b4@6 ~",
  B: "~@2 c#5@3 ~ c#5@3 ~ b4@2 ~@2 b4@3 ~ a#4@3 ~ g#4 ~ a#4 ~ b4@6",
  C: "~@2 c#5@2 ~@2 c#5@3 ~ b4@2 ~@2 b4@3 ~ a#4@2 ~@2 a#4@2 ~@2 a#4 ~ a#4 ~ a#4 ~", D: "b4@2 a#4 ~@2 a#4@2 ~@25",
  E: "~@2 c#5@2 ~@2 c#5@3 ~ b4@2 ~@2 b4@2 ~ a#4@3 ~ g#4 ~ a#4 ~ b4@5 ~@2",
  F: "~ c#5@3 ~ c#5@3 ~ b4@2 ~@2 b4@2 ~@2 a#4@3 ~ g#4 ~ a#4 ~ b4@5 ~@2",
  G: "~ c#5@2 ~@2 c#5@3 ~@2 b4@2 ~ b4@2 ~@2 a#4@2 ~@2 a#4@7 ~@4",
  H: "~ c#5@3 ~@2 c#5@3 ~ b4@3 ~ b4@2 ~@2 a#4@3 ~ g#4 ~ a#4@2 b4@5 ~",
  I: "~@2 c#5@2 ~@2 c#5@3 ~ b4@2 ~@2 b4@2 ~@2 a#4@2 ~@2 a#4@7 ~@3",
  J: "~ c#5@3 ~ c#5@3 ~ b4@2 ~@2 b4@2 ~@2 a#4@2 ~@2 g#4 ~ a#4 ~ b4@2 a#4@5",
  K: "~ c#5@2 ~@2 c#5@3 ~ b4@2 ~@2 b4@2 ~@2 a#4@2 ~@2 a#4@11",
  L: "~@2 c#5@3 ~ c#5@3 ~ b4@2 ~@2 b4@2 ~ a#4@3 ~@2 g#4 ~ a#4 b4@4 ~@3",
  M: "~ c#5@3 ~ c#5@3 ~ b4@2 ~@2 b4@2 ~@2 a#4@2 ~@2 g#4 ~ a#4 ~ b4@2 a#4@4 ~",
  N: "~ c#5@2 ~@2 c#5@2 ~@2 b4@2 ~@2 b4@2 ~@2 a#4@2 ~@2 a#4@6 ~@5",
  O: "~@2 c#5@2 ~@2 c#5@2 ~ b4@2 ~@2 b4@2 ~@2 a#4@3 ~ g#4 ~ a#4 ~ b4 ~ a#4@2 ~@3",
  P: "~ c#5@2 ~@3 c#5@3 ~ b4@2 ~@2 b4@2 ~ a#4@2 ~@2 g#4 ~ a#4 ~ b4@2 ~ a#4@3 ~",
  Q: "~ c#5@2 ~@2 c#5@3 ~ b4@2 ~@3 b4@2 ~ a#4@2 ~@2 a#4@7 ~@4",
  R: "~@2 c#5@2 ~ c#5@3 ~ b4@2 ~@2 b4@2 ~@2 a#4@3 ~ g#4 ~ a#4@3 ~@6",
  S: "~ c#5@2 ~@2 c#5@3 ~ b4@2 ~@3 b4@2 ~ a#4@5 ~@3 b4@2 a#4@2 ~@3",
  T: "~@2 c#5@2 ~@2 c#5@2 ~@2 b4@2 ~@2 b4@2 ~ a#4@2 ~@2 a#4 ~@5 a#4@2 ~@3",
  U: "[~@31 a#6@12 g#6@12 f#6@8 b6@11 ~ a#6@16 ~@4 a#5@11 g#5@13 f#5@3 ~ d6@16 c#6@19 ~ a#5@12 g#5@12 f#5@3 ~ b5@5]/6",
  V: "[~@11 a#5@11 ~@9 a#3@12 g#3@12 f#3@4 ~ d4@14 ~@2 c#4@11 ~@9]/3",
})).s("gm_violin").gain(0.31)

// other · overdriven guitar
const overdriven_guitar = note("<~@13 A@2 ~@14 B@2 ~@2 C@3 ~@13 D@2 ~@2 E@2 ~@2 F@6 G@3 H@5>".pickRestart({
  A: "[~@12 d4@5 c#4@2 ~ a#3@6 b3@2 a#3@10 ~@26, ~@19 b3@2 ~@43]/2",
  B: "[~@11 d5@6 ~@2 a#4@6 ~ b4@2 a#4@19 ~@17, ~@17 c#5@2 ~@45, ~@9 b4 ~@22]/2",
  C: "[~@28 [d#3,d#4]@2 ~ e3@35 ~@30, ~@28 d#5@3 e5@19 ~@46, ~@31 e4@15 ~@50]/3", // D#
  D: "[~@11 d5@6 ~@2 a#4@6 ~ b4@2 a#4@35 ~, ~@17 c#5@2 ~@45, ~@9 b4 ~@22]/2",
  E: "[~@15 d5@2 c#5@2 b4@2 a#4@4 b4@2 a#4@8 ~@29]/2",
  F: "[~@11 d5@6 c#5 b4 a#4@6 b4@2 a#4@32 b4@16 a#4@32 g#4@12 f#4@4 d5@12 c#5@3 c#5@21 a#4@12 g#4@12 f#4@4 b4@5]/6",
  G: "[~@6 a#4@4 ~ a#4@18 ~@2 a#4@12 g#4@13 f#4@4 d5@11 c#5@3 ~ c#5@21]/3",
  H: "[a#4@11 g#4@12 f#4@5 b4@15 a#4@18 ~@2 a#4@12 g#4@12 f#4@4 d5@12 c#5@3 ~ c#5@46 ~@7]/5",
})).s("gm_overdriven_guitar").gain(0.36)

// bass · electric bass finger
const bass = note(`<
  ~@4 A@5 B@2 C D E F G@3 H I@2 F J@2 K@2 L@2 M@2 F N@2 O P@2 Q@2 R D S@3 I T@2 U V@6 W@5 X@7 Y Z AA@4
>`.pickRestart({
  A: "[f#1 ~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 f#1 ~ f#1@3 ~@7 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~@2 f#1@2 ~ e1@2 f#1 ~@2 f#1@2 ~@7 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~@2 f#1@2 ~ e1@2 f#1 ~@2 f#1@2 ~@7 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@2 ~@8 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@2 ~@3 e1 f#1 ~ f#1@2 ~@8 g1 ~ g1 ~ g1 ~ g1 ~ g1]/5",
  B: "[~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@2 ~@8 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~@2 f#1@5 ~@5 g1 ~ g1 ~ g1 ~ g1 ~]/2",
  C: "g1 ~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@6 ~@4 g1 ~ g1 ~ g1 ~ g1 ~",
  D: "g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@9 ~ g1 ~ g1 ~ g1!2 ~ g1",
  E: "~ f#1 ~ f#1 ~@2 f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1!2 ~@2 g1 ~ g1 ~",
  F: "g1 ~ f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1",
  G: "[~ f#1 ~ f#1 ~@2 f#1@2 ~@2 e1 f#1 ~@2 f#1@8 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~@2 f#1@2 ~@2 e1 f#1 ~@2 f#1@8 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@9 ~ g1 ~ g1 ~ g1 ~@2 g1 ~]/3",
  H: "g1 ~ [f#1,g1] ~ f#1 ~ f#1@2 ~@2 e1 f#1 ~@2 f#1@9 g1 ~ g1 ~ g1 ~ g1 ~@2", // Gmaj7
  I: "g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~",
  J: "[~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@2 ~@8 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@2 ~@3 e1 f#1 ~@2 f#1@2 ~@7 g1 ~@2 g1 ~ g1 ~ g1 ~]/2",
  K: "[g1@2 f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@2 ~@7 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@2 ~@3 e1 ~ f#1 ~ f#1@2 ~@7 g1 ~ g1 ~ g1 ~ g1 ~ f#1]/2",
  L: "[~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@6 ~@3 g1 ~ g1 ~@2 g1!2 ~@2 g1@2 ~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 f#1 ~@2 f#1@7 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1]/2",
  M: "[~ f#1 ~ f#1 ~@2 f#1@2 ~@2 e1 f#1 ~@2 f#1@8 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~@2 f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@7 ~@3 g1 ~ g1 ~ g1 ~ g1 ~]/2",
  N: "[~ f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@5 e1 ~ f#1 f#1@7 ~@3 g1 ~ g1 ~ g1 ~ g1 ~ g1]/2",
  O: "~ f#1 ~ f#1 ~ f#1@4 e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~@2 g1 ~", P: "[f#1 e1@2 ~@2 e3@3, ~@24 e2@33 ~@7]/2",
  Q: "[~@16 e4@8 e3@17 ~@23]/2", R: "~@7 f#1@4 ~ e1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~",
  S: "[~ f#1 ~ f#1 ~ f#1@3 ~@2 e1 f#1 ~ f#1@7 ~@3 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@4 e1 ~ f#1 ~ f#1@8 ~@3 g1 ~ g1 ~ g1 ~ g1 ~]/3",
  T: "[g1@2 f#1!2 ~ f#1@3 ~@2 e1 f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ f#1@2 ~@31]/2",
  U: "f#1@7 f#1@4 ~ f#1@7 f#1@3 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1",
  V: "[~ f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 ~ f#1 ~ f#1 ~ f#1@3 ~ e1 f#1 ~@2 f#1@8 ~@2 g1 ~ g1 ~ g1!2 ~ g1@2 ~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 f#1 ~@2 f#1@7 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1]/6",
  W: "[~ f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@7 ~@3 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~@2 f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1!2 ~@2 g1 ~ g1 ~]/5",
  X: "[g1@6 f#1@5 e1 f#1 ~ f#1@6 ~@3 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~@2 f#1@2 ~@2 e1 f#1 ~@2 f#1@8 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@4 e1 ~ f#1 ~ f#1@13 ~ f#1@2 ~@2 f#1@5 ~@2 f#1@6 ~ f#1@9 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~ e1 ~ f#1 ~ f#1@8 ~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 ~ f#1 ~ f#1 ~ f#1@4 ~@2 f#1@11 ~ g1 ~ g1 ~ g1 ~ g1 ~, ~@140 e1@2 ~@61 e1@2 ~@19]/7",
  Y: "g1 ~ f#1 ~ f#1 ~ f#1@2 ~@2 e1 ~ f#1 ~ f#1@16 ~@2", Z: "f#1@11 e1 ~ f#1@9 ~ g1 ~ g1 ~ g1 ~@2 g1 ~",
  AA: "[g1@4 f#1 ~ f#1@5 ~ e1 f#1@8 ~@3 g1!2 ~ g1 ~ g1 ~ g1@2 f#1 ~ f#1 ~ f#1@3 ~@3 e1@2 f#1@8 ~@3 g1 ~ g1!2 ~ g1 ~ g1@2 f#1 ~@2 f#1 ~ f#1@36 ~@22]/4",
})).s("gm_electric_bass_finger").gain(0.41)

// other · distortion guitar
const distortion_guitar = note("<A B C@2 D@4 E F@3 G@2 H@6 I@4 J@3 K@7 L@4 M@7 ~ N@5 O P@8 Q@6 R@5>".pickRestart({
  A: "f#2!2 ~ f#2 ~ f#2@2 ~@3 e2@2 f#2 ~ f#2@2 ~@8 g2 ~ g2 ~ g2 ~ g2 ~",
  B: "g2@2 f#2 ~ f#2 ~ f#2@2 ~@2 e2@2 f#2 ~ f#2@2 ~@8 f#2@2 g2 ~ g2 ~ g2 ~",
  C: "g2@2 f#2 ~ f#2 ~ f#2 ~@5 f#2 ~ f#2@2 ~@8 g2 ~ g2 ~ g2 ~ g2 ~, ~@11 e2@2 ~@19",
  D: "[g2@2 f#2 ~ f#2 ~ f#2@2 ~@2 e2 ~ f#2 ~ f#2@3 ~@6 g2 ~ g2 ~ g2 ~ g2 ~ g2@2 f#2 ~ f#2 ~ f#2@2 ~@3 e2@2 f#2 ~ f#2@2 ~@7 g2 ~ g2 ~@2 g2!2 ~ g2@2 ~ f#2 ~ f#2 ~ f#2@2 ~@2 e2@2 f#2 f#2@2 ~@8 g2 ~ g2 ~ g2 ~ g2 ~ g2@2 f#2 ~ f#2 ~ f#2@2 ~@3 e2 ~ f#2 f#2@2 ~@8 g2 ~ g2 ~ g2 ~ g2 ~@2]/4",
  E: "g2@2 f#2 ~ f#2 ~ f#2@2 ~@2 e2 ~ f#2 ~ f#2@2 ~@7 g2 ~ g2 ~ g2 ~ g2 ~@2",
  F: "[g2 f#2 ~ f#2 ~@2 f#2@2 ~@2 e2 ~ f#2 ~ f#2@3 ~@6 g2 ~ g2 ~ g2 ~ g2 ~ [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 ~ [g1,g2]@8]/3", // F# G F# G
  G: "[[f#1,f#2]@23 [g1,g2]@8 [f#1,f#2]@24 ~ [g1,g2]@8]/2", // F# G F# G
  H: "[[f#1,f#2]@23 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 ~ f#2@56 [g1,g2]@8, ~@127 f#1@57 ~@8]/6", // F# G F# G F# G F# G
  I: "[f#1@13 ~@18 f#2@15 ~ f#2@8 [g1,g2]@8 f#2@31 ~ f#2@25 [g1,g2]@8, f#2@15 ~@49, ~@16 f#1@39 ~@8 f#1@57 ~@8]/4", // G
  J: "[[f#1,f#2]@56 [g1,g2]@7 [f#1,f#2]@24 [g1,g2]@9]/3", // F# G F# G
  K: "[[f#1,f#2]@27 [g1,g2]@4 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 ~ [g1,g2]@7 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]]/7", // F# G F# G F# G F# G …
  L: "[~ [e1,e2]@127]/4", // E
  M: "[[f#1,f#2]@56 [g1,g2]@7 [f#1,f#2]@55 ~ g1@8 [f#1,f#2]@56 [g1,g2]@8 [f#1,f#2]@32 ~, ~@118 g2@9 ~@97]/7", // F# G F# G F#
  N: "[[f#1,f#2]@23 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 ~ f#2@23 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 ~ [g1,g2]@8, ~@63 f#1@24 ~@73]/5", // F# G F# G F# G F# G
  O: "[f#1,f#2]@23 [g1,g2]@8 f#1", // F# G
  P: "[f#2@23 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]]/8", // G F# G F# G F# G F# …
  Q: "[~@23 [g1,g2]@7 [f#1,f#2]@25 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 [f#1,f#2]@24 [g1,g2]@8 ~ f#2@24 [g1,g2]@7 [f#1,f#2]@25 [g1,g2]@8, ~@127 f#1@25 ~@40]/6", // G F# G F# G F# G F# …
  R: "[[f#1,f#2]@24 [g1,g2]@7 ~ f#2@23 [g1,g2]@8 [f#1,f#2]@24 ~ [g1,g2]@7 f#1@54 ~@11, ~@31 f#1@24 ~@40 f#2@48 ~@17]/5", // F# G F# G
})).s("gm_distortion_guitar").gain(0.31)

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

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

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@35 [~@11 x ~@20] ~@35>").gain(0.15)

// drums · open hat
const open_hat = s("oh").struct("<~@35 [~@23 x ~@2 x ~ x ~@3] [~ x ~@19 x ~ x!2 ~ x ~ x!2 ~ x] ~@34>").gain(0.15)

stack(string_ensemble_1, violin, overdriven_guitar, bass, distortion_guitar, kick, snare, pedal_hat, open_hat)

More by Alanis Morissette