Strudelify

Are You Still Mad

Alanis Morissette

KeyD♭ majorTempo64 bpm
0:00/0:00
// Are You Still Mad — Alanis Morissette
// 64 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 63 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(64/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 · electric guitar jazz
const electric_guitar_jazz = note("<~@18 A@2 B@2 C ~@7 D E F G H ~@12 I@5 ~@6 J@5>".pickRestart({
  A: "[~@30 ab3@4 f4@8 ~ eb4@3 b3@2 ~@2 b3@9 ~@3 ab3@2]/2",
  B: "[~@2 f4@3 eb4@9 ~ b3@7 ~@8 ab3@4 f4@3 eb4@9 b3@11 ~@7]/2", C: "~@5 [db1,db2,db3]@8 ~@3", D: "~@7 ab3",
  E: "f4@9 eb4@4 b3@2 ~ b3@7 ~@5 ab3@4", F: "f4@3 eb4@4 f4@2 eb4@2 b3@3 ~@2 b3@8 ~@4 ab3@4", G: "f4@2 eb4 b3@2 ~@3",
  H: "~@8 [db1,db2,db3,db4]@15 ~@9", // Db
  I: "[~@14 ab3@4 f4@4 eb4@4 ~@2 eb4@2 ~ b3@3 ~ b3@9 ~@3 ab3@4 f4@4 eb4@4 f4@2 eb4@2 b3@3 ~ b3@11 ~@3 ab3@4 f4@2 eb4@2 f4@2 eb4@2 ~ b3@20 ~@12 [db1,db2,db4]@14 ~@20, ~@27 f4@2 ~@131]/5", // Db
  J: "[~@22 b3@2 ~@2 b3@11 ~@14 [ab3,db4]@5 ~@2 ab3 ~@14 f4@4 ~ ab3@2 ~@2 db3@2 ~@6 ab3@2 ~@12 ab3@2 ~@11 db2@25 ~@18, ~@51 db2@31 ~@2 db2@29 ~@47, ~@51 db3@2 ~@3 db3@4 db4@12 ab3@2 ~@6 db4@9 ~@3 e4@12 ~@2 db4@35 ~@19, ~@59 ab3@9 db3@12 ~@8 db3@6 ~@6 db3@7 ~@6 db3@28 ~@19]/5", // Db5
})).s("gm_electric_guitar_jazz").gain(0.26)

// other · string ensemble 1
const string_ensemble_1 = note("<~@10 A@3 ~ B@8 C D@7 E@4 F@3 G@2 ~@8 H I J K ~@2 L ~ M@3 N O@4>".pickRestart({
  A: "[~@19 db3@30 ~@3 db3@19 ~@25]/3", B: "[~@23 gb2@66 db3@161 a4@4 ab4@2]/8", C: "~@6 eb4@4 f4@13 ~@9",
  D: "[~ db3@55 gb2@64 db2@64 gb2@40]/7", E: "[~@23 db3@89 ~@8 a2@4 ab2@4]/4",
  F: "[gb2@4 eb2@4 f2@9 ~@13 gb5@6 ~@10 db5@9 ab4@8 e5@9 eb5@8 b4@9 ab4@7]/3",
  G: "[~@2 gb5@8 f5@8 ~ db5@9 ab4@8 e5@8 eb5@8 ~ b4@10 ~]/2", H: "~@10 [db2,db3]@2 ~@2 [db2,db3]@3 ~@15",
  I: "~@11 [db2,db3]@2 ~@2 [db2,db3]@4 ~@13", J: "~@13 [db2,db3]@2 ~@2 [db2,db3]@5 ~@10", K: "~@11 gb5@2 ~@3",
  L: "~@14 gb5 ab5@2 ~ [f5,gb5] ab5@3 ~@10", // Gbmaj7
  M: "[~@16 ab5 ~@2 gb5 ab5@25 ~@3 ab4@20 ~@13 ab4@8 gb5@7, ~@7 f5 ~ f5 ~@38, ~@15 gb5@2 ~@79]/3",
  N: "~ f5@7 ~ db5@8 ab4@9 e5@6",
  O: "[~@2 eb5@9 b4@8 ab4@8 gb5@8 f5@8 db5@8 ab4@9 e5@8 ~@8 b4@8 ab4@41 ~@3, ~@17 eb5@4 ~@11]/4",
})).s("gm_string_ensemble_1").gain(0.31)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@22 A ~@12 B ~@2 C@2 ~@10 D@2 ~ E F ~@8>".pickRestart({
  A: "~ gb4@2 ~@13", B: "~@3 f5@4 ~@9", C: "[~@30 ab4@33 ~]/2", D: "[~@14 a5@4 ab5@4 ~@4 eb5@3 ~ f5@12 ~@22]/2",
  E: "~@14 f5 ~@17", F: "~@15 f5@14 ~@3",
})).s("gm_string_ensemble_1").gain(0.15)

