Strudelify
Alive & Kicking cover art

Alive And Kicking

Alive & Kicking

Simple Minds

KeyG majorTempo103 bpm
0:00/0:00
// Alive & Kicking — Simple Minds
// 103 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 87, 4/4 at bar 88) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(103/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 · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@25 A B C D E F G B H@8 ~@3 I J ~ K@2 L@2 K@2 L@2 K@2 L@2 M ~ N O P Q R S T ~@2 U V W X U Y Z AA U V W X U Y AB@2
  ~@46
>`.pickRestart({
  A: "[g2,d3] d3 ~ d3 [g2,d3] ~@2 d3 [g2,d3] ~ g2 ~ g2 d3 ~ d3, ~ [g2,d3] ~ g2 ~@3 g2", // G5
  B: "~ d3 ~ d3!3 ~ d3 g2 ~ [g2,d3] ~@2 d3 g2 ~, [g2,d3]!2 g2@2 ~@2 [g2,d3] ~", // G5
  C: "[c3,g3] g3 ~ g3 [c3,g3] ~@2 g3 [c3,g3] ~ c3 ~ c3 g3 c3!2, ~ [c3,g3] ~ c3 ~@4", // C5
  D: "~ c3 ~ c3!3 ~ c3 f2 ~ [f2,c3] ~@2 c3 f2 ~, [f2,c3]!2 f2@2 ~@2 [f2,c3] ~", // F5
  E: "[e2,b2] b2 ~ b2 [e2,b2] ~@2 b2 [e2,b2] ~ e2 ~ e2 b2 ~ b2, ~ [e2,b2] ~ e2 ~@3 e2", // E5
  F: "~ b2 ~ b2!3 ~ b2 e2 ~ [e2,b2] ~@2 b2 e2 ~, [e2,b2]!2 e2@2 ~@2 [e2,b2] ~", // E5
  G: "[c3,g3] g3 ~ g3 [c3,g3] ~@2 g3 [c3,g3] ~ c3 ~ c3 g3 ~ g3, ~ [c3,g3] ~ c3 ~@3 c3", // C5
  H: "[~@16 d3@2 d3@2 ~@14 g3@2 ~@2 a3@3 ~ g3@3 ~ d3@2 ~@2 c3@2 ~@18 g3@7 ~@7 g2@6 ~@8 g3@2 ~@4 c3@2 ~@3 d3@3 ~@12 c3@4, g2@4 g2@10 g2@12 g2@5 ~ c3@4 c3@12 f2@10 f2@5 ~ g2@4 g2@9 g2@7 ~@6 g2@5 ~ c3@4 c3@4 ~@8 f2@4 f2@4 ~@8, ~@2 d3@4 g3@12 g3@12 g3@4 ~@11 g3@9 g3@8 g3@8 ~@9 g3@13 g3@6 ~@4 a3@4 g3@12 g3@10, ~@6 d3@10 ~@12 d3@18 ~@6 c3@9 c3@2 ~@3 d3@4 d3@4 ~@4 d3@16 d3@14 ~@6 c3@10 ~@4]/8",
  I: "[g3,c4,f4]@2 [c4,e4] [g3,f4]@5 ~ e4 ~ [c4,e4] ~ e4 [g3,d4] e4, ~@3 c4 ~@4 [g3,c4,f4]@2 [g3,d4]@2 [c4,f4]@2 ~@2", // Csus4 C G7 C G5 Csus4 G5 F5
  J: "[g2,d3,g3]@3 ~", K: "[c3 ~ c3!2 ~ c3 ~@14 g3@12, ~@3 c3@2 ~ c3@2 ~@8, ~@2 g3@3 ~@3, ~@14 f3@13 ~@5]/2",
  L: "[[g2,d3] ~@2 d3 ~ d3 ~@14 g3@12, ~@2 [g2,d3]@2 ~ g2@8 ~ g2@16 ~@2, ~@6 d3@10 d3@15 ~, ~@2 g3@3 ~@3]/2", // G5
  M: "c3 ~ c3!2 ~ c3 ~@8 f3@2, ~@3 c3@2 ~ c3@2, ~ g3",
  N: "[g2,d3]!2 ~ d3 [g2,d3] ~@2 d3 [g2,d3] ~ g2 ~ [g2,d3] d3 ~ d3, ~ [g2,d3] ~ g2 ~@3 g2", // G5
  O: "~ d3 ~ d3!3 ~ d3 [g2,d3] ~ [g2,d3] ~@2 d3 g2 ~, [g2,d3]!2 g2@2 ~@2 [g2,d3] ~", // G5
  P: "[c3,g3]!2 ~ g3 [c3,g3] ~@2 g3 [c3,g3] ~ c3 ~ [c3,g3] g3 c3!2, ~ [c3,g3] ~ c3 ~@4", // C5
  Q: "~ c3 ~ c3!3 ~ c3 [f2,c3] ~ [f2,c3] ~@2 c3 f2 ~, [f2,c3]!2 f2@2 ~@2 [f2,c3] ~", // F5
  R: "[e2,b2]!2 ~ b2 [e2,b2] ~@2 b2 [e2,b2] ~ e2 ~ [e2,b2] b2 ~ b2, ~ [e2,b2] ~ e2 ~@3 e2", // E5
  S: "~ b2 ~ b2!3 ~ b2 [e2,b2] ~ [e2,b2] ~@2 b2 e2 ~, [e2,b2]!2 e2@2 ~@2 [e2,b2] ~", // E5
  T: "[c3,g3]!2 ~ g3 [c3,g3] ~@2 g3 [c3,g3] ~ c3 ~ [c3,g3] g3 ~ g3, ~ [c3,g3] ~ c3 ~@3 c3", // C5
  U: "d3 ~ d3@4 a2 c3 d3 c3 a2 ~ d3 c3 a2 c3", V: "d3 ~ d3@3 ~ d3 c3 d3 c3 d3 ~ d3 c3 a2 c3",
  W: "f3 e3 f3 ~ f3 d3 c3 d3 f3 d3 c3 ~@2 c3 a2 c3, ~@6 d3 ~", X: "a2 ~@2 a2 ~ a2 g3 ~ a3 ~ g3 ~ f3 ~ a2 b2",
  Y: "d3 ~ d3@3 ~@11", Z: "c2@3 c2!2 ~ c2@5 c2 c2@2 c2@2", AA: "g1@2 ~ g1!2 ~ g1@5 g1 g1@2 g1@2",
  AB: "[c2@3 c2!2 ~ c2@5 ~ g1@2 g1@18]/2",
})).s("gm_acoustic_guitar_steel").gain(0.14).pan(0.2)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note("<~@25 A B C D E F G B ~@11 H ~@16 I J K L M N O ~@64>".pickRestart({
  A: "~ g2 ~@4 d3@2 ~@2 d3 ~ d3 ~ d3@2", B: "~@6 d3 ~ d3 ~@7", C: "~ c3 ~@4 g3@2 ~@2 g3 ~ g3 ~ g3 ~",
  D: "~@6 c3 ~ c3 ~@7", E: "~ e2 ~@4 b2@2 ~@2 b2 ~ b2 ~ b2@2", F: "~@6 b2 ~ b2 ~@7",
  G: "~ c3 ~@4 g3@2 ~@2 g3 ~ g3 ~ g3@2", H: "~@15 c4", I: "~@6 d3@2 ~@2 d3 ~@3 d3@2", J: "~@6 d3 ~@9",
  K: "~@6 g3@2 ~@2 g3 ~@3 g3 ~", L: "~@6 c3 ~@9", M: "~@6 b2@2 ~@2 b2 ~@3 b2@2", N: "~@6 b2 ~@9",
  O: "~@6 g3@2 ~@2 g3 ~@3 g3@2",
})).s("gm_acoustic_guitar_steel").gain(0.08).pan(0.2)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@9 A B C D B@2 C E B@2 F E A@2 C E G@8 H I J K I@2 J K L@2 M N O I P K O@2 P K Q@2 P R O I P R O@2 J R S@2 P T U V W
  X Y V Z AA AB V Z AC AD AE AF AG@3 ~@7 AH@2 AI AJ AK AL AM AN AO AP AM AQ AK AP AR AQ AS@2 AI AJ AK AL AM AN AS@2 AI
  AJ AK AL AM AN AT AL AU AV AW@2
>`.pickRestart({
  A: "g1@2 ~ g1 ~@2 g1@6 ~@4", B: "g1 ~@2 g1 ~@2 g1@6 ~@4", C: "c2@2 ~ c2 ~@2 c2@6 ~@4", D: "f1 ~@2 f1 ~@2 f1@6 ~@4",
  E: "f1@2 ~ f1 ~@2 f1@6 ~@4", F: "c2 ~@2 c2 ~@2 c2@6 ~@4",
  G: "[g1 ~ g1 ~@3 g1 ~ g1@4 ~@2 g1@4 g1 ~@3 g1 ~ g1@4 ~@2 c2@4 c2 ~@3 c2 ~ c2@4 ~@2 f1@4 f1 ~@3 f1 ~ f1@4 ~@2 e2@4 e2@4 e2 ~ e2@5 ~ e2@4 e1 ~@3 e1 ~ e1@3 ~@3 c2@4 c2 ~@3 c2 ~ c2@3 ~@3 g1@4 g1 ~@3 g1 ~ g1@5 ~ g1@2]/8",
  H: "~@3 g1!2 ~ g1 ~@3 g1 ~@2 g1 ~@2", I: "g1@2 ~ g1!2 ~ g1 ~@3 g1 ~@2 g1 ~@2",
  J: "c2@2 ~ c2!2 ~ c2 ~@3 c2 ~@2 c2 ~@2", K: "f1@3 f1!2 ~ f1 ~@3 f1 ~@2 f1 ~@2",
  L: "[a1@13 ~@3 b1@16, ~@13 a1@13 ~@6]/2", M: "c2@7 ~", N: "f3@3 c3@3 f3 e3 f3@2 d3 e3 d3 c3 b2 a2",
  O: "g1@3 g1!2 ~ g1 ~@3 g1 ~@2 g1 ~@2", P: "c2@3 c2!2 ~ c2 ~@3 c2 ~@2 c2 ~@2",
  Q: "[g1@3 g1!2 ~ g1 ~@3 g1 ~@2 g2@6 g1 ~@2 g1 ~@3 g1 ~@2 g1 ~@2]/2", R: "f1@2 ~ f1!2 ~ f1 ~@3 f1 ~@2 f1 ~@2",
  S: "e2@2 ~ e2!2 ~ e1 ~@3 e1 ~@2 e1 ~@2", T: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", U: "e1 ~ e1 ~ e1 ~ e1@2 a2@8",
  V: "d2@3 d2 ~@2 d2@8 a1 c2", W: "d2@3 d2@2 ~ d2@7 ~ d2 c2", X: "f1@2 ~ f1 ~@2 f1@7 ~ f1 g1",
  Y: "a1@2 ~ a1@5 b2@4 a2@2 b2@2", Z: "d2@3 d2 ~@2 d2@7 ~ d2@2", AA: "c2@3 c2 ~@2 c2@7 ~ c2@2",
  AB: "g1@3 g1 ~@2 g1@6 ~@2 a1 c2", AC: "f2@3 f2 ~@2 f2@7 ~ f2@2", AD: "a1@3 a1@2 ~ a1@2 b2@4 a2@2 b2 ~",
  AE: "d2@3 d2@2 ~ d2@8 a1 c2", AF: "d2@2 ~ d2 ~@2 d2@7 ~ d2@2", AG: "[c2@6 c2 ~ c2@2 b1@2 a1@2 g1@26 ~@8]/3",
  AH: "[~@8 g1@2 ~ g1 ~@2 g1@4 g1@2 ~ g1@2 ~ g1@3 g1 ~@2 g1@2]/2", AI: "~@2 g1@2 ~ g1@2 ~ c2@3 c2 ~@2 c2@2",
  AJ: "~@2 c2@2 ~ c2@2 ~ f1@3 f1@2 ~ f1@2", AK: "~@2 f1@2 ~ f1@2 ~ g1@3 g1 ~@2 g1@2",
  AL: "~@2 g1@2 ~ g1@2 ~ g1@2 ~ g1 ~@2 g1@2", AM: "~@2 g1@2 ~ g1@2 ~ c2@3 c2@2 ~ c2@2",
  AN: "~@2 c2@3 c2@2 ~ f1@3 f1@2 ~ f1@2", AO: "~@2 f1@2 ~ f1@2 ~ g1@3 g1@2 ~ g1@2",
  AP: "~@2 g1@2 ~ g1@2 ~ g1@3 g1@2 ~ g1@2", AQ: "~@2 c2@2 ~ c2@2 ~ f1@3 f1 ~@2 f1@2",
  AR: "~@2 g1@2 ~ g1@3 c2@3 c2@2 ~ c2@2", AS: "[~@2 f1@2 ~ f1@2 ~ g1@2 ~ g1 ~@2 g1@4 g1@2 ~ g1@2 ~ g1@3 g1 ~@2 g1@2]/2",
  AT: "~@2 f1@2 ~ f1@2 ~ g1@2 ~ g1 ~@2 g1@2", AU: "~@2 g1@2 ~ g1@3 c2@3 c2 ~@2 c2@2",
  AV: "~@2 c2 ~@2 c2@2 ~ f1@3 f1 ~@2 f1@2", AW: "[~@2 f1@2 ~ f1@3 g1@14 ~@10]/2",
})).s("gm_synth_bass_2").gain(0.33)

