Strudelify

The Eve of the War

Jeff Wayne

KeyD minorTempo120 bpm
0:00/0:00
// The Eve of the War — Wayne Jeff
// 120 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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(`<
  A@2 B@4 C@2 B@8 D@2 E@2 B@6 F G H@8 I@8 J@4 K ~@21 L M N O P Q R S T@2 U@2 N M N O P Q R V W ~@29
>`.pickRestart({
  A: "[~@3 d2@11 ~@2]/2", B: "[d2@2 ~ d2@2 ~ d2@22 ~@4]/2", C: "[d2@2 ~ d2@2 ~ d2@24 ~@2]/2",
  D: "[d2@4 bb2 ~ d2@23 ~ c2 ~]/2", E: "[d2@5 ~ f2 ~ d2@23 ~]/2", F: "d2@2 ~ d2@2 ~ d2@7 ~ c2 ~",
  G: "d2@6 c2 ~ d2 ~ c2 ~ d2 ~ c2 ~",
  H: "[d2@6 ~@2 d2@2 ~ d2@2 ~ d2@22 ~@4 d2@2 ~ d2@2 ~ d2@22 ~@4 d2@2 ~ d2@2 ~ d2@22 ~@4 d2@2 ~ d2@2 ~ d2@18]/8",
  I: "[~@8 d2@4 bb2 ~ d2@23 ~ c2 ~ d2@4 f2 ~ d2@23 ~@3 d2@2 ~ d2@2 ~ d2@22 ~@4 d2@2 ~ d2@2 ~ d2@18]/8",
  J: "[~@8 d2@2 ~ d2@2 ~ d2@22 ~@4 d2@2 ~ d2@2 ~ d2@7 ~ c2 ~ d2@6 c2 ~]/4", K: "d2 ~ c2 ~ d2 ~ c2 ~ d2@8",
  L: "~@4 d2@2 ~ d2@2 ~ d2@6", M: "a1@2 c2 ~ d2@2 ~ d2@2 ~ f2 e2 d2@2 g2 ~", N: "f2 ~ e2 ~ d2@2 ~ d2@2 ~ d2@6",
  O: "a1 ~ c2 ~ d2@2 ~ d2 d2@4 ~@2 a1 ~", P: "c2 ~ db2 ~ d2@2 ~ f2@2 ~ d2@4 a1 ~",
  Q: "c2 ~ db2 ~ d2@3 e2 f2 ~ g2 ~@3 f2 ~", R: "e2 ~ d2 ~ d2@2 ~ a1@2 ~ d2@3 ~ a1 ~",
  S: "c2 ~ db2 ~ d2@2 ~ f2 ~@2 d2@3 ~ a1 ~", T: "[c2 ~ db2 ~ d2@4 bb2 ~ d2@20 a1 ~]/2",
  U: "[f2 ~ e2 ~ d2@4 f2 ~ d2@20 a1 ~]/2", V: "c2 ~ db2 ~ d2@6 c2 ~ d2 ~ c2 ~", W: "d2 ~ c2 ~ d2 ~ c2 ~ d2 ~ c2 ~@5",
})).s("gm_electric_bass_finger").gain(0.8)

// other · lead 8 bass lead · "FINGERDBAS"
const lead_8_bass_lead = note("<~@49 A B C D E F G B C D E F ~@59>".pickRestart({
  A: "~@7 eb3", B: "e3@3 c3@3 g2@2", C: "g3@3 e3@3 c3@2", D: "d2@7 e3", E: "f3@3 d3@3 a2@2", F: "a3@3 f3@3 d3@2",
  G: "c2@7 eb3",
})).s("gm_lead_8_bass_lead").gain(0.8)

// bass · synth bass 1 · "FINGERDBAS"
const bass_2 = note("<~@61 A B C D E A B F G ~@20 H@3 I J K@3 L@2 M N@2 B C D E A B F O@2 ~@8>".pickRestart({
  A: "c2@2 ~ g1@3 c2@2 c2@2 b1@2 c2@2 db2@2", B: "d2@3 a1@2 ~ d2@4 f2@2 d2@2 c2@2",
  C: "bb1@4 bb2 ~ bb1@2 ~@2 bb1@4 bb1 c2", D: "d2@2 a1 d2@2 a1 c2 db2", E: "d2@2 f2 d2@2 f2 e2 d2",
  F: "bb1@4 bb2 ~ bb1@2 ~@2 bb1@4 bb1@2", G: "c2",
  H: "[~@12 c2@2 ~ g1@3 c2@2 c2@2 b1@2 c2@2 db2@2 d2@3 a1@2 ~ d2@4 f2@2 d2@2 c2@2 bb1@4]/3",
  I: "bb2 ~ bb1@2 ~@2 bb1@4 bb1 c2 d2@4", J: "a1 d2@2 a1 c2 db2 d2@2",
  K: "[f2@2 d2@4 f2@2 e2@2 d2@2 c2@2 ~ g1@3 c2@2 c2@2 b1@2 c2@2 db2@2 d2@3 a1@2 ~ d2@4 f2@2 d2@2 c2@2 bb1@4]/3",
  L: "[bb2 ~ bb1@2 ~@2 bb1@4 bb1@2 c2@18 c2 ~]/2", M: "d2 ~ c2 ~ d2 ~ c2 ~ d2 ~ c2 ~ d2 ~ c2 ~",
  N: "[d2 ~ c2 ~ d2 ~ c2 ~ d2 ~ c2 ~ d2 ~ c2@4 ~ g1@3 c2@2 c2@2 b1@2 c2@2 db2@2]/2", O: "[c2@3 ~]/2",
})).s("gm_synth_bass_1").gain(0.8)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@8 ~@21 B C D E F G H I@2 J@3 B C D E F G K L ~@22 M@2 N@2 O@2 P@2 Q R S@2 M@2 N@2 O@2 T U ~@10 V ~@9 W@4 X@5
>`.pickRestart({
  A: "[[d3,a3,d4,f4,a4] ~@2 [d3,a3,d4,f4,a4] ~@2 [d3,g3,db4,e4,g4]@24 ~@2 [d3,g3,db4,e4,g4] ~@2 [d3,g3,db4,e4,g4] ~@2 [d3,f3,a3,d4,f4]@23 ~@3 [d3,a3,d4,f4,a4] ~@2 [d3,a3,d4,f4,a4] ~@2 [d3,g3,db4,e4,g4]@24 ~@2 [d3,a3,db4,e4,g4] ~@2 [d3,a3,db4,e4] ~@2 [d2,d3,f3,a3,d4]@26, ~@6 d2@31 ~ d2@29 ~@3 d2@31 ~@27]/8", // Dm Dbdim Dm Dbdim A7 A Dm
  B: "~@8 [db4,e4] [d4,f4] [e4,g4] ~@3 [db4,e4] [d4,f4]", C: "[e4,g4]@3 ~@5",
  D: "~@8 [d4,f4] [e4,g4] [f4,a4] ~@3 [d4,f4] [e4,g4]", E: "[f4,a4]@3 ~@5",
  F: "~@8 [e4,g4] [f4,a4] [g4,bb4] ~@3 [e4,g4] [f4,a4]", G: "[g4,bb4]@3 ~@5",
  H: "~@8 [bb4,d5] [c5,e5] [d5,f5] ~@3 [bb4,d5] [c5,e5]", // Bb C Dm Bb C
  I: "[[d5,f5]@3 [bb4,d5]@3 bb4@10 c5 bb4 a4 g4 a4 g4 f4 e4 f4 e4 d4 c4 d4 c4 bb3 a3, ~@3 g4@6 ~@7]/2", // Dm Bb
  J: "[bb3 ~ g3 ~@5 d3@4 e3@2 f3@6 g3@2 a3@6 c4@2 d4@9 ~@9]/3", K: "~@6 [e4,g4,c5] ~ [f4,a4,d5]@6 [c3,g3,e4,g4,c5] ~",
  L: "[d3,a3,f4,a4,d5]@2 [c3,g3,e4,g4,c5] ~ [d3,a3,f4,a4,d5]@2 [c3,g3,e4,g4,c5] ~ [d3,a3,f4,a4,d5]@7 ~", // Dm C Dm C Dm
  M: "[~@4 [db4,e4] [d4,f4] [e4,g4] ~@3 [db4,e4] [d4,f4] [e4,g4]@6 ~@14]/2", // Dbm Dm Em Dbm Dm Em
  N: "[~@4 [d4,f4] [e4,g4] [f4,a4] ~@3 [d4,f4] [e4,g4] [f4,a4]@6 ~@14]/2", // Dm Em F Dm Em F
  O: "[~@4 [e4,g4] [f4,a4] [g4,bb4] ~@3 [e4,g4] [f4,a4] [g4,bb4]@6 ~@14]/2", // Em F Gm Em F Gm
  P: "[~@4 [bb4,d5] [c5,e5] [d5,f5] ~@3 [bb4,d5] [c5,e5] [d5,f5]@3 [bb4,d5]@3 bb4@10 c5 bb4 a4 g4, ~@9 g4@6 ~]/2", // Bb C Dm Bb C Dm Bb
  Q: "a4 g4 f4 e4 f4 e4 d4 c4 d4 c4 bb3 a3 bb3 ~ g3 ~", R: "~@2 d3@2 e3 f3@3", S: "[g3@2 a3@6 c4@2 d4@9 ~@13]/2",
  T: "~@2 [e4,g4,c5] ~ [f4,a4,d5]@6 [c3,g3,e4,g4,c5] ~ [d3,a3,f4,a4,d5]@2 [c3,g3,e4,g4,c5] ~", // C Dm C Dm C
  U: "[d3,a3,f4,a4,d5]@2 [c3,g3,e4,g4,c5] ~ [d3,a3,f4,a4,d5]@2 [c3,g3,e4,g4,c5] ~ [d3,a3,f4,a4,d5]@2 [c3,g3,e4,g4,c5]@3 ~@3", // Dm C Dm C Dm C
  V: "~@8 [a4,d5]@2 [g4,c5]@2 [a4,d5]@2 [g4,c5] ~", // D5 C5 D5 C5
  W: "[~@8 [d3,a3,d4,f4,a4] ~@2 [d3,a3,d4,f4,a4] ~@2 [d3,g3,db4,e4,g4]@24 ~@2 [d3,g3,db4,e4,g4] ~@2 [d3,g3,db4,e4,g4] ~@2 [d2,d3,f3,a3,d4,f4]@18, ~@14 d2@31 ~@19]/4", // Dm Dbdim Dm
  X: "[~@8 [d3,a3,d4,f4,a4] ~@2 [d3,a3,d4,f4,a4] ~@2 [d3,g3,db4,e4,g4]@24 ~@2 [d3,a3,db4,e4,g4] ~@2 [d3,a3,db4,e4] ~@2 [d2,d3,f3,a3,d4]@26 ~@8, ~@14 d2@31 ~@35]/5", // Dm Dbdim A7 A Dm
})).s("gm_string_ensemble_1").gain(0.72)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@38 A ~@40 B C ~@19 D E ~@18>".pickRestart({
  A: "~ a3 ~ f3 g3 f3 e3@2 ~@8", B: "~@13 a3 ~ f3", C: "g3 f3 e3@2 ~@12",
  D: "[a4,d5] [g4,c5] [a4,d5] [g4,c5] [a4,d5] [g4,c5] [a4,d5] [g4,c5]", E: "[a4,d5] [g4,c5] [a4,d5] [g4,c5] ~@4",
})).s("gm_string_ensemble_1").gain(0.4)

