Strudelify

Love Is All Around

Wet Wet Wet

KeyB♭ majorTempo85 bpm
0:00/0:00
// Love Is All Around — Wet Wet Wet
// 85 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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 2"
const piano = note(`<
  ~ A@2 B@2 C D@2 E@2 F G H I J K L M N O@2 ~ P Q P R S Q T U V W X Y Z AA AB@2 AC@2 AD AE AF AG J K L M N O@2 ~ P Q P R
  S Q T U AH U AI W X Y AJ W X Y AJ W X Y AJ W X Y AJ W X Y AJ W AK
>`.pickRestart({
  A: "[[f3,a3,c4]@3 ~ [f3,a3,c4]@2 f3 [f3,a3,c4] [f3,bb3,d4]!2 ~ f3 [f3,bb3,d4]@2 f3 ~ [f3,c4,eb4]@3 ~ [f3,c4,eb4]@2 [c4,eb4] f3 [f3,bb3,d4]!2 ~ f3 [f3,bb3,d4]@2 f3 [f3,bb3,d4], f2@31 ~, f1@15 ~ f1@15 ~]/2", // F Bb F7 Cm Bb
  B: "[[f3,a3,c4]@3 ~ [f3,a3,c4]@2 f3 [f3,a3,c4] [f3,bb3,d4]!2 ~ f3 [f3,bb3,d4]@2 f3 ~ [f1,f3,c4,eb4]@16, f2@31 ~, f1@15 ~@17]/2", // F Bb F7
  C: "[f4,bb4,d5]@3 ~ [f4,bb4,d5]@4 [g4,bb4,c5,eb5]@4 [g4,bb4,c5,eb5]@4, bb2 c3", // Bb Cm7
  D: "[[eb3,g4,bb4]@4 ~@2 eb3@2 a4@3 ~@3 f4@2 [bb4,d5]@2 f4@2 c4@2 bb3@2 [g4,bb4,c5,eb5]@4 [g4,bb4,c5,eb5]@4, eb5@3 ~ [g4,bb4,eb5]@4 f5@8 ~@16, ~@4 [f3,f4]@3 bb2@3 ~@2 [c3,c4]@4, ~@12 a4@4 f4 ~@3 [f4,bb4,d5]@4 ~@8]/2", // Eb Bb Cm7 Eb F C Bb
  E: "[[eb3,g4,bb4]@4 ~@2 eb3@2 [f4,a4]@4 ~@4 [f4,bb4,d5]@3 ~ [f4,bb4,d5]@4 [g4,bb4,c5,eb5]@4 [g4,bb4,c5,eb5]@4, eb5@3 ~ [g4,bb4,eb5]@4 f5@8 ~@16, ~@4 f3@3 bb2@3 ~@2 c3@4, ~@3 [f4,c5] ~@4]/2", // Eb F Bb Cm7 Eb F5
  F: "[eb3,g4,bb4]@2 ~ [eb3,g5] [f4,a4,f5]@2 [f4,c5,eb5]@2, eb5@3 ~ [g4,bb4,eb5]@4 f3@8", // Eb F F7 Eb
  G: "[f4,bb4,d5]!2 [g4,bb4,c5,eb5]!2, bb2@7 ~ c3@8", // Bb Cm7
  H: "[eb3,g4,bb4]@2 ~ eb3 a4!2 ~ f3, eb5@3 ~ [g4,bb4,eb5,g5]@4 f5@8, ~@2 [f3,f4] [f4,c5]", // Eb F F5
  I: "[f4,bb4,d5]@3 ~ [f4,bb4,d5]@4 [c3,bb3,eb4,f4,g4,bb4]@8, bb2@7 ~@9", // Bb Cm7
  J: "[eb3,bb3,eb4]@2 ~ [eb3,bb4] [c4,f4,a4]@2 ~ eb3, g4@3 ~ [bb3,eb4,g4]@4 f3@6 ~@2, ~@3 [c4,f4,bb4]", // Eb5 F Eb Fsus4
  K: "[f4,bb4,d5]!2 [g4,bb4,c5,eb5]!2, bb2 c3", // Bb Cm7
  L: "[eb3,g4,bb4]@2 ~ eb3 [f4,a4]@2 [f4,c5]@2, eb5@3 ~ [g4,bb4,eb5]@4 [f3,f5]@8", // Eb F F5 Eb F
  M: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@4 [c4,eb4,g4,bb4]@4 [c4,eb4,g4,bb4]@4, bb2 c3", // Bb Cm7
  N: "[eb3,g4,bb4]@4 ~@2 eb3@2 [f4,a4]@3 ~ [f4,a4,c5]@4, eb5@3 ~ [g4,bb4,eb5]@4 [f3,f5]@8", // Eb F Eb F
  O: "[[f4,bb4]@2 [f4,d5] ~ [c4,f4,c5]@2 [bb3,f4,bb4]@2 [c4,c5]@2 [g3,g4]@2 [f3,f4]@2 eb4@4 bb3@2 [bb3,eb4,g4]@2 ~@2 [c4,f4]@2 [f2,f3,a3,c4,f4]@2 ~@4, bb2@7 ~ c3@6 eb3@9 [f3,a3]@2 ~@7, d4 ~ d4@2 ~@20 f2 ~@7]/2", // Bb5 Dm F5 Bb5 C G F Eb …
  P: "[eb3,eb4,g4,bb4,eb5]@4 [eb3,bb4,eb5]@2 ~@2 eb2 ~ [g4,bb4,eb5,g5]@4 [g4,bb4,eb5,g5]@2, eb2@7 eb3@2 ~ [eb2,eb3]@6, ~@4 [g4,g5] ~ [f4,bb4,d5,f5]@4 ~@6", // Eb Eb5 Eb G Bb
  Q: "[c3,bb4,d5,f5]@2 [bb4,c5,eb5]@2 [c3,bb4,d5,g5]@2 ~ c3 c2 ~ [c2,c3,g4,bb4,c5,eb5,g5]@6, c2@7 ~@9, [g4,g5] ~ [g4,g5] ~ [g4,f5] ~ [g4,bb4,c5,eb5,g5]@4 ~@6", // Bb Cm7 Gm Cm7 G G7 Cm7
  R: "[bb3,d5]@2 [f4,bb4] ~ [bb3,g4,bb4,eb5]@2 [f4,c5] ~ bb2 ~ [bb2,bb3,f4,bb4,d5,f5]@6, bb2@7 bb3@2 ~@7, [f4,bb4] ~ d5@2 ~@2 [bb4,d5]@4 ~@6", // Bb Bb5 Eb F5 Bb Bb5 Bb
  S: "[eb3,g4,bb4,eb5,g5]@4 [eb3,bb4,eb5]@2 ~@2 eb2 ~ [g4,bb4,eb5,g5]@4 [g4,bb4,eb5,g5]@2, eb2@7 eb3@2 ~ [eb2,eb3]@6, ~@4 [g4,g5] ~ [f4,bb4,d5,f5]@4 ~@6", // Eb Eb5 Eb G Bb
  T: "[c4,eb4,g4,bb4]@4 c3@2 [c4,eb4,g4,bb4] c3 c2 ~@3 [c4,eb4,g4,bb4]@4, c2@7 ~@3 [c2,c3]@6, c3@3 ~@5 [c4,eb4,g4,bb4]@4 ~@4", // Cm7 C Cm7
  U: "[f3,a3,c4]@3 ~ [f3,a3,c4]@2 ~ [f2,f3,a3,c4] [f3,bb3,d4]@2 [f3,a3,c4]@2 [f3,bb3,d4]@3 ~, f2@6 ~@4 f2@5 ~", // F Bb F Bb
  V: "[f3,c4,eb4]@2 ~@2 [f3,c4,eb4]@3 ~ [f2,f3,c4,eb4]@8, f2@7 ~@9", // F7
  W: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [c4,eb4,g4,bb4]@2 ~@2 [c4,eb4,g4,bb4]@3 ~, [bb1,bb2]@7 ~ [c2,c3]@7 ~", // Bb Cm7 Bb C
  X: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~ [c4,f4,bb4] ~ [c4,bb4] [c4,a4], [eb2,eb3]@7 ~ [f2,f3]@7 ~, ~@3 f4", // Eb Fsus4 C7 F Eb F
  Y: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [c4,eb4,g4,bb4]@3 ~ [c4,eb4,g4,bb4]@3 ~, [bb1,bb2]@7 ~ [c2,c3]@7 ~", // Bb Cm7 Bb C
  Z: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~ [c4,f4,a4] ~ [c4,f4,bb4]@2, [eb2,eb3]@7 ~ [f2,f3]@8", // Eb F Fsus4 Eb F
  AA: "bb2 ~@3 [c3,g4,bb4,c5,eb5]@4, bb3 ~@15", // Cm7
  AB: "[eb3@5 ~ eb3@2 f3@6 ~@2 [f4,bb4,d5]@8 [c3,g4,bb4,c5,eb5]@8, [g4,bb4,eb5] [f4,a4,f5] ~@2, ~@7 bb2@3 ~@6]/2", // Bb Cm7 Eb F
  AC: "[[g4,bb4,eb5]@6 eb3@2 f3@6 ~@2 [f4,bb4,d5]@7 ~ [c3,g4,bb4,c5,eb5]@8, eb3@5 ~@3 [f4,a4,f5]@8 ~@16, ~@7 bb2@3 ~@6]/2", // Eb Bb Cm7 F
  AD: "[g4,bb4,eb5]@3 [eb3,g5] f3@2 f3@2, eb3@5 ~@3 [f4,a4,f5]@7 ~", AE: "[bb2,f4,bb4,d5]@7 ~ [c3,g4,bb4,c5,eb5]@8",
  AF: "[eb3,g4,bb4]@2 ~ eb3 [f3,f4,a4]@2 ~ f3, eb5@3 ~ [g4,bb4,eb5,g5]@4 f5@8, ~@3 [f4,c5]", // Eb F Eb F5
  AG: "[bb2,f4,bb4,d5]@7 ~ [c3,bb3,eb4,f4,g4,bb4]@8", // Bb Cm7
  AH: "[f3,c4,eb4]@3 ~ [f3,c4,eb4]@2 ~ [f2,f3,c4,eb4] [f3,bb3,d4]@2 [f3,a3,c4]@2 [f3,bb3,d4]@3 ~, f2@6 ~@4 f2@5 ~", // F7 Bb F Bb
  AI: "[f2,f3,c4,eb4]@15 ~", // F7
  AJ: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~ [c4,f4,bb4] ~ [c4,f4,bb4]@2, [eb2,eb3]@7 ~ [f2,f3]@8", // Eb Fsus4 Eb F
  AK: "[eb4,f4,g4,bb4] ~ [eb4,f4,g4,bb4] ~@5, [eb2,eb3]@7 ~@9", // Eb
})).s("gm_piano").gain(0.24).pan(0.3)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A@2 B@2 C D E F C D E D E D G D H D I J K L M L N L M O P B Q R S T U V W X Y Z AA D AB AC AD D H AC I J AE L AF L N
  L M O P AG AH AI Q R S AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB
