Strudelify
Ironic cover art

Jagged Little Pill

Ironic

Alanis Morissette

KeyB majorTempo85 bpm
0:00/0:00
// Ironic — Alanis Morissette
// 85 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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 finger · "FINGERDBAS"
const bass = note(`<
  ~@14 A B A B A B C D E F G H I J G K@2 L A B A B A B C M N O P Q R S T U V W V W V W V X@6 Y Z Y Z Y AA@5 AB@2 AC@3
  AD@4 ~@2
>`.pickRestart({
  A: "f#1@3 f#1 f#1@2 b1@3 a#1 b1@4 b1!2", B: "f#1@3 f#1 f#1@2 g#1@3 f#1 g#1@4 g#1!2", C: "a1 g#1 f#1 e1@3 d#2@2",
  D: "f#1@3 f#1 f#1@2 f#1@3 a#2@3 f#2 c#2 b1@2", E: "a#1@3 a#1@3 b1@3 ~ b1@3 b1@3",
  F: "a#1@3 a#1@3 g#1@4 g#1@4 f#1 g#1", G: "a#1@3 a#1@3 b1@3 ~ b1@4 c#2 b1", H: "a#1@3 a#1@3 g#1@3 b1 c#2 d#2@3 c#2 b1",
  I: "a#1@3 a#1@3 b1@4 b1@3 b1@3", J: "a#1@3 a#1@3 g#1@3 ~ g#1@4 f#1 g#1",
  K: "[a#1@3 a#1@3 g#1@4 g#1@3 g#2@5 ~ g#2@3 b2@3 ~ b2@4 c#3 b2]/2", L: "a#2@3 a#2@3 g#2@3 ~ g#2@3 g#2@3",
  M: "f#1@3 f#1 f#1@2 f#1 ~ f#2@2 f#2 c#2 f#1@2 c#2@2, ~@7 c#2@2 ~@7", N: "d2@3 d2@2 d2@3", O: "f#2@3 f#2@2 f#2@3",
  P: "e2@6 e2@4 f#2@3 a2@3", Q: "f#2@6 f#2@4 f#2@4 b1 c#2", R: "e2@3 e2@2 e2@3", S: "f#2@6 f#2@4 f#2@2 ~ f#2@3",
  T: "e2@6 e2@4 e2@4 f#2 g#2", U: "b2@3 a#2@3 f#2@4 b1@6", V: "a#2@3 b2@5", W: "a#2@6 g#2@9 ~",
  X: "[a#2@6 g#2@18 a#2@6 b2@10 a#2@6 g#2@9 ~ a#2@6 b2@10 a#2@6 g#2@9 ~ f#1@3 f#1 f#1@2 b1@2]/6",
  Y: "~ a#1 b1@4 b1!2 f#1@3 f#1 f#1@2 g#1@2", Z: "~ f#1 g#1@4 g#1!2 f#1@3 f#1 f#1@2 b1@2",
  AA: "[~ f#1 g#1@4 g#1!2 a1@2 g#1@2 f#1@2 e1@6 d#2@4 f#1@3 f#1 f#1@2 f#1 ~ f#2@2 f#1 c#2 f#2@2 c#3@2 d3@12 f#3@4 f#3@12 ~@3 c#3 e3@8, ~@31 c#2@2 ~@37 b2@2 ~@8]/5",
  AB: "[~@2 f#3@3 f#3@3 f#3@12 ~ f#3@3 e3@8]/2",
  AC: "[~@2 f#3@5 ~ f#3@10 b2 c#3 ~@2 c#3@2 e3@17 ~@7, ~@21 b2@2 ~@25]/3", AD: "[~ e3@5 b2@17 e1@34 ~@7]/4",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C@2 D E D F G H I J K J L M L M L M N O L P L P L P L P L P L M L M L M N O Q R Q R Q R S@2 T U T U T U T V@6 W X
  W X W Y Z AA@2 AB@4 AC@3 AD ~@4
>`.pickRestart({
  A: "[g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 ~, e3@6 ~@4 e3@5 ~, ~@3 b4@7 ~@6", // G#m Emaj7 G#m
  B: "[a#3,b3,d#4,c#5]@3 [a#3,b3,d#4]@3 [f#3,a#3,b3,d#4]@3 [a#3,b3,d#4,c#5] [a#3,b3,d#4,c#5]@3 [a#3,b3,d#4,c#5]@2 ~, f#3@6 ~@4 f#3@5 ~, ~@3 c#5@6 ~@7", // D#7 Bmaj7 D#7
  C: "[[g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4]!3 [d#4,b4]@2 ~ [e3,b4]@2 f#3 [e3,a#4]@3 ~@8 c#3@2, e3@6 ~@4 e3@5 ~@7 [e3,f#4]@10, ~@3 b4@7 b4@3 g#3@19, ~@13 b3@13 b3@6]/2", // G#m Emaj7 G#m E5 Edim Esus2
  D: "[a#2,f#3,c#4,f#4]@2 ~ [b2,f#3,c#4,d#4,f#4]@4 ~", E: "[a#2,f#3,c#4,f#4]@2 ~ [g#2,d#3,f#3,b3,d#4]@4 ~",
  F: "~@3 [g#2,d#3,f#3,b3]@4 ~, [a#2,f#3,c#4]@5 ~@11, ~@3 f#4@11 ~@2", // G#m7 F#
  G: "[a#2,f#3,c#4,f#4]@3 [c#4,f#4] ~@2 [b2,c#3,f#3,c#4,f#4]@8 ~@2", // F# F#5 Bsus2
  H: "[a#2,f#3,c#4,f#4]@5 ~ [g#2,d#3,f#3,b3,d#4]@8 ~@2", // F# G#m7
  I: "[a#2,c#4]@3 f#3@2 ~ [b2,f#3,c#4,d#4]@8 ~@2, f#3 ~@2 f#4@11 ~@2, ~@3 a#2 ~@12", // A#m B
  J: "~@3 [g#2,d#3,f#3,b3]@5, [a#2,f#3,c#4]@5 ~@11, ~@3 f#4@13", // G#m7 F#
  K: "[a#2,c#4]@3 f#3@2 ~ [b2,f#3]@4 ~@2 f#4@2 [b2,f#3]@2, f#3 ~@2 f#4@9 ~@4, ~@3 a#2 ~@2 [c#4,d#4]@9 ~, ~@5 [b2,f#3]@2 ~", // A#m B5 C#sus2 B5
  L: "[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [b2,f#3,b3,d#4,f#4]@3 [b2,f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@3 [b2,f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2", // F#5 B
  M: "[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [g#2,d#3,b3,d#4,f#4]@3 [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@3 [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@2", // F#5 G#m7
  N: "[a2,e3,a3,c#4,e4]@3 [a2,e3,a3,c#4,e4] [a2,e3,a3,c#4,e4]@2 [e2,b2,e3,b3,e4]@3 [e2,b2,e3,b3,e4] [e2,b2,e3,b3,e4]@3 [e2,b2,e3,b3,e4] [e2,b2,e3,b3,e4]@2", // A E5
  O: "[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@3", // F#5
  P: "[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [g#2,d#3,b3,d#4,f#4]@3 [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@2 [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@3", // F#5 G#m7
  Q: "[g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4,b4]@2 b3 [g#3,b3,d#4,b4]@2 ~, e3@6 ~@4 e3@5 ~, ~@3 b4@7 ~@6", // G#m Emaj7 G#m
  R: "[a#3,b3,d#4,c#5]@3 [a#3,b3,d#4]@3 [f#3,a#3,b3,d#4]@3 b3 [a#3,b3,d#4]@3 [a#3,b3,d#4,c#5]@2 ~, f#3@6 ~@4 [f#3,d#5]@5 ~, ~@3 c#5@6 c#5@4 ~@3", // D#7 Bmaj7 D#7 D#m
  S: "[[g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4,b4]@2 b3 [d#4,b4]@2 ~ [e3,b4]@2 f#3 [e3,a#4]@3 ~@8 c#3@2, e3@6 ~@4 e3@5 ~@7 [e3,f#4]@10, ~@3 b4@7 ~@3 g#3@19, ~@13 b3@13 b3@6]/2", // G#m Emaj7 G#m E5 Edim Esus2
  T: "[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [b2,f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2 [b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@3", // F#5 B
  U: "[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [g#2,d#3,b3,d#4,f#4]@3 [d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@2 [b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@3", // F#5 G#m7 B G#m7 B G#m7
  V: "[[f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [g#2,d#3,b3,d#4,f#4]@18 ~@3 f#4@2 ~@4 f#4@6 ~@4 f#4@2 ~@4 f#4@6 ~@4 f#4@2 ~@4 d#4 b4 ~ a#4 ~@6 f#4@2 ~@4 f#4@6 ~ [f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [b2,f#3,b3,d#4,f#4]@2, ~@24 a#2@4 ~ b3@2 f#3@8 ~@2 f#3@5 g#2@8 ~@2 a#2@4 ~ b3@2 f#3@8 ~ a#2@4 ~@2 g#2@8 ~@10, ~@25 f#3@5 b2@8 ~@2 a#2@4 ~ b3@2 f#3@8 ~@2 f#3@5 b2@7 g#4@6 ~@2 b3@2 ~ b3@8 ~@8, ~@26 c#4@4 ~@2 b3@8 ~@2 c#4@4 ~@2 b3@8 ~@2 c#4@4 c#4@3 f#4@6 ~@3 c#4@4 ~@18, ~@64 b3@8 ~ f#3@5 ~ f#3@8 ~@9]/6", // F#5 G#m7 F#5 B
  W: "~ [b2,f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@3 [b2,f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2 [f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [g#2,d#3,b3,d#4,f#4]@2", // B F#5 G#m7
  X: "~ [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@3 [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@2 [f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [b2,f#3,b3,d#4,f#4]@2", // G#m7 F#5 B
  Y: "~ [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@3 [g#2,d#3,b3,d#4,f#4] [g#2,d#3,b3,d#4,f#4]@2 [a2,e3,a3,c#4,e4]@3 [a2,e3,a3,c#4,e4] [a2,e3,a3,c#4,e4]@2 [e2,b2,e3,b3,e4]@2", // G#m7 A E5
  Z: "~ [e2,b2,e3,b3,e4] [e2,b2,e3,b3,e4]@3 [e2,b2,e3,b3,e4] [e2,b2,e3,b3,e4]@2 [f#2,c#3,f#3,c#4,f#4]@3 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [f#2,c#3,f#3,c#4,f#4]@2", // E5 F#5
  AA: "[~ [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@2 [f#2,c#3,f#3,c#4,f#4] [f#2,c#3,f#3,c#4,f#4]@3 [g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4,b4]@2 b3 [g#3,b3,d#4,b4]@2 ~ [a#3,b3,d#4,c#5]@3 [a#3,b3,d#4]@3 [f#3,a#3,b3,d#4]@2, ~@8 e3@6 ~@4 e3@5 ~ f#3@6 ~@2, ~@11 b4@7 ~@9 c#5@5]/2", // F#5 G#m Emaj7 G#m D#7 Bmaj7
  AB: "[~@2 [a#3,b3,d#4]@3 [a#3,b3,d#4,c#5]@2 ~ [g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4,b4]@2 b3 [g#3,b3,d#4,b4]@2 ~ [a#3,b3,d#4,c#5]@3 [a#3,b3,d#4]@3 [f#3,a#3,b3,d#4]@2, ~ c#5@4 ~@6 b4@7 ~@9 c#5@5, ~@2 [f#3,d#5]@5 ~ e3@6 ~@4 e3@5 ~ f#3@6 ~@2]/2", // Bmaj7 D#7 G#m Emaj7 G#m D#7 Bmaj7 D#m
  AC: "[~@2 [a#3,b3,d#4]@3 [a#3,b3,d#4,c#5]@2 ~ [g#3,b3,d#4,b4]@2 g#3 [g#3,b3,d#4]@3 [e3,g#3,b3,d#4]@4 [g#3,b3,d#4,b4]@2 b3 [g#3,b3,d#4,b4]@2 b3 [g#3,b3,d#4,b4]@3 [g#3,b3,d#4,b4]@3 [g#3,b3,d#4,b4]@3 [g#3,b3,d#4,b4]@2 ~ [g#3,b3,d#4,b4]@3 [b3,d#4,b4]@3 [b3,b4]@3 b4@2 ~, ~ c#5@4 ~@6 b4@7 ~@30, ~@2 [f#3,d#5]@5 ~ e3@6 ~@4 e3@6 e3@6 e3@6 e3@6 e3@6]/3", // Bmaj7 D#7 G#m Emaj7 G#m B D#m
  AD: "b3 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.23).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A ~ A ~@37 B C B C B C B ~ D E D E D E D ~@13 F G H G H G H I J K@5
>`.pickRestart({
  A: "~@2 [b3,d#4] ~@13", B: "~@2 [b3,d#4] ~@9 [g#3,d#4] ~@3", C: "~@9 [a#3,d#4] ~@6", D: "~@9 b2 ~@2 [b2,f#3] ~@3",
  E: "~@9 g#2 ~@2 [g#2,d#3] ~@3", F: "~@10 [b3,d#4] ~@5", G: "~@4 [g#3,d#4] ~@11", H: "~ [a#3,b3,d#4] ~@8 [b3,d#4] ~@5",
  I: "~@4 [g#3,d#4] ~@2 [g#3,d#4] ~@2 [g#3,b3,d#4] ~@5", // G#5 G#m
  J: "[g#3,b3,d#4] ~@2 [g#3,b3,d#4] ~@2 [g#3,b3,d#4] g#3@3 [g#3,d#4]@2 [g#3,b3,d#4] [g#3,b3,d#4]@2 [g#3,b3,d#4]", // G#m G#5 G#m
  K: "[[g#3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@3 [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@3 [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@3 [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@2 [g#3,b3,d#4] [g#3,b3,d#4,b4]@32 ~@9, e3@3 e3@3 e3@3 e3@3 e3@3 e3@3 e3@16 ~@6]/5", // G#m
})).s("gm_acoustic_guitar_steel").gain(0.09).pan(0.8)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@12 A@2 B@2 C@4 D E@2 ~@8 F G@2 C@4 D H I H I H I H I ~@9 J@4 K@6 L@4 ~@12
>`.pickRestart({
  A: "[[c#5,a#5]@6 [d#5,b5]@10 [c#5,a#5]@6 ~@6 c2 [d2,e2,f2] [g2,a2,b2,c3] [d3,e3,f3,g3,a3,b3], f#5, ~@11 [b4,g#5]@5]/2", // F# G#m F# Dm Cmaj7 Em7 E
  B: "[[c4,d4,e4] ~@5 [d#5,b5]@10 [c#5,a#5]@6 [b4,g#5]@10, f#5@31 ~, [c#5,a#5]@3 ~@13]/2", // C G#m F# E F#
  C: "[[c#5,a#5]@3 [d#5,b5]@5 [c#5,a#5]@3 [b4,g#5]@5, f#5@31 ~]/2", D: "[c#5,a5]@3 [b4,g#5]@5, e5",
  E: "[[c#5,f#5,a#5]@25 ~@7]/2", F: "~@12 d2 [e2,f2] [g2,a2,b2,c3] [d3,e3,f3,g3], ~@11 c2@2 ~@3",
  G: "[[a3,b3,c4,d4,e4] ~@5 [d#5,b5]@10 [c#5,a#5]@6 [b4,g#5]@10, f#5@31 ~, [c#5,a#5]@3 ~@13]/2", H: "[c#5,f#5,a#5]",
  I: "[d#5,g#5,b5]", J: "[~@4 c#6@3 d#6@5 c#6@3 b5@5 c#6@3 d#6@5 c#6@3 b5, ~ f#5@7]/4",
  K: "[~@4 c2 [d2,e2,f2] [g2,a2,b2,c3] [d3,e3,f3,g3,a3,b3] [c4,d4,e4] ~@5 [d#5,b5]@10 [c#5,a#5]@6 [b4,g#5]@10 [c#5,a#5]@6 [d#5,b5]@10 [c#5,a#5]@6 [b4,g#5]@10 [c#5,a#5]@6 [d#5,b5]@10 [c#5,a#5]@6 [b4,g#5]@2, ~@8 f#5@31 ~ f#5@31 ~ f#5@24, ~@4 [c#5,a#5]@3 ~@41]/6", // Dm Cmaj7 Em7 C G#m F# E F# …
  L: "[~@8 [c#5,a5]@6 [b4,g#5]@10 [c#5,f#5,a#5]@25 ~@15, ~ e5@2 ~@5]/4", // F#m E F#
})).s("gm_percussive_organ").gain(0.09).pan(0.1)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@13 A B C B C B D E F@2 G ~ H I J K ~ L M B C B C B D E N@2 ~ O@2 P@3 Q@2 ~@11 R@7 S@2 ~ T@2 U@2 ~@8
>`.pickRestart({
  A: "~@15 [a#3,c#4]", B: "[f#2,a#3,c#4]@4 [g2,g#2] [a2,a#2,b2,b3,d#4] [b2,b3,d#4]@9 [a#3,c#4]",
  C: "[f#2,a#3,c#4]@5 [g#2,b3,d#4] [g#2,b3,d#4]@9 [a#3,c#4]", D: "[f#2,a#3,c#4]@5 [g#2,b3,d#4] [g#2,b3,d#4]@9 [c#4,e4]",
  E: "[a2,c#4,e4]@5 [e2,g#3,e4] [e2,g#3,e4]@9 [a#3,c#4]", // A E A#m
  F: "[[f#2,a#3,c#4]@5 [f#2,a#3,c#4] [f#2,a#3,c#4]@13 ~@7 c#4 d#4@3 c#4 b3]/2", G: "c#4@3 [c#4,d#4]@2 ~ g#3@10",
  H: "~@10 c#4 d#4@3 c#4 b3", I: "c#4@3 c#4@3 d#4@10", J: "~@10 f#4 g#4@3 f#4 d#4", K: "f#4",
  L: "~@10 f#4@2 b4 f#4@2 b4", M: "f#4@12 ~@3 [a#3,c#4]", N: "[[f#2,a#3,c#4]@5 [f#2,a#3,c#4] [f#2,a#3,c#4]@13 ~@13]/2",
  O: "[~@10 g#4@2 c#5 g#4@5 d#4@14]/2", P: "[~@10 f#4@2 b4 f#4@31 ~@4]/3", Q: "[b4@3 a#4@3 f#4@4 b3@11 ~@11]/2",
  R: "[~@7 [a#3,c#4] [f#2,a#3,c#4]@4 [g2,g#2] [a2,a#2,b2,b3,d#4] [b2,b3,d#4]@9 [a#3,c#4] [f#2,a#3,c#4]@5 [g#2,b3,d#4] [g#2,b3,d#4]@9 [a#3,c#4] [f#2,a#3,c#4]@4 [g2,g#2] [a2,a#2,b2,b3,d#4] [b2,b3,d#4]@9 [a#3,c#4] [f#2,a#3,c#4]@5 [g#2,b3,d#4] [g#2,b3,d#4]@9 [a#3,c#4] [f#2,a#3,c#4]@4 [g2,g#2] [a2,a#2,b2,b3,d#4] [b2,b3,d#4]@9 [a#3,c#4] [f#2,a#3,c#4]@5 [g#2,b3,d#4] [g#2,b3,d#4]@9 [c#4,e4] [a2,c#4,e4]@5 [e2,g#3,e4] [e2,g#3,e4]@2]/7", // A#m F# G#maj7 B7 B A#m F# G#m …
  S: "[~@7 [a#3,c#4] [f#2,a#3,c#4]@5 [f#2,a#3,c#4] [f#2,a#3,c#4]@13 ~@5]/2", T: "[~@3 g#4@11 ~@2]/2",
  U: "[~@2 c#5@3 c#5@3 g#4@17 ~@7]/2",
})).s("gm_distortion_guitar").gain(0.37)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@22 A B A B A B A B A B ~@8 C D C D C D C E A B A B A B A F@2 ~@11 G@7 H@3 ~@4
>`.pickRestart({
  A: "~@3 d#4@5, c#4, ~@3 f#4@12 ~", B: "~@3 b3@5, c#4, ~@3 d#4@13",
  C: "[d#4,b4]@3 [d#4,b4]@3 [d#4,b4]@4 [d#4,b4]@3 [d#4,b4]@3", // G#m
  D: "[d#4,c#5]@3 [d#4,c#5]@3 [d#4,c#5]@4 [d#4,d#5]@3 [d#4,c#5]@3", E: "~@5 b3@3, b4, ~@3 a#4@13, ~@3 f#4@5",
  F: "[~@3 b3@9 ~@4, c#4@3 ~, ~@3 d#4@21 ~@8]/2",
  G: "[~@8 [d#4,b4]@3 [d#4,b4]@3 [d#4,b4]@4 [d#4,b4]@3 [d#4,b4]@3 [d#4,c#5]@3 [d#4,c#5]@3 [d#4,c#5]@4 [d#4,d#5]@3 [d#4,c#5]@3 [d#4,b4]@3 [d#4,b4]@3 [d#4,b4]@4 [d#4,b4]@3 [d#4,b4]@3 [d#4,c#5]@3 [d#4,c#5]@3 [d#4,c#5]@4 [d#4,d#5]@3 [d#4,c#5]@3 [d#4,b4]@3 [d#4,b4]@3 [d#4,b4]@4 [d#4,b4]@3 [d#4,b4]@3 [d#4,c#5]@3 [d#4,c#5]@3 [d#4,c#5]@4 [d#4,d#5]@3 [d#4,c#5]@3 [d#4,b4]@3 [d#4,b4]@3 [d#4,b4]@2]/7", // G#m D#7 D# D#7 G#m D#7 D# D#7 …
  H: "[~@2 [d#4,b4]@3 b4@5 ~@4 g#4@32 ~@2, ~@5 d#4@2 ~@3 b4@32 ~@6]/3", // G#m
})).s("gm_electric_guitar_jazz").gain(0.25)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~@40 A B A B A B A ~@21 C D E D E D E F@4 ~@3>".pickRestart({
  A: "~@2 d#4 ~@2 d#4 ~@3 d#4 ~@2 d#4 ~@2 d#4", B: "~@2 d#4 ~@2 d#4 ~@3 d#4 ~@2 d#4 ~@3", C: "~@10 d#4 ~@2 d#4 ~@2",
  D: "~ d#4 ~@2 d#4 ~@2 d#4 ~@2 d#4 ~@2 d#4 ~@2", E: "~ d#4 ~@2 d#4 ~@5 d#4 ~@2 d#4 ~@2",
  F: "[~ d#4 ~@2 d#4 ~@2 d#4@17 ~@9 g#3@31, ~@3 d#4@4 ~]/4",
})).s("gm_electric_guitar_jazz").gain(0.15)

// other · rock organ · "ORGAN 3"
const rock_organ = note("<~@13 A@2 B@2 C@2 D E@2 ~@9 A@2 B@2 C@2 D E@2 ~@20 F@2 G@2 H@5 ~@13>".pickRestart({
  A: "[~@12 d#6@2 c#6 a#5@7 b5@8 a#5 g#5, ~@12 c#6 ~@19]/2",
  B: "[a#5 a#5@4 ~ b5@2 ~@4 d#6@2 c#6 b5@2 c#6 b5@2 a#5@3 b5@7 a#5 g#5, ~@6 a#5 ~@5 c#6 ~@2 a#5 ~@16]/2",
  C: "[b5@2 a#5@2 b5@2 g#5@3 ~@3 d#6@2 c#6 a#5@7 b5@8 a#5 g#5, a#5 ~@11 c#6 ~@19]/2", D: "a#5 ~ a#5@2 a#5 ~ b5@4 ~@6",
  E: "[c#6@2 b5@2 a5@2 b5@7 g#5 ~ a#5@13 ~@4, b5 ~@13 b5@2 ~@16]/2",
  F: "[~@4 d#6@2 c#6 a#5@7 b5@8 a#5 g#5 a#5 a#5@4 ~ b5@2, ~@4 c#6 ~@25 a#5 ~]/2",
  G: "[~@4 d#6@2 c#6 b5@2 c#6 b5@2 a#5@3 b5@7 a#5 g#5 b5@2 a#5@2 b5@2 g#5@2, ~@4 c#6 ~@2 a#5 ~@16 a#5 ~@7]/2",
  H: "[~@4 d#6@2 c#6 a#5@7 b5@8 a#5 g#5 a#5 ~ a#5@2 a#5 ~ b5@4 ~@6 c#6@2 b5@2 a5@2 b5@7 g#5 ~ a#5@13 ~@12, ~@4 c#6 ~@35 b5 ~@13 b5@2 ~@24]/5",
})).s("gm_rock_organ").gain(0.05)

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

// drums · snare
const snare = s("sd").struct("<~@13 A B@8 C@9 D B@8 C@8 ~@12 E F@7 G ~@13>".pickRestart({
  A: "~@8 x ~ x ~ x!2 ~@2", B: "~@4 x ~@4 x ~@2 x ~@3", C: "~ x ~ x", D: "~@4 x ~@4 x!2 ~ x!2 ~@2",
  E: "~ x!2 ~ x!2 ~@6 x ~@3", F: "~ x ~@2 x ~@7 x ~@3", G: "~ x ~@2 x ~@11",
})).gain(0.56)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@22 [~@9 x ~@6]!9 ~@9 [~@9 x ~@6]!8 ~@34>").gain(0.32)

// drums · clap
const clap = s("cp").struct("<~@22 [~ x ~ x]!9 [~ x ~@2] ~@8 [~ x ~ x]!8 ~@34>").gain(0.4)

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

// drums · hihat
const hihat = s("hh").struct("<~@22 [x!8]!10 ~@8 [~@2 x ~ x ~ x!2]!8 ~@34>").gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@48 [~ x ~@2]!8 ~@26>").gain(0.08)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 [~@7 x] ~@28 [~@3 x ~@4] ~@21>").gain(0.72)

// drums · open hat
const open_hat = s("oh").struct("<~@40 A@8 B@7 C ~@12 D E@7 F ~@5>".pickRestart({
  A: "x ~@2 x ~ x ~@2", B: "~@3 x ~@9 x ~@2", C: "~@3 x ~@2 x ~@9", D: "~@8 x ~@2 x ~@2 x ~",
  E: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", F: "~@2 x ~@2 x ~@10",
})).gain(0.32)

// drums · crash
const crash = s("cr").struct("<~@14 x ~@17 x ~@27 [~ x] ~@21>").gain(0.48)

// drums · ride
const ride = s("rd").struct("<~@14 A B@7 ~@10 A B@7 ~@20 C B@7 D ~@3 E F G H I ~@5>".pickRestart({
  A: "~ x!7", B: "x!8", C: "~@5 x!3", D: "x!4 ~@4", E: "~@5 x!4 ~@7", F: "~@5 x ~@2", G: "x ~@4 x ~@2",
  H: "~ x ~@2 x ~@2 x", I: "~ x ~@2 x ~@3",
})).gain(0.56)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@14 A@8 ~@10 A@8 ~@20 B@8 ~@4 C ~ A D E F G ~@3>".pickRestart({
  A: "~@3 x ~@4", B: "~@7 x", C: "~@6 x!2 ~@8", D: "~@11 x ~ x ~@2", E: "~@3 x ~@5 x ~ x ~@2 x ~",
  F: "x ~@2 x ~@4 x!2 ~@2 x!2 ~@2", G: "~ x ~@6",
})).gain(0.32)

// drums · bongos
const bongos = s("bongo:4").struct("<~@48 [~@5 x ~@2]!8 ~ [~ x ~@6]!4 ~@8 [~ x ~@6]!8 ~@5>").gain(0.84)

// drums · congas
const congas = s("conga:13").struct("<~@56 [~@3 x ~@4] ~@25>").gain(1.02)

// drums · congas
const congas_2 = s("conga:18").struct("<~@56 [~ x ~@6] ~@25>").gain(1.02)
// … 20 more lines

More by Alanis Morissette