Strudelify
Such a Shame cover art

1984 · It's My Life

Such a Shame

Talk Talk

KeyG minorTempo123 bpm
0:00/0:00
// Such a Shame — Talk Talk
// 123 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 151 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(123/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, A@4 for four bars: edit a riff to change every repeat.

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A B@3 A C@2 D E@2 F G H@2 I@3 J@2 F K@2 L I@3 M@2 N O H@2 P@2 E@2 Q G H@2 P@2 A R A S L T L U A L F G H@2 I@3 A L F
  K@2 L P@2 A L F G S L V@2 A S A S L U L W X@2 Y@2 Z@2 AA@4 Y@2 Z@2 S AB A S A S A S A AC@2 AD@2 AE@3 D AE@3 D A L F G
  AF L I@3 A L F G AF L P@2 AG S A S A S A AH ~@8
>`.pickRestart({
  A: "[bb3,d4,g4]@15 ~", B: "[bb3@15 ~ c4@15 ~@9 gb4@8, g4@5 ~, eb4@32 [c4,d4]@15 ~]/3",
  C: "[bb3@16 c4@15 ~, [eb4,g4]]/2", D: "g4@8 gb4@7 ~, d4, c4@7 ~", E: "[[bb3,d4] [c4,eb4], g4]/2",
  F: "[c4,f4,a4]@15 ~", G: "[d4,f4,bb4]@15 ~", H: "[bb3@15 ~ c4@15 ~, [eb4,g4]@31 ~]/2", I: "[[a3,d4,gb4]@47 ~]/3",
  J: "[[bb3,d4]@16 [c4,eb4]@15 ~, g4, ~@16 f4 ~@15]/2", K: "[f4@16 [eb4,g4]@15 ~, bb4@31 ~, d4@7 ~@9]/2",
  L: "[c4,eb4,g4]@15 ~", M: "[[bb3,d4] [c4,eb4], g4@31 ~]/2", N: "[a3,c4,f4]@15 ~", O: "[bb3,d4,f4]@15 ~",
  P: "[[a3,d4,gb4]@31 ~]/2", Q: "[c4,a4]@15 ~, [bb3,d4]@3 ~@13, f4 ~@15", R: "[bb3,eb4,g4]@7 ~", S: "[bb3,eb4,g4]@15 ~",
  T: "[d4,gb4,a4]", U: "[d4,gb4,a4]@15 ~", V: "[[a3,d4,gb4]@31 ~, b3 ~@31]/2", W: "[d4,gb4,a4]@7 ~",
  X: "[[bb3,d4,g4]@31 ~]/2", Y: "[[db4,f4,bb4]@31 ~]/2", Z: "[[d4,f4,a4]@31 ~]/2", AA: "[[bb3,d4,g4]@63 ~]/4",
  AB: "[f4,a4]@15 ~, c4@13 ~@3", AC: "[bb3@15 ~ c4@14 ~@2, [eb4,g4]@31 ~]/2", AD: "[g4@8 gb4@7 ~, [c4,d4]@31 ~]/2",
  AE: "[d4@16 ~@16 c4@15 ~, g4@47 ~, bb3@2 ~, ~ eb4@2]/3", AF: "[eb4,g4,bb4]@15 ~", AG: "[d4,g4] ~@15, bb3@15 ~",
  AH: "[bb3,eb4,g4]@7 [bb3,d4,g4]", // Eb Gm
})).s("gm_string_ensemble_1").gain(0.2)

// chords · brass section · "Brass"
const brass_section = note("<~@14 A B@2 ~@6 C D@2 ~@30 A E@2 ~@65 A F@2 ~@6 G H ~@16>".pickRestart({
  A: "~@12 [a4,gb5]@2 [a4,d5,g5] [a4,d5,gb5], ~@12 d5 ~@3", // D Dsus4 D
  B: "[~@4 [a4,d5] ~ [a4,d5,g5] [a4,d5,gb5] ~@4 [a4,d5] ~ [a4,d5,g5] [a4,d5,gb5]@16 ~, ~@2 gb5 ~@3 gb5 ~@9]/2", // D5 Dsus4 D D5 Dsus4 D
  C: "~@12 [a4,d5] ~ [d5,g5] [d5,gb5], ~@6 gb5 a4", // D5 G5 D
  D: "[~@4 [a4,d5,gb5] ~ [a4,d5,g5] [a4,d5,gb5] ~@4 [a4,d5,gb5] ~ [a4,d5,g5] [a4,d5,gb5]@17]/2", // D Dsus4 D Dsus4 D
  E: "[~@4 [a4,d5,gb5] ~ [a4,d5,g5] [a4,d5,gb5] ~@4 [a4,d5,gb5] ~ [d5,g5] [d5,gb5]@17, ~@7 a4@9]/2", // D Dsus4 D G5 D
  F: "[~@4 [a4,d5,gb5]@2 [d5,g5] [d5,gb5] ~@4 [a4,d5,gb5]@2 [a4,d5,g5] [a4,d5,gb5]@17, ~@3 a4 ~@12]/2", // D G5 D Dsus4 D
  G: "~@4 [d5,gb5] ~ [d5,g5] [d5,gb5] ~@4 [d5,gb5] ~ [a4,d5,g5] [a4,d5,gb5], ~@2 a4!2 ~@2 a4 ~", // D G5 D Dsus4 D
  H: "~@4 [a4,d5,gb5] ~ [d5,g5] [d5,gb5]@9, ~@3 a4@5", // D G5 D
})).s("gm_brass_section").gain(0.36)

// other · marimba
const marimba = note("<~@42 A@4 ~@29 A@4 ~@20 A@7 ~@29 A ~ A ~ A ~ A B ~@8>".pickRestart({
  A: "~@2 g4!2 g5!2 g4!2 ~@8", B: "~@10 eb4 ~ f4 ~ g4 ~",
})).s("gm_marimba").gain(0.31)

// other · electric guitar jazz · "Gitarre"
const electric_guitar_jazz = note(`<
  ~@8 A B C D E F G H I J K L M N O P Q R S C@2 T J M U V J@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM X C AN AO
  AP AQ X M AR AS M AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ T BK BL BM ~@13 BN BO BP BQ BR BS BT BU BV BW BX
  BY ~@8 BZ CA CB CA CC CD CE CF CG CH CI CJ CK CL CM CN CO CP BV CQ CR CS CT CU CV ~@8