>`.pickRestart({
  A: "[f1@31 ~]/2", B: "f1@15 ~", C: "bb1@7 ~ c2@7 eb1", D: "eb1@6 ~ eb1 f1 ~ f1@2 ~@2 f1 ~", E: "bb1@7 ~ c1@8",
  F: "eb1@6 ~ eb1 f1 ~ f1@6", G: "bb1@7 ~ c2@6 ~ eb1, ~@8 bb1 ~@7", H: "bb1@6 ~ c1 c1@7 c1",
  I: "bb1@7 ~ c2@2 g1@2 f1@2 eb1@2", J: "eb1@6 ~ eb1 f1 ~ f1@2 ~@4",
  K: "~@2 g1 [ab1,a1] f1 ~ f2@3 ~ ab2 a2 ~ f2 c2 ~, ~@6 eb2 ~@9", L: "eb1@6 ~ eb1!2 ~ eb1@5 ~",
  M: "c1@6 ~ c1!2 ~ c1@5 ~", N: "bb1@6 ~ bb1!2 ~ bb1@5 ~", O: "c1@4 c2@3 c1!2 ~ c1@2 g1@4", P: "f1@6 ~ f1!2 ~ f1@5 ~",
  Q: "bb1@6 ~ bb1 c2@6 d1!2", R: "eb1@5 ~ eb1!2 f1@4 f1 g1 bb1 g1", S: "bb1@6 ~ bb1 c2@6 g1 f1",
  T: "eb1@5 ~ eb1!2 f1@2 g2@2 f2!2 c2@2, ~@10 f2 ~@5", U: "bb1@4 ~@3 bb1 c2@7 ~", V: "eb1@6 ~ eb1 f1 ~ f1@5 ~",
  W: "bb1@6 ~ bb1 c2 ~ c2@5 ~", X: "eb1@6 ~ eb1 f1 ~ f1@2 f1 g1 bb1 g1", Y: "bb1@6 ~ bb1 c2@6 ~ eb1",
  Z: "eb1@6 ~ eb1 f1 ~ f1@2 ~@2 f1@2", AA: "bb1@5 ~@2 f1 c1@6 c1@2", AB: "bb1@6 ~ f1 c1@5 ~ g1 f1",
  AC: "eb1@6 ~ eb1 f1 ~ f1!3 ~ f1 ~", AD: "bb1@7 ~ c2@5 ~ g1 f1, ~@8 bb1 ~@7",
  AE: "f1 ~ ab2 a2 f2 eb2 f3@9 ~, ~@6 eb3 ~@9", AF: "c1@6 ~ c1!2 ~ c1@4 g1 f1",
  AG: "f1@4 f2@3 c1 f1 ~ f2@4 [b2,c3] [g2,a2]", AH: "f1@4 f2@3 f1!2 ~ f1@2 f2@2 [f1,gb1] [g1,ab1,a1,bb1]",
  AI: "f2@15 ~", AJ: "eb1@5 ~ eb1!2 f1 ~ f1@2 f1 g1 bb1 g1", AK: "bb1@6 bb1 f1 c1@6 d1!2",
  AL: "eb1@5 ~ eb1!2 f1 ~ f1@2 ~@2 f1@2", AM: "bb1@5 ~ bb1 f1 c1@6 g1 f1", AN: "eb1@5 ~ eb1!2 f1 ~ f1 ~ f1@2 f1@2",
  AO: "bb1@6 bb1 f1 c2 ~ c2@4 g1 f1", AP: "eb1 ~ eb1@4 eb1!2 f1 ~ f1@4 f1 g1", AQ: "bb1@5 ~ bb1!2 c2@2 c2@2 g1@3 f1",
  AR: "eb1@5 ~ eb1!2 f1 ~@2 b2 [c3,db3] ~ f1@2, ~@5 f1 d3 ~", AS: "bb1@6 bb1 f1 c1@2 c1@2 c3@2 c1!2",
  AT: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1@2 f2@2 f1 g1", AU: "bb1@5 ~ bb1 f1 c1@2 c1@2 c2@2 g1 f1",
  AV: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1 ~ f1@2 f1@2", AW: "bb1@6 bb1 f1 c1@2 c1@2 c3 c1 c1@2",
  AX: "eb1@6 eb1!2 f1 ~ f1@2 f2@2 f1 g1", AY: "bb1 ~ bb1@3 ~ f1 bb1 c2@2 c2@2 c3@2 g1 f1",
  AZ: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1 ~ f1!2 f1@2", BA: "bb1@6 bb1 f1 c1@2 c1@2 c2@2 c1!2",
  BB: "eb1@2 eb1@2 eb2@2 eb1!2 f1 ~ f1@2 f2@2 f1 ~",
})).s("gm_electric_bass_finger").gain(0.39)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note("<~@6 A B ~@2 A B C B A B A D A B ~@15 E ~@3 F ~ E C D A B A D A B ~@10 G H ~@23>".pickRestart({
  A: "~@15 [gb1,g1,ab1]", B: "a1 ~@15", C: "~@14 gb1 [g1,ab1]", D: "a1 ~@5 bb1 ~@9", E: "~@6 bb1 ~@9",
  F: "~@6 bb1 ~@7 eb1 ~", G: "~@15 f2", H: "e2 ~@15",
})).s("gm_electric_bass_finger").gain(0.2)

// chords · string ensemble 1 · "+ORCHESTRA"
const string_ensemble_1 = note(`<
  ~ A@4 ~@8 B@2 C@2 B@2 D@3 E ~@5 F B@2 G H I J K ~@7 B@2 C@2 B@2 L@3 M N O P ~@2 F Q@4 G R S T U V W X Y@8 G R W Z G R