// chords · distortion guitar
const distortion_guitar = note("<~@47 A B C ~ D@5 E@7>".pickRestart({
  A: "~@10 [db2,db3] ~@3 [db2,db3]@3 ~@15", B: "~@9 db3 ~ [db2,db3]@2 ~@2 [db2,db3]@7 ~@10",
  C: "~@12 [db2,db3] [db2,db3]@2 ~@2 [db2,db3]@4 ~@11", // Db
  D: "[~@23 ab3@12 ~@2 ab3@2 ~@14 db4@2 ~ db4@2 ~@3 c4@4 ~@11 db3@3 ~@6 ab3@2 ~@16 db4@4 ~@45 f4@8, ~@14 db2@31 ab3@33 ~ db3@4 db3@16 db3@8 db4@12 ~ db4@8 db3@8 db4@6 ab3@8 ~@10, ~@14 db3@21 db3@8 db3@8 db3@7 ~@7 c4@15 db2@32 db2@32 db2@16, ~@22 db4@17 db4@14 ~@5 db4@13 db4@8 ~ [ab3,db4]@7 db4@14 ab3@39 db3@4 ~@4 db3@12, ~@107 db3@8 ~ db3@6 b3@22 ~@16]/5", // Db5
  E: "[~@12 db3@3 ab3 ~@57 db3@4 db3@2 db3@2 [db2,ab3,db4]@34 [db2,db3,ab3,db4]@32 [db2,db3,ab3,db4]@32 ~ [db2,db3,ab3,db4]@37 ~@7, db3@12 ~@4 db2@32 ~ [db2,ab3,db4]@32 ~@143, ~@9 ab3@6 ~ db4@21 ab3@12 ~@175, ~@24 db3@21 db3@28 ~@151, ~@39 db4@10 ~@175]/7", // Db5
})).s("gm_distortion_guitar").gain(0.26)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@52 A@2 ~ B@3 C@2 ~@3>".pickRestart({
  A: "[~@7 ab3@6 ~@13 db3@17 ~@3 ab3 ~@17, ~@15 db2@32 ~@17]/2", B: "[~@11 ab3@8 ~@5 ab3@10 ~@14]/3",
  C: "[~@17 db3@34 ~@13]/2",
})).s("gm_distortion_guitar").gain(0.1)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@10 A B@4 C@7 D@2 E F@8 G H@3 I@3 ~@7 J K L M@4 N@6 O@3>".pickRestart({
  A: "~@26 ab3 ~ db4@4, ~@19 db2@13, ~@23 db3@5 ab3@2 ~@2",
  B: "[~@2 ab3 ~ db4@4 db3@4 f4@5 ~@2 ab3 ~@7 ab3 ~ ab3@4 ~@10 ab3@2 ~@15 ab3@2 ab3@5 db3@4 ~@6 ab3@2 ~@30 ab3@2 ~@15 ab3@2, db3@4 db2@15 ~@2 db2@14 ab3@8 ~@2 [ab3,db4]@8 ~@9 [db4,f4]@9 ~@14 ab3@8 ~@2 db4@16 db4@8 ~@9, ~@4 ab3@3 ~@5 db4 ~@4 db3@5 ~@3 db3@4 db4@16 ~@6 ab3@9 ~@11 [ab3,db4]@8 [ab3,db4]@8 ~@8 ab3@7 ab3@7 ~@9 ab3@8 ~@2, ~@33 db3@8 db3@8 db3@4 ~@5 db3@9 ~@8 db3@8 db3@4 ~@4 db3@8 db3@8 ~ db3@5 ~@3 db3@4 ~@4 gb2@4, ~@37 db2@16 db2@17 ~ db2@16 db2@16 db2@16 ~ gb1@8]/4", // Db5 Db Db5
  C: "[ab3@4 ~@11 ab3@2 ab3@4 ~@10 ab3@2 ~@14 ab3@2 ab3@4 ~@13 ab3@4 ~@12 ab3@4 ~@42 ab3@2 ~@33 ab3@4 ~@10 ab3@2 ab3@4 ~@31 db3@4 a3@4 ab3@2, db4@8 gb1@15 ab3@8 ~@2 [ab3,db4]@16 db4@8 db2@17 db2@17 db2@16 db2@15 db2@16 db2@16 db2@16 ~ db2@16 db2@15 db2@16 ~@6, ~@4 gb2@5 ~@4 gb2@8 gb2@4 gb1@33 ~@14 ab3@8 ~@18 [ab3,db4]@8 ~@12 ab3@10 ~@2 [ab3,db4]@16 [ab3,db4]@16 ~@33 ab3@6 ~@7 ab3@10 ~@6, ~@6 ab3@8 ~@3 db4@9 ~@3 gb2@8 gb2@16 gb2@5 ~@4 db3@8 db3@8 db3@8 db3@8 ~@8 db3@8 db3@16 db3@8 db3@8 db3@8 db3@8 db3@8 ~ db3@8 db3@8 db3@8 db3@7 db3@8 db3@8 ~@10, ~@55 ab3@8 ~@3 db4@16 db4@16 ~@8 db4@6 db4@18 ~@33 db4@16 db4@16 db4@15 db4@8 ~@6]/7", // Db5
  D: "[~@2 gb3@4 eb3@4 ~@21 ab3@2 ~@14 ab3@2 ~@4 db3@8 db3@3, ~@10 f3@29 ab3@8 ~@2 [ab3,db4]@15, ~@26 db2@15 db2@16 ~@7, ~@29 db3@8 db3@4 ~@4 db3@8 ~@11, ~@33 [ab3,db4]@8 ~@23]/2", // Db5
  E: "~@15 ab3@2 ~@4 db3@4 db2@6 gb2, ~ [ab3,db4]@16 db4@15, ~@5 db3@8 db3@4 ab3@8 ~@7, ~@9 db2@16 ~@7", // Db5
  F: "[~ ab3@4 ~@10 ab3@2 ab3@4 ~@10 ab3@2 ab3@4 ~@16 gb2@3 ~@7 ab3@2 ab3@4 ~@10 ab3@2 ab3@4 ~@10 ab3@2 ab3@4 ~@25 ab3@2 ab3@4 ~@10 ab3@2 ~@13 ab3@2 ~@37 ab3@2 ~@14 db2@4 ~@6 ab3@2 ab3@5 ~@11 ab3@4 ~@8 db3@4, ~ [gb1,db4]@8 gb1@14 ab3@8 ~@8 ab3@8 ~@2 [ab3,db4]@8 ~@4 db3@8 db3@8 db3@8 db3@8 db3@8 db3@8 db3@7 db3@4 ~@4 gb2@8 gb2@8 gb2@8 gb2@8 gb2@8 gb2@12 gb2@8 db2@28 ~@4 db2@16 db2@16 db2@8, ~@5 gb2@5 ~@3 gb2@8 gb2@8 gb2@8 gb2@8 gb2@8 ~@3 db2@17 db2@16 db2@16 db2@15 gb1@16 gb1@15 gb1@16 ~ gb1@16 ~@62 ab3@10, ~@6 ab3@8 ~@3 db4@16 db4@16 ~@16 db4@16 db4@16 db4@15 db4@8 ~@8 db4@15 ~@37 ab3@4 ~@8 db3@16 db3@12 db3@16 db3@8 db3@8 ~@4, ~@25 gb1@16 gb1@16 ~@14 ab3@8 ~@8 ab3@8 ~@7 ab3@8 ~ ab3@2 ab3@5 ab3@8 ~@8 ab3@8 ~@2 [ab3,db4]@15 [ab3,db4]@22 ~ db4@16 [ab3,db4]@26 db4@16 db4@16]/8", // Gb5 Db5
  G: "ab3 ~@4 db3 ~ ab3, db4 ~, ~ db3@2 db3@2 ~@3, ~@6 ab3@10 [ab3,db4]@8 a3@7 ~, ~ db2@2 ~", // Db5
  H: "[~@4 eb3@4 ~@23 ab3@4 ~@3 db2@18 ~@8 db4@8 ~@24, gb3@2 f3@12 ~ db3@2 ~@7, ~@24 db2@13 ab3@19 ~@6 ab3@13 ~@21, ~@27 db3@8 db3@21 db2@15 ~@25, ~@31 db4@25 ~@40]/3",
  I: "[~@32 db3@12 ~@18 [db3,ab3]@13 ~@21, ~@27 db2@16 ~@19 db2@16 ~@18, ~@62 db4@9 ~@25]/3", // Db5
  J: "~@10 [db2,db3,ab3,db4] ~@3 [db2,db3,ab3,db4]@2 ~@16", K: "~@11 [db2,db3,ab3,db4] ~@3 [db2,db3,ab3,db4]@4 ~@13",
  L: "~@13 [db2,db3,ab3,db4] ~@3 [db2,db3,ab3,db4]@4 ~@11", // Db5
  M: "[~@14 a3@4 ab3@4 gb3@4 eb3@3 ~ f3@12 ~@10 ab3 ~ ab3@4 ~@2 ab3@2 ~@7 ab3 ~ ab3@4 db3 ~ ab3@2 ~@6 ab3 ~ [ab3,db4]@4 ~@10 ab3 ~ db4@5 db3@3 ab3@4 ~@2 ab3 ~ gb4@4 ~@2 ab3 ~ [f4,gb4], ~@46 db2@16 ab3@2 ~@3 db3@5 ~@11 db3@4 ~@4 db3@4 ~@4 db3@5 ~@11 db3@5 ~@3 db3@5, ~@50 db3@4 db4@7 ~ db4@5 ~@4 db4@7 ~@15 ab3@6 ~@4 ab3@2 ~@23, ~@58 db3@5 db2@13 ~@3 db2@13 ~@3 db2@13 ~@3 db2@17]/4", // Db5 Gbmaj7
  N: "[~@5 ab3 ~@5 db2@2 ~@9 ab3@2 e4@4 ~@2 ab3 ~@9 db3@4 ~@2 db3@2 ~@6 ab3 ~ gb4@4 ~@2 ab3 ~ e4@4 ~@4 db4@5 ~@10 ab3 ~ f4@2 ~@4 ab3 ~ e4@4 db3@4 ab3@2 db4@3 ~@9 ab3@2 gb4@4 db3@4 f4@4 ~@2 ab3 ~@5 db3@4 ~@7 ab3@2 ~@9 db3@4 ab3@4 ~@14 ab3 ~ db4@4 db3, ~@3 db3@9 ~@4 db2@30 ~@2 db2@30 ab3@4 ~@3 db3@5 ~@3 db3@4 db4 ~@9 db3 ~@2 ab3@6 ~ db3@5 ~@11 db3@4 db4@13 db3@5 e4@12 ~@4 db3@8 db2@13, ~@7 db4@11 ~@2 db3@5 ~@3 db3@4 db4@11 ~ ab3@7 ~ db3@4 ab3@2 ~@2 db3@5 ~@12 db3@3 db2@30 ~@3 db2@29 ~@3 db2@30 ab3@8 db3@4 ab3@2 ~@3]/6",
  O: "[~@9 ab3 ~ ab3@4 ~@11 ab3@2 ~@43 db3@19 ~@6, ~ ab3@6 db3@4 db4@14 ~@3 [ab3,db4]@6 ab3@8 ~@2 [ab3,db4]@8 ~@44, ~@3 db2@13 db3@4 db2@16 db2@17 [db2,ab3,db4]@37 ~@6, ~@17 ab3@6 ~ db3@8 db3@4 ~@4 db3@8 db3@22 ~@26]/3", // Db5
})).s("gm_acoustic_guitar_nylon").gain(0.31)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note("<~@11 A ~ B ~@3 C@2 D E@2 ~ F@2 ~ G ~@5 H ~@3 I@2 ~@19 J@2 ~@2 K ~>".pickRestart({
  A: "~@10 ab3 ~ ab3 ~@19", B: "~@5 ab3@2 ~@22 ab3@2 ~",
  C: "[ab3@2 ~@14 ab3@2 ~@6 ab3@7 ~@2 ab3 ~@6 ab3@14 ~@10, ~@31 db3@7 ~@26]/2", D: "~@8 ab3 ~@7",
  E: "[ab3@2 ~@7 ab3@8 ~@8 ab3@10 ~@6 ab3@7 ~@16]/2", F: "[~@31 ab3@2 ~@31, ~@25 db2@16 ~@23]/2", G: "~@15 ab3@2 ~@15",
  H: "~@5 ab3@11 ~@16", I: "[~@32 ab3@7 ~@25, ~@26 db2@11 ~@27, ~@15 db3@2 ~@15]/2", J: "[~@31 ab3@2 ~@31]/2",
  K: "~@5 ab3 ~@10",
})).s("gm_acoustic_guitar_nylon").gain(0.2)

