Strudelify

Tomorrow

Silverchair

KeyD majorTempo71 bpm
0:00/0:00
// Tomorrow — Silverchair
// 71 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(71/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.

// chords · acoustic guitar steel · "Grt 1"
const acoustic_guitar_steel = note("<A@2 B@2 C D@2 E@3 F@4 G ~@8 H I J I K ~@7 L@3 M N@2 O@3 ~@39>".pickRestart({
  A: "[a2@2 e3@3 a2@3 e4@7 c#4@3 e3@3 a3@3 ~ e3@3 ~@7 e4@6 ~@7 g3@3 d3@3 ~@4 d3@3 g4@3 f#4@3 d4@3 ~ d3@3 a3@3 c3@3 e3@3 ~ g3@3 b2@3 d3@3 ~ g3@2, ~@25 a3@29 a3@20 ~@22, ~@25 c#4@16 c#4@36 ~@19, ~@25 a2@6 a2@20 ~@45, ~@28 e3@16 e3@33 ~@19]/2",
  B: "[~ g2@3 d3@3 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 ~ a2@6 [a2,e3]@7 a2@3 [a3,c#4]@3 a2@3 ~ [b2,d3,g3,b3]@3 [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~]/2", // A5 A G Em7 D5
  C: "[d3,g3,b3]@3 c3@3 a2@3 ~ [g2,b2]@6 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 a2@6", // G A5
  D: "[~ [a2,e3]@7 a2@3 [a3,c#4]@3 a2@3 [b2,d3,g3,b3]@3 ~ [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 a2@3 ~ [g2,b2]@6 [a2,e3,a3]@13 [a2,e3,a3]@9 ~]/2", // A5 A G Em7 D5 G A5
  E: "[[a2,e3,a3]@3 a2@7 [a2,e3]@6 a2@3 ~ [a3,c#4]@3 a2@3 [b2,d3,g3,b3]@3 ~ [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 [d3,g3,d4,e4]@3 ~ [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 a2@3 [g2,b2]@7 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 a2@7 [a2,e3]@6 a2@3 ~ [a3,c#4]@3 a2@3 [b2,d3,g3,b3]@3 [g2,b2,d3,g3,d4]@10]/3", // A5 A G Em7 D5 G A5 A …
  F: "[~@4 [g2,b2,d3,g3,d4,g4]@9 [d3,g3,d4,e4]@3 ~ [d3,a3,d4]@9 [d3,g3,b3]@3 ~ c3@3 a2@3 [g2,b2]@7 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 a2@7 [a2,e3]@6 a2@3 [a3,c#4]@3 ~ a2@3 [b2,d3,g3,b3]@3 [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 ~ c3@3 a2@3 [g2,b2]@7 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 a2@6 [a2,e3]@7 a2@3 [a3,c#4]@2]/4", // G Em7 D5 G A5 A G Em7 …
  G: "~@2 a2@3 [b2,d3,g3,b3]@3 [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~@5", // G Em7 D5
  H: "~@13 [a3,c#4,e4,a4]@8 ~ [e4,a4]@3 [c#4,e4,a4] ~@2 [c#4,e4,a4] ~@2 [d4,f#4,a4,d5]@6 [a4,d5]@3 e5@3 d5@3 a4@2", // A A5 A D D5
  I: "~ b4@3 a4@3 [d4,f#4]@3 [c4,e4]@3 [c4,e4,g4,c5]@6 c5@3 [g4,c5]@3 [e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [d4,f#4,a4,d5]@6 [a4,d5]@3 e5@3 d5@3 a4@2", // D C C5 C D D5
  J: "~ b4@3 a4@3 ~@6 [a3,c#4,e4,a4]@8 ~ [e4,a4]@3 [c#4,e4,a4] ~@2 [c#4,e4,a4] ~@2 [d4,f#4,a4,d5]@6 [a4,d5]@3 e5@3 d5@3 a4@2, ~@7 [d4,f#4]@14 ~@27", // A A5 A D D5 D
  K: "~ b4@3 a4@3 [d4,f#4]@6 ~@35", // D
  L: "[~@7 [a2,d3]@3 [d3,g3]@3 [a2,e3,a3]@13 [a2,e3,a3]@9 [a2,e3,a3]@3 ~ a2@6 [a2,e3]@7 a2@3 [a3,c#4]@3 a2@3 ~ [b2,d3,g3,b3]@3 [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 ~ a2@3 [g2,b2]@6 [a2,e3,a3]@13 ~ [a2,e3,a3]@9 [a2,e3,a3]@3 ~]/3", // D5 G5 A5 A G Em7 D5 G …
  M: "a2@6 [a2,e3]@7 a2@3 [a3,c#4]@3 a2@3 ~ [b2,d3,g3,b3]@3 [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9", // A5 A G
  N: "[~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 a2@3 ~ [g2,b2]@6 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 a2@7 [a2,e3]@7 a2@3 [a3,c#4]@3 a2@3 [b2,d3,g3,b3]@3 ~ [g2,b2,d3,g3,d4]@13]/2", // Em7 D5 G A5 A G
  O: "[[g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 a2@3 ~ [g2,b2]@6 [a2,e3,a3]@13 [a2,e3,a3]@9 ~ [a2,e3,a3]@3 a2@7 [a2,e3]@6 a2@3 ~ [a3,c#4]@3 a2@3 [b2,d3,g3,b3]@3 ~ [g2,b2,d3,g3,d4]@13 [g2,b2,d3,g3,d4,g4]@9 ~ [d3,g3,d4,e4]@3 [d3,a3,d4]@9 ~@17]/3", // G Em7 D5 G A5 A G Em7 …
})).s("gm_acoustic_guitar_steel").gain(0.64)