>`.pickRestart({
  A: "[f2,f4]/2", B: "[[f3,f4]@31 ~]/2", C: "[[f3,d4,f4]@4 [g3,g4]@4 [bb3,bb4]@7 ~, ~@4 eb4@11 ~]/2",
  D: "[[bb2,f3,bb3,f4]@4 c4@3 ~ [eb3,bb3,bb4]@4 ~@2 [f4,f5]@10, ~ [c3,g3,g4] ~@4, ~@7 eb4@5 ~@12]/3", // Bb5 Eb5 F C5
  E: "[eb4,eb5] ~@15", F: "[c3,c4]@6 [d3,d4] [eb3,eb4], ~@12 [db3,db4] ~@3",
  G: "[bb2,f3]@2 ~@2 [bb2,f3]@2 ~@2 [c3,eb3,eb4,g4]@2 f4@2 bb3 c4@3, [d4,f4]@8 ~@2 d4 ~ [c3,g3,eb4]@3 ~", // Bb5 Cm Dm Cm
  H: "[eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~, bb4@3 a4", // Ebsus2 F5
  I: "[bb2,f3] ~ [bb2,f3] ~ [c3,g3,eb4,g4] d4 [c3,g3,bb3,g4] c4, [d4,f4] ~", // Bb5 Cm C7 Dm
  J: "[eb3,eb4,g4]@2 ~@2 [eb3,eb4,g4]@3 ~ [a4,bb4]!4 [f3,c4,g4]@4, bb3, ~@2 d4 ~, ~@4 f3 ~@3", K: "[bb2,f3,f4] ~@3",
  L: "[[bb2,f3,bb3,f4]@7 ~ c4@6 ~@2 [eb3,bb3,bb4]@8 ~@4 [f4,f5]@19 ~, ~@7 c3@7 eb4@10 ~@24, ~ [g3,g4] ~@4]/3", // Bb5 Eb5 F G
  M: "[c4,f4,a4,f5] [bb3,eb4,g4,eb5]@4 ~@2 [g4,bb4,eb5]", N: "[f4,a4,d5]@2 [eb4,g4,c5]@2 [f4,a4,d5] ~ [eb4,g4,c5]@10",
  O: "bb4@3 g4", P: "f4@15 ~", Q: "[[f3,f4]@63 ~]/4",
  R: "[eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4,a4] g4, ~ bb4@5 ~@2", // Ebsus2 F5 F
  S: "[bb2,f3]@2 ~@2 [bb2,f3]@2 ~@2 [c3,g3,eb4]@2 d4@2 [c3,g3,bb3]@2 eb4 d4, f4@7 ~, d4 ~", // Bb5 Cm C7
  T: "eb4 d4 ~@2 [eb3,eb4,g4]@3 ~ [f3,c4,f4,bb4]@2 ~@2 [f3,c4,g4,bb4]@2 ~@2, [eb3,f4] bb3@7", // Eb Fsus4 Ebsus2
  U: "[bb2,f3,d4] ~ [bb2,f3,d4] ~ [c3,g3,eb4,g4] ~ [c3,g3,eb4] g4, f4@4 ~ f4@2 ~", // Bb Cm
  V: "[eb3,bb3,eb4] ~ [eb3,bb3,eb4] bb4 [f3,c4,a4] g4 [f3,c4,g4] f4, f4@3 ~@5", // Eb5 F Fsus2
  W: "[bb2,f3] ~ [bb2,f3] ~ [c3,g3,eb4,f4] d4 [c3,g3,bb3,f4] c4, [d4,f4] ~", // Bb5 Cm Csus4 Dm
  X: "[eb3,eb4,g4] ~ [eb3,eb4,g4] [g4,bb4] [f3,c4,f4,a4] [g4,bb4] [f3,c4,g4,c5] [f4,bb4], bb3", // Eb Gm F Gm Fsus2 Bb5
  Y: "[[bb2,f3,d4] ~ [bb2,f3,d4] ~ [c3,g3,eb4] ~ [c3,g3,eb4] ~ [eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [bb2,f3,d4] ~ [bb2,f3,d4] ~ [c3,g3,eb4] ~ [c3,g3,eb4] ~ [eb3,bb3,eb4,f4] ~ [eb3,bb3,eb4,f4] bb4 [f3,c4,f4,a4] bb4 [f3,c4,f4,c5] bb4, bb4@27 ~@5]/4", // Bb Cm Ebsus2 F5 Bb Cm Ebsus2 F …
  Z: "[eb3,eb4,f4]@2 ~@2 [eb3,eb4,g4]@3 ~ [f3,c4,f4,bb4]@2 ~@2 [f3,c4,g4,bb4]@2 ~@2, bb3", // Ebsus2 Eb Fsus4
})).s("gm_string_ensemble_1").gain(0.4)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@4 A ~@16 B C@4 D@2 ~ E@2 F G H@2 I ~@15 B C@4 D@2 ~ J@4 F G H@2 F G H@2 F G H@2 F G H@2 F G H@2 F K
>`.pickRestart({
  A: "[f4,c5,f5,a5]", B: "~@3 [a5,b5,c6] [d6,e6,f6,g6,a6,bb6] [b5,c6,d6,e6,f6,g6] [f5,g5,a5] [b4,c5,d5,e5] ~@8",
  C: "[bb5 c5 ~ [d5,f5], [eb5,g5]@3 ~, ~@32 bb5@31 ~]/4", D: "[[eb5,bb5] [eb5,c6], g5]/2",
  E: "[[a4,c5]@3 ~ [a4,c5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [c5,eb5]@16, f4]/2", F: "d5@4 eb5 d5 c5@2",
  G: "bb4@2 ~ a5, f5, bb5@3 ~, ~ c5", H: "[d5@4 eb5 d5 ~@8 c6@2, ~@3 bb4@3 c5@2, ~ f5, ~@4 bb5@3 ~]/2", I: "bb5 ~@15",
  J: "[[a4,c5]@3 ~ [a4,c5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [c5,eb5]@3 ~ [c5,eb5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [a4,c5]@3 ~ [a4,c5]@3 ~ [bb4,d5]@2 [a4,c5]@2 [bb4,d5]@3 ~ [f5,c6,f6]@6 [a5,b5] [a4,b4,c5,d5,e5,g5] g4 ~@7, f4]/4", // Am Bb Am Bb Cm Bb Am Bb …
  K: "bb4@8 ~@4 a5@3 ~, f5, bb5@3 ~, ~ c5",
})).s("gm_rock_organ").gain(0.2)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  A@3 B@2 ~@10 C@2 D ~@2 E F G H I J K L@2 M N ~@19 E F G H I O K L@2 P Q R S T U T U T U T U V W X Y Z AA AB AC AD AE
  AF AG AH AI