// chords · lead 3 calliope · "STRINGS"
const lead_3_calliope = note("<~@63 A@2 ~@3 B C D@2 ~@48>".pickRestart({
  A: "[[f4,d5] [e4,c5] [d4,bb4] [bb3,g4]@2 [d4,bb4] [a3,f4]@8 ~@2]/2", B: "[f4,d5]@3 [e4,c5]@3 [d4,bb4]@2 [d4,bb4]@8",
  C: "~@3 [f4,d5] [e4,c5]@4", D: "[[f4,d5]@4 [d4,a4]@6 e4@9 ~@13]/2",
})).s("gm_lead_3_calliope").gain(0.56)

// other · lead 1 square · "STRINGS"
const lead_1_square = note("<~@92 A B@2 C@4 ~@5 D@2 E F@2 G ~@10>".pickRestart({
  A: "~@6 f4 e4", B: "[d4 bb3@2 d4 a3@8 ~@4]/2",
  C: "[~@8 d4 ~ c4 ~ d4@3 e4@3 c4@2 d4 e4@2 g4@7 f4@4 e4 d4 d4@5 ~ d4 e4 [f4,d5]@3 [e4,c5]@3 [d4,bb4]@2 [d4,bb4]@8 ~@4]/4", // Dm C Gm
  D: "[f4 e4 d4 bb3@2 d4 a3@8 ~@2]/2", E: "~@12 d4 ~ c4 ~", F: "[d4@3 e4@3 c4@2 d4 e4@2 g4@7 f4@4 e4 d4 d4@7 e4]/2",
  G: "[f4,d5]@3 [e4,c5]@3 [d4,bb4]@2 [d4,bb4]@8", // Dm C Gm
})).s("gm_lead_1_square").gain(0.64)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~@16 A@5 ~@3 B@5 ~@7 C@5 ~@22 D@3 ~@2 E@3 ~@7 F@3 ~@12 G@4 ~@7 H@8 ~@8>".pickRestart({
  A: "[~@4 c5@13 ~@3 a4@13 ~@7, ~@2 e4@13 ~@3 c4@13 ~@9, ~@3 g4@13 ~@3 f4@13 ~@8]/5",
  B: "[f4@4 ~@34 d5@33 ~@9, a4@24 a4@45 ~@11, d5@7 ~ db5@29 ~@43, ~@4 e4@32 f4@31 ~@13]/5",
  C: "[~@8 c5@13 ~@3 a4@13 ~@3, ~@6 e4@13 ~@3 c4@13 ~@5, ~@7 g4@13 ~@3 f4@13 ~@4]/5",
  D: "[~@2 f4, ~@4 a3@11 ~, ~ f4 ~, ~@5 a4@4 ~@3, ~@14 d4@9 ~]/3",
  E: "[~@17 g4@20 ~@11, ~@15 c4@20 ~@13, ~@4 e4@5 ~@3]/3", F: "[~@6 c5@13 ~@5, ~@4 e4@13 ~@7, ~@5 g4@13 ~@6]/3",
  G: "[~@11 e4@4 ~, ~@8 a3@33 ~@23, ~@12 f4@15 ~ f4@16 ~@20, ~@16 a4@13 ~@11 g3@16 ~@8, ~@12 d4@9 c4@8 ~@3]/4",
  H: "[~@64 f4@31 ~@2 g4@26 ~@5, ~@12 a3@33 ~@15 a3@16 ~@19 c4@26 ~@7, ~@16 f4@15 ~ f4@16 e4@16 ~@32 e4@26 ~@6, ~@20 a4@13 ~@11 g3@16 ~@68, ~@14 d4@9 c4@8 d4@17 ~@16]/8",
})).s("gm_synth_strings_1").gain(0.64).pan(0.7)

