Strudelify

Right Through You

Alanis Morissette

KeyE majorTempo85 bpm
0:00/0:00
// Right Through You — Alanis Morissette
// 85 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 61 bars on a 48-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.

// other · overdriven guitar
const overdriven_guitar = note("<~@12 A B@5 C@2 D ~@11 E@6 F@2 G ~@5 H@2 ~ I ~ J@8 ~@2>".pickRestart({
  A: "c#4@10 ~@2 c#4@6 b3@29 ~, ~@5 d4@2 ~@17",
  B: "[~@45 c#4@10 d4@3 c#4@6 ~ b3@38 ~@40 c#4@10 d4@3 c#4@6 b3@43 ~@35]/5",
  C: "[a4@2 a4@2 ~ a4 ~@2 a4@2 ~@7 a4 ~@2 a4 ~@2 a4 ~ a4@4 ~@5 a4@5 ~ g4@5 ~ e4@37 ~@2 a4@9 ~@2]/2", D: "e4@35 ~@13",
  E: "[~ [c#4,c#5]@9 [d4,d5]@3 [c#4,c#5]@6 [b3,b4]@48 ~@27 [c#4,c#5]@11 ~@3 c#4@5 b3@39 ~@39 c#5@9 [d4,d5]@3 [c#4,c#5]@6 [b3,b4]@50 ~@28 [a2,a3,a4], ~@105 [d4,d5]@4 ~@81 c#4@10 ~@88, ~@107 c#5@6 b4@34 ~@141]/6", // C# D C# B C# D C# B …
  F: "[~@2 a2@2 ~ [a2,a3] ~ [a2,a3,a4]@4 ~@5 [a2,a3,a4]@2 ~ [a2,a3,a4]@2 ~ [a2,a3,a4] ~@2 [a2,a3,a4]@4 ~@4 [a2,a3]@2 ~@4 [g2,g3]@3 ~@4 [e2,e3]@22 ~@15 a4@3 b4@3 a4@3 ~@4, ~ [a3,a4]@2 ~ a4@2 ~@27 a4@5 ~ g4@6 ~ e4@31 ~@19]/2", // A G E A
  G: "a4@3 g#4@11 ~@22 e4@3 f#4@3 e4@4 ~@2", H: "[~@47 [e2,e5]@4 ~@15 e2@3 ~@14 e2@2 ~@11, ~@47 e3@2 ~@47]/2",
  I: "[e2,e3,e4,e5] ~@23", // E
  J: "[~@47 c#4@6 ~@3 [d3,d4,d5]@2 ~ [c#3,c#4]@2 ~@4 [b2,b3]@28 ~@50 [c#3,c#4,c#5]@9 [d3,d4,d5]@2 ~ [c#3,c#4]@3 ~@3 [b2,b3,b4]@41 ~@37 [c#3,c#4,c#5]@9 [d3,d4,d5]@2 ~@2 [c#3,c#4]@6 [b2,b3]@42 ~@35 a4@2 ~ [a2,a3,a4]@2 ~ [a2,a3,a4]@2 ~ [a2,a3]@4 ~@5 [a2,a3,a5]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 [a2,a3,a5]@3 ~@6 a5@3 ~@3 g5@4 ~@4, ~@46 [c#3,c#5]@9 ~@4 c#5@6 b4@38 ~@52 c#5@5 ~@91 c#5@7 b4@32 ~@44 [a2,a3]@2 ~@7 a4@4 ~@8 a5@2 ~ a5@2 ~@24]/8", // D C# B C# D C# B C# …
})).s("gm_overdriven_guitar").gain(0.41)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@39 A ~@3 B@6 C ~@11>".pickRestart({
  A: "~@15 g#4",
  B: "[~@19 e5@43 ~@50 e5@44 ~@5 e5@24 ~@6 e4@4 ~@15 [e3,e4,e5]@3 ~@14 e3 e4@3 ~@9 e2@3 ~@15 [e2,e3]@3 ~@15 [e2,e3,e4,e5]@3 ~@9, ~ e4@92 ~@4 e4@88 ~@54 [e3,e4,e5]@3 ~@15 [e4,e5]@4 ~@27, ~@67 e5@41 ~@119 e5@3 ~@58]/6", // E
  C: "~@9 [e2,e3,e4,e5] ~@14", // E
})).s("gm_overdriven_guitar").gain(0.2)