>`.pickRestart({
  A: "[~@8 [c4,f4]@6 ab3 f3@6 [g3,b3]!2 [f3,a3], ~@5 [f2,c3,f3,a3]@4 ~@7]/3", B: "[[a3,c4,f4]@6 ~ f5@9, ~@3 c5@5]/2",
  C: "[~@8 bb4@5 ~ f4 d4, ~@7 f4@6 ~@3]/2", D: "bb3", E: "~@10 [d4,f4]@2 [f4,a4,d5] ~@3",
  F: "[c4,eb4]@2 [eb4,g4,c5] ~@3 [bb3,d4]@2 [d4,f4,bb4] ~ [ab3,c4]@2 [c4,eb4,ab4] f3 eb3@2", G: "[bb3,eb4,g4,bb4]",
  H: "[c3,g3,c4]@14 c3 [g3,c4]", I: "[eb3,bb3,eb4]@15 ~", J: "[bb2,f3,bb3]@8 bb2 c3 d3 c3 [f3,bb3,c4]@2 [f3,g3] d3",
  K: "[eb3,bb3,eb4]@14 eb3 [bb3,eb4]", L: "[c3,g3,c4]@15 ~", M: "[f2,c3,f3]", N: "f4@15 ~",
  O: "[bb2,f3,bb3]@6 c3 d3 [f3,bb3]@2 c3 d3 [f3,bb3]@2 g3 f3", P: "[f2,c3,f3]@11 f3 a3 c4 d4 [a3,c4]",
  Q: "[f3,a3,c4,f4]@14 [a3,c4,f4] f3", R: "a3@2 f3@4 [f3,c4] f3 ab4@2 ab4@2 [g4,ab4] f4 g4 f4", S: "[c5,f5]",
  T: "bb2@8 c3@6 g2 f2", U: "eb3 f3", V: "bb2@8 c3@2 eb4 d4 eb4 d4 bb3 c4",
  W: "f3!2 bb3 ~ f3 g3 bb3 c4 f4!3 g4 f4 eb4 d4 c4", X: "[f3,bb3]@5 ~ [f3,bb3] f3 [g3,c4]@4 bb3@4",
  Y: "f4@2 eb4 [eb4,f4] d4 c4 eb4 d4 c4 bb3 g3 f3 [f3,bb3]!4", Z: "d4@3 bb3 c4 bb3 g3 bb3",
  AA: "c4 [c4,d4] bb3 [bb3,c4] eb3@2 bb3!2 ~ c4 [f3,c4,d4]@2 [f4,g4] [a4,bb4] b4 [c5,db5], ~@4 [f3,bb3] ~@3", // Csus2 Bbsus2 Dm7 Fsus2 Bbmaj7 Dbmaj7 Bb5
  AB: "d5@10 d5 [db5,d5] f5@2 eb5 d5", AC: "eb5 d5 c5 bb4@2 f4 g4 bb4@2 f4 bb4 bb4@2 f4 c5 bb4",
  AD: "c5@11 ~ c5 bb4 c5 g4", AE: "bb4@6 g4 f4 [c4,d4] f4!3 c4 bb3 c4@2", AF: "bb3@9 f3 g3 bb3 [f3,g3] bb3 c4 d4",
  AG: "c4 d4 c4 bb3 c4@3 bb3!2 f3!7", AH: "[bb3,f4]@8 g4@2 f4@2 eb4@3 g3", AI: "[bb3,f4] ~",
})).s("gm_distortion_guitar").gain(0.36).pan(0.4)

// chords · pad metallic · "METAL PAD"
const pad_metallic = note("<~@13 A B A C A B A D ~@22 A B A C A B A D ~@34>".pickRestart({
  A: "[f5,d6]@7 ~ [g5,c6,eb6]@8, bb5@15 ~", B: "[g5,bb5,eb6]@7 ~ [a5,c6]@8, ~@7 f6@8 ~",
  C: "[g5,bb5]@2 ~ f6, eb6@3 ~, ~ [f5,c6]", D: "[g5,bb5,eb6]@7 ~@9",
})).s("gm_pad_metallic").gain(0.19)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F@2 G H I@2 G J K@2 G L M@2 N O P Q R S T Q U V W X Y X Y Z F@2 G H I@2 G J K@2 G L M@2 AA O P Q R S T Q U
  V AB V D X AC X AC X Y X Y X AC X AC X AC X AC X AC X AC X AD
>`.pickRestart({
  A: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~@3 f3", // F Am Bb
  B: "[f3,c4,eb4,f4]@4 [f3,c4,eb4,f4]@2 [c4,eb4,f4] [c4,eb4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [f3,bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4]", // F7 Cm Bb
  C: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [a3,c4,f4] [f3,a3,c4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~@3 f3", // F Bb
  D: "[f3,c4,eb4,f4]@15 ~", E: "~ bb3 c4 bb3 c4 g3@2 eb4, bb2@4 c3@3 ~",
  F: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 d4@2 [c4,d4] c4 bb3 ~ c4@2 g3@4 eb4@2, eb3@4 [f2,eb3]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Csus2 F7
  G: "~@2 eb4@2 eb4@2 d4 ~ c4@2 bb3@2 a3@2 f3@2, eb3@4 [f2,eb3]@3 ~", // F7
  H: "~@2 d4@2 [c4,d4] c4 bb3 [b3,c4] c4@2 g3@4 eb4@2, bb2@4 c3@3 ~", // Csus2 Cmaj7
  I: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 [bb3,d4]@2 [c4,d4] c4 bb3 [b3,c4] c4@2 g3@4 eb4@2, eb3@4 [f2,eb3]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Bb Csus2 Cmaj7 F7
  J: "~ [f3,d4] [f3,c4] [f3,bb3] [eb3,c4] ~ bb3 eb4, bb2@4 c3@3 ~, ~@5 f3@2 ~", // Dm F5 Bb5 Cm
  K: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 d4@2 [c4,d4] c4 bb3 ~ c4@2 g3@4 eb4@2, eb3@4 [f3,f4]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Csus2 F
  L: "~ [f3,bb3] [f3,c4] bb3 c4 g3@2 eb4, bb2@4 c3@3 ~", // Bb5 F5
  M: "[~@2 eb4 ~ eb4@2 d4 ~ c4@2 bb3@4 ~@4 [f3,d4]@2 [f3,c4,d4] c4 bb3 ~ c4@2 g3@2 f3@2 [bb3,eb4]@2, eb3@4 [f2,eb3]@3 d4@2 ~@7, ~@8 bb2@4 c3@3 ~]/2", // Dm Dm7 Eb5 F7
  N: "~@2 bb3@2 ~ [a3,d4] [g3,ab3,c4,db4] ~ [c4,f4]@2 [d4,eb4,e4] f4 [f4,a4,d5] ~@3, eb3@6 ~ [c3,f3,a3]@3 ~@6, ~@2 [g3,bb3,eb4] ~@5", // D5 Dbmaj7 F5 Dm F Eb
  O: "[c4,db4,d4] eb4 [eb4,g4,c5] ~@3 [b3,c4,db4,d4] ~ [d4,f4,bb4] ~ [a3,bb3,b3,c4] ~ [c4,eb4,ab4] ~ [c3,db3,d3,eb3] ~", // Cm Bb Ab
  P: "[eb3,g3,bb3,eb4,g4]@4 [eb3,g3,bb3,eb4,g4]@2 [eb3,g3,bb3,eb4,f4] ~@3 [eb3,bb3,eb4,g4] ~@3 [g3,bb3,eb4,g4]@2", // Eb
  Q: "[g3,bb3,f4]@2 [g3,c4,eb4]@2 [bb3,d4,f4]@2 [g3,c4,eb4]@4 [g3,c4,eb4]@2 ~@2 [eb3,g3,c4] [g3,c4,eb4]", // Gm7 Cm Bb Cm
  R: "[eb3,g3,bb3,eb4,g4]@4 [eb3,g3,bb3,eb4,g4]@2 [g3,bb3,d4,f4] ~@3 [eb3,bb3,eb4,g4] ~@3 [eb3,g3,bb3] [g3,bb3,eb4]", // Eb Gm7 Eb
  S: "[f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@2 [g3,bb3,eb4,f4]@2 [f3,bb3,d4,f4]@4 [bb3,d4,f4]@2 ~@2 [f3,bb3] [f3,bb3,d4]", // Bb Eb Bb Bb5 Bb
  T: "[eb3,g3,bb3,eb4,g4]@4 [eb3,g3,bb3,eb4,g4]@2 [eb3,g3,bb3,d4,f4] ~@3 [eb3,bb3,eb4,g4] ~@3 [g3,bb3,eb4,g4]@2", // Eb Ebmaj7 Eb
  U: "[c3,g3,c4,eb4]@2 [c3,g3,c4,eb4]@2 [c3,g3,bb3,f4]@2 [c3,g3,c4,eb4]@4 [g3,c4,eb4]@2 [g3,eb4,g4]@2 [c3,g3,c4] [g3,c4,eb4], ~@12 c4 ~@3", // Cm Csus4 Cm C5 Cm
  V: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4] [f3,bb3,d4] [f3,bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~@3 f3", // F Am Bb
  W: "[f3,c4,eb4,f4]@4 [c4,eb4]@2 [c4,eb4]!2 [f3,eb4]@8, ~@2 [f3,f4]@2 [c4,f4]@3 ~", // F7 Cm F7 F F5
  X: "[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4] [g3,bb3,eb4,f4]@4 [bb3,eb4,f4]@2 [bb3,eb4] [bb3,eb4,f4], ~@3 g3", // Bb Eb Bbsus4 Eb5 Bbsus4
  Y: "[g3,bb3,eb4,f4]@4 [bb3,eb4]@2 [bb3,eb4]!2 [f3,bb3,eb4,f4]@4 [a3,eb4]@2 [a3,eb4] [a3,eb4,f4], ~ [g3,f4] ~ [f3,f4]", // Eb Eb5 Ebsus2 Adim F7 G7 F
  Z: "bb3!2 c4 bb3 c4 g3@2 eb4, bb2@4 c3@3 ~, [f3,d4] ~@3", // Dm
  AA: "~@2 bb3@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [c3,f3,a3,c4,f4]@2 [d4,eb4,e4] f4 [f4,a4,d5] ~@3, eb3@3 ~@5", // Eb F Dm
  AB: "[f3,c4,eb4,f4]@4 [c4,eb4]@2 [c4,eb4]!2 [f3,bb3,d4] [f3,bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4]@2 [bb3,d4] [bb3,d4,f4], ~ [f3,f4] ~ f3", // F7 Cm Bb F
  AC: "[g3,bb3,eb4,f4]@4 [bb3,eb4]@2 [bb3,eb4]!2 [f3,bb3,eb4] [f3,bb3,eb4,f4]@2 [bb3,eb4] [bb3,c4,f4]@2 [a3,c4] [a3,c4,f4], ~ [g3,f4] ~ f3", // Eb Eb5 Ebsus2 Eb5 Bbsus2 Am F G7
  AD: "[g3,bb3,eb4,f4]@4 [bb3,eb4]@2 [bb3,eb4]!2 [f3,bb3,eb4] [f3,bb3,eb4,f4]@2 [bb3,eb4] [bb3,c4,f4]@2 [a3,c4] ~, ~ [g3,f4] ~ f3", // Eb Eb5 Ebsus2 Eb5 Bbsus2 Am G7
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.8)

// other · koto · "+TAISHO"
const koto = note("<~@15 A B ~@2 C ~@17 A B ~@2 A B ~@2 A B ~@2 C ~@35>".pickRestart({
  A: "~@2 [c3,d3] ~ c3 [c3,d3] bb2 ~ c3 ~ g2 ~@3 eb3 ~", B: "~@2 eb3 ~ eb3 ~ d3 ~ c3 ~ bb2 ~ a2 ~ bb2 ~",
  C: "~@2 [c3,d3] ~ c3 [c3,d3] bb2 ~ c3 ~ g2 ~ f2 ~ eb2 ~", // Csus2
})).s("gm_koto").gain(0.32).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~ A ~ A@2 B C B C B C B C B C B C B C B C ~ C@8 D B C B@3 C B C B C B C B C B C B C B C A C@10 A E C B C B C B@2 C F
  C@3 G C D C@3 H C@2
>`.pickRestart({
  A: "x", B: "x!2", C: "x ~@3 x!2 ~@2", D: "x ~@6 x ~@8", E: "x ~@2 x!2 ~@3", F: "x!2 ~@2 x!2 ~@2",
  G: "x ~ x ~@5 x ~ x ~@2 x ~@2", H: "x ~@7 x ~@2 x ~@4",
// … 80 more lines

More by Wet Wet Wet