// chords · synth strings 1 · "SYN STR 1" · soft notes
const synth_strings_1_soft = note("<~@49 A@12 ~@19 B@3 ~@15 C@2 ~ D@4 ~@3 E@2 ~@10>".pickRestart({
  A: "[~@5 f4@3, c4 d4, ~ g4@7 ~ a4@7, ~ d5@7]/6", B: "[~@6 a4@13 ~@5, ~@4 c4@13 ~@7, ~@5 f4@13 ~@6]/3",
  C: "[~@13 g4@19, ~@11 c4@20 ~, ~@3 e4@5]/2",
  D: "[~@23 bb3@8 ~, ~@7 g3@8 a3@8 ~@9, ~@16 c4@16 d4@29 ~@3, ~@18 e4@16 f4@29 ~]/4", E: "[~@12 bb3@19 ~]/2",
})).s("gm_synth_strings_1").gain(0.24).pan(0.7)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@8 A@2 B@2 A@2 C@2 D@2 E@2 A@2 B@2 A@2 F@2 G@8 H@4 I@4 J@5 ~@21 K@8 L@2 M@2 N@4 O@5 ~@29
>`.pickRestart({
  A: "[[d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2]/2", B: "[[db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@23 ~@3]/2",
  C: "[[db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@22 f4@3 [g4,a4]]/2", // Dbdim Dm Gsus2
  D: "[[bb4,c5] d5@3 bb4@2 [e4,c5]@20 ~@2 g4@2 a4@2, f4@3 ~@13]/2", // Bbsus2 C
  E: "[bb4@2 c5@2 ~@4 f4@18 ~@2 f4 ~ g4 ~, f4 ~@3, ~@3 a4@10 ~@3]/2",
  F: "[[db4,e4,g4] ~@2 [a3,db4,e4] ~@2 [f3,a3,d4]@23 ~@3]/2", // Dbdim A Dm
  G: "[~@4 [d4,f4]@2 [e4,g4]@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@23 ~@3 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@18]/8", // Dm Em Dm Dbdim Dm Dbdim Dm
  H: "[~@4 f4@3 [g4,a4] [bb4,c5] d5@3 bb4@2 [e4,c5]@20 ~@2 g4@2 a4@2 bb4@2 c5@2 ~@4 f4@16, ~@4 f4@3 ~@13 f4@4 ~@8, ~@23 a4@9]/4", // Gsus2 Bbsus2 C
  I: "[~@4 f4 ~ g4 ~ [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@18]/4", // Dm Dbdim Dm
  J: "[~@8 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [a3,db4,e4] ~@2 [f3,a3,d4]@26 ~@8]/5", // Dm Dbdim A Dm
  K: "[~@4 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@23 ~@3 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@22]/8", // Dm Dbdim Dm Dbdim Dm
  L: "[f4@3 [g4,a4] [bb4,c5] d5@3 bb4@2 [e4,c5]@20 ~@2, ~@2 f4@3 ~@11]/2", // Gsus2 Bbsus2 C
  M: "[g4 a4 bb4 c5 ~@2 f4@9 ~, ~ f4@2 ~@5, ~@5 a4@10 ~]/2",
  N: "[f4 ~ g4 ~ [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [db4,e4,g4] ~@2 [a3,d4,f4]@22]/4", // Dm Dbdim Dm
  O: "[~@4 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [db4,e4,g4]@24 ~@2 [db4,e4,g4] ~@2 [a3,db4,e4] ~@2 [f3,a3,d4]@34 ~@4]/5", // Dm Dbdim A Dm
})).s("gm_synth_brass_1").gain(0.64).pan(0.3)

// chords · harpsichord · "HARPSICHRD"
const harpsichord = note("<~@28 A@8 ~@4 B@8 ~@22 C@2 D@2 E@2 D@2 ~@4 C@2 D@2 E@2 F@3 ~@29>".pickRestart({
  A: "[~@4 d4@2 e4@2 ~@5 a4 [db4,e4,g4]@22 ~@9 g4 [a3,d4,f4]@22 ~@9 a4 [db4,e4,g4]@22 ~@9 g4 [a3,d4,f4]@18, ~@8 d4@2 a4@2 f4@2 ~@27 e4@2 db4@3 ~@26 d4@2 a4@2 f4@2 ~@27 e4@2 db4@3 ~@18, ~@9 f4@2 d4@3 ~@26 db4@2 g4@2 e4@2 ~@27 f4@2 d4@3 ~@26 db4@2 g4@2 e4@2 ~@18]/8", // Dbdim Dm Dbdim Dm
  B: "[~@4 f4 ~ g4 ~@6 a4 [db4,e4,g4]@22 ~@9 g4 [a3,d4,f4]@22 ~@9 a4 [db4,e4,g4]@22 ~@9 g4 [a3,d4,f4]@18, ~@8 d4@2 a4@2 f4@2 ~@27 e4@2 db4@3 ~@26 d4@2 a4@2 f4@2 ~@27 e4@2 db4@3 ~@18, ~@9 f4@2 d4@3 ~@26 db4@2 g4@2 e4@2 ~@27 f4@2 d4@3 ~@26 db4@2 g4@2 e4@2 ~@18]/8", // Dbdim Dm Dbdim Dm
  C: "[f4 ~ g4 ~@6 a4 [db4,e4,g4]@22, ~@2 d4 a4 f4 ~@11, ~@5 f4@2 d4@3 ~@22]/2", // Dbdim
  D: "[~@9 g4 [a3,d4,f4]@22, ~@2 db4 g4 e4 ~@11, ~@5 e4@2 db4@3 ~@22]/2", // Dm
  E: "[~@9 a4 [db4,e4,g4]@22, ~@2 d4 a4 f4 ~@11, ~@5 f4@2 d4@3 ~@22]/2", // Dbdim
  F: "[~@9 g4 [a3,d4,f4]@30 ~@8, ~@2 db4 g4 e4 ~@19, ~@5 e4@2 db4@3 ~@38]/3", // Dm
})).s("gm_harpsichord").gain(0.56).pan(0.6)

// other · synth bass 1 · "HARPSICHRD"
const synth_bass_1 = note("<~@61 A B C D@2 A B C E ~@20 F G H I J K G H L@2 ~@2 A B C D@2 A B C M@2 ~@8>".pickRestart({
  A: "~@3 g4!6 g3!2 g4!5", B: "a4 a3!2 a4!6 a3!2 a4!4 g4", C: "f4 f3!2 f4!6 f3!2 f4!4 g4",
  D: "a4 a3!2 a4 g4 ~ a4!3 a3!2 a4!4 g4", E: "g4@3 ~", F: "~@15 g4", G: "g4!5 g3!2 g4!5 a4 a3!2 a4",
  H: "a4!5 a3!2 a4!4 g4 f4 f3!2 f4", I: "f4!5 f3!2 f4!4 g4 a4 a3!2 a4", J: "g4 ~ a4!3 a3!2 a4!4 g4 a4 a3!2 a4",
  K: "g4 ~ a4!3 a3!2 a4!4 g4 ~@3 g4", L: "[f4!5 f3!2 f4!4 g4 g4@12 ~@8]/2", M: "[g4@13 ~@3]/2",
})).s("gm_lead_8_bass_lead").gain(0.4).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@2 B@2 A@2 C@2 D E F G D E F G ~@4 D E F G D E H I ~ J K L M J K L M ~@4 J K L M J K N O ~@19 P@2 Q R S T U R S T V
  ~@3 Q R S T U R W ~@9 X@2 ~@9 Y@3 ~@8
>`.pickRestart({
  A: "[[d4,f4,a4] ~ [d4,f4,a4] [d4,f4,a4]@2 ~ [db4,e4,g4]@25 ~]/2", // Dm Dbdim
  B: "[[db4,e4,g4] ~ [db4,e4,g4] [db4,e4,g4]@2 ~ [a3,d4,f4]@25 ~]/2", // Dbdim Dm
  C: "[[db4,e4,g4] ~ [db4,e4,g4] [db4,e4,g4]@2 ~ [a3,d4,f4]@24 ~@2]/2", // Dbdim Dm
  D: "~@8 [db4,e4,g4]@2 ~ [db4,e4,g4] [db4,e4,g4]@3 ~", // Dbdim
  E: "[db4,e4,g4]@2 ~ [db4,e4,g4]!2 ~ [a3,db4,e4]@2 [db4,e4,g4] ~@2 [db4,e4,g4] [db4,e4,g4]@4", // Dbdim A Dbdim
  F: "~@8 [d4,f4,a4]@2 ~ [d4,f4,a4] [d4,f4,a4]@3 ~", // Dm
  G: "[d4,f4,a4]@2 ~ [d4,f4,a4]!2 ~ [a3,d4,f4]!2 [d4,f4,a4] ~@2 [d4,f4,a4] [d4,f4,a4]@4", // Dm
  H: "~@8 [a3,d4,f4]@2 ~ [a3,d4,f4] [a3,d4,f4]@3 ~", // Dm
  I: "[a3,d4,f4]@2 ~ [a3,d4,f4]!2 ~ [a3,d4,f4]!3 ~@2 [a3,d4,f4] [a3,d4,f4]@4", // Dm
  J: "[db4,e4,g4]@2 ~ [db4,e4,g4] [db4,e4,g4]@3 ~ [db4,e4,g4]@2 ~ [db4,e4,g4]!2 ~ [a3,db4,e4]@2", // Dbdim A
  K: "[db4,e4,g4] ~@2 [db4,e4,g4] [db4,e4,g4]@5 ~@7", // Dbdim
  L: "[d4,f4,a4]@2 ~ [d4,f4,a4] [d4,f4,a4]@3 ~ [d4,f4,a4]@2 ~ [d4,f4,a4]!2 ~ [a3,d4,f4]!2", // Dm
  M: "[d4,f4,a4] ~@2 [d4,f4,a4] [d4,f4,a4]@4 ~@8", // Dm
  N: "[a3,d4,f4]@2 ~ [a3,d4,f4] [a3,d4,f4]@3 ~ [a3,d4,f4]@2 ~ [a3,d4,f4]!2 ~ [a3,d4,f4]!2", // Dm
  O: "[a3,d4,f4] ~@2 [a3,d4,f4] [a3,d4,f4]@4 ~@8", P: "[~ [c5,e5], ~@7 c4@8 ~, ~@15 [e4,g4]@16 ~]/2",
  Q: "~@12 [db4,e4,g4]@2 ~ [db4,e4,g4]", // Dbdim
  R: "[db4,e4,g4]@3 ~ [db4,e4,g4]@2 ~ [db4,e4,g4]!2 ~ [a3,db4,e4]@2 [db4,e4,g4] ~@2 [db4,e4,g4]", // Dbdim A Dbdim
  S: "[db4,e4,g4]@5 ~@7 [d4,f4,a4]@2 ~ [d4,f4,a4]", // Dbdim Dm
  T: "[d4,f4,a4]@3 ~ [d4,f4,a4]@2 ~ [d4,f4,a4]!2 ~ [a3,d4,f4]!2 [d4,f4,a4] ~@2 [d4,f4,a4]", // Dm
  U: "[d4,f4,a4]@4 ~@8 [db4,e4,g4]@2 ~ [db4,e4,g4]", V: "[d4,f4,a4] ~@3", W: "[db4,e4,g4]@5 ~@11",
  X: "[~@3 [c5,e5]@5, ~@5 c4@11, ~@11 [e4,g4]@21]/2", Y: "[~@16 [c5,e5]@25 ~@7, ~@14 c4@25 ~@9, ~@15 [e4,g4]@25 ~@8]/3",
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.4)

// other · lead 1 square · "STEEL GTR"
const lead_1_square_2 = note("<~@49 A@3 B@3 C@3 D@3 ~@59>".pickRestart({
  A: "[[c4,c5]@6 [g4,g5]@6 [d5,d6]@35 ~]/3", B: "[[d4,d5]@2 [a4,a5]@2 [f5,f6]@11 ~]/3",
  C: "[[c4,c5] [g4,g5] [d5,d6]@6]/3", D: "[[d4,d5] [a4,a5] [f5,f6]@6]/3",
})).s("gm_lead_1_square").gain(0.72).pan(0.4)

// other · synth bass 1 · "STEEL GTR"
const synth_bass_1_2 = note("<~@61 A B C D E A B F ~@21 G H I J K L H I M ~@3 A B C D E A B F ~@10>".pickRestart({
  A: "c4 ~ g3 c4!6 ~ g3 c4!5", B: "d4 ~ a3 d4!6 ~ f4 d4 ~ d4!2 c4", C: "bb3 ~ f3 bb3!6 ~ f3 bb3!4 c4",
  D: "d4 ~ a3 d4!6 ~ a3 d4 ~ d4!2 db4", E: "d4 ~ a3 d4 c4 ~ d4!3 ~ a3 d4 ~ d4!2 db4", F: "bb3 ~ f3 bb3!6 ~@2 bb3 ~@4",
  G: "~@12 c4 ~ g3 c4", H: "c4!5 ~ g3 c4!5 d4 ~ a3 d4", I: "d4!5 ~ f4 d4 ~ d4!2 c4 bb3 ~ f3 bb3",
  J: "bb3!5 ~ f3 bb3!4 c4 d4 ~ a3 d4", K: "d4!5 ~ a3 d4 ~ d4!2 db4 d4 ~ a3 d4",
  L: "c4 ~ d4!3 ~ a3 d4 ~ d4!2 db4 c4 ~ g3 c4", M: "bb3!5 ~@2 bb3 ~@8",
})).s("gm_synth_bass_1").gain(0.56).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@8 A@20 B A@34 C A@4 C@2 D@23 E D@4 E ~@3 A@2 C A@4 C@2 ~@9>".pickRestart({
  A: "x!2", B: "~ x", C: "x", D: "~ x ~ x", E: "~@3 x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A@20 B A@19 C A@14 D E A@3 D ~ F G@19 H G@2 I J G@3 I K L M A@2 D E A@3 D ~@10
>`.pickRestart({
  A: "~ x ~ x", B: "x!8 ~@4 x ~@3", C: "~@2 x ~@2 x!3", D: "~@4 x ~@3 x!5 ~ x ~", E: "~@2 x ~@3 x!2", F: "~ x",
  G: "x!2", H: "x ~@7 x!4 ~@4", I: "x ~@3 x!5 ~ x ~@5", J: "x ~@3 x!2 ~@2", K: "~@7 x", L: "x!8", M: "x!16",
})).gain(0.8)
// … 63 more lines

More by Jeff Wayne