// bass · acoustic bass
const bass = note("<~@10 A B@2 C D@8 E F@6 G@5 H@6 ~@7 I@8 J K@5 L@2>".pickRestart({
  A: "~@19 db2@12 ~", B: "[~@4 db2@14 ~@3 db2@14 db2@2 db2@17 db2@10]/2", C: "~@3 db2@2 ~@2 db2@16 db2@9",
  D: "[~@24 gb1@16 gb1@13 gb1@2 gb1@2 gb1@16 gb1@12 gb1@4 db2@13 ~@4 db2@13 ~@2 db2@2 db2@12 ~@4 db2@12 ~ db2@2 db2@12 ~@2 db2@2 db2@12 db2@2 ~@2 db2@13 ~@3 db2@12 ~@5 db2@24 ~@7 a1@4 ab1@2, ~@7 db2@64 ~@185]/8",
  E: "~ gb1@2 eb1@2 f1@11",
  F: "[~@25 db2@24 db2@4 db2@2 db2@2 gb1@16 ~@4 gb1@2 ~@2 gb1@8 gb1@16 ~@8 gb1@4 gb1@4 db2@20 ~@4 db2@4 ~@4 db2@20 ~@7 db2@2 ~@2 gb1@8, ~@91 db2@2 ~@3]/6",
  G: "[~@20 gb1@3 gb1@25 gb1@4 gb1@4 db2@24 ~@4 db2@4 db2@12 ~@12 db2@2 db2@2 ~@4 db2@12 db2@4 db2@16 a1@4 ab1@4]/5",
  H: "[~@4 eb1@4 ~@31 db2@8 db2@4 db2@2 ~ db2@2 db2@29 db2@2 db2@2 db2@30 db2@2 db2@2 db2@34 ~ db2@30 ~@4, gb1 f1@6 ~@17]/6",
  I: "[~@11 db2@2 ~@2 db2@27 ~ db2@2 ~@2 db2@27 ~@3 db2@2 ~@2 db2@21 ~@8 a1@4 ab1@4 gb1@4 eb1@4 f1@12 ~@4 db2@14 db2@2 db2@13 db2@2 db2@2 db2@12 db2@2 db2@2 db2@12 db2@2 db2@2 db2@12 db2@2 db2@2 db2@13 db2@2 db2@2 db2@12 db2@2 db2@2]/8",
  J: "db2@6 db2!2 db2@6 ~ db2",
  K: "[db2@13 db2@2 db2@2 db2@12 ~@2 db2@2 db2@12 ~@2 db2@2 db2@12 ~ db2 db2@2 ~ db2@13 db2 db2@2 ~ db2@12 db2@2 db2@2 db2@12 db2@2 db2@2 db2@12 db2@2 db2@2 db2@13 db2@2 db2@2 db2@12]/5",
  L: "[db2@2 db2@2 db2@13 db2@2 db2@2 db2@41 ~@2]/2",
})).s("gm_acoustic_bass").gain(0.31)

