Strudelify

Forever Now

Level 42

KeyG majorTempo116 bpm
0:00/0:00
// Forever Now — Level 42
// 116 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · piano · "A.PIANO 1"
const piano = note(`<
  ~ A B@2 C@2 D E F G ~@8 H ~@7 I@2 J@2 K L M N ~@16 I@2 J@2 K L M N ~@20 I@2 J@2 K L M N I@2 J@2 K L M N ~@20
>`.pickRestart({
  A: "~@2 [d4,f4,a4,c5] ~ [d4,g4,b4,d5]@3 ~ [f4,g4,a#4,d5] ~ [g4,a4,c5,e5]@3 ~ [a4,c5,d5,f5] ~", // Dm7 G Gm7 Am7 Dm7
  B: "[[e4,g4,c5,e5]@10 [e4,g4,c5,e5]@3 ~ [d4,g4,b4,d5]@10 [c4,c5]@4 [d4,d5]@4]/2", // C G C D
  C: "[[e4,g4,c5,e5]@7 [d4,g4,b4,d5]@8 [d4,g4,b4,d5]@8 ~ [g5,g6]@4 [f5,f6]@4]/2", // C G F
  D: "[f3,a3,c4,e4,e5,e6]@8 ~@2 [c5,c6]@3 [a4,a5]@3", E: "[e3,g3,b3,d4,d5,d6] ~",
  F: "[c5,c6]@3 ~ [e5,e6]@3 ~ [c5,c6]@3 ~ [a4,a5]@3 ~, [a3,c4,d4,f4]", G: "~ [g#3,c4,d4,g4,d5,d6]@3 ~@4",
  H: "~@3 [a0,a1]", // A
  I: "[[e4,g4,c5,e5]@4 [e4,g4,c5,e5]@3 [e4,g4,c5,e5] ~@2 [e4,g4,c5,e5]@4 [d4,g4,b4,d5]@10 [c4,c5]@4 [d4,d5]@4]/2", // C G C D
  J: "[[e4,g4,c5,e5]@7 [d4,g4,b4,d5]@8 [d4,g4,b4,d5]@8 ~ [g4,g5]@4 [f4,f5]@4]/2", // C G F
  K: "[f4,a4,c5,e5]@4 [f4,a4,c5,e5]@3 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]@6", // Fmaj7
  L: "[e4,g4,b4,d5]@4 [e4,g4,b4,d5]@3 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5]@6", M: "[d4,f4,a4,c5]",
  N: "~@2 [g#3,c4,d4,g4]@13 ~", // G#maj7
})).s("gm_piano").gain(0.48)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B@2 C@2 D E F G H I J I K@2 L@4 M@2 N O P Q B@2 C@2 D E F R H I J I K@2 L@4 M@2 N O P Q B@2 C@2 D E F R K@2 L@2
  K@2 S@2 T@2 U V T@2 W@2 X@2 Y Z B@2 C@2 D E F AA B@2 C@2 D E F R K@2 L@2 K@2 L@2 K@2 L@2 K@2 L@2 K@2 L@2