// chords · distortion guitar
const distortion_guitar = note("<~@7 A@4 B C@6 D@3 E F@2 ~@3 G@4 H I J@4 K@5 L@2 ~@2 M@4 N O@4 P@5 ~>".pickRestart({
  A: "[[e1,e2]@13 ~@4 [e1,e2]@27 ~@3 e1@16 ~@3 [e1,e2]@26 ~@3 [e1,e2]@14 ~@4 [e1,e2]@29 ~ [e1,e2]@18 [e1,e2]@30 ~, ~@46 e2@17 ~@129]/4", // E
  B: "[e1,e2,e3,g#3,b3]@18 ~@19 g2@10 ~, ~@18 g2@19 ~@11, ~@19 [g1,g3,a3,b3,d4]@28 ~", // E G
  C: "[[a1,a2,a3,b3,c#4,e4]@18 e2@18 e2@10 ~ [e1,e2,e3,g#3,b3]@18 ~ [g1,g2,g3,a3,b3,d4]@28 [a1,a2,a3,b3,c#4,e4]@19 [e1,e2,e3,g#3,b3]@30 [e1,e2,e3,g#3,b3]@18 ~ [g1,g2,g3,a3,b3,d4]@29 ~ [a3,b3,c#4,e4]@18 [e1,e2,e3,g#3,b3]@28 ~ [e1,e2,e3,g#3,b3]@18 ~ [g1,g2,g3,a3,b3,d4]@28 ~ [a1,a2,a3,c#4,e4], ~@18 [e1,e3,g#3,b3]@28 ~@145 [a1,a2]@18 ~@79]/6", // A E G A E G A E …
  D: "[~@2 [a1,a2,a3,c#4,e4]@2 ~ [a1,a2,a3,c#4,e4]@2 ~ [a1,a2,a3,c#4,e4]@3 ~@6 [a1,a2,a3,c#4,e4]@2 ~ [a1,a2,a3,c#4,e4]@2 ~ [a1,a2,a3,c#4,e4] ~ [a1,a2,a3,c#4,e4]@3 ~@7 [g1,g2,g3,b3,d4]@2 ~@3 [a1,a2,a3,c#4,e4] ~@23 g#4@19 a4@3 ~@6 g#4@2 ~ a4@3 g#4@33 e4@7 f#4@6, ~@47 [e1,e2]@55 ~@42, ~@43 b4@4 ~@25, ~@89 a4@5 ~@50]/3", // A G A E
  E: "f#4@2 g#4@7 g#4@15", F: "[d4@9 ~@7]/2",
  G: "[~@10 e2@24 ~@80 e2@29 ~@18 e2@19 ~ e2@9 ~@2, e1@47 e1@48 e1@46 ~@2 e1@47 ~@2, ~@35 e2@31 e2@48 ~@78]/4",
  H: "[e1,e2,e3,g#3,b3]@18 ~ [g1,g2,g3,a3,b3,d4]@28 ~", I: "[a1,a2,a3,b3,c#4,e4]@19 [e1,e2,e3,g#3,b3]@29",
  J: "[[e1,e2,e3,g#3,b3]@17 ~ a3@29 [a1,a2,a3,b3,c#4,e4]@18 [e1,e2,e3,g#3,b3]@29 ~ [e1,e2,e3,g#3,b3]@18 ~ [g3,a3]@28 ~ [a1,a2,a3,b3,c#4,e4]@16 ~ [e1,e2,e3,g#3,b3]@31 ~, ~@17 [g1,g2,g3,b3,d4]@29 ~@67 [g1,g2,b3,d4]@28 ~@51]/4", // E A E Gsus2 A E G
  K: "[[e1,e2,e3,g#3,b3]@17 ~ [g1,g3,a3,b3]@28 ~ [a1,a2,a3,c#4]@2 ~ a3@2 [a1,a2,a3,c#4]@2 ~ [a1,a2,a3,c#4]@3 ~@6 [a1,a2,a3,c#4]@2 ~ [a1,a2,a3,c#4]@2 ~ [a1,a2,a3,c#4]@2 ~ [a1,a3,c#4]@4 ~@5 g3 ~@5 [a1,a2,a3,c#4]@5 ~@20 g#4@17 ~@4 b4@4 a4@3 g#4@3 ~ a4@17 g#4@19 e4@6 f#4@4 ~@2 f#4@3 g#4@15 a4@18 e4@2 f#4@3 ~ e4@5, ~@17 [g2,d4]@28 ~@4 [a1,a2,c#4]@2 ~@22 a2@2 ~@6 [g1,g2]@2 ~@12 e2@101 ~@44, ~@82 b3@11 ~@3 e1@101 ~@43, ~@131 a4@5 ~@104]/5", // E G A G5 A G
  L: "[~ d4@6 d4@3 d4@8 b3@42 ~@36]/2", M: "[~@47 [e1,e2]@2 ~@46 [e1,e2]@2 ~@46 [e1,e2]@2 ~@47]/4", N: "[e1,e2] ~@23",
  O: "[[e1,e2,e3,g#3,b3]@17 ~ [g1,g2,g3,a3,b3,d4]@28 ~ [a1,a2,a3,b3,c#4,e4]@18 [e1,e2,e3,g#3,b3]@29 ~ [e1,e2,e3,g#3,b3]@18 ~ [g1,g2,g3,a3,b3,d4]@28 ~ [a1,a2,a3,b3,c#4,e4]@18 [e1,e2,e3,g#3,b3]@30 ~]/4", // E G A E G A E
  P: "[[e1,e2,e3,g#3,b3]@17 [g1,g2,g3,a3,b3,d4]@29 ~ [a1,a2,a3,b3,c#4,e4]@20 ~@23 e3@5 ~ [e3,b3]@17 ~ [a3,b3]@28 ~ [a1,a2,a3,b3,c#4,e4]@3 [a1,a2,a3,b3,c#4,e4]@2 ~ [a1,a2,a3,b3,c#4,e4]@2 ~ [a1,a2,a3,b3,c#4,e4]@4 ~@4 [a1,a2,a3,b3,c#4,e4]@2 ~ [a1,a2,a3,b3,c#4,e4]@2 ~@2 [a1,a2,a3,b3]@3 ~@8 g3 ~@5 [a3,b3,c#4,e4]@8 ~@48, ~@67 e1@28 [e1,e2,g#3]@17 ~ [g1,g2,g3,d4]@28 ~@36 [g1,g2,a3,b3,d4]@2 ~@5 a1@20 ~@36, ~@78 e3@12 ~@76 [c#4,e4]@3 ~@71, ~@84 [e2,g#3]@11 ~@145]/5", // E G A E5 Asus2 A Asus2 A …
})).s("gm_distortion_guitar").gain(0.36)