// chords · piano · "HONKY TONK"
const piano = note("<~@41 A B C D E ~@40 F@8 G@4 H@4 I@4 J@4 K@8 L@4 M@4 N@6>".pickRestart({
  A: "~@3 g4@2 d5@3 g4@3 d5@2 ~ g4@2, a2@13 a2@2 ~", B: "~@2 g4@3 d5@3 g4@3 d5@3 g4@2, b2@7 ~ [b2,g3]@8",
  C: "~@2 g4@3 d5@3 g4@3 d5@3 g4@2, [c3,g3]@7 ~ [c3,g3]@8", // C5
  D: "[f3,g3]@2 e3 ~@2 d5@3 [f3,g4]@2 d3 e3 d3 c3 b2 a2, ~@2 g4@3 ~@6 d5@3 g4@2, ~@3 f3@4 ~@9", E: "g2 ~@3",
  F: "[~@14 [d4,a4]@5 ~ [d4,a4,c5]@3 ~@7 [d4,g4]@4 ~@2 [d4,a4]@3 ~@9 g4@2 ~@4 b3@2 ~@14 b4 ~@7 [d4,a4]@5 ~ [d4,a4,c5]@3 ~@7 [d4,g4]@4 ~@2 [d4,a4]@3 ~@9 g4@2 ~@4 b3@2 ~@6 b4@2, ~@8 g2@14 ~@2 g2@16 ~@4 b3@8 e4@4 ~@4 e4@8 c4@3 ~ [d4,g4]@6 ~@10 [d4,b4]@6 ~@10 b4@6 e4@4 b4@6 b4@6 ~@2, ~@8 [d4,g4]@6 ~@10 [d4,b4]@6 ~@10 b4@6 e4@4 b4@6 b4@6 b4@7 e4@2 ~@5 g3@11 ~@5 g3@12 ~@2 g3@14 ~@2 [g3,c4]@6, ~@10 d3@13 ~@3 d3@7 ~ d3@6 e3@16 c3@16 g2@14 ~@2 g2@16 ~@4 b3@8 e4@4 ~@4 e4@4, ~@12 g3@11 ~@5 g3@12 ~@2 g3@14 ~@2 [g3,c4]@8 g3@6 ~@2 d3@13 ~@3 d3@7 ~ d3@6 e3@16 c3@8]/8", // D5 D7 G5 D5 D7 G5 D5 G5 …
  G: "[~@6 b3@2 [g2,d3]@31 ~ [e4,g4,d5]@13 ~@3 [a3,c4,f4]@3 [a3,c4,f4]@2 f3 [a3,c4,f4]@2, ~ g3@3 g3@3 ~@25, ~ c3@3 ~@12, ~@5 e3@2 ~@57]/4", // G5 Em7 F
  H: "[~ [a3,c4,f4]@2 f3 [a3,f4] ~ [a3,c4,e4]@2 [b3,d4,g4]@15 ~ [b3,d4,g4]@15 ~ e4@6 ~@4 c4@5 ~ [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,f4,a4]@2, ~@2 c4 ~@17 g4@7 ~@5, ~@40 c4@9 ~@15, ~@46 [e3,g3]@9 ~@9]/4", // F Dm Am G F Em
  I: "[~ [c4,f4,a4]@2 ~ [f4,a4] ~ [e4,g4]@2 [g2,d3,g3]@31 ~ [e4,g4,d5]@13 ~@3 [a4,c5,f5]@3 [a4,c5,f5]@2 f4 [a4,c5,f5]@2, ~@3 c4@4 ~@57]/4", // F Em G5 Em7 F
  J: "[~ [a4,c5,f5]@2 f4 [a4,f5] ~ [a4,c5,e5]@2 [b3,d4,g4]@15 ~ [b3,d4,g4]@15 ~ e4@6 ~@4 c4@5 ~ [c5,f5,a5]@3 [c5,f5,a5]@3 [c5,f5,a5]@2, ~@2 c5 ~@17 g4@7 ~@5, ~@40 c4@9 ~@15, ~@46 [e3,g3]@9 ~@9]/4", // F Dm Am G F Em
  K: "[~ [c5,f5,a5]@2 ~ [f5,a5] ~ [e5,g5]@2 [b3,d4,g4]@15 ~ [b3,d4,g4]@15 ~ [c4,e4,g4]@17 ~@3 [c4,f4,a4]@6 [c4,f4,a4]@3 [c4,f4,a4]@3 [b3,d4,g4]@15 ~ [b3,d4]@10 [d3,g3]@3 b3@2 ~ [c4,e4,g4]@14 ~@2 [a3,c4,f4]@8, ~@3 c5@4 ~@81 g4@16 ~@24]/8", // F Em G C F G Bm G5 …
  L: "[~@2 [a3,c4,f4]@2 ~ [a3,c4,f4]@3 [b3,d4,g4]@15 ~ [b3,d4,g4]@15 ~ [c4,e4,g4]@15 ~ [c4,f4,a4]@8]/4", // F G C F
  M: "[~@2 [c4,f4,a4]@3 [c4,f4,a4]@2 ~ [b3,d4,g4]@15 ~ [b3,d4,g4]@13 [b3,d4,g4]@3 [c4,e4,g4]@15 ~ [a3,c4,f4]@7 ~]/4", // F G C F
  N: "[[a3,c4,f4]@7 ~ [b3,d4,g4]@13 [b3,d4,g4]@3 [b3,d4,g4]@15 ~ [c4,e4,g4]@15 ~ [c4,f4,a4]@5 ~ [c4,f4,a4]@4 [c4,f4,a4]@3 [c4,f4,a4]@3 [b3,d4,g4]@16 ~@8]/6", // F G C F G
})).s("gm_piano").gain(0.41)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note("<~@70 A@2 B C D@2 E F A@2 B C D@2 G@3 ~@7 H@7 I@5 J@6 K@8 L@8 M@4>".pickRestart({
  A: "[~ a4@2 a4@2 ~@6 d5@3 ~@2, d5@6 d5@2 d5@3 ~@5, ~@10 a4@4 a4@4 a4@13 ~]/2",
  B: "~@4 f5@3 ~, c5@3 c5@3 ~@2, ~ f5@3 ~@4", C: "a4!3 e5 [c5,e5] [b4,d5] [a4,c5] [g4,b4]",
  D: "[~@6 d5 ~@2 a4 ~@3 a4 ~ d5, d5@11 ~@3 d5@8 d5@7 ~@3, ~@6 a4@11 ~@3 a4@5 ~@3 a4@4]/2",
  E: "d5 ~@2 d5 ~ c#5 d5 ~@3 d5 ~ d5!2 ~@2", F: "[d4,d5]!7 ~ [d4,d5]!2 ~@2 [d4,d5]!2 ~@2",
  G: "[d5 ~@2 d5 ~ c#5 d5 ~@3 d5 ~ [f#5,g5]@2 b5@20 ~@14]/3", // Gmaj7
  H: "[~@8 [g2,d3]@31 ~ [g2,c3]@16 [f2,c3]@16 [g2,d3]@31 ~ [g2,c3]@8]/7", // G5 C5 F5 G5 C5
  I: "[~@8 [f2,c3]@16 [g2,d3]@31 ~ [g2,c3]@16 [f2,c3]@8]/5", J: "[~ [g2,d3]@4 [g2,c3]@2 [f2,c3]@2 [g2,d3]@3]/6",
  K: "[~@8 [g2,c3]@16 [f2,c3]@16 [g2,d3]@31 ~ [g2,c3]@15 ~ [f2,c3]@16 [g2,d3]@24]/8", // C5 F5 G5 C5 F5 G5
  L: "[~@8 [g2,c3]@16 [f2,c3]@15 ~ [g2,d3]@32 [g2,c3]@16 [f2,c3]@16 [g2,d3]@24]/8", // C5 F5 G5 C5 F5 G5
  M: "[~@8 [g2,c3]@16 [f2,c3]@16 [g2,g3]@11 ~@13]/4", // C5 F5 G
})).s("gm_distortion_guitar").gain(0.14).pan(0.6)

