Strudelify
Josephine cover art

1985 · Shamrock Diaries

Josephine

Chris Rea

KeyD minorTempo106 bpm
0:00/0:00
// Josephine — Chris Rea
// 106 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 5 "A.PIANO 1" named as a piano, played on piano (its electric guitar muted patch is not one)
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(106/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 · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D A B E F A G H I A B J K L M H N@3 O P L Q R N L Q S T A B U V A B W X Y Z AA AB AC@2 AD AE AC@2 AD AF A B AG
  AH AI B N AJ L AK AL AM N AN AO AP L AQ AR AS L AT S AU L AQ S AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL Y AT
  BM BN BO@2 BP@2 BQ BR BS ~@7
>`.pickRestart({
  A: "d2@4 a1 ~ c2 ~ d2@4 a1 ~ c2 ~", B: "d2@4 a1 ~ c2 ~ d2@4 f2@2 d2@2", C: "g2@4 d2 ~ f2 ~ g2@4 d2@2 g2@2",
  D: "c2@4 g1 ~ a1 ~ c2@2 ~ c2 g1 ~ c2 ~", E: "g2@4 d2 ~ f2 ~ g2@4 d2@2 g1@2", F: "c2@4 g1 ~@2 g1 c2@2 ~ c2 g1@2 c2@2",
  G: "d2@4 a1 ~ c2 ~ d2@4 a1@2 d2@2", H: "g1@4 d1 ~ f1 ~ g1@4 d1 ~ f1 ~", I: "c2@4 g1@3 ~ c2@2 ~ c2 g1 ~ c2@2",
  J: "g1@4 d1 ~ f1 ~ g1@4 d1@2 g1@2", K: "c2@2 ~ c2 g1@3 g1 c2@4 g1 ~ c2 ~", L: "bb1@4 f1 ~ g1 ~ bb1@4 f1 ~ g1 ~",
  M: "bb1@4 f1 ~ g1 ~ bb1@4 f1 ~ f1@2", N: "g1@4 d2 ~ f2 ~ g2@4 d2@2 f2@2", O: "g1@3 ~ d2 ~ f2 ~ g2@4 d2@2 f2@2",
  P: "c2@2 ~ c2 g1@2 ~ g1 c2@3 c2 g1@2 c2@2", Q: "c2@4 g1 ~ a1 ~ d2@4 a1@2 d2@2", R: "g1@3 ~ d1 ~ f1 ~ g1@4 d1 ~ f1 ~",
  S: "g1@3 ~ d1 ~ f1 ~ g1@4 d2 ~ f2 ~", T: "g2@4 d2 ~ f2 ~ g1@3 ~ g1 ~ c2@2", U: "g2@4 d2 ~ f2 ~ g2@4 d2@2 f2@2",
  V: "c2@4 g1 ~ a1 ~ c2@2 ~ c2 g1 ~ c2@2", W: "g1@3 ~ d1 ~ f1 ~ g1@4 f1@2 g1@2",
  X: "c2@2 ~ c2 g1@3 g1 c2@2 ~ c2 g1@2 c2@2", Y: "bb1@4 f1 ~ g1 ~ bb1@4 f1@2 g1 ~", Z: "c2@4 g1 ~ a1@2 d2@4 a1@2 c2@2",
  AA: "g2@3 ~ d2 ~ f2 ~ g2@4 d2@2 f2@2", AB: "g1@3 ~ d2 ~ f2@2 g2@4 d2@2 f2@2", AC: "d2/2", AD: "g1", AE: "c2",
  AF: "c2@15 ~", AG: "g2@4 d2 ~ f2 ~ g2@4 g1@2 d2@2", AH: "c2@4 g1@2 ~ g1 c2@2 ~ c2 g1@2 c2@2",
  AI: "d2@3 ~ a1 ~ c2 ~ d2@4 a1 ~ c2 ~", AJ: "c2@4 g1 ~ a1 ~ c2@2 ~ c2 g1@2 c2@2",
  AK: "bb1@4 f1 ~ g1 ~ bb1@4 f1 ~ d1 ~", AL: "g1@4 d1 ~ f1 ~ g1@4 f1 ~ g1 ~", AM: "d1@4 g1 ~ d2 ~ g2@4 f2@2 d2@2",
  AN: "g2@2 d2 f2 g1@2 d2 f2", AO: "g1@3 ~ d2 ~ f2 ~ g2@4 d2 ~ f2 ~", AP: "c2 ~ c2@2 g1 ~ a1 ~ c2@2 ~ c2 g1@2 c2@2",
  AQ: "c2@4 g1 ~ a1 ~ d2@4 c2@2 d2@2", AR: "g1@3 ~ d1 ~ f1 ~ g1@4 d1@2 f1 ~", AS: "g1@4 d2 ~ f2 ~ g2@2 d2@2 f2@2 c2@2",
  AT: "c2@4 g1 ~ a1 ~ d2@4 a1 ~ c2 ~", AU: "g2@4 d2 ~ f2 ~ g1@4 d2@2 c2@2", AV: "g2@4 d2 ~ f2 ~ d2@4 g2@2 f2 ~",
  AW: "bb1@4 f1 ~ g1 ~ bb1@4 f1@2 g1@2", AX: "c2@2 ~ c2 g1@2 a1@2 d2@4 a1@2 c2 ~",
  AY: "g2@4 d2 ~ f2 ~ g2@2 ~ g2 f2@2 d2@2", AZ: "g1@4 d2 ~ f2 ~ g2 ~ d2@2 f2@2 c2 ~",
  BA: "bb1@3 ~ f1 ~ g1 ~ bb1@2 ~ bb1 f1@2 bb1@2", BB: "c2@2 ~ c2 g1@2 a1@2 d2@2 ~ d2 a1@2 d2@2",
  BC: "g1@2 ~ g1 d1@2 f1@2 g1@2 ~ g1 d1@2 f1@2", BD: "g1@2 ~ g1 d1@2 f1@2 g1 ~ f2 e2 d2 c2 bb1 a1",
  BE: "bb1@4 f1 ~ g1 ~ bb1@2 ~ bb1 f1@2 bb1@2", BF: "c2@3 ~ g1 ~ a1 ~ d2@2 ~ d2 a1@2 c2@2",
  BG: "g1@4 d1 ~ f1 ~ g1@4 d2 ~ f2 ~", BH: "g2@4 d2 ~ f2@2 d2 ~ c2 ~ bb1 a1 g1 ~",
  BI: "bb1@4 f1 ~@2 f1 bb1@4 f1@2 g1@2", BJ: "c2@2 ~ c2 g1@2 a1@2 d2@4 a1@2 c2@2",
  BK: "g1@2 ~ g1 d1@2 f1@2 g1 ~ bb1@2 a1 g1 f1@2", BL: "g1@2 ~ g1 f2@2 e2@2 d2@2 c2 ~ bb1 ~ a1 ~",
  BM: "g1@2 ~ g1 d1 ~ f1 ~ g1@4 d1 ~ f1 ~", BN: "g1@4 ~@2 d2 ~ f2@2 g2@2 f2@2 c2@2", BO: "[d2@9 f2@2 e2@2 c2@2 a1]/2",
  BP: "[g1@14 ~ c2]/2", BQ: "d2@3 ~ a1 ~ c2 ~ d2@3 ~ a1 ~ c2 ~", BR: "d2@4 a1 ~ c2 ~ d2@2 a1@2 c2@2 g1 a1",
  BS: "d1@5 ~@3",
})).s("gm_fretless_bass").gain(0.4)

// chords · piano · "A.PIANO 2"
const piano = note("<A@2 B C@2 D E F@2 ~@37 G H@2 ~@3 I@2 ~@47 J@2 K@2 ~ L@2 ~@7>".pickRestart({
  A: "[~@16 d2@9 ~@7, ~@10 g4@11 ~@11, ~@11 f4@18 ~@3, ~@12 [d3,d4]@17 ~@3]/2", B: "~@8 [a4,f5,a5]@4 [g4,e5,g5]@3 ~",
  C: "[[f4,d5,f5]@21 ~@11]/2", D: "[d4,a4,d5]@13 ~@3", E: "~@8 [f4,a4,f5,a5]@4 [e4,g4,e5,g5]@3 ~",
  F: "[[d4,f4,d5,f5]@9 ~@7]/2", G: "[d5,f5,d6,f6]@7 ~ [c6,e6]@7 ~, ~@8 [c5,e5]@5 ~@3", H: "[[bb4,d5,bb5,d6]@9 ~@7]/2",
  I: "[[g3,d4,a4,bb4,f5,a5,f6] ~@10 a4 bb4 f5 a5 ~ f6@8 ~@8, ~@9 g3@2 ~@21, ~@10 d4@2 ~@3 bb5@3 ~@14]/2", // Gm7
  J: "[[d6,f6]@23 ~ [c6,e6]@7 ~, [d2,d3]@29 ~@3]/2", K: "[[g2,bb5,d6]@25 ~@7]/2",
  L: "[~@8 d2@7 ~, ~@12 g4@19 ~, ~@13 f4@18 ~, ~@14 d4@17 ~, ~@15 d3@11 ~@6]/2",
})).s("gm_piano").gain(0.4).pan(0.2)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~ A B C D E F G H I J K L M N O H P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH
  CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB ~@7
>`.pickRestart({
  A: "~@2 d4!2 ~ c4 ~@2 d4 ~@2 d4 ~@2 d4 ~", B: "~@2 d4!2 ~ d4 ~@2 d4 ~@2 f4 ~ f4 d4 ~",
  C: "~@3 d4 ~ d4 c4 ~ d4 ~@2 d4 ~@4", D: "g4!2 [f4,g4] ~ d4 ~ c4 d4 ~ d4 ~@4 c4 ~",
  E: "~@2 d4!2 ~ d4 c4 ~ d4 ~@2 d4 ~@4", F: "~@2 d4!2 ~ d4 c4 ~ [c4,f4] ~ d4 ~ c4 d4 ~@2",
  G: "~@3 d4 ~ d4 c4 ~ d4 ~@2 d4 ~@3 [f4,a4]", // F
  H: "~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~ [d4,f4]!2 [c4,e4] ~ [bb3,d4] ~ [a3,c4] ~", // F Em Dm C Dm C Bb Am
  I: "~@2 d4 [a3,d4] ~@2 [g3,c4] ~@3 [a3,d4] ~@2 c4 ~ d4", J: "~@2 [a4,d5]!2 ~@6 [d4,f4]!2 ~ c4 ~ d4",
  K: "~@2 d4 ~@3 c4 ~ d4 ~@2 d4 ~@4", L: "~@2 [e4,a4] ~@2 [d4,g4] ~ [d4,f4] ~ [d4,f4] [c4,e4] ~ [a3,d4] ~ [g3,c4] ~",
  M: "~@2 d4 ~@2 c4 ~ d4 ~@3 d4 ~@2 c4 ~", N: "~@2 d4 ~ d4 c4 ~ d4 ~ d4 c4 ~ d4 ~ [c4,f4] ~",
  O: "d4 ~ d4 ~ d4 c4 ~ d4 ~@3 d4 ~@4", P: "~@3 bb3 ~ bb3 [d4,a4] ~ f4 ~@2 [bb3,d4] ~@2 [bb3,f4] ~",
  Q: "~@2 d4 f4 ~ f4 [bb3,d4] ~ [bb3,f4] ~@2 d4 ~@2 bb3 ~", R: "~@3 f4 ~ f4 d4 ~ [d4,f4] ~@2 [c4,f4] ~@2 [d4,f4] ~",
  S: "~@3 [d4,f4] ~ [d4,f4] c4 ~ [d4,f4] ~@2 [c4,f4] ~@2 [d4,f4] ~", // Dm F5 Dm
  T: "~@3 [d4,g4] ~ g4 [e4,a4] ~ [e4,a4]@2 ~ [d4,g4] ~@4", // G5 A5 G5
  U: "~@2 [d4,g4]!2 ~ [d4,g4] ~@2 [d4,g4] ~@2 [d4,g4] ~@2 d4 ~", // G5
  V: "~@3 [bb3,f4] ~ [bb3,f4] [bb3,d4] ~ [bb3,f4] ~@2 [bb3,f4] ~ [bb3,d4] g3 ~", // Bb5 Bb Bb5 Bb
  W: "~@3 [d4,f4] ~ [d4,f4] ~@2 e4 ~@2 c4 ~@2 c5 ~", // Dm
  X: "~@2 [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4] ~@4", // F Em Dm Em F
  Y: "~@2 [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~ [d4,f4] ~ [a3,d4] ~", // F Em Dm C Dm D5
  Z: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4]@2 [e4,g4] [f4,a4] ~ [d4,f4] ~@2", // F Em Dm Em F Dm
  AA: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~ [a3,d4] [g3,c4] ~@2", // F Em Dm C D5 C5
  AB: "~@3 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [d4,f4] ~@4", // F Em Dm Em Dm
  AC: "~@2 [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] f4 ~@4", // F Em Dm Em
  AD: "~@2 [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [d4,f4] ~@4", // F Em Dm Em Dm
  AE: "~@2 f4 [d4,f4] ~ [d4,f4] [c4,e4] ~ [a3,d4] ~ [g3,c4] ~ [a3,d4] ~ [c4,e4] ~", // Dm C D5 C5 D5 C
  AF: "~@2 a4 [a4,d5] ~ [a4,d5] ~@6 c4 ~ d4 ~", AG: "~@2 c4 [c4,f4] ~@2 d4 ~@3 a4 ~ [a4,d5]@2 ~@2",
  AH: "~@3 [f4,a4] ~ [f4,a4] [d4,f4] ~@3 [d4,f4] ~@5", // F Dm
  AI: "~@2 d4 [d4,f4] ~ [d4,f4] [c4,e4] ~ [d4,f4] ~ [c4,e4] ~@2 [d4,f4] ~@2", // Dm C Dm C Dm
  AJ: "~@3 [f4,a4] ~ [f4,a4] [d4,f4] ~@3 c4 ~ d4 ~@3", AK: "~@3 [a4,d5]@3 ~@4 a4 ~ [a4,d5] [f4,a4] ~ [d4,f4]",
  AL: "~@2 d4 [f4,a4] ~ a4 [d4,f4] ~@5 [d4,f4] ~ c4 ~", AM: "d4 ~ [c4,f4] ~ [d4,g4]!2 [c4,f4] ~ d4 ~ c4 ~ a3 g3 f3 d3",
  AN: "~@3 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4]@2 [e4,g4] [f4,a4] ~@4", // F Em Dm Em F
  AO: "~@2 f4 [f4,a4] ~@2 f4 ~ [d4,f4] ~ [c4,e4] ~ [a3,d4] [g3,c4] [a3,d4] ~", // F Dm C D5 C5 D5
  AP: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4] ~@4", // F Em Dm Em F
  AQ: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~ [a3,d4] [g3,c4] [a3,d4] ~", // F Em Dm C D5 C5 D5
  AR: "~@3 [f4,a4] ~ [f4,a4] [e4,g4] ~ d4 ~ c4 ~ d4 ~@3", AS: "~@3 c4 ~@2 d4 ~ d4 ~@3 g4 f4 d4 ~",
  AT: "~@3 d4 ~ d4 c4 ~@3 a3 ~ a3 c4 ~@2", AU: "~@3 d4 ~ d4 c4 ~ f4 e4 d4 ~ c4 ~ d4 ~",
  AV: "~@3 d4 ~ d4 c4 ~ d4 ~ a3 ~@5", AW: "~@3 d4 ~ d4 c4 ~@3 [a4,d5] ~ [g4,c5] ~ [f4,a4] ~",
  AX: "~@3 g4 ~@4 g4!2 f4 ~ e4 ~ d4 ~", AY: "c4 ~ a3 ~ g3 f3 d3 e3 c3 f3 d3 g3 e3 a3 f3 ~",
  AZ: "~@3 [d4,f4] ~ [d4,f4] c4 ~ [a3,d4] ~ [g3,c4] ~@3 [f3,a3] ~", BA: "~@3 [a4,d5] ~ [a4,d5] ~@6 [a4,d5] ~ a4 ~",
  BB: "bb4 ~@2 [bb4,d5] ~ [bb4,d5] [a4,d5] ~ [g4,d5] ~@7", BC: "~@3 [g4,c5] ~ [g4,c5] [f4,a4] ~ [e4,g4] ~ [d4,f4] ~@5",
  BD: "~@3 [d4,f4] ~ [d4,f4] ~@2 [d4,f4] ~@5 d4 f4", // Dm
  BE: "~@2 f4 [d4,f4,a4] ~ [d4,f4,a4] [d4,f4,a4]@2 ~@2 d4 ~ [f4,a4] ~ d4 ~", // Dm F
  BF: "~@3 [c4,f4] ~ d4 [c4,f4] ~ [d4,g4] ~ [c4,f4] ~ d4 ~@3", BG: "~@3 g4 ~ g4 f4 ~ d4 ~ c4 ~ d4 ~ f4 ~",
  BH: "~@3 d4 ~ [c4,f4] ~@2 [c4,f4] ~ d4 ~ c4 ~ d4 ~", BI: "~@2 d4 [c4,f4] ~ [c4,f4] d4 ~ c4 ~ d4 ~ c4 ~ d4 ~",
  BJ: "~@3 [c4,f4] ~ [c4,f4] d4 ~ c4 ~ d4 ~@3 c4 ~", BK: "~@2 d4 [c4,f4] ~ [c4,f4] d4 ~ f4 ~ g4 ~ f4 d4 c4 ~",
  BL: "~@2 d4 f4 ~ f4 d4 ~ [f4,a4] ~ [e4,g4] ~ [d4,f4] ~ d4 ~", // F Em Dm
  BM: "~@3 f4 ~ f4 d4 ~ [f4,a4] ~ [e4,g4] ~ [d4,f4] ~ d4 ~", // F Em Dm
  BN: "~ bb3 [f4,c5] ~ [d4,a4] ~@2 [d4,a4] ~ [d4,a4] [d4,f4] ~ bb3 ~@3", // F5 D5 Dm
  BO: "[a4,c5] d4 [f4,a4] d4 ~ d4 ~ d4 g4 f4 c4 d4 a3 c4 g3 a3", // Am F
  BP: "~@3 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] ~ [f4,a4] ~ d4 ~", // F Em Dm Em F
  BQ: "~@2 c4 d4 ~ d4 c4 ~ d4 ~ f4 ~ d4 c4 ~ d4",
  BR: "~@2 [f4,a4] ~ [f4,a4] ~ [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4] ~@3 f4", // F Em Dm Em F
  BS: "~ f4 d4 ~ c4 ~ d4 ~ [f4,a4]!2 [e4,g4] ~ [d4,f4] ~ [c4,e4] ~", // F Em Dm C
  BT: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4] ~ [a4,d5] ~ [f4,a4]", // F Em Dm Em F D5 F
  BU: "~@2 [e4,g4] ~ [d4,f4] ~ [c4,e4] ~@2 [g3,a3,d4] ~ [g3,c4] ~ [g3,c4] [a3,d4] ~", // Em Dm C Gsus2 C5 D5
  BV: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [d4,f4] ~@2 [c4,e4] ~", // F Em Dm Em Dm C
  BW: "[d4,f4] ~ [c4,e4] ~@2 bb3 ~ c4 d4 ~ [c4,f4] ~ d4 ~ c4 ~", // Dm C F5
  BX: "~@2 [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4] ~@2 d4 ~", // F Em Dm Em F
  BY: "~ f4 e4 ~ c4 ~ d4 ~ a3 c4 ~ [c4,f4] ~ [a3,d4] [g3,c4] ~", // F5 D5 C5
  BZ: "a3 ~ [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4] ~ [a4,d5] ~ [g4,c5]", // F Em Dm Em F D5 C5
  CA: "~@2 [f4,a4] ~ [e4,g4] ~ [d4,f4] ~ [c4,e4] ~ [a3,d4] ~ [g3,c4] [a3,d4] ~ d4", // F Em Dm C D5 C5 D5
  CB: "~@3 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4]@3 ~@2", // F Em Dm Em F
  CC: "~@2 c4 d4 [c4,f4] ~ d4 ~ a4 g4 f4 d4 ~ c4 d4 ~", // F5
  CD: "f4 ~ d4 ~@3 d4 [d4,f4] ~ [d4,f4] [c4,f4] ~ [d4,f4] ~ [d4,g4] ~", // Dm F5 Dm G5
  CE: "[c4,f4] ~ c4 ~ d4 ~ d4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~", // F5 F Em Dm C
  CF: "[d4,f4] ~ d4 ~@3 d4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~", // Dm F Em Dm C
  CG: "d4 ~ c4 ~ a3 ~ g3 f3 ~ f3 a3 ~ c4 ~ d4 ~",
  CH: "~@2 f4 [f4,a4] ~ [e4,f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4]@2 ~@3", // F Fmaj7 Em Dm Em F
  CI: "~@2 d4 f4 ~ [d4,f4] c4 ~ d4 ~ f4 ~ e4 ~ d4 ~", // Dm
  CJ: "~@3 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4]@2 ~@3", // F Em Dm Em F
  CK: "f4 ~ d4 ~ c4 ~@2 [a4,d5] ~@4 [f4,a4] [e4,g4] [d4,f4] ~", // D5 F Em Dm
  CL: "~@4 f4 ~@2 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] ~", // F Em Dm Em
  CM: "~@2 [d4,f4] ~@2 [c4,e4] ~ [d4,f4] ~ [d4,f4] [c4,e4] ~ [a3,d4] ~ [g3,c4] ~", // Dm C Dm C D5 C5
  CN: "a3!2 ~@2 [f4,a4] ~ [f4,a4]!2 ~ [e4,g4] ~@2 [d4,f4] ~ [c4,e4] ~", // F Em Dm C
  CO: "[d4,f4] ~ [c4,e4] ~@6 [a4,d5]@2 ~ [f4,a4] ~ [e4,g4] ~", // Dm C D5 F Em
  CP: "~@2 f4 [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,g4] [f4,a4]@3 ~@2", // F Em Dm Em F
  CQ: "f4 ~ d4 ~ c4 d4 ~ c4 ~ c4 a3 ~ g3 ~ f3 ~", CR: "~@6 [f4,a4]!2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [e4,f4] ~",
  CS: "[d4,f4] ~ [c4,e4] ~@2 [a3,d4] ~ [g3,c4] ~ [g3,c4] [a3,d4] ~ c4 ~ a3 ~", // Dm C D5 C5 D5
  CT: "~@5 [f4,a4] ~ [f4,a4] ~ [e4,g4] ~ [d4,f4] [e4,g4] ~ [d4,f4] ~", // F Em Dm Em Dm
  CU: "~@2 [c4,e4] ~@2 [d4,f4] ~@3 [a3,d4] ~@2 [g3,c4] ~ [a3,d4] ~", // C Dm D5 C5 D5
  CV: "a3 ~@3 d4 ~@2 d4 ~ d4 c4 ~ [d4,f4] ~ [c4,f4] ~", CW: "~@2 d4 ~@5 g4!2 f4 ~ e4 ~ c4 ~",
  CX: "d4 ~ c4 ~@2 d4 ~ d4 ~@7 bb3", CY: "[f4,a4] ~ [e4,g4] ~@2 [d4,f4] ~@2 [e4,g4] ~ [d4,f4] ~@2 [c4,e4] ~@2",
  CZ: "~ [f4,a4] ~@2 [e4,g4] ~ [d4,f4] ~ [f4,a4] ~ [d4,e4,f4] ~@5", // F Em Dm F Dm
  DA: "~ [f4,a4] ~ [f4,a4] [e4,g4] ~ [d4,f4] ~@2 [f4,a4] ~@2 [e4,g4] ~ [d4,f4] ~", DB: "d4 ~@15",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.7)