// chords · acoustic guitar steel · "Grt 2"
const acoustic_guitar_steel_2 = note("<~@10 A@2 ~ B@2 ~@10 C D E ~@55>".pickRestart({
  A: "[~@43 [e3,a3,c#4,e4]@52 ~]/2", B: "[~ [e3,a3,c#4,e4]@13 ~@10]/2",
  C: "~@13 [a2,e3,a3]@6 [a2,e3,a3]@6 [a2,e3,a3]@6 [a2,e3,a3]@6 [a2,e3,a3]@6 [a2,e3,a3]@5", // A5
  D: "~ [a2,e3,a3]@6 [a2,e3,a3]@6 [c3,g3,c4]@3 [c3,g3,c4]@3 [c3,g3,c4]@3 [c3,g3,c4]@3 [c3,g3,c4]@3 ~@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@6 [a2,e3,a3]@5", // A5 C5 A5
  E: "~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 ~@35", // A5
})).s("gm_acoustic_guitar_steel").gain(0.4)

// chords · distortion guitar · "Grt 3"
const distortion_guitar = note(`<
  ~@14 A@2 B C B C B C D@2 ~@2 E F G H G H G H I@2 ~@7 J K@2 L@5 M@4 N O P Q R S T@2 U V ~@15 W@3
>`.pickRestart({
  A: "[~@34 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 ~ a2@3 [g2,b2]@7 [a2,e3,a3]@12 [a2,e3,a3]@6 a2@3 a2@3 [a2,e3,a3]@4 ~@2 [a2,e3,a3]@5]/2", // D5 G A5
  B: "~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [f#2,b2,f#3,b3]@12 [f#2,b2,f#3,b3]@6 [f#2,b2,f#3,b3] ~@2 [f#2,b2,f#3,b3] ~@2 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 d3@3 e3@2", // A5 B5 C5
  C: "~ g3@3 a3@3 c4@3 g3@3 [a2,e3,a3]@12 [a2,e3,a3]@6 a2@3 a2@3 [a2,e3,a3]@4 ~@2 [a2,e3,a3]@5", // A5
  D: "[~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [f#2,b2,f#3,b3]@54 ~@35]/2", // A5 B5
  E: "~@7 a2@29 ~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2", // A5
  F: "~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,d3,g3]@3 [a2,e3,a3]@3 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@5", // A5 Dsus4 A5 D5 Asus4
  G: "~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@5, ~@10 [a2,d3,a3,d4,e4]@11 ~@27", // Asus4 C5 Csus2 C D5 Asus4
  H: "~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@5, ~@7 [d3,d4,e4]@14 ~@27", // Asus4 A A5 D5 Asus4 Dsus2
  I: "[~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@42 ~@41, ~@10 [a2,d3,a3,d4,e4]@45 ~@41]/2", // Asus4 C5 Asus4
  J: "~@22 [d3,a3,d4]@9 ~ [d3,g3,b3]@3 c3@3 a2@3 [g2,b2]@7", // D5 G
  K: "[[a2,e3,a3]@12 [a2,e3,a3]@6 a2@3 a2@3 [a2,e3,a3]@4 ~@2 [a2,e3,a3]@6 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [f#2,b2,f#3,b3]@12 [f#2,b2,f#3,b3]@6 [f#2,b2,f#3,b3] ~@2 [f#2,b2,f#3,b3] ~@2 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 d3@3 e3@3 g3@3 a3@3 c4@3 g3@3]/2", // A5 B5 C5
  L: "[[a2,e3,a3]@12 [a2,e3,a3]@6 a2@3 a2@3 [a2,e3,a3]@4 ~@2 [a2,e3,a3]@6 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [f#2,b2,f#3,b3]@12 [f#2,b2,f#3,b3]@6 [f#2,b2,f#3,b3] ~@2 [f#2,b2,f#3,b3] ~@2 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 d3@3 e3@3 g3@3 a3@3 c4@3 ~@3 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3, ~@93 g3@11 ~@37 [a2,d3,a3,d4,e4]@11 ~@34 [d3,d4,e4]@14 ~@40]/5", // A5 B5 C5 A5 D5 Asus4 C5 Csus2 …
  M: "[[g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 ~@6 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 ~@6 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3] ~@5 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g3,c4]@3 [g3,c4]@3 ~@3 [a2,d3,a3,d4]@6 ~@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,a3]@3 [a2,d3,a3,d4]@6 ~@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3, ~@45 [g3,c4]@11 ~@37 [a2,d3,a3,d4,e4]@11 ~ [g2,c3]@11 ~@76, ~@108 d3@6 ~@24 [d3,d4,e4]@14 ~@7 e3@5 ~@28, ~@111 [g3,c4,e4]@5 ~@76]/4", // C5 D5 A5 D5 Asus4 C5 D5 Asus4 …
  N: "[g2,c3,g3,c4,e4,g4]@3 [g2,c3,g3,c4,e4,g4]@3 [g2,c3,g3,c4,e4,g4]@3 [g2,c3,g3,c4,e4,g4]@3 [g2,c3,g3,c4,e4,g4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [d3,a3,d4] ~@2 [a3,d4,e4] ~@2", // C Asus4 D5 Asus4
  O: "~@6 [c4,e4]@3 [c#4,e4]@3 a3@3 g3@3 a3@16 ~@2 a3@3 c4@3 d4@3 [c4,e4]@3", // C C#m C
  P: "d4 e4 g4 [e4,g4] [d4,f#4] c4 d4@2 e4 d4 e4!3 d4 c4 d4", Q: "d4 e4 d4@2 c4 d4 c4@2 c#4 a3 [g3,c4] a3 a3@2 g3 a3",
  R: "d3@3 d3@3 d3@3 e3@3 [g3,c4]@3 a3@3 a3@6 f2@3 f#3@3 ~@4 f2@2 f2@2 f2@4 f2@3 f2@3", // C5
  S: "e4@12 e4@3 d4@3 [b3,e4]@6 [a3,d4]@6 g3@3 a3@5 a#3@2 a3@2 g3@2 a3@4", // E5 D5
  T: "[a#3 a3 g3 e3 g3 a3 b3@4 b3@2 d4 b3 a3 ~ a3@3 [b2,e3] [c4,e4] [c#4,e4] c4@2 c#4 a3 a3@2 a3@2 c4 d4, ~@15 g3@4 ~@13]/2", // E5 C C#m
  U: "d4 e4 g4 [e4,g4]@2 g4 [e4,g4] d4 g4 [e4,g4] g4!2 e4 d4 c4 c#4", V: "a3", W: "[~@12 e3@31 ~@5]/3",
})).s("gm_distortion_guitar").gain(0.64)