// chords · distortion guitar · "DISTORTION" · soft notes · C#
const distortion_guitar_soft = note(`<
  ~@71
  [~@4 d4@3 ~]
  ~@4
  [~@2 c#5 ~@6 c#5 ~@6]
  [~@7 [c#4,c#5] ~@3 [c#4,c#5] ~@4]
  ~
  [~@4 d4@3 ~]
  ~@52
>`).s("gm_distortion_guitar").gain(0.06).pan(0.6)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A@4 B@3 C D@3 E D@3 E D@3 E D@3 F G H I J@2 K L G@2 H I J@2 K M G ~@2 N@4 O P Q@3 P Q@3 P Q@3 R G H I S@2 T M ~@26
  U@8 V@8 W@5 X@15 Y@2
>`.pickRestart({
  A: "[[d4,d5]@2 [c4,c5] [f4,c5,f5], g4@49 ~@15]/4", B: "[[d4,d5]@2 [c4,c5], g4]/3", C: "[f4,f5] [f5,c6], c5",
  D: "[[d5,d6]@2 [c6,e6], g5]/3", E: "f6@5 g6@3, [a5,c6]", F: "f6@3 g6, [a5,c6]",
  G: "d5@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@2 d5@2 ~", H: "d5@2 g4@2 g4@2 a4@2 a4@2 b4 b4@2 d5@2 ~",
  I: "d5@2 g4@2 g4@2 a4 ~ a4@2 b4 ~ d5@3 ~, ~@11 b4@2 ~@3",
  J: "[d5@2 g4 ~ g4@2 a4 ~ a4@2 b4 ~ d5@2 ~ d5@3 g4!2 ~@2 a4 ~ a4@2 b4!2 ~ d5@3, ~@11 b4@2 ~@19]/2",
  K: "d5@2 g4 ~ g4@2 a4 ~ a4@2 b4!2 ~ d5@2 ~", L: "e5@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@2 d5@2 ~",
  M: "d5 ~ g4 ~ g4@2 a4 ~ a4@2 b4 b4@2 d5@2 ~", N: "[g5,d6]/4", O: "[g4,c5,e5]", P: "f5@5 g5@3, [a4,c5]",
  Q: "[[d4,d5]@2 [c5,e5], g4]/3", R: "f5@3 g5, [a4,c5]",
  S: "[d5@2 g4 ~ g4@2 a4 ~ a4@2 b4 ~ d5@2 ~ d5@3 g4 g4@2 ~ a4 ~ a4@2 b4!2 ~ d5@3, ~@11 b4@2 ~@19]/2",
  T: "d5@2 g4 ~ g4@2 a4 ~ a4@2 b4!2 ~ d5@2 d5", U: "[~ g5@15]/8", V: "[~@13 g4@3, ~ g5@15, ~@9 d5@7]/8",
  W: "[~@10 g4 ~ g4@2 a4 ~ a4@2 b4 b4@3 d5@2 ~@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@3 d5@2 ~@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@3 d5@2 ~@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@3 d5@2 d5@2 g4 ~ g4@2 a4 ~, ~@4 d5@7 ~ d5@7 ~ d5@7 ~ d5@7 ~@5]/5",
  X: "a4@2 b4 b4@3 d5 ~ d5@2 g4 ~ g4@2 a4 ~", Y: "[a4@2 b4 b4@3 d5 ~ g4@12 ~@12]/2",
})).s("gm_synth_strings_1").gain(0.14).pan(0.4)

// other · pad new age · "FANTASIA"
const pad_new_age = note(`<
  A@2 B C D E F C G H ~ I J K@2 I J L@2 M N L@2 M N O@6 P Q O@7 Q ~@6 R@2 S@2 T@2 U@2 V@2 K@2 W@2 O@7 ~@4 X@2 ~@2 Y@2
  ~@2 X@2 ~@2 Z@2 ~@24 AA AB@19 AC@2