>`.pickRestart({
  A: "~@2 d2 ~ c2@2 ~@2 a#1 ~ a1@2 ~@2 g1 ~",
  B: "[f1@3 ~ f1@2 ~ f1 ~ f1 f1@2 ~@2 g1@4 g2 ~ g1@2 ~ g1 ~ g1 g1@2 ~@2 b1@2]/2",
  C: "[c2@5 ~ c2 ~ c2@6 ~ e2@3 e1@6 e1@3 ~ e1@4]/2", D: "d2@3 ~ d2@2 ~ d2 ~ d2 d2@2 ~@2 d2@2",
  E: "a1@3 ~ a1@2 ~ a1 ~ a1 a1@2 a1 b1 d2 e2", F: "d2@3 ~ d2@2 ~ d2 ~ d2 d2@2 d2@3 ~",
  G: "~@2 a#1@6 a2 g2 e2 d#2 d2 c2 a1@2", H: "a1@3 ~ a2 ~ d2 e2 g2 e2 a1@2 ~@2 d2@2",
  I: "d2@2 d3 ~ d2 c2!3 d2@2 f1@2 g1@2 ~@2", J: "a1@3 ~ a2 ~ d2 e2 g2 e2 a2@2 ~@2 d2@2",
  K: "[a1@3 ~ a2 ~ d2 e2 g2 e2 a2@2 ~@2 d2@4 d3 ~ d2 c2!3 d2@2 f1@2 g1@2 ~@2]/2",
  L: "[a1@3 ~ a2 ~ d2 e2 g2 e2 c3 a2@2 ~ d2@4 d3 ~ d2 c2!3 d2 f1 f1@2 g1@2 ~@2]/2",
  M: "[a1@3 ~ a2 ~ d2 e2 g2 e2 c3 a2@2 ~ d2@4 d3 ~ d2 c2!3 d2 f1 c2 ~ [c#2,d2] [b1,c2] [g#1,a1,a#1] g1]/2", // Dmaj7 Cmaj7
  N: "g1@3 g2@3 g1 ~@2 g2 g1!2 g2@2 d2 e2", O: "g1@3 g2@3 g1 ~@2 g2!2 a2 g2 e2 d2 c2",
  P: "g1@3 g2@3 g1 ~@2 g2 g1 b1!2 c2 d2 d#2", Q: "e2@2 e2!2 ~ [g#2,a2] g#2@2 g#3@4 e1@4",
  R: "~@2 a#1@6 ~@4 [b2,c3] [a2,a#2] [f2,f#2,g2,g#2] ~", // Cmaj7 A#maj7
  S: "[a1@3 ~ a2 ~ d2 e2 g2 e2 c3 a2@2 ~ a#1@4 f2@2 a#2@2 c3@2 a#2@2 a#1@2 c2@3 ~]/2",
  T: "[d2@3 ~ a1@2 g1 a1 c2 d2 c2@2 a1@2 g1@4 f1@2 ~@2 f1@2 g1@4 f1@2 ~@2]/2",
  U: "d2@3 ~ a1@2 g1 a1 c2 d2 c2@2 a1@2 g1@2", V: "~@2 f1@2 a1@2 a1!2 c2@2 b1@2 c2@2 c#2@2",
  W: "[d2@4 d2@2 e2@4 e2@2 e2@2 f2@4 c2@2 f2@2 g2@4 a2@5 ~]/2", X: "[g1@31 ~]/2", Y: "g1@14 d2 d#2",
  Z: "e2@2 e1@2 ~@2 e1@2 e2@3 ~ e1@3 ~", AA: "e1@2 a#1@2 ~ a#1!2 ~ a#1@2 a#1!2 e1@2 e1!2",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@10 A@2 B@2 A@2 B@2 A@2 C@2 D E D F ~@12 A@2 B@2 A@2 C@2 D E D F ~@8 A@2 G@2 H@2 I@2 J@6 ~@22 A@2 G@2 A@2 G@2 A@2 G@2
  A@2 G@2 A@2 G@2
>`.pickRestart({
  A: "[[g3,a3,c4,e4]@8 ~@2 [g3,a3,c4,e4] ~@3 [f#3,a3,c4,e4]@9 ~ [f3,a3,c4,d4]@8]/2", // Am7 F#m7b5 Dm7
  B: "[[g3,a3,c4,e4]@8 ~@2 [g3,a3,c4,e4] ~@3 [f#3,a3,c4,e4]@9 ~ [f3,a3,c4,d4] ~@3 [f3,a3,c4,d4] ~@3]/2", // Am7 F#m7b5 Dm7
  C: "[[g3,a3,c4,e4]@8 ~@2 [g3,a3,c4,e4] ~@3 [f#3,a3,c4,e4]@9 ~ [f3,a3,c4,d4] ~@3 [f3,a3,c4,d4]@4]/2", // Am7 F#m7b5 Dm7
  D: "[g3,b3,d4]@12 ~ [g3,b3,d4] ~@2", E: "[f3,a3,c4,d4]@12 ~ [f3,a3,c4,d4] ~@2",
  F: "[g#3,c4,d4,g4]@11 ~ [g#3,c4,d4,g4]@4", // G#maj7
  G: "[[g3,a3,c4,e4]@8 ~@2 [g3,a3,c4,e4] ~@3 [f#3,a3,c4,e4]@9 ~ [f3,a3,c4,d4]@3 [f3,a3,c4,d4] ~@2 [a3,c4,d4]@2, ~@30 f3 ~]/2", // Am7 F#m7b5 Dm7 D7
  H: "[[g3,a3,c4,e4]@8 ~@2 [g3,a3,c4,e4] ~@3 [f#3,a3,c4,e4]@9 ~ [f3,a3,c4,d4]@2 ~ [f3,a3,c4,d4] ~@4]/2", // Am7 F#m7b5 Dm7
  I: "[[g3,a3,c4,e4]@8 ~@2 [g3,a3,c4,e4] ~@3 [g#3,c4,d4,g4]@17 ~]/2", // Am7 G#maj7
  J: "[[a3,c4,e4,g4]@5 ~@9 [f3,a3,b3,d4]@7 ~@3 [b3,e4,g4]@8]/2", // Am7 Bm7b5 Em
})).s("gm_epiano2").gain(0.48)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~ A B@2 C@2 D E F G ~@8 H ~@2 I ~ J K L M@2 ~@3 E F G N ~ N O ~@4 P ~ Q R ~ J K L M@2 ~@3 E F G ~@2 S T ~@2 U@2 V ~ V
  ~ V ~@2 W ~@2 X Y M@2 ~@3 E F G Z@2 AA@2 D E F G ~@2 S T ~@2 S AB@2 AC AD AE AF AG AD AH AI AC AD AE