// chords · piano · "A.PIANO 1"
const piano_2 = note(`<
  ~ A@2 B C A@2 B C A@2 B C A@2 B C D E F G H@2 I J K L M@2 E N M@2 A@2 B C A@2 B C O P Q M ~@8 A@2 R S A T B C U E V W
  H@2 B X Y Z AA AB E AC M@2 E AD Q M E AE M@2 E N AF AG AH AI AJ AK E AL AF AM E AN AO M AP AQ AR AS AT AU ~@8
>`.pickRestart({
  A: "~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~@3 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~", // Dm
  B: "~@2 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~", // Gm7
  C: "~@2 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~@3 [g3,c4,e4]!2 ~@2 [g3,c4,e4] ~", // Gm7 C
  D: "~@2 [a3,bb3,d4,f4]!2 ~@2 [a3,bb3,d4,f4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Bbmaj7
  E: "~@2 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Bbmaj7
  F: "~@2 [bb3,d4,f4,g4,a4] [bb3,d4,f4,a4] ~@2 [bb3,d4,f4,g4,a4] ~@3 [bb3,d4,f4,g4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Bbmaj7
  G: "~@2 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,g4,a4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Bbmaj7
  H: "~@2 [b3,d4,f4,a4]!2 ~@2 [b3,d4,f4,a4] ~@3 [b3,d4,f4,a4]!2 ~@2 [b3,d4,f4,a4] ~", // Bm7b5
  I: "~@2 [bb3,d4,f4]!2 ~@2 [bb3,d4,f4] ~@3 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~", // Bb Gm7
  J: "~@2 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4] ~@3 [g3,bb3,c4,e4] ~", // Gm7 C7
  K: "~@2 [bb3,d4,f4]!2 ~@2 [a3,bb3,d4,f4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Bb Bbmaj7
  L: "~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4] ~@3 [d4,f4,a4]!2 ~@2 [d4,f4,a4] ~", // C Dm
  M: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~", // Gm7
  N: "~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4] ~@3 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~", // C Dm
  O: "~@2 [d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Dm Bbmaj7
  P: "~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4] ~@3 [a3,d4,f4,a4]!2 ~@2 [a3,d4,f4,a4] ~", // C Dm
  Q: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,a4] ~", // Gm7 Bbmaj7
  R: "~@2 [bb3,d4,f4,g4]!2 ~@2 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~", // Gm7
  S: "~@2 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,e4,f4] ~@3 [g3,c4,e4]!2 ~@2 [g3,c4,e4] ~", // Gm7 C
  T: "~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // Dm
  U: "~@2 [a3,bb3,d4,f4]!2 ~@2 [a3,bb3,d4,f4] ~@3 [a3,bb3,d4,f4]!2 ~@2 [a3,bb3,d4,f4] ~", // Bbmaj7
  V: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,a4] ~ [bb3,d4,f4,g4] ~@2 [bb3,d4,f4,a4] bb3 ~ [bb3,d4,f4,g4] ~", // Gm7 Bbmaj7 Gm7 Bbmaj7 Gm7
  W: "~@2 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,g4] ~", // Bbmaj7 Gm7 Bbmaj7 Gm7
  X: "~@2 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4] ~@3 [bb3,c4,e4]!2 ~@2 [bb3,c4,e4] ~", // Bbmaj7 Bb C7
  Y: "~@2 [bb3,d4,f4]!2 ~@2 [bb3,d4,f4,a4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~", // Bb Bbmaj7
  Z: "~@2 [c4,e4,f4,g4] [c4,e4,g4] ~@2 [c4,e4,g4] ~@3 [a3,d4,f4,a4]!2 ~@2 [a3,d4,f4,a4] ~", // C Dm
  AA: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,g4] ~", // Gm7 Bbmaj7 Gm7
  AB: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,a4] ~@3 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~", // Gm7 Bbmaj7 Gm7
  AC: "~@2 [c4,e4,f4,g4]!2 ~@2 [c4,e4,f4,g4] ~@3 [a3,d4,f4]!2 ~@2 [a3,d4,f4,a4] ~", // C Dm
  AD: "~@2 [c4,e4,f4,g4]!2 ~@2 [c4,e4,g4] ~@3 [a3,d4,f4]!2 ~@2 [a3,d4,f4,a4] ~", // C Dm
  AE: "~@2 [c4,e4,f4,g4] [c4,e4,g4] ~@2 [c4,e4,g4] ~@3 [c4,d4,f4,a4] [d4,f4,a4,b4] ~@2 [d4,f4,a4] ~", // C Dm7 Bm7b5 Dm
  AF: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~", // Gm7
  AG: "~@2 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4,a4]!2 ~@2 [g3,bb3,d4,f4,a4] ~", // Gm7
  AH: "~@2 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,a4] ~@3 [bb3,d4,f4,a4] ~@3 [bb3,d4,f4,a4]!2", // Bbmaj7
  AI: "~@2 [c4,e4,f4,g4] [c4,e4,g4] ~@2 [c4,e4,g4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // C Dm
  AJ: "~@2 [bb3,d4,f4,a4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~", // Bbmaj7 Gm7
  AK: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,a4] ~ [bb3,d4,f4,g4] ~ [bb3,d4,f4,a4] ~", // Gm7 Bbmaj7 Gm7 Bbmaj7
  AL: "~@2 [c4,e4,f4,g4] [c4,e4,g4] ~@2 [c4,e4,g4] ~@3 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~", // C Dm
  AM: "~@2 [g3,bb3,d4,f4]!2 ~@2 [g3,bb3,d4,f4] ~@3 [bb3,d4,f4]!2 ~@2 [bb3,d4,f4,g4] ~", // Gm7 Bb Gm7
  AN: "~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4] ~@3 [a3,d4,f4,a4]!2 ~@2 [a3,d4,e4,f4,a4] ~", // C Dm
  AO: "~@2 [bb3,d4,f4,g4]!2 ~@2 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,g4] ~@3 [bb3,d4,f4,g4] ~", // Gm7
  AP: "~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // Dm
  AQ: "~@2 [a3,c4,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // Dm7 Dm
  AR: "~@2 [g3,d4] ~@3 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4] ~", // G5 Gm7
  AS: "~@2 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4] ~@3 [g3,bb3,d4,f4] ~", // Gm7
  AT: "~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // Dm
  AU: "~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~@3 [a3,d4,f4,a4]!2 ~@4", // Dm
})).s("gm_piano").gain(0.35).pan(0.2)

// … 184 more lines

More by Chris Rea