>`.pickRestart({
  A: "[~@8 [d5,d6] ~@7, ~@15 [g4,g5]@2 ~@15]/2", B: "~@14 [g4,g5]!2", C: "[c5,c6] ~@7", D: "[f5,f6]@3 ~@13",
  E: "g5 [g5,d6] d6 [g5,d6] g5 [g5,d6]!3 d6!2 ~ d6!3 ~@2, ~@8 g5@5 ~@3", F: "~@14 g5!2, ~@7 g4", G: "[f5,f6] ~@7",
  H: "[d5,d6] ~@15", I: "[g4,c5,e5]@15 ~", J: "[a4,c5,f5]@9 ~ [a4,c5,g5]@5 ~", K: "[[g4,b4,d5]@29 ~@3]/2",
  L: "[[g4,b4,d5]@31 ~]/2", M: "[c5,e5]@15 ~, g4@13 ~@3", N: "[a4,c5,f5]@7 ~ [a4,c5,f5] ~ [a4,c5,g5]@5 ~",
  O: "d5@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@2 d5@2 ~", P: "e5@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@2 d5@2 ~",
  Q: "d5@2 g4 ~ g4@2 a4 ~ a4@2 b4 b4@2 d5@3",
  R: "[[g4,c5,e5]@11 ~ [g4,e5] ~ f5@6 e5@2 ~@2 [a4,c5,f5]@2 [a4,c5,g5]@3 ~@3, ~@6 c5 [a4,c5]@5 ~@4]/2", // C F Am7 Am
  S: "[[g4,b4,d5]@27 ~@5]/2", // G
  T: "[[g4,c5,e5]@11 ~ [g4,e5] ~ [a4,c5,f5]@9 ~ [a4,c5]@2 [a4,c5,g5]@5 ~, ~@12 c5@2 ~@10 f5 ~@7]/2", // C F Am Am7
  U: "[[g4,b4,d5]@13 ~@3]/2", V: "[[g4,c5,e5]@11 ~ [g4,c5,e5] ~ [a4,c5,f5]@8 ~@2 [a4,c5,f5] ~ [a4,c5,g5]@4 ~@2]/2",
  W: "[[g4,c5,e5]@11 ~ [g4,e5] ~ [a4,c5,f5]@9 ~ [a4,c5,f5] ~ [a4,c5,g5]@4 ~@2, ~@6 c5 ~@9]/2", // C F Am7
  X: "[c5@2 f5@4 c5@2 f5@4 c5@2 e5@4 c5@2 e5@3 ~ c5@3 ~ c5@3 ~]/2", Y: "[g5@2 c6@4 g5@2 c6@4 g5@2 b5@6 g5@7 ~ g5@4]/2",
  Z: "[g5 c6@2 g5 c6@2 g5 b5@3 ~@6]/2", AA: "~@8 d5@2 g4 ~ g4@2 a4 ~", AB: "a4@2 b4 b4@3 d5 ~ d5@2 g4 ~ g4@2 a4 ~",
  AC: "[a4@2 b4 b4@3 d5 ~ g4@14 ~@10]/2",
})).s("gm_pad_new_age").gain(0.22).pan(0.7)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1_2 = note(`<
  ~ A@8 ~@2 B C D@2 B C D@2 B C D@2 B C D@2 B C E@2 B F ~@12 D@2 B C D@2 B C D@2 B C D@2 B C D@2 B C E@2 B ~@64