// bass · acoustic bass · soft notes
const bass_soft = note("<~@11 A ~ B C ~@2 D E F G ~@2 H ~ I J K L M ~ N O ~@22 P Q R ~@5>".pickRestart({
  A: "db2@3 db2 ~@15 db2@2 ~@11", B: "~@5 db2@2 ~@25", C: "~@2 db2 db2@4 ~@25", D: "~@6 db2@2 db2@2 ~@13 db2@2 ~@7",
  E: "~@7 db2 db2@2 ~@13 db2 ~@8", F: "~@3 db2 ~@8 db2 ~@3", G: "~@7 db2@3 ~@13 db2@2 db2@2 ~@5",
  H: "~@9 db2@12 db2@4 ~@7", I: "~@9 gb1@4 ~@2 gb1@2 ~@15", J: "~@9 gb1@4 gb1@2 gb1@2 ~@15",
  K: "~@13 db2@2 db2@2 ~@4 db2@4 ~@7", L: "~@13 db2@3 db2@4 ~@12", M: "~@4 gb1!2 gb1@2 gb1@2 ~@6", N: "~@4 db2 ~@3",
  O: "~@4 db2@3 db2@4 db2@4 ~@5 db2@2 db2@2 ~@8", P: "~@14 db2 ~", Q: "~@29 db2@2 ~", R: "~@13 db2@2 ~@17",
})).s("gm_acoustic_bass").gain(0.15)