// bass · electric bass pick
const bass = note("<~@7 A@3 B C@7 D@3 E F G@2 H@2 I@2 J@2 K L M@5 N@2 O P O Q R S@4 T U@5 V W@5>".pickRestart({
  A: "[e2@17 e2@18 e2@11 e2@19 ~ e2@18 e2@11 e2@19 e2@18 e2@11 ~]/3", B: "e2@3 e2@3 e2@2",
  C: "[[e1,e2]@12 [e1,e2]@6 g1@12 g1@6 g1@6 g1@3 ~ g1@3 a1@10 a1@7 e1@9 ~ e1@8 e1@5 e1@5 ~ e1@12 e1@6 g1@11 ~ g1@11 g1@6 a1@6 a1@3 a1@8 e1@20 e1@12 e1@13 e1@6 g1@11 ~ g1@12 g1@5 a1@7 a1@3 a1@8 ~ e1@18 e1@11 e1@12 e1@7 g1@18 g1@10 ~ a1]/7", // E
  D: "[~@2 a1@2 ~ a1@2 a1@3 ~@6 a1@2 ~ a1@2 ~ a1@2 ~ a1@4 ~@5 g1@3 ~@3 a1@4 ~@2 e1@18 ~ e1@19 e1@11 [e1,e2]@19 [e1,e2]@18 ~ [e1,e2]@11]/3", // E
  E: "~ [e1,e2]@17 ~ e1@17 [e1,e2]@11 ~, ~@3 e2@3 ~@2", F: "[e1,e2]@19 [e1,e2]@17 [e1,e2]@11 ~",
  G: "[[e1,e2]@18 [e1,e2]@18 [e1,e2]@11 ~ e2@18 [e1,e2]@18 [e1,e2]@10 ~@2, ~@47 e1@19 ~@30]/2", // E
  H: "[[e1,e2]@18 [e1,e2]@18 [e1,e2]@11 ~ e1@18 [e1,e2]@17 ~ e1@11 ~, ~@47 e2@18 ~@18 e2@11 ~@2]/2", // E
  I: "[[e1,e2]@17 [e1,e2]@18 [e1,e2]@10 ~@2 [e1,e2]@19 [e1,e2]@17 ~ [e1,e2]@11 ~]/2", // E
  J: "[[e1,e2]@18 [e1,e2]@18 [e1,e2]@11 [e1,e2]@18 ~ [e1,e2]@18 [e1,e2]@9 ~@3]/2", // E
  K: "[e1,e2]@12 [e1,e2]@7 [g1,g2]@18 [g1,g2]@9 ~@2", L: "[a1,a2]@7 [a1,a2]@2 [a1,a2]@8 ~ [e1,e2]@18 [e1,e2]@11 ~",
  M: "[[e1,e2]@17 ~ [g1,g2]@17 [g1,g2]@10 ~@2 [a1,a2]@6 [a1,a2]@3 [a1,a2]@7 ~@2 [e1,e2]@17 [e1,e2]@11 ~@2 [e1,e2]@11 ~ [e1,e2]@6 [g1,g2]@18 [g1,g2]@9 ~@3 [a1,a2]@6 [a1,a2]@3 [a1,a2]@7 ~@2 [e1,e2]@19 [e1,e2]@10 ~ [e1,e2]@19 [g1,g2]@18 [g1,g2]@9 ~ a1@2, ~@238 a2 ~]/5", // E G A E G A E G
  N: "[~ [a1,a2]@2 ~@2 [a1,a2]@2 [a1,a2]@3 ~@6 a2 ~@2 [a1,a2]@2 ~ [a1,a2]@2 ~ [a1,a2]@3 ~@6 [g1,g2]@2 ~@4 [a1,a2]@5 ~@2 [e1,e2]@18 [e1,e2]@18 [e1,e2]@12 ~, ~@15 a1@2 ~@79]/2", // A G A E
  O: "[e1,e2]@18 ~ [e1,e2]@18 [e1,e2]@11", P: "~ [e1,e2]@16 [e1,e2]@18 ~@2 [e1,e2]@10 ~",
  Q: "~ [e1,e2]@18 ~ e1@28, ~@19 e2@28 ~", R: "~ [e1,e2]@18 [e1,e2]@29",
  S: "[~ [e1,e2]@15 ~@2 [e1,e2]@27 ~ [e1,e2]@18 [e1,e2]@31 ~ e2@18 [e1,e2]@29 [e1,e2]@18 ~ [e1,e2]@18 [e1,e2]@11 ~, ~@95 e1@18 ~@79]/4", // E
  T: "[e1,e2]@17 ~ [e1,e2]@18 ~ [e1,e2]@9 ~@2", // E
  U: "[[d1,d2]@3 ~@3 [d1,d2]@3 ~@3 [e1,e2]@3 ~@2 [e1,e2]@4 ~@26 e2@12 e2@6 ~ g2@18 g2@10 ~ [a1,a2]@5 ~ a1@3 [a1,a2]@9 [e1,e2]@19 [e1,e2]@11 [e1,e2]@12 [e1,e2]@6 [g1,g2]@18 [g1,g2]@10 ~@2 [a1,a2]@6 ~ [a1,a2]@3 [a1,a2]@8 [e1,e2]@18 [e1,e2]@10 ~@3, ~@47 e1@18 ~ g1@27 ~@7 a2@3 ~@137]/5", // D E A E G A E
  V: "[e1,e2]@9 [g1,g2]@9 [g1,g2]@5 ~", // E G
  W: "[[a1,a2]@6 [a1,a2]@3 [a1,a2]@9 [e1,e2]@17 ~ e2@10 ~ [e1,e2]@17 ~@2 [g1,g2]@18 [g1,g2]@10 ~ a1@2 ~ [a1,a2]@3 a1@2 ~ [a1,a2]@5 ~@3 [a1,a2]@2 ~ [a1,a2]@3 [a1,a2]@2 ~ [a1,a2]@5 ~@4 [a1,a2]@2 ~@5 [g1,g2]@5 ~ [e1,e2]@68 ~@29, ~@35 e1@10 ~@50 a2 ~@5 a2 ~@138]/5", // A E G A G E
})).s("gm_electric_bass_pick").gain(0.46)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B@5 C@3 D E F G@3 H I J K@2 L@2 M@3 N O P@2 Q@2 R S T@4 U@3 V W X@7 Y Z@4 AA AB AC@3 ~@2
>`.pickRestart({
  A: "~@42 f#4@5 ~, ~@35 [e2,e3,e4]@13", // E
  B: "[~@3 g#4@5 g#4@3 g#4@6 ~@4 a4@5 [e4,a4]@7 e4@2 e3@2 ~@7 e3@3 e3@6 ~@4 e4@9 ~@15 e4@3 ~@10 e4@3 e4@6 ~@3 e4@8 ~@31 e4@6 ~@3 e4@8 ~@30 e4@6 ~@3 e4@9 ~@24 a4@6, f#4@96 ~@18 e4@19 e4@11 ~@18 e4@20 ~ e4@9 ~@18 e4@18 e4@12, e2@35 e4@2 [e2,e3]@4 e4@6 [e2,g#4]@49 ~ [e2,g#4]@48 [e2,g#4]@47 [e2,g#4]@48, e3@21 e3@14 a4@30 ~ [e4,a4]@18 a4@30 a4@24 ~ a4@24 a4@23 a4@24 a4@24 ~@6, ~@17 g#4@30 e4@6 e3@22 e3@9 e4@6 e3@12 ~ e3@24 e3@24 e3@28 e3@18 ~ e3@22 e3@20]/5", // A5 E A5
  C: "[~@10 e4@8 ~@24 e4@6 e4@6 ~@3 e4@8 ~@24 e4@6 ~@10 e4@8 ~@19 e4@6 [e4,a4]@5 ~, [e2,g#4]@48 [e2,g#4]@46 ~ [e2,g#4]@48 ~, ~ e4@9 ~@8 a4@47 a4@29 ~@19 a4@25 ~@6, ~@6 e3@30 e3@18 e3@29 e3@12 ~@6 e3@25 e3@17 ~, ~@18 e4@24 ~@23 e4@24 ~@6 e4@10 ~@8 e4@19 ~@12]/3", // A5 E
  D: "e4@6 ~@3 e4@8 ~@25 a4@5 ~, [e2,g#4]@47 ~, ~@6 e3@24 e3@17 ~, ~@17 a4@24 ~@7, ~@17 e4@19 e4@11 ~", // E
  E: "e4@6 ~@3 e4@8 ~@25 a4@6, [e2,g#4], ~@6 e3@23 e3@18 ~, ~@17 a4@25 ~@6, ~@17 e4@19 e4@12", // E
  F: "e4 ~@5 b3 [b3,d4,g4], [e2,g#4]@19 b3@17 ~@12, ~@6 e3@19 g2@22 ~, ~@9 e4@16 ~@6 g3@17, ~@19 [d4,g4]@23 ~@6", // G E G5
  G: "[b3@6 ~@3 b3@8 ~ [e3,g#3]@10 ~@2 g#3@6 ~@12 g#3@6 ~@34 g3@5 ~@2 a3@5 ~@3 b3@9 ~ [e3,g#3]@10 ~@2 g#3@6 ~@6 e3@6 ~, [a2,c#4,e4]@18 e2@30 e2@17 [g3,a3]@6 g2@6 g3@6 a3@11 ~ e4@18 ~@31, a3@2 ~@4 a3@12 b3@18 [g#3,b3]@12 b3@17 [b3,d4]@28 ~ b3@9 ~@10 b3@18 [g#3,b3]@12 ~, ~@28 e3@13 e3@12 ~ e3@39 ~ [a2,c#4]@18 ~ e2@31, ~@56 g#3@37 ~@7 a3@12 ~@11 e3@14 ~@7]/3", // E A Gsus2 G#m Bm G#m A
  H: "g#3@6 ~@3 g#3@8 ~@25 g3@5 ~, [e2,b3]@17 g2@29 ~@2, ~@6 e3@11 g3@2 ~@11 g3@12 ~@6, ~@18 [b3,d4]@29 ~, ~@18 a3@18 a3@11 ~", // E5 Bm
  I: "[a3,b3]@6 ~@3 b3@9 [e3,g#3]@10 ~@3 g#3@5 ~@6 e3@5 ~, [a2,c#4,e4]@9 e2@14 ~, ~@3 a3@6 b3@9 [g#3,b3]@5 ~, ~@14 e3@7 ~@3", // Asus2 E A G#m
  J: "[e3,g#3]@6 ~@11 g3@7 ~@18 g3@6, e2@17 a3@19 a3@12, b3@17 [b3,d4]@31, ~ e3@3 g2@4, ~@3 g#3@5 ~@2 g3@4 ~@2", // E Bm
  K: "[[a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4] ~@2 a2@2 ~@5 [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4]@3 ~@6 [a2,a3,b3,c#4,e4]@2 ~@4 [a2,a3,d4]@6 ~ [e3,g#3]@6 ~@3 g#3@8 ~@13 e4@6 a4@4 ~@7 e4 ~, ~@8 [a3,b3,c#4,e4]@3 ~@36 e2@43 a4@5 ~, ~@47 b3@18 [g#3,b3]@28 g#4@2 ~, ~@53 e3@18 e3@12 [e3,e4]@12 ~, ~@87 b4@8 ~]/2", // A D5 E A G#m E
  L: "[e4 ~@13 f#4@2 e4 ~@13 e4@2, e2@37 e4@11 e2@36 e4@3 f#4@9, a4@19 a4@77, e3@3 e4@10 e3@6 e4@11 e3@21 [e4,g#4]@9 e3@7 g#4@29, ~@3 g#4@45 f#4@19 e4@11 e3@18]/2", // E
  M: "[~@9 b3@8 ~@40 e4@8 ~@25 e4@5 ~ e4@6 ~@3 e4@8 ~@25 e3@5 ~, e2@48 e2@47 e2@48 ~, d4@17 [b3,d4]@78 ~@18 a4@30 ~, ~@6 e3@30 e3@18 e3@11 e4@18 e3@12 ~@7 e3@11 e4@13 e3@7 e4@11, ~@65 a4@30 ~ g#4@48]/3", // Bm
  N: "e4@6 ~@3 e4@8 ~@25 a4@5 ~, [e2,g#4]@47 ~, ~ e3@4 e3@3, ~@17 a4@24 ~@7, ~@17 e4@19 e4@11 ~", // E
  O: "e4@6 ~@2 e4@9 ~@25 [e3,e4]@5 ~, g#4@47 ~, e2@30 e3@7 e2@10 ~, ~@6 e3@11 e4@25 ~@6, ~@17 a4@30 ~", // E
  P: "[e4@6 ~@3 e4@8 ~@24 a4@4 [e4,g#4]@2 ~@34 e4@3 ~@9 e4@2 ~, [e2,g#4]@47 ~ e2@47 ~, ~@6 e3@21 e3@19 ~@4 g#4@45 ~, ~@17 [e4,a4]@18 e4@10 ~@2 e4@4 e4@9 e3@16 e3@14 e3@5 ~, ~@36 a4@2 b4@8 ~@2 a4@19 [e4,a4]@17 [e4,a4]@11 ~]/2", // E A5
  Q: "[e4@6 ~@3 e4@9 ~@23 a4@4 ~@14 e4@6 ~ [e4,a4]@10 ~@2 [e4,a4]@6 ~@6 e3@4 ~@2, [e2,g#4]@45 e4@14 ~@25 [e4,a4]@10 ~@2, ~@6 e3@23 e3@17 ~ e2@47 ~@2, ~@18 [e4,a4]@18 e4@9 g#4@49 ~@2, ~@36 a4@3 b4@7 ~@8 e3@22 e3@14 ~@6]/2", // A5 E A5
  R: "~@13 e4@6 ~@23 g3@6, [e2,g#4]@19 [b3,d4,g4]@18 b3@11, e4@13 ~@6 g2@29, ~@6 e3@14 ~@9 g3@11 [d4,g4]@8", // E G G5
  S: "~ b3@6 ~@3 b3@8 ~ g#3@9 ~@2 g#3@6 ~@6 e3@6, a3@6 ~ a3@11 b3@17 ~ b3@12, ~ [a2,c#4,e4]@17 e3@9 ~ e3@14 ~@6, ~@19 e2@29, ~@19 g#3@5", // A
  T: "[[e3,g#3]@8 ~@3 g#3@6 ~ g3@3 ~@23 a3@2 ~ b3@6 ~@3 b3@8 [e3,g#3]@10 ~@3 g#3@6 ~@43 a3@6 ~@8 a3@2 ~@10 b3@8 ~ [e3,g#3]@9 ~@3 g#3@5 ~@7 e3@3 ~ e3@3, [e2,b3]@18 [g2,b3]@28 ~ [a2,c#4,e4]@17 e2@28 g3@10 e3@8 b3@32 ~@2 [c#4,e4]@18 ~@30, ~@8 e3@9 d4@17 ~ d4@11 ~@39 g#3@25 a3@10 g3@17 g3@5 ~@7 a3@12 ~@9 e3@15 ~@7, ~@18 a3@14 a3@12 ~@9 a3@11 b3@18 ~ b3@24 g3@4 d4@21 [a3,d4]@11 ~ b3@8 ~@9 b3@18 [g#3,b3]@13, ~@26 g3@15 g3@5 ~@28 e3@15 e3@6 e2@17 ~ g2@29 ~ a2@18 e2@31]/4", // E E5 G A C#m D5 G#m
  U: "[e3@6 ~@6 b3@6 g3@5 ~@18 g3@4 ~@2 [a3,b3,c#4,e4]@2 ~ [a2,a3,b3,e4] ~@2 [a2,a3,b3]@2 ~ [a2,a3,b3,e4]@4 ~@4 [a2,a3,b3,c#4,e4]@2 ~ [a3,b3,c#4] ~@2 [a2,a3,b3,c#4,e4] ~@2 [a2,a3,b3,c#4,e4]@4 ~@6 c#4@3 ~@3 [a2,a3,d4]@5 ~ e3@5 ~@7 e4@6 ~@14 e4@4 ~@10 g#4@3, e2@24 g2@21 ~ a2@3 ~@18 [a2,e4]@3 ~@12 [a2,a3,b3,e4]@3 ~@10 [e2,g#3]@49, [g#3,b3]@9 g#3@9 a3@18 a3@9 ~@89 [e4,b4]@10, ~@6 e3@17 ~@7 g3@11 ~@60 e3@21 e3@22, ~@18 [b3,d4]@27 ~@4 c#4@2 ~ [c#4,e4]@2 ~ c#4@4 ~@54 [e4,a4]@17 ~ a4@7 a4@6]/3", // A Asus2 A D5 A5 Asus2 E G#m …
  V: "~@28 e3@6 ~@9 [e4,f#4]@5, ~ e2@47, ~ [e4,a4]@18 a4@29, ~ g#4@7, ~@12 e3@7 e4@15 e4@3 e3@11", // Esus2 A5
  W: "~@12 e4@6 ~@25 e4@5, ~ [e2,g#4]@47, ~ e4@11 ~@7 a4@29, ~@7 e3@21 e3@20, ~@19 e4@18 e4@3 f#4@8", // E
  X: "[~ d4@6 ~@108 [e4,a4]@19 e4@10 ~@41 e4@5 ~@49 e4@7 ~@3 e4@8 [e4,a4]@18 ~@9 g#4@3 ~@46 e4@2 ~, e2@49 e2@36 e3@6 e4@5 ~@38 a4@28 e4@23 ~@6 e4@36 e4@12 ~@40 b4@8 ~@3 g#4@45 ~, ~@7 e3@18 e3@12 e3@24 e3@6 e4 a4@26 g#4@50 g#4@46 ~ g#4@48 ~@37 a4@6 a4@5 [e4,a4]@19 [e4,a4]@16 e4@8 e3@5 ~, ~@10 d4@86 ~@12 e3@25 ~ e3@22 e3@23 e3@11 ~@12 e3@16 ~ e3@14 e3@12 ~ e3@29 [e3,e4]@12 ~@12 e3@17 e3@8 a4@12, ~@19 b3@12 b3@65 ~ e2@47 [e2,e4]@18 [e2,a4]@28 ~ e2@18 e2@30 [e2,g#4]@48 ~ e2@48]/7", // A5 E A5 E
  Y: "~@12 e4@5 ~@17 e3@14, [e2,g#4], e4@2 ~ [e4,a4]@5, ~@3 e3@14 ~@7", // E A5
  Z: "[~ e4@3 ~@63 e3@5 ~@17 g3@5 ~ b3@6 ~@3 b3@9 [e3,g#3]@11 ~@13 e3@3 e3@3 e3@6 e3@6 ~ e3@5 g3@2 ~@22 g3@4 a3@2 ~, e2@3 ~@44 b4@25 ~@54 g#3@17 g#3@12 g#3@6 [a3,d4]@21 d4@8 ~@2, ~@47 e2@12 g#4@12 ~@7 g3@11 ~@6 a3 ~@5 a3@12 ~@11 e3@13 ~@37 g3@11 ~@7, ~@47 [e4,g#4]@10 e4@15 b3@11 ~ b3@11 ~@18 b3@18 b3@12 ~@37 a3@9 ~@3, ~@54 e3@12 e2@6 [g2,d4,g4]@23 [a2,c#4,e4]@18 e2@30 [e2,b3]@18 [g2,b3]@30 ~]/4", // E D5 E G5 A E5 G
  AA: "~@8 b3@9 [e3,g#3]@10 ~@11 e3@4 ~@2 e3@3 ~, [a2,c#4,e4]@18 ~@9 e3@11 ~@10, b3@8 ~@9 b3@18 ~ b3@12, ~@5 a3@12 e2@30 ~, ~@5 g#3@2 g#3", // E A
  AB: "g#3@8 ~@3 g#3@6 ~@13 a3@6 ~@9 a3@2 ~, [e2,b3]@17 g2@29 ~@2, ~@8 e3@9 d4@18 ~ [a3,d4]@11 ~, ~@17 a3@11 g3@14 g3@5 ~, ~@17 g3 b3@29 ~", // E5 D5
  AC: "[~@12 b3@6 [e3,g#3]@10 ~@13 g#3@5 ~ e3@6 ~@7 b3@5 ~ g3@2 ~@21 g3@5 ~ [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,c#4,e4] ~@2 [a2,a3,b3,e4]@3 ~@5 [a2,a3,b3,c#4,e4]@2 ~ [a2,a3,b3,e4] ~@2 a2@2 ~ a2@3 ~@7 [g2,g3,a3,b3,d4]@2 ~@4 [a2,a3,b3,c#4,e4]@2 ~@5, [a2,c#4,e4]@18 e2@28 ~ e2@19 ~@11 g3@12 ~@55, b3@12 ~@6 b3@17 ~ b3@11 ~@10 g#3@9 b3@29 ~@8 c#4@3 ~@8 c#4@2 ~@28, ~@6 a3@12 ~@10 e3@11 e3@8 ~@6 e3@12 [g2,d4]@29 ~@50, ~@30 g#3@11 ~@6 [g#3,b3]@12 ~@7 a3@17 a3@11 ~@23 [a3,b3,c#4,e4]@2 ~ [a3,b3,c#4,e4]@3 ~@21]/3", // E A Asus2 A Asus2 G A G5 …
})).s("gm_acoustic_guitar_steel").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  ~@7 A B C D@2 E F G H I D J K L M@3 N O P Q N R S T U V W X Y Z J AA AB AC AD AE AF V AG AH AI@2 AJ AK AL AM AN M AO
  AP ~@3
>`.pickRestart({
  A: "x ~@2 x ~@4 x ~@8 x ~@11 x ~@11 x ~@5 x", B: "~@3 x ~@5 x ~@8 x ~@10 x ~@12 x ~@5",
  C: "x ~@2 x ~@6 x ~@8 x ~@9 x ~@12 x ~@5", D: "x ~@2 x ~@5 x ~@9 x ~@10 x ~@11 x ~@5",
  E: "x ~@3 x ~@4 x ~@8 x ~@10 x ~@11 x ~@6", F: "x ~@2 x ~@4 x ~@9 x ~@10 x ~@10 x ~@6 x",
  G: "~@2 x ~@6 x ~@8 x ~@11 x ~@11 x ~@5", H: "x!2 ~ x ~@2 x ~@3 x ~@3 x ~",
  I: "~ x ~ x ~@5 x ~@9 x ~@10 x ~@11 x ~@5", J: "~@47 x", K: "~@6 x ~@10 x ~@12 x ~@11 x ~@5",
  L: "x ~@8 x ~@8 x ~@12 x ~@16", M: "x ~@2 x ~@2 x ~@3 x ~@3 x ~", N: "x ~@8 x ~@9 x ~@10 x ~@11 x ~@5",
  O: "x ~@4 x ~@3 x ~@5 x ~@5 x ~@2", P: "x ~@8 x ~@8 x ~@9 x ~ x ~@17", Q: "x ~@3 x ~@4 x ~@5 x ~@5 x ~@2",
  R: "x ~@8 x ~@9 x ~@10 x ~@10 x ~@6", S: "x ~@2 x ~@4", T: "~ x ~@8 x ~@8 x ~@11 x ~@10 x ~@5",
  U: "x ~@2 x ~@2 x ~@2 x ~ x ~@4", V: "x ~@8 x ~@8 x ~@10 x ~@11 x ~@5 x", W: "~@8 x ~@8 x ~@9 x ~@5 x ~@13 x",
  X: "~@9 x ~@8 x ~@11 x ~@10 x ~@6", Y: "x ~@8 x ~@8 x ~@9 x ~@2 x ~@10 x ~@5", Z: "x ~@8 x ~@8 x ~@10 x ~@11 x ~@6",
  AA: "~@9 x ~@8 x ~@9 x ~@14 x ~@4", AB: "~ x ~@8 x ~@8 x ~@9 x ~@13 x ~@4",
  AC: "~ x ~@8 x ~@7 x ~@10 x ~ x ~@10 x ~@5", AD: "~ x ~@8 x ~@8 x ~@9 x ~@5 x ~@7 x ~@4",
  AE: "~ x ~@8 x ~@9 x ~@22 x ~@4", AF: "~ x ~@18 x ~@9 x ~@11 x ~@5", AG: "~@7 x ~@9 x ~@11 x ~@11 x ~@5 x",
  AH: "~@3 x ~@2 x ~@3 x ~@3 x ~", AI: "x ~@8 x ~@8 x ~@10 x ~@12 x ~@5", AJ: "x",
  AK: "~ x ~@7 x ~@8 x ~@11 x ~@10 x ~@5 x", AL: "~@9 x ~@8 x ~@10 x ~@11 x ~@5 x",
  AM: "~@9 x ~@9 x ~@10 x ~@10 x ~@5 x", AN: "~@9 x ~@8 x ~@9 x ~@4 x ~@14", AO: "x ~@8 x ~@8 x ~@11 x ~@10 x ~@6",
  AP: "x ~@7 x ~@8 x ~@12 x ~@10 x ~@6",
})).gain(0.36)

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

stack(overdriven_guitar, overdriven_guitar_soft, distortion_guitar, bass, acoustic_guitar_steel, kick, snare)

More by Alanis Morissette