>`.pickRestart({
  A: "g2/8", B: "c2", C: "f2", D: "g2/2", E: "e2/2", F: "g2",
})).s("gm_synth_strings_1").gain(0.18).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@32 B@5 C B@2 D ~ E D B@15 F B@7 G H F@7 I F@6 J ~@9 K L@14 M N L@19 O ~
>`.pickRestart({
  A: "x!2", B: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", C: "x ~@2 x ~@2 x!2 ~ x!2 ~@2 x ~@2", D: "x", E: "x!4",
  F: "x ~@2 x ~@2 x ~@3 x ~@5", G: "x!8", H: "x!5 ~ x ~", I: "x ~@2 x ~@2 x ~@7 x ~", J: "~@7 x",
  K: "~@8 x ~@2 x ~@2 x ~", L: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", M: "~@2 x ~@2 x ~@2 x ~@3 x ~@3",
  N: "x ~@3 x ~@3 x ~@2 x ~@2 x ~", O: "~@2 x ~@2 x ~@2 x ~@7",
})).gain(0.38)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@43 A B ~@23 C ~@40 D E ~@21>".pickRestart({
  A: "x!12 ~ x!3", B: "~ x ~@4 x!2 ~ x ~@6", C: "~ x ~@2", D: "~@12 x!4", E: "x!4 ~@12",
})).gain(0.21)

// drums · low tom
const low_tom = s("lt").struct("<~@84 [~@3 x] ~@47>").gain(0.54)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B C D E A B F G H I J K G H I J K G H I J K L H M J N G O I B P B C D E A B F Q ~@3 A B C D E A B F A B C D E A B
  C A B C D R A B ~@26 S T U V T W T U X T U Y ~@4 S T U V T W T U Z ~@13
>`.pickRestart({
// … 43 more lines

More by Simple Minds