// chords · piano
const piano = note("<A B@8 C D@6 E@6 F G@4 H@7 I@7 J@4 K@6 L@3 M@8 N>".pickRestart({
  A: "~@3 f5, ~@7 ab4@25, ~@15 gb5@17",
  B: "[~@249 gb5@7, db5@34 ~ db5@33 db5@33 ~ db5@32 db5@33 db5@33 db5@33 db5@23, ~@9 ab4@34 ab4@34 ab4@33 ab4@32 ab4@33 ab4@33 ab4@33 ab4@15, ~@17 gb5@34 ~ gb5@33 gb5@33 gb5@33 gb5@32 gb5@33 gb5@33 ~@7, ~@26 f5@34 f5@33 f5@33 f5@33 f5@33 f5@32 f5@32]/8",
  C: "~@5 db5@4 ~@4 gb5@3, ~ f5@16 ~ ab4@14",
  D: "[~@185 ab4@7, ~@3 f5@25 gb5@25 ab4@33 [db2,db3]@58 db5@25 f5@23, ~@11 db5@25 f5@25 gb5@25 ab4@25 db5@24 f5@25 gb5@32, ~@20 [db2,db3]@58 db5@25 f5@24 gb5@25 ab4@25 db5@15, ~@20 ab4@25 db5@25 f5@24 gb5@25 ab4@33 [gb1,gb2]@40]/6", // Db Gb
  E: "[~@179 db5@8 ~@5, ~ gb5@25 ab4@24 db5@24 f5@32 f5@33 f5@31 ~ f5@16 ~@5, ~@9 f5@25 gb5@24 ab4@25 db5@32 db5@32 db5@32 ~@13, ~@17 db5@25 f5@25 gb5@31 gb5@32 gb5@32 ~ gb5@24 ~@5, ~@26 [db2,db3]@64 [db2,db3,ab4]@32 ~ [db2,db3,ab4]@32 [db2,db3,ab4]@32 ~@5]/6", // Db Db5
  F: "~@25 [db2,db3,ab4]@7", // Db5
  G: "[~@121 [db2,db3,ab4]@7, ~ gb5@24 ab4@24 db5@16 gb5@24 ab4@24 db5@15, ~@9 f5@24 gb5@24 [gb1,gb2]@64 ~@7, ~@17 db5@24 f5@16 ab4@16 f5@24 gb5@31, ~@25 [db2,db3]@56 db5@24 f5@23]/4", // Db5 Gb Db
  H: "[~@26 db5 ~, ~ gb5@24 ab4@23 db5@24 f5@24 gb5@24 [db2,db3,ab4]@24 db5@32 db5@32 ~@16, ~@9 f5@23 gb5@24 [gb1,gb2,ab4]@24 db5@24 f5@24 gb5@32 gb5@32 gb5@24 ~@8, ~@17 db5@23 f5@24 gb5@24 ab4@24 db5@24 f5@32 f5@32 f5@16 ~@8, ~@25 [db2,db3]@63 [gb1,gb2]@64 [db2,db3,ab4]@32 [db2,db3,ab4]@32 ~@8]/7", // Db5 Gbsus2 Db Gb Db5
  I: "[~@115 db5@9 ~@94 db5@6, ~@22 db2@26 db5@42 [db2,db3,ab4]@8 gb5@9 f5@17 ~@26 b4@50 gb5@24, ~@23 [db3,ab4]@33 [db2,db3,ab4]@8 e5@60 ~@9 e5@25 ab4@9 gb5@8 f5@17 ab4@32, ~@31 gb5@42 eb5@51 ~@17 eb5@43 db5@25 f5@15, ~@39 f5@42 b4@43 [db2,db3,ab4]@34 [db2,db3]@64 ~@2]/7", // Db5 Db
  J: "[~@15 f5, ~ ab4@17 ab4@17 ab4@17 ab4@12, ~@11 gb5@33 gb5@35 gb5@33 gb5@16, ~@19 f5@34 f5@34 f5@33 ~@8, ~@27 db5@34 db5@34 db5@33]/4",
  K: "[~@83 db5@4 ~@9, db5@33 db5@33 db5@25 f5@25 gb5@33 ~ gb5@24 ~@18, ~@9 ab4@32 ab4@33 ~ [db2,db3]@58 db5@33 ~@26, ~@17 gb5@33 gb5@25 ab4@24 db5@26 f5@33 f5@16 ~@18, ~@25 f5@33 f5@25 gb5@25 ab4@34 ab4@32 ~@18]/6", // Db
  L: "[~@43 db3@4 ~@24 db3@4 ~@2 db3@2 ~@13 db3@4, ~@14 db2@25 db5@8 [db3,ab4]@8 [eb5,e5]@41, ~@14 db3@17 f5@48 db3@8 gb5@9, ~@15 ab4@32 db2@17 db5@32, ~@23 gb5@52 ab4@4 [db2,ab4]@17]/3", // Db5 Emaj7 Db5
  M: "[~@12 db3@4 ~@28 db3@4 ~@37 ab4@4 ~@20 db3@4 ~@30 db3@4 ~@28 db3@4 ~@29 db3@4 ~@29 db3@4 ~ [db2,db3,ab4]@10, f5@40 b4@37 db3@2 ab4@2 [db2,db3]@8 e5@50 b4@8 db3@8 e5@41 f5@41 b4@8 gb5@11, ~@8 db5@40 [db2,db3,ab4]@8 gb5@33 ab4@4 db3@4 eb5@50 [db2,ab4]@16 eb5@41 db5@52, ~@16 [db2,ab4]@16 eb5@41 db5@40 [db2,ab4]@17 f5@49 [db2,db3,ab4]@8 gb5@25 db3@8 e5@36, ~@16 db3@8 e5@41 f5@40 b4@8 db3@8 gb5@50 b4@41 [db2,ab4]@17 eb5@27]/8", // Db5 Db Db5
  N: "~@7 f5@22 ~@3, ~@2 db3@27 ~@3, ~@6 ab4@23 ~@3",
})).s("gm_piano").gain(0.36)

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

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

stack(
  electric_guitar_jazz, string_ensemble_1, string_ensemble_1_soft, distortion_guitar, distortion_guitar_soft,
  acoustic_guitar_nylon, acoustic_guitar_nylon_2, bass, bass_soft, piano, kick, snare
)

More by Alanis Morissette