>`.pickRestart({
  A: "~@2 [c4,c5] ~ [d4,d5]@2 ~@2 [d4,d5] ~ [e4,e5]@2 ~@2 [f4,f5] ~", B: "[[g4,g5]@29 ~@3]/2",
  C: "[[g4,g5]@6 ~ [g4,g5]@8 [g4,g5]@13 ~@2 [f4,f5] [g4,g5]]/2", D: "[a4,a5]",
  E: "~@2 [c5,c6] ~@3 [b4,b5] ~@3 [g4,g5] ~@3 [e4,e5]@2", F: "[d4,d5]", G: "~@2 [g4,g5] ~@13",
  H: "~@8 [g3,g4] [a3,a4] ~@6", I: "~@6 [a3,a4] ~@3 [a3,a4] ~@5", J: "~ [a3,a4] [c4,c5] [d4,d5], ~@8 [b3,b4] ~@7",
  K: "[b3,b4]@15 ~", L: "[d4,g#4,c5,e5,g5]@3 ~", M: "[~@4 [a5,a6] ~@5 [a5,a6] ~@3 [g4,g5]@14 ~@4]/2",
  N: "~@4 [a4,a5] ~@11", O: "~@8 [g4,g5] [a4,a5] ~@2 [e4,e5] [d4,d5] ~@2", P: "~@8 [e4,e5] ~@3 [e4,e5]@2 [d4,d5] ~",
  Q: "~@6 [a3,a4] ~@3 [a3,a4] ~ [d4,d5]@3 [c4,c5]", // A D C
  R: "~@2 [a3,a4] ~@5 [c4,c5] [a3,a4] [c4,c5] [d#4,d#5] [d4,d5] [c4,c5] [a3,a4] ~", // A C A C D# D C A
  S: "~@9 [e4,e5] [g4,g5] [e4,e5] [g4,g5] [a4,a5] ~ [e4,e5]", // E G E G A E
  T: "[g4,g5] [e4,e5] [g4,g5] [a4,a5] ~ [e4,e5] [g4,g5] [c5,c6] ~ [b4,b5] ~ [g4,g5] ~ [e4,e5] [g4,g5] [a4,a5]", // G E G A E G C B …
  U: "[~@14 [f3,f4]@4 [g#3,g#4]@2 [c4,c5]@2 [f4,g#4,c5,d5,g5]@9 ~]/2", V: "~@4 [c5,c6] ~@11", W: "~@3 e4",
  X: "~@14 [d4,d5] [d#4,d#5]", Y: "[e4,e5]@15 ~", Z: "[~@4 [c5,a5,c6] ~@5 [c5,a5,c6] ~@3 [b4,g5,b5]@14 ~@4]/2",
  AA: "[[e4,e5]@7 [d4,d5]@8 [d4,g4,b4,e5]@15 [f4,f5] [g4,g5]]/2", // E D Em7 F G
  AB: "[[g4,g5] [e4,e5] [g4,g5] [a4,a5] ~ [e4,e5] [g4,g5] [c5,c6] ~ [e4,e5] ~ [f4,f5] ~ [g4,g5] ~ [a4,a5]@2 ~@3 [a3,a4] ~ [a3,a4] ~ a3 ~ [a3,a4] ~ a3 ~ [a3,a4] ~]/2", // G E G A E G C E …
  AC: "~ a3 ~ [a3,a4] ~ a3 ~ a3 [a3,a4] ~ [a3,a4] ~ a3 ~ [a3,e4,e5] ~", // A A5
  AD: "a3!2 ~ [a3,a4] ~ a3 ~@2 [a3,a4] ~ a3 ~ c5 ~ [a3,a4] ~", // A
  AE: "[f#3,f#4] ~ f#2 ~ a3!2 ~ a3 ~@2 a3 ~ a3 ~ [a4,a5] ~", AF: "~@6 a3 ~ a3 ~ [a3,a4] ~ a3 ~ [a3,a4] ~",
  AG: "~ a3 a1 [a3,a4] ~ a3 ~ a3 [a3,a4] ~ [a3,a4] ~ a3 ~ [a3,e4,e5] ~", // A A5
  AH: "[f#3,f#4] ~ f#2 ~ a3!2 ~ a3 ~ [g4,b4,e5] ~ [a4,c5,f5] ~ [b4,d5,g5] ~ [c5,e5,a5]", // F# Em F G Am
  AI: "~@4 [a3,a4] ~ [a3,a4] ~ a3 ~ [a3,a4] ~ a3 ~ [a3,a4] ~", // A
})).s("gm_brass_section").gain(0.72).pan(0.6)

// other · brass section · "BRASS 1" · soft notes
const brass_section_soft = note("<~@72 A@2 B ~@27 C ~ D E F ~ D ~ G ~ D E>".pickRestart({
  A: "[[d3,f3,a3,c4]@3 [e3,g3,b3,d4]@4 [f3,a3,c4,e4]@7 ~@2]/2", B: "d4",
  C: "[g#4,g5,g#5] [f#4,g4,f5,f#5] [a3,f4,a4] ~@2 [a3,a4] ~@10", D: "~@7 a4 ~ a3 ~@6", E: "~@9 a3 ~ a3 ~@4",
  F: "[a3,a4] a3 ~ [a3,a4] ~ [a3,a4] ~ a3 ~ a3 ~@6", G: "~@2 [a3,a4] ~@2 [a3,a4] ~@10",
})).s("gm_brass_section").gain(0.32).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@2 A@2 B@2 C D E F ~@4 G H G H G H G I J K L M A@2 B@2 C D E F ~@4 G H G H G H G I J K L M A@2 B@2 C D E F ~@20 A@2
  B@2 C D E F A@2 B@2 C D E F ~@20
>`.pickRestart({
  A: "[[e4,g4,c5]@3 ~ [e4,g4,c5]@2 ~ [e4,g4,c5] [e4,g4] [g4,c5] [e4,g4,c5]@2 ~@2 [d4,g4,b4]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 ~ [d4,g4,b4] [d4,g4] [g4,b4] [d4,g4,b4]@2 [d4,g4,b4] ~@3]/2", // C Em C5 C G G5 G
  B: "[[c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~ [b3,d4,g4] [b3,d4] [d4,g4] [b3,d4,g4]@2 [b3,d4,g4]@3 [b3,d4,g4]@4 ~ [b3,d4,g4]@2 ~ [b3,d4,g4] [b3,d4] [d4,g4] [b3,d4,g4]@2 [b3,d4,g4] ~@3]/2", // C G Bm G5 G Bm G5 G
  C: "[c4,f4,a4]@3 ~ [c4,f4,a4]@2 ~ [c4,f4,a4] [c4,f4] [f4,a4] [c4,f4,a4]@2 [c4,f4,a4] ~ [c4,f4] [f4,a4]", // F F5 F F5 F
  D: "[d4,g4,b4]@4 [d4,g4,b4]@2 ~ [d4,g4,b4] [d4,g4] [g4,b4] [d4,g4,b4]@2 [d4,g4,b4] ~ [d4,g4] [g4,b4]", // G G5 G G5 G
  E: "[f4,a4,c5]@3 ~ [f4,a4,c5]@2 ~ [f4,a4,c5] [f4,a4] [a4,c5] [f4,a4,c5]@2 [f4,a4,c5] ~@3", F: "~ [d4,g#4,c5] ~@6",
  G: "~@2 [c4,e4,g4] [c4,e4] [c4,e4,g4]!2 ~ [c4,e4] [c4,e4,g4]!2 [c4,e4] [c4,e4,g4] ~@4", // C
  H: "~@2 [a3,d4,f#4] [a3,d4] [a3,d4,f#4]!2 ~ [a3,d4] [a3,c4,f4] ~ [a3,c4] [a3,c4,f4] ~ [a3,c4] [a3,c4,e4] ~", // D D5 D D5 F Am F Am
  I: "~@2 [a3,d4,f#4] [a3,d4] [a3,d4,f#4]!2 ~ [a3,d4] [a3,c4,f4] ~ [a3,c4] [a3,c4,f4] ~ [a3,c4] ~ [a3,c4]", // D D5 D D5 F Am F Am
  J: "[g4,g5]@2 ~ [g4,g5] ~@2 [g4,g5]!2 ~@2 [g4,g5]@2 ~ [g4,g5] ~ [g4,g5]", // G
  K: "[g4,g5] ~@2 [g4,g5] ~@2 [g4,g5]!2 g4 [g4,g5]!3 g4 [g4,g5] ~@2", // G
  L: "[g4,g5]@2 ~ [g4,g5] ~@2 [g4,g5]!2 ~@2 [g4,g5]@2 ~ [g4,g5] ~@2", M: "[g#3,d4,g4]",
})).s("gm_electric_guitar_clean").gain(0.4).pan(0.3)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~@22 A@3 ~@21 A@3 ~@25 B@3 ~@37>".pickRestart({
  A: "[[g3,b3]@15 ~ [f3,a3,c4]@16 [g3,b3]@16, d4]/3", B: "[[g3,b3]@16 [f3,a3]@15 ~ g3@16, d4, ~@31 b3@16 ~]/3",
})).s("gm_synth_strings_1").gain(0.32).pan(0.8)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@3 A B@2 C D E F ~@15 G H@2 I@2 C D J@2 ~@15 G H@2 I@2 C D J@2 ~@7 K L@2 M N@2 O@3 ~@3 P H@2 I@2 C D Q@2 H@2 I@2 C D
  J@2 ~@20