>`.pickRestart({
  A: "~@2 f4 ~ g4 ~ f4 g4 ~@7 f4", B: "[gb4,g4] ~@3 g4 ~ f4 g4 ~@7 f4", C: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 ~@5 f4",
  D: "g4 ~ f4 ~ g4 ~ f4 g4 ~@7 f4", E: "g4 ~ f4 ~ g4 ~ f4 g4 ~@6 f4!2", F: "g4 ~ f4 ~ g4 ~ f4 ~@8 f4",
  G: "g4 ~@5 d4!2 ~@7 d4", H: "g4 ~ d4 ~@3 d4!2 ~@6 f4 gb4", I: "g4 ~@5 d4!2 ~@6 d4 f4",
  J: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 ~@4 f4 gb4", K: "g4 ~ g4 ~ g4 ~ f4 ~@9", L: "~ g4 f4 ~ g4 ~ f4 g4 ~ g4 ~@4 f4 gb4",
  M: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@4 f4", N: "g4 ~ f4 ~ g4 ~ f4 g4 ~@6 f4 gb4", O: "g4 ~ g4 ~ g4 ~ f4!2 ~ f4 ~@6",
  P: "g4 ~ d4 ~@3 d4!2 ~@5 d4 f4 d4", Q: "~@2 d4 ~@3 d4!2 ~@6 d4!2", R: "~@2 d4 ~@3 d4!2 ~@5 d4 ~ d4",
  S: "~@2 g4 ~ g4 ~ f4!2 ~ g4 ~@5 f4", T: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 ~@4 f4 ~", U: "g4 ~ d4 ~@3 d4!2 ~@5 d4 ~@2",
  V: "d4 ~ d4 ~@3 d4!2 ~ d4 ~@5 f4", W: "g4 ~ f4 ~@3 f4 g4 ~ g4 f4 ~@4 f4",
  X: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@3 f4 gb4", Y: "g4 ~ f4 ~ g4 ~ f4 g4 ~@8",
  Z: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@3 d4 f4", AA: "~@4 d4 ~ c4 d4 ~ d4 ~@6", AB: "d4 ~ d4 ~ d4 ~ c4 d4 ~ d4 ~@6",
  AC: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 ~@6", AD: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~ g4 bb4 g4 f4",
  AE: "~@2 g4 ~ g4 ~ f4 g4 ~ g4 f4 ~@5", AF: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 g4 bb4 g4 f4 ~",
  AG: "~@2 g4 ~ g4 ~ f4 g4 ~ g4 ~@6", AH: "d4 ~ d4 ~@3 d4 ~@2 a4 d4 ~@4 f4", AI: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 d4 ~@4",
  AJ: "~@2 d4 ~ a4!2 d4!2 ~ d4 ~@6", AK: "~@4 g4!2 f4 g4 ~ g4 f4 ~@4 f4", AL: "g4 ~ f4 ~ g4 ~ f4 ~ f4 gb4 g4 ~@4 f4",
  AM: "g4 ~ f4 ~ g4 ~ f4!2 ~@5 f4 g4 f4", AN: "[gb4,g4] ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@5",
  AO: "d4 ~ d4 ~@3 d4 g4 ~ g4 d4 ~@5", AP: "~@2 d4 ~@3 d4 g4 ~ g4 d4 ~@5", AQ: "~ d4 g4 ~ a4 ~@2 d4 ~@8",
  AR: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 g3 ~@3 f4", AS: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 g3 ~@4",
  AT: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 c4 ~@4", AU: "~@2 d4 ~ d4 ~ d4 ~@3 d4 ~@5",
  AV: "~@2 d4!2 ~ d4 c4 ~ d4 ~ g4 ~@2 d4 ~@2", AW: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@5",
  AX: "g4 ~ f4 ~@3 f4!2 ~ f4 g4 f4 ~@4", AY: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@3 f4!2",
  AZ: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 d4 f4 g4 ~@2", BA: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@3 f4 ~",
  BB: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4 d4 ~@3 c4", BC: "d4 ~ d4 ~ d4 ~ c4 d4 ~@6 d4!2", BD: "~@2 d4 ~@2 c4 ~@2 d4 ~@6 f4",
  BE: "g4 ~ f4 ~ g4 ~ f4 ~ g4 ~ g4 ~@3 f4 ~", BF: "g4 ~ f4 ~ g4 ~ f4 g4 ~ g4 f4!2 g4 ~@2 f4",
  BG: "g4 ~ f4 ~ g4 ~ f4 ~@7 f4 gb4", BH: "g4 ~ f4 ~ g4 ~ f4 ~ bb4 a4 g4 f4 g4 f4 ~ f4",
  BI: "g4 ~@3 g4 ~ f4 g4 ~ g4 f4 ~@4 [f4,g4]", BJ: "d4 ~ d4 ~@3 d4!2 ~ d4 ~@4 d4 f4",
  BK: "~@2 d4 ~ d4 ~@2 d4 ~ d4!2 ~@3 d4!2", BL: "~@2 g4 ~ g4 ~@11", BM: "~@2 f4 ~ f4 g4 ~@10",
  BN: "~@2 f4 ~ f4 ~ d4 f4 ~ f4 g4 ~@4 f4", BO: "g4 ~ f4 ~ g4 ~ g4 ~ f4!2 g4 ~@5",
  BP: "~@2 f4 ~ f4 g4 ~ g4 ~ g4 f4 ~@5", BQ: "~@2 f4 ~ f4 ~@5 f4 ~ f4 g4 ~@2",
  BR: "~@2 f4 ~ f4 g4 ~ g4 ~ g4 f4 ~ d4 ~ f4 ~", BS: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@3 f4 gb4",
  BT: "g4 ~ f4 ~@3 f4!2 ~ f4 g4 ~ bb4 a4 g4 f4", BU: "~@2 f4 ~ f4 ~ g4!2 ~ g4 f4 ~@5",
  BV: "~@2 f4 ~ f4 g4 ~ g4 ~ f4 g4 f4 bb4 a4 g4 f4", BW: "~@2 f4 ~@2 f4 ~@2 f4 ~ g4 ~@5",
  BX: "~@2 f4 ~@5 d4 ~ d4 ~@4 c4", BY: "d4 ~ d4 ~@2 d4 ~@2 d4 ~@4 c4 d4 ~", BZ: "~@2 f4 ~ f4 ~ g4!2 ~@2 f4 ~@3 f4 gb4",
  CA: "g4 ~ f4 ~ f4 ~ g4!2 ~ g4 f4 ~@5", CB: "~@2 f4 ~ f4 g4 ~ g4 ~ g4 f4 ~ f4 ~ f4 gb4",
  CC: "~@2 f4 ~ f4 ~ g4!2 ~ g4 f4 ~ g4 f4 bb4 ~", CD: "~@2 f4 ~ g4 ~ f4 g4 ~ g4 f4 ~@3 d4 ~",
  CE: "~@2 c4 ~ c4 d4 ~ d4 ~ d4 c4 ~@5", CF: "~ d4 ~@2 d4 ~ c4!2 ~@2 d4 ~@3 d4 f4",
  CG: "~@2 g4 ~@3 d4!2 ~@2 c4 ~@2 d4 ~@2", CH: "~@2 g4 ~ g4 ~ f4 ~@3 g4 ~@5", CI: "~ f4 ~@2 f4 ~@2 g4 ~@4 g4 f4 ~@2",
  CJ: "~@2 f4 ~ f4 g4 ~ g4 ~ g4 f4 ~ f4!2 g4 ~", CK: "~@2 f4 ~ f4 g4 ~ g4 ~ d4 f4 d4 g4 ~@3",
  CL: "~@2 f4 ~ f4 gb4 ~ g4 ~ g4 f4 ~ f4 ~ g4 ~", CM: "~@2 f4 ~ f4 g4 ~ g4 ~ d4 f4 ~ bb4 d4 a4 ~",
  CN: "~@2 g4 ~ d4!2 ~ d4 ~ d4 c4 ~ d4 ~@3", CO: "~@2 d4 ~@2 c4 ~ d4 ~ d4 f4 d4 g4 ~@2 d4",
  CP: "~@2 g4 ~ g4 f4 ~ f4 ~@2 g4 ~@5", CQ: "~@2 f4 ~ f4 g4 ~ g4 ~ f4 g4 ~@3 g3 ~",
  CR: "~@2 g4 ~ g4 f4 ~ g4 ~ d4 f4 ~ bb4 ~ a4 ~", CS: "~@2 f4 ~ f4 g4 ~ g4 ~ g4 f4 ~ f4 g4 ~@2",
  CT: "~@2 f4 ~ f4 g4 ~ g4 ~ f4 g4 f4 bb4 ~ g4 ~", CU: "~@2 f4 ~ f4 g4 ~ g4 ~ d4 f4 g4 ~@2 f4 ~",
  CV: "~@2 g4 ~ g4 f4 g4 bb4 ~ bb4 ~@2 g4 ~ f4 ~",
})).s("gm_electric_guitar_jazz").gain(0.26)

// bass · synth bass 1 · "S.Bass"
const bass = note(`<
  A B C D A B C D E F G H I F J@2 K E F G H I F J@2 K E F G L I F J K E F G H I F J@2 E M E I F J F J E F G H I F J@2 K
  E F G H I N J K E F G H I F J K E M E I F J F J E@2 L@2 J@2 E@4 L@2 J@2 I G E M E M E M E I F J O P B C Q A B C Q E F
  G H R S J@2 K E F G H I F J K E M E M E M E T@2 ~@7