// chords · distortion guitar · "Grt 4"
const distortion_guitar_2 = note("<~@56 A@4 B@7 C@12 D E@2 ~>".pickRestart({
  A: "[[a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6, ~@45 [a2,d3,a3,d4,e4]@11 ~@34 [d3,d4,e4]@14 ~@37 [a2,d3,a3,d4,e4]@11 ~@40]/4", // A5 D5 Asus4 C5 Csus2 C D5 Asus4 …
  B: "[[a2,e3,a3]@8 ~ [a2,e3,a3]@3 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@9 [a2,e3,a3]@2 ~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@9 [a2,e3,a3]@2 ~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@9 [a2,e3,a3]@2 ~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3, ~@45 [a2,d3,a3,d4,e4]@11 ~@34 [d3,d4,e4]@15 ~@36 [a2,d3,a3,d4,e4]@11 ~@34 [d3,d4,e4]@15 ~@36 [a2,d3,a3,d4,e4]@11 ~@34 [d3,d4,e4]@15 ~@39]/7", // A5 D5 Asus4 C5 Csus2 C D5 Asus4 …
  C: "[[g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 ~@6 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 ~@6 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3] ~@5 [a2,e3,a3]@9 [a2,e3,a3]@2 ~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 ~@3 [g2,c3,g3,c4]@8 ~ [g2,c3,g3,c4]@3 [d3,g3,c4] ~@2 [g3,c4,e4] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,a3]@6 [a2,e3,a3]@9 [a2,e3,a3]@2 ~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,d3,a3,d4]@8 ~ [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@6 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3 [a2,d3,a3,d4,e4]@3, ~@45 [g3,c4]@12 ~@36 [a2,d3,a3,d4,e4]@11 ~@34 [d3,d4,e4]@15 ~@39]/4", // C5 D5 A5 D5 Asus4 C5 Csus2 C …
  D: "[g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 [g2,c3,g3,c4]@3 ~@6 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 ~@6 [a2,d3,a3,d4]@3 [a2,d3,a3,d4]@3 [a2,d3] ~@2 [g3,c4]@3", // C5 D5 C5
  E: "[[a2,e3,a3]@31 ~]/2", // A5
})).s("gm_distortion_guitar").gain(0.64)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B@3 C@2 D@3 E@6 F@6 G@2 ~ H I J K L K L K L M@3 N O@3 P@3 Q@2 R@5 S@4 T@8 U@4 S@12 V W@2 ~
>`.pickRestart({
  A: "~@29 c2@9 ~ b1@9",
  B: "[~ g1@6 a1@13 a1@13 ~ a1@6 a1@7 a1@3 a1@7 a1@3 g1@13 g1@13 d2@7 d2@6 c2@3 a1@3 ~ g1@6 a1@13 a1@13 a1@6]/3",
  C: "[~ a1@7 a1@3 a1@6 a1@3 ~ g1@13 g1@13 d2@6 d2@7 c2@3 a1@3 ~ g1@6 a1@13 a1@10]/2",
  D: "[~@3 a1@7 a1@6 a1@3 ~ a1@6 a1@3 ~ g1@13 g1@13 d2@6 d2@7 c2@3 a1@3 g1@7 a1@13 a1@13 a1@7 a1@6 a1@3 ~ a1@6 a1@3 g1@10]/3",
  E: "[~@4 g1@13 d2@6 d2@7 c2@3 a1@3 g1@7 a1@13 a1@13 a1@7 a1@6 a1@3 a1@7 a1@3 g1@13 g1@13 d2@7 d2@7 c2@3 a1@3 g1@7 a1@13 a1@13 a1@6 a1@7 a1@3 a1@7 a1@3 g1@13 g1@13 d2@7 d2@6 c2@3 ~ a1@3 g1@7 a1@12 a1@6 a1@3 a1@3 a1@4 ~@2 a1@5]/6",
  F: "[~ a1@6 b1@12 b1@6 b1@6 c2@12 c2@12 c2@6 a1@12 a1@6 a1@3 a1@3 a1@4 ~@2 a1@5]/2", G: "[~ a1@6 b1@54 ~@35]/2",
  H: "~@13 a1@6 a1@6 a1@6 a1@6 a1@6 a1@5", I: "~ a1@6 a1@6 c2@3 c2@3 c2@3 c2@3 c2@3 ~@3 a1@3 a1@3 a1@6 a1@5",
  J: "~ a1@6 a1@6 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@5",
  K: "~ d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@5, ~@10 d2@11 ~@27",
  L: "~ d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@5, ~@10 d2@11 ~@27",
  M: "[~ d2@3 d2@3 d2@3 d2@3 c2@48 a1@13 a1@13 a1@6 a1@7 a1@3 a1@7 a1@3 g1@13 g1@13 d2@5]/3",
  N: "~@2 d2@6 c2@3 ~ a1@3 g1@6 a1@13 ~ a1@13",
  O: "[a1@6 a1@7 a1@3 a1@7 a1@3 g1@13 g1@13 d2@7 d2@6 c2@3 a1@3 ~ g1@6 a1@13 a1@13 a1@7 a1@7 a1@3 a1@6 a1@3 ~ g1@13]/3",
  P: "[g1@13 d2@6 d2@7 c2@3 a1@3 ~ g1@6 a1@13 a1@13 a1@7 a1@6 a1@3 ~ a1@6 a1@3 ~ g1@13 g1@13 d2@6 d2@7 c2@3 a1@3 g1@7]/3",
  Q: "[a1@12 a1@6 a1@3 a1@3 a1@4 ~@2 a1@6 a1@6 b1@12 b1@6 b1@6 c2@12 c2@12 c2@6]/2",
  R: "[a1@12 a1@6 a1@3 a1@3 a1@4 ~@2 a1@6 a1@6 b1@12 b1@6 b1@6 c2@12 c2@12 ~@6 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 d2@3, ~@90 c2@14 ~@37 d2@11 ~@37 d2@11 ~@40]/5",
  S: "[c2@3 c2@3 c2@3 c2@3 ~@6 d2@3 d2@3 d2@3 d2@3 ~@6 d2@3 d2@3 ~@6 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 d2@3, ~@45 d2@11 ~@37 d2@11 ~@37 d2@11 ~@40]/4",
  T: "[c2@3 c2@3 c2@3 c2@3 ~@6 d2@3 d2@3 d2@3 d2@3 ~@6 d2@3 d2@3 ~@6 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 d2@3, ~@45 d2@11 ~@37 d2@11 ~@37 d2@11 ~@37 d2@11 ~@37 d2@11 ~@37 d2@11 ~@37 d2@11 ~@40]/8",
  U: "[c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 c2@8 ~ c2@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 ~@3 a1@8 ~ a1@3 ~@6 d2@8 ~ d2@3 d2@6 d2@3 d2@3 d2@3 d2@3, ~@45 d2@11 ~@37 d2@11 ~@37 d2@11 ~@40]/4",
  V: "c2!4 ~@2 d2!4 ~@2 d2!2 ~ d2", W: "[a1@31 ~]/2",
})).s("gm_electric_bass_finger").gain(0.64)

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

// drums · rim
const rim = s("rim").struct("<~@2 A B C D E F G B H D I J K ~@20 L H M N J O P H Q ~@39>".pickRestart({
  A: "~@20 x ~@26 x", B: "~@25 x ~@22", C: "~@3 x ~@25 x ~@18", D: "~@4 x ~@12 x ~@6", E: "~@6 x ~@12 x ~@4",
  F: "~@16 x ~@26 x ~@4", G: "~@21 x ~@25 x", H: "~@2 x ~@12 x ~@8", I: "~@4 x ~@8 x ~@2", J: "~@17 x ~@25 x ~@4",
  K: "~@7 x ~@8", L: "~@13 x ~@10", M: "~@8 x ~@26 x ~@12", N: "~@13 x ~@25 x ~@8", O: "~@11 x ~@12",
  P: "x ~@12 x ~@10", Q: "~@3 x ~@12",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@14 A B C D E F G D H ~@3 I J K@5 L M ~@8 N O P@2 Q R@3 S R@3 T R@3 U R@3 U R@3 S R@3 S R@3 S R@3 V ~@3
>`.pickRestart({
  A: "~@41 x ~@2 x ~@3", B: "~@25 x ~@22", C: "~ x!2 ~@22 x ~@22", D: "~ x ~@23 x ~@22", E: "~ x ~@23 x ~@17 x ~@4",
  F: "~@7 x ~@2 x ~@14 x ~@22", G: "~ x ~@23 x ~@17 x ~@2 x ~", H: "~ x!2 ~@45", I: "~@19 x ~@17 x ~@10",
  J: "~@25 x ~@17 x ~@4", K: "~@4 x ~@5 x ~@14 x ~@17 x ~@4", L: "~@4 x ~@5 x ~@14 x ~@22", M: "~ x ~@46",
  N: "~@7 x!2 ~@3", O: "~@12 x ~@23 x!2 ~@10", P: "~ x ~ x", Q: "~@4 x ~@5 x ~@3 x!2", R: "~@4 x ~@5 x ~@2 x ~ x",
  S: "x!4 ~@2 x!4 ~@4 x!2", T: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@26 x!2 ~@4", U: "~@4 x ~ x!3 ~@7",
  V: "x!4 ~@2 x!4 ~@4 x ~",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@15 A ~@5 B ~ C ~@2 D E ~@7 C ~@7 F ~@11 G ~@3 H ~@3 H ~@15 I ~@3>".pickRestart({
  A: "~ x!2 ~@13", B: "~@3 x!3 ~@18", C: "~@4 x ~@2 x ~@40", D: "~@14 x ~@8 x", E: "~ x ~@5 x ~@2 x ~@37",
  F: "~@38 x ~@2 x ~@6", G: "~@6 x!8 ~@2", H: "~@16 x ~ x!6", I: "~@15 x",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@2 A B C D E F G H I J K L M ~@20 N O P Q R S T U V ~@39>".pickRestart({
  A: "~@7 x ~@6 x ~@5 x ~@6 x ~@6 x ~@5 x ~@6 x", B: "~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@6 x ~@2",
  C: "~@3 x ~@12 x ~@6 x ~@5 x ~@6 x ~@5 x ~@5", D: "~ x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x",
  E: "~@5 x ~@6 x ~@12 x ~@6 x ~@5 x ~@6 x ~@2", F: "~@3 x ~@6 x ~@5 x ~@6 x ~@6 x ~@5 x ~@6 x ~@4",
  G: "~ x ~@6 x ~@5 x ~@6 x ~@12 x ~@6 x ~@5 x", H: "~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@2",
  I: "~@4 x ~@5 x ~@6 x ~@5 x ~@6 x ~@12 x ~@4", J: "~ x ~@6 x ~@5 x ~@6 x ~@6 x ~@5 x ~@6 x ~@5 x",
  K: "~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@6 x ~@8", L: "~@4 x ~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@4",
  M: "~@2 x ~@5 x ~@6 x ~@5 x ~@6 x ~@19", N: "~@13 x ~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@2",
  O: "~@4 x ~@5 x ~@6 x ~@6 x ~@5 x ~@6 x ~@5 x ~@4", P: "~@2 x ~@5 x ~@12 x ~@6 x ~@6 x ~@5 x ~@6",
  Q: "x ~@5 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@6 x ~", R: "~@4 x ~@6 x ~@5 x ~@12 x ~@6 x ~@5 x ~@4",
  S: "~@2 x ~@5 x ~@6 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6", T: "x ~@5 x ~@6 x ~@5 x ~@6 x ~@12 x ~@6 x ~",
  U: "~@4 x ~@6 x ~@5 x ~@6 x ~@5 x ~@6 x ~@6 x ~@3", V: "~@2 x ~@6 x ~@5 x ~@32",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@14 A ~@6 B C D ~@2 E ~@7 C D ~@7 F ~@15 G ~@3 G ~@19>".pickRestart({
  A: "~@47 x", B: "~ x!2 ~@21", C: "~@40 x ~@2 x ~@4", D: "~ x ~@46", E: "~@43 x ~@4", F: "~@35 x ~@12",
  G: "~@14 x!2 ~ x ~@6",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A ~ B ~ C ~ D ~ E ~ F G H@5 G I ~@4 G H@6 J ~@2 K ~ L ~ M ~ N O@7 P O@3 ~ O@3 Q O@3 Q O@3 P O@3 P O@3 P O@3 P ~@3
>`.pickRestart({
  A: "~@5 x ~@18", B: "~@19 x ~@28", C: "~@9 x ~@6", D: "~@3 x", E: "~@15 x", F: "~@17 x ~@6",
  G: "~@13 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4", H: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4",
  I: "~ x ~@5 x ~@17 x ~@22", J: "~ x ~@5 x ~@5 x ~@11 x ~@22", K: "~@5 x ~@10", L: "~ x", M: "~@11 x ~@4",
  N: "~@11 x ~@12", O: "x!8", P: "x!4 ~@2 x!4 ~@2 x ~@3", Q: "x!3 ~@5",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@22 A ~@11 A ~@24 B ~@3 B ~@19>".pickRestart({
  A: "~@37 x ~@10", B: "~@13 x ~@10",
})).gain(0.64)

// drums · splash
const splash = s("cr").struct(`<
  ~ A B ~@12 C D E D C D C F C ~@3 G@4 H G@2 ~@10 I J I K L M L ~ L M L ~ L M L N L M L N L M L ~ L M L ~ L M L ~ L M L
  ~ N ~@2
>`.pickRestart({
  A: "~@29 x ~@9 x ~@8", B: "~ x ~@5 x ~@40", C: "~@13 x ~@34", D: "~@7 x ~@23 x ~@16", E: "~ x ~@11 x ~@34",
  F: "~@7 x ~@40", G: "~@13 x ~@17 x ~@16", H: "~ x ~@11 x ~@17 x ~@16", I: "x ~@6 x", J: "~@3 x ~@2 x ~",
  K: "~@3 x ~@4", L: "x ~@2 x ~@4", M: "x ~@2 x ~@2 x ~", N: "x",
})).gain(0.64)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, distortion_guitar, distortion_guitar_2, bass, kick, rim, snare,
  low_tom, hihat, mid_tom, open_hat, high_tom, splash
)

More by Silverchair