>`.pickRestart({
  A: "~@13 [f4,g4] [a4,b4,c5,d5] [e5,f5,g5,a5]", B: "[[e5,g5,c6]@7 [d5,g5,b5]@8 [d5,e5,g5,b5]@16 ~, b5 ~@31]/2",
  C: "[e5,f5,a5,c6]@15 ~", D: "[d5,e5,g5,b5]", E: "[c5,d5,f5,a5]", F: "~@2 [d5,g5,g#5,c6]@3 ~@11",
  G: "~@12 [a5,b5,c6,d6] [c5,d5,e5,f5,g5] [f4,g4,a4,b4] [d4,e4]", // D7 C G7 Dsus2
  H: "[[e5,g5,c6]@8 ~@2 [e5,c6]@2 ~@2 [d5,g5,b5]@11 ~ [d5,g5,b5]@2 ~@4, ~@10 g5 ~@21]/2", // C G
  I: "[[e5,g5,c6]@7 [d5,g5,b5]@8 [d5,e5,g5,b5]@16 ~]/2", // C G Em7
  J: "[[c5,d5,f5,a5]@11 b5 [c6,d6,e6] [a5,b5,c6,d6] [d5,e5,f5,g5] [a4,c5] g4 ~ [d5,g5,g#5,c6]@3 ~@11, ~@15 b4@2 ~@15]/2", // Dm7 C D7 Em7 Am Csus2
  K: "~@6 [g#5,c6,d6,g6]@7 [c#6,d#6] [g5,a5,b5] f5", // G#maj7 C#sus2 G
  L: "[[d6,d#6] ~@3 g6@8 a6@2 f6@5 g6 e6@4 d6@4 c6@3 a6, e6@4 ~@16 f6 ~@11]/2", // D#maj7
  M: "b5@3 d5 b5 a5 g5@5 d5 f#5@3 d5, a#5 ~@15",
  N: "[[f5,a5,b5,d6]@8 [f5,a5]!2 d5!2 [f5,b5]@2 d5 [a5,c6]@2 ~ [a5,d6] d5 [f6,a6]!2 ~@2 [c6,f6,a6]@3 [b5,e6,g6] ~ d5 [b5,d6,f6]@2]/2", // Bm7b5 F Fdim Am D5 F Em Bdim
  O: "[~ [b5,e6,g6] d5!2 c6@3 [d5,e5,f5,g5,a5] c6@6 ~@10 [e6,f6] g6 ~ f6 g6@2 f6@3 g6 a6 f6 g6@5 f5 e5 d5 c5 b4 a4 g4, ~@8 b5 ~@5 d7@12 ~@22, ~@9 c7@4 ~@2 c7@7 ~@2]/3", // Em Dm Fmaj7
  P: "~@4 g5@8 [a5,b5,c6,d6] [c5,d5,e5,f5,g5] [f4,g4,a4,b4] [d4,e4], [g#4,c5]@3 ~, ~ d5@5 ~@2", // D7 C G7 Dsus2 G#
  Q: "[[c5,d5,f5,a5]@11 b5 [c6,d6,e6] [a5,b5,c6,d6] [d5,e5,f5,g5] [a4,c5] g4 ~ [d5,g5,g#5,c6]@13 ~, ~@15 b4@2 ~@15]/2", // Dm7 C D7 Em7 Am Csus2
})).s("gm_rock_organ").gain(0.48).pan(0.8)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A B@4 C D E F ~@15 A B@4 C D G ~@16 A B@4 C D G ~@20 A B@4 C D G H I@4 J K L ~@21
>`.pickRestart({
  A: "~@12 g4 [a4,b4] [c5,d5] [e5,f5]", B: "[g5@14 g5 f5]/4", C: "a5", D: "b5@3 g5", E: "c6@12 a5 g5 f5 e5",
  F: "d5 ~@15", G: "c6", H: "d6", I: "[g6@14 g6 f6]/4", J: "a6", K: "b6@3 g6", L: "c7@12 [a6,b6] g6 [e6,f6] d6",
})).s("gm_string_ensemble_1").gain(0.48).pan(0.4)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@10 A B A C ~@20 A B A C ~@20 A B A C A B D@2 E F G@2 H I J@2 ~@20 A B A C A B A K A B A C A B A K A B A C
>`.pickRestart({
  A: "~@2 d4 ~ c4@2 ~ c4 d4 ~ c4@2 d4 c4 a3@2", B: "~@2 d4 ~ c4@2 ~ c4 d4 c4 a3@2 g3 a3 g3 ~",
  C: "g3 a3 d4 ~ c4@2 ~ c4 d4 c4 ~ c4 d3 ~ c3@2", D: "[~@2 d4 ~ c4@2 ~ c4 d4 ~ c4@2 d4 c4 a#2@4 f3@2 a#3@2 c4@6 ~@4]/2",
  E: "[f3,a3,c4,e4]@4 [a3,c4,e4] ~@3 [c4,e4] e4 [a3,c4,e4] ~@3 [e3,a3,c4]@2", // Fmaj7 Am C Am
  F: "[f3,b3,d4]@2 [e3,a3,c4] ~@3 [e3,a3,c4]@2 [g3,b3,d4]@4 [f3,a3,c4]@4", // Bdim Am G F
  G: "[[f3,a3,c4,e4]@4 [a3,c4,e4] ~@3 [c4,e4] e4 [a3,c4,e4] ~@3 [g3,b3]@4 [f3,a3]@2 [g3,b3] ~@3 [b3,e4,g4]@3 ~ [b3,e4,g4]@4]/2", // Fmaj7 Am C Am G F G Em
  H: "[f3,a3,c4,e4]@4 [a3,c4,e4] ~@3 [c4,e4] e4 [a3,c4,e4] ~@3 [c3,f3,a3]@2", // Fmaj7 Am C Am F
  I: "[d3,g3,b3]@2 [c3,f3,a3] ~@3 [e3,a3,c4]@2 [g3,b3,d4]@4 [f3,a3,c4]@4", // G F Am G F
  J: "[[f3,a3,c4]@5 ~ [g3,b3,d4]@7 ~ [a3,c4,e4]@13 ~@5]/2", // F G Am
  K: "g3 a3 d4 ~ c4@2 ~ c4 d4 [e3,b3] ~ [f3,c4] ~ [g3,d4] ~@2", // E5 F5 G5
})).s("gm_electric_guitar_muted").gain(0.48).pan(0.3)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@9 [~@8 a3 g3 e3 d#3 d3 c3 a2@2] ~@104>")
  .s("gm_overdriven_guitar").gain(0.56).pan(0.3)

// chords · clavinet
const clavinet = note("<~@34 A@4 ~@76>".pickRestart({
  A: "[a2 ~ e2@2 a1@2 a2 ~ [g3,b3,d4]@2 ~ [g3,b3,d4] ~@4 d3@2 a2@2 d2@2 d2 d3 [f3,a3,c4]@2 ~ [g3,b3,d4] ~@4 a2 ~ e2@2 a1@2 a2 ~ [g3,b3,d4]@2 ~ [g3,b3,d4] ~@4 d3@2 a2@2 d2@2 d2 d3 [f3,a3,c4]@2 a2@2 [g3,b3,d4]@2 g2@2, [e3,g3,b3,d4]@2 ~@5 [f3,a3,c4]@3 ~@5 [e3,g3,b3,d4]@3 ~@5 [f3,a3,c4]@3 ~@6]/4", // G F G F G Em7 F Em7 …
})).s("gm_clavinet").gain(0.56)

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

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@6 C D B@15 E B@6 F G B@15 E B@6 F G B@6 C H B I@7 ~@2 J K B@6 F L B@6 F L B@7 M B@7 M B@3 F
>`.pickRestart({
  A: "x", B: "x ~ x!5 ~ x!2 ~@2 x!4", C: "x ~ x!5 ~ x!2 ~@2 x!2 ~@2", D: "x ~@3 x!7 ~ x ~ x ~",
  E: "~@3 x!4 ~ x!2 ~@4 x!2", F: "x ~ x!5 ~ x!2 ~@2 x!3 ~", G: "~@2 x ~ x!4 ~@2 x ~@3 x ~", H: "~@6 x!4 ~@4 x!2",
  I: "x ~@3 x!2 ~@2 x!2 ~@2 x!2 ~@2", J: "~@14 x!2", K: "~@4 x!3 ~ x ~@7", L: "~@2 x ~ x!4 ~@2 x!2 ~@2 x ~",
  M: "x ~ x!5 ~ x!3 ~ x ~ x ~",
})).gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
// … 81 more lines

More by Level 42