>`.pickRestart({
  A: "g2@2 ~@2 g2@2 ~@2 g2@2 ~@2 g2@3 ~", B: "eb2 ~ eb2 ~ eb2 ~ eb2 ~", C: "c2 ~ c2 ~ c2 ~ c2 ~",
  D: "d2 ~ d2 ~ d2 ~ d2 ~", E: "g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3 ~", F: "c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ c3 ~",
  G: "f2 ~ f3 ~ f2 ~ f3 ~ f2 ~ f3 ~ f2 ~ f3 ~", H: "bb1 ~ bb2 ~ bb1 ~ bb2 ~ bb1 ~ bb2 ~ bb1 ~ bb2 ~",
  I: "eb2 ~ eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~", J: "d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~",
  K: "d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~ gb2 ~ gb3 ~", L: "bb2 ~ bb3 ~ bb2 ~ bb3 ~ bb2 ~ bb3 ~ bb2 ~ bb3 ~",
  M: "eb2 ~ eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~ f2 ~ f3 ~", N: "c2@2 c3 ~ c2 ~ c3 ~ c2 ~ c3 ~ c2@2 c3 ~, eb2 ~@15",
  O: "d2 ~ d3 ~ d2 ~ d3 ~ gb2 ~ gb3 ~ gb2 ~ gb3 ~", P: "g2 ~ g2 ~ g2 ~ g2 ~", Q: "d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 gb2@3 ~",
  R: "eb2@2 eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~ eb2@2 eb3 ~", S: "c2 ~ c3 ~ c2 ~ c3 ~ c2@2 c3 ~ c2@2 c3 ~",
  T: "[eb2 ~ eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~ f2 ~ g2@15 ~@3]/2",
})).s("gm_synth_bass_1").gain(0.26)

// chords · piano
const piano = note(`<
  A B@2 C D E@2 F G H I J K L M@3 N H O P K L Q@3 R S T U@2 V W@2 X S Y Z AA L AB@2 AC AD AE AF AG AH L AI AJ L Y AK AL
  AM AN@3 AO L AP Z AQ AR AS@2 AT AU AV AW AX L AY@2 AZ BA BB AD BC BD BE BF@3 BG@2 BH@2 BI@4 BJ@2 BK@2 BL BM BN BO BP
  BQ BR@2 BS@2 BT BU@2 BV BW@2 BX BY BW@2 C BZ L Y CA CB CC CD@3 R S CE CF AD CG AS@2 CH BQ BN BQ BN BQ CI@4 ~@6
>`.pickRestart({
  A: "~@5 [g4,g5] [a4,a5] [bb4,bb5], g2, g1@3 ~", // G A Bb
  B: "[[c5,c6]@2 [bb4,bb5] [a4,a5] ~ [f4,f5] ~@2 [c2,c3]@7 ~, eb3 ~, eb2@7 [g4,g5]@9]/2", C: "d3@15 ~, d2@13 ~@3",
  D: "~@5 [g4,g5] [a4,a5] [bb4,bb5], [g1,g2]@13 ~@3", // G A Bb G
  E: "[[c5,c6]@2 [bb4,bb5] [a4,a5]@3 [f4,f5] ~ [c2,c3]@8, eb3 ~, eb2@13 ~ [g4,g5]@15 ~@3]/2", // C Bb A F C G
  F: "[d2,d3]@11 ~@5, f3 ~@15", G: "[g1,g2,d3,bb3]@13 ~@3, g3@15 ~", H: "[c2,eb3,g3,c4]@15 ~",
  I: "[f3,a3,c4]@3 ~, f2@7 ~", J: "[bb1,f3,bb3,d4]@7 ~, bb2@3 ~", K: "[eb2,g3,bb3,eb4]@15 ~",
  L: "[eb3,g3,c4]@13 ~@3, c2@15 ~", M: "[[d2,gb3,a3,d4]@13 ~@3]/3", N: "[g1,d3,f3,bb3]@7 ~", O: "[f2,f3,a3,c4]@3 ~",
  P: "[bb1,bb2,f3,bb3,d4]@15 ~", Q: "[gb3@3 ~ gb3 ~@43, [d2,d3,a3]@23 ~]/3", R: "[g2,g3], [d3,bb3]@7 ~",
  S: "[c2,eb3,g3,c4]", T: "[f3,a3,c4]@7 ~, f2",
  U: "[[bb2,d3,f3,bb3]@15 ~ [bb2,g3]@16, ~@15 eb2@15 ~@2, ~@8 [eb3,bb3]@7 ~]/2", V: "[eb3,g3,c4]@15 ~, c3@3 ~",
  W: "[g3@8 gb3@19 ~ [d2,d3,gb3,a3]@4, [d2,d3,a3]@27 ~@5]/2", X: "[g2,d3,g3,bb3]@15 ~", Y: "[f2,c3,f3,a3]@15 ~",
  Z: "[bb2,d3,f3,bb3]@15 ~", AA: "[eb2,eb3,g3,bb3]@14 eb3 ~, f3 ~@15", AB: "[[d2,d3,gb3]@13 e3 gb3 g3, a3@29 ~@3]/2",
  AC: "~@4 [g3,bb3,d4]@3 ~ [g3,bb3,d4] [g3,bb3,d4]@2 ~ [g3,bb3,d4]@3 ~, g2@15 ~", AD: "[eb2,g3,bb3,eb4]@13 ~@3",
  AE: "[g3,bb3,d4]@2 ~@2 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4] [g3,d4]@2 ~ [g3,bb3,d4]@3 ~, g2@7 ~, ~@9 bb3 ~@6", // Gm G5 Gm
  AF: "[g3,bb3,eb4]@13 ~@3, eb2@5 ~@3", AG: "[c3,eb3,g3,c4]@13 ~@3", AH: "[d3,gb3,a3,c4]@7 ~, d2@3 ~",
  AI: "[d2,d3,gb3,a3]@7 ~", AJ: "[g2,d3,g3,bb3]@13 ~@3", AK: "[d3,f3,bb3]@7 ~, bb2",
  AL: "~ f3 ~@14, [eb3,g3,bb3]@7 ~, eb2@3 ~", AM: "[eb3,g3,c4]@13 ~@3, c3@9 ~@7", AN: "[[d2,d3,gb3,a3]@23 ~, c4 ~@7]/3",
  AO: "[d3,g3,bb3]@15 ~, g2@13 ~@3", AP: "[f2,c3,f3,a3]@15 ~, bb3 ~@15", AQ: "[eb3,g3,bb3]@15 ~, eb2@13 ~@3",
  AR: "[eb3,g3,c4]@13 ~@3, c2@9 ~@7", AS: "[[d2,d3,gb3,a3]@29 ~@3]/2", AT: "[g1,g2,g3,bb3,d4]@13 ~@3",
  AU: "[c2,eb3,c4]@7 ~, [eb2,bb3,eb4]@7 ~@9, g3 ~@15", AV: "[c3,f3,a3]@15 ~, f2@11 ~@5",
  AW: "[bb1,d3,f3,bb3]@15 ~, bb2@3 ~", AX: "[eb2,eb3,g3,bb3]@13 ~@3", AY: "[[d3,gb3,a3], d2@13 ~@3]/2",
  AZ: "~@4 [g3,bb3,d4]@3 ~ [g3,bb3,d4] [g3,bb3,d4]@2 ~ [g3,bb3,d4]@3 ~, g2@15 ~, g1@13 ~@3", // Gm
  BA: "[g3,bb3,eb4]@15 ~, eb2@11 ~@5", // Eb
  BB: "~@4 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4] [g3,bb3,d4]@2 ~ [g3,bb3,d4]@3 ~, g2@15 ~, g1@13 ~@3", // Gm
  BC: "[c2,eb3,g3,c4]@13 ~@3", BD: "[d3,gb3,a3]@7 ~, d2@11 ~@5", BE: "[c2,c3,eb3,g3,c4]@13 ~@3",
  BF: "[d2@9 ~@9 bb5 d6 g6 d6 bb5 g5 ~ g5 bb5 d6 g6 d6 bb5 g5 ~ g5 bb5 d6 g6 d6 bb5 g5 ~@2 bb5 d6 g6 d6 bb5 g5, [d3,gb3,a3]@29 ~@19, ~@4 [g1,g2]@7 ~, ~@16 d5@3 ~@5 d5@2 ~@6 d5@2 ~@6 d5@3 ~@5, ~@17 g5@2 ~@22 g5@2 ~@5]/3", // D G
  BG: "[~ f5 bb5 db6 f6 db6 bb5 f5 db5 f5 bb5 db6 f6 db6 bb5 f5 db5 f5 bb5 db6 f6 db6 bb5 f5 ~ f5 bb5 db6 f6 db6 bb5 f5, [bb1,bb2]@7 ~, db5 ~@11 db5 ~@3]/2", // Bb
  BH: "[d5 f5 a5 d6 f6 d6 a5 f5 d5 f5 a5 d6 f6 d6 a5 f5 d5 f5 a5 d6 f6 d6 a5 f5 d5 f5 a5 d6 f6 d6 a5 f5, d3@15 ~, d2@27 ~@5]/2",
  BI: "[d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5 g5 d5 g5 bb5 d6 g6 d6 bb5@2, [g1,g2]@31 ~]/4", // G
  BJ: "[db5 f5 bb5 db6 f6 db6 bb5 f5 db5 f5 bb5 db6 f6 db6 bb5 f5 db5 f5 bb5 db6 f6 db6 bb5 f5 db5 f5 bb5 db6 f6 db6 bb5 f5, [bb1,bb2]@29 ~@3]/2", // Bb
  BK: "[d5 f5 a5 d6 f6 d6 a5 f5 d5 f5 a5 d6 f6 d6 a5 f5 d5 f5 a5 d6 f6 d6 a5 f5 d5 f5 a5 d6 f6 d6 a5 f5, [d2,d3]@29 ~@3]/2", // D
  BL: "~ g5 bb5 eb6@12 ~, [eb2,eb5], [eb3,g3,bb3]@7 ~", BM: "~@2 c6 f6@5 ~@8, [c3,f3,a3], f2@3 ~, f5 ~, ~ bb5@2 ~@13",
  BN: "~@4 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4]!2 ~@2 [g3,bb3,d4]@3 ~, [g1,g2]", BO: "[g3,bb3,eb4]@15 ~",
  BP: "~@4 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4] [g3,d4]@2 ~ [g3,bb3,d4]@2 ~@2, [g1,g2], ~@9 bb3 ~@6", BQ: "[g3,bb3,eb4]",
  BR: "[~@4 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4] [g3,bb3] ~@2 [g3,bb3,d4]@2 ~@2 [g3,bb3,eb4]@15 ~, [g1,g2]@29 ~@3, ~@9 d4@2 ~@21]/2", // Gm Eb G
  BS: "[~@4 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4] [g3,bb3] ~@2 [g3,bb3,d4]@2 ~@2 [g3,bb3,eb4]@16, [g1,g2]@29 ~@3, ~@9 d4@2 ~@21]/2", // Gm Eb G
  BT: "~ c4, c2, ~@5 eb3@11", BU: "[~@8 [g3,a3]@7 ~ [d3,gb3,a3]@12 ~@4, d2@27 ~@5, ~@4 d3@11 ~@17]/2",
  BV: "gb2 ~@9 [g4,g5]@2 [a4,a5]@2 [bb4,bb5]@2, [g1,g2]", // G A Bb G
  BW: "[[c5,c6]@4 [bb4,bb5]@2 [a4,a5]@4 [f4,f5]@3 ~@3 [c2,c3]@16, [eb2,eb3]@7 [g4,g5]@8 ~]/2", BX: "[d2,d3]@3 ~",
  BY: "[ab2,bb2] ~@9 [g4,g5]@2 [a4,a5]@2 [bb4,bb5]@2, [g1,g2]@13 ~@3", BZ: "[g1,d3,g3,bb3]@15 ~",
  CA: "[bb1,d3,f3,bb3]@15 ~", CB: "[eb2,g3,bb3]@14 eb3 ~, eb3@13 ~@3", CC: "[c2,c4]@15 ~, [eb3,g3]@13 ~@3",
  CD: "[[d2,d3,gb3,a3]@15 ~]/3", CE: "[f2,f3,c4]@15 ~, a3@13 ~@3", CF: "[bb2,f3,bb3,d4]@15 ~",
  CG: "[c2,eb3,g3,c4]@13 ~@3, c3@5 ~@3", // Cm
  CH: "[d3,g3,bb3]@2 ~@2 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4]!2 ~@2 [g3,bb3,d4]@3 ~, g2@7 ~, ~@4 g1@11 ~", // Gm
  CI: "[~@4 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4]!2 ~@2 [g3,bb3,d4]@3 ~ [g3,bb3,eb4]@7 ~@3 [eb2,eb3]@2 [f2,f3]@2 [g2,g3]@20 ~@14, g2@25 ~@39, g1@21 ~@43]/4", // Gm Eb F G
})).s("gm_piano").gain(0.31)

// drums · kick
const kick = s("bd").struct("<[x!4]!142 [x ~ x ~ x ~ x!2] ~@8>").gain(0.41)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A@8 B A@8 B A@32 B A@15 B A@8 C@15 D A@3 B A@6 E ~@8 A@8 B A@7 B A@7 F ~@8
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~@3 x", D: "~@12 x ~ x!2", E: "~@4 x ~@3 x ~ x ~ x ~ x!2",
  F: "~@2 x ~@2 x!2 ~",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct("<A@8 B@38 A@4 B@25 A@12 C A D A B A B A D A@3 B@8 A@11 B@17 A@8 ~@8>".pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", C: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~",
  D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@8 A ~@8 A ~@23 A ~@8 A ~@15 A ~@23 A ~@10 A ~@7 A ~@8 A ~@7 A ~@6 B ~@8
>`.pickRestart({
  A: "x", B: "~@7 x",
})).gain(0.26)

// drums · bongos
const bongos = s("bongo:4").struct("<~@42 A@4 B ~@28 A@3 C B ~@19 D E A@6 B ~@27 F D ~ G ~ G ~ H ~@8>".pickRestart({
  A: "x ~@2 x!3 ~@2 x ~@2 x!3 ~@2", B: "x", C: "x ~@2 x!3 ~@2 x ~@2 x!3 ~ x", D: "~@11 x ~ x ~@2",
  E: "x ~@2 x!3 ~@2 x ~@2 x ~ x ~@2", F: "~@4 x ~@6 x ~@4", G: "~@12 x!2 ~@2", H: "~@3 x",
})).gain(0.4)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@42 A@4 ~@29 A@4 ~@20 B A@7 ~@28 C D ~ D ~ D ~@10>".pickRestart({
  A: "~@3 x ~@3 x", B: "~@6 x!2", C: "~@3 x", D: "~@14 x!2",
// … 42 more lines

More by Talk Talk