Strudelify

Humdrum

Peter Gabriel

KeyB majorTempo104 bpm
0:00/0:00
// Humdrum — Peter Gabriel
// 104 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 2 "Elec Piano R CH" piano (copy of ch 1 "Elec Piano L CH" piano); ch 2 "Elec Piano R CH" piano (copy of ch 1 "Elec Piano L CH" piano); ch 4 "Elec Bass R CH" celesta (copy of ch 3 "Elec Bass L CH" celesta); ch 4 "Elec Bass R CH" clavinet (copy of ch 3 "Elec Bass L CH" clavinet)
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(104/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 · "Elec Piano L CH"
const piano = note("<A B C D E F G H I J K L M N O N P E Q R S T U V ~@68>".pickRestart({
  A: "[c#4,f5] g#4 b4 c#5 f5 g#4 b4 c#5", B: "c#4@2 g#4@2 f#5 ~ g#4@2 c#5 ~ g#4@2 b4@2 g#4@2",
  C: "c#4@2 g#4@2 b4@2 c#5@2 f5 ~ g#4@2 b4@2 c#5@2, f5 ~@15", D: "c#4@2 g#4@2 f#5@2 g#4@2 c#5 ~ g#4@2 b4@2 c#5 ~",
  E: "[b3,f#4,b4,d#5] ~ f#4 ~ b4 ~ [f#3,f#4,a#4,c#5] ~@5 [d#4,a#4,c#5,f#5] ~@3", // B F# D#m7
  F: "[a#3,g#4,c#5,f5] ~ g#4@2 c#5@2 f5 ~ [b3,f#4,b4,d#5] ~ f#4 ~ b4 ~ [f#3,f#4,a#4,c#5] ~", // A#m7 B F#
  G: "~@2 f3 ~ f#3 ~@3 [c#4,f5] ~ g#4@2 b4@2 c#5 ~", H: "f5 ~ g#4@2 b4 ~ c#5 ~ c#4@2 g#4 ~ f#5 ~ g#4 ~",
  I: "c#5 ~ g#4@2 b4@2 g#4@2 c#4@2 g#4@2 b4@2 c#5@2, ~@8 f5 ~@7", J: "f5@2 g#4@2 b4@2 c#5 ~ c#4@2 g#4 ~ f#5 ~ g#4 ~",
  K: "c#5 ~ g#4 ~ b4 ~ c#5 ~ [b3,f#4,b4,d#5] ~ f#4 ~ b4 ~ [f#3,f#4,a#4,c#5] ~", // B F#
  L: "~@4 [d#4,a#4,c#5,f#5] ~@3 [a#3,g#4,c#5,f5] ~ g#4 ~ c#5@2 f5 ~", // D#m7 A#m7
  M: "[b3,f#4,b4,d#5] ~ f#4 ~ b4 ~ [f#3,f#4,a#4,c#5] ~@3 f3 ~ f#3 ~@3", // B F#
  N: "[c#4,f5] ~ g#4@2 b4@2 c#5@2 f5 ~ g#4@2 b4@2 c#5 ~", O: "c#4@2 g#4@2 f#5 ~ g#4@2 c#5 ~ g#4 ~ b4@2 g#4@2",
  P: "c#4@2 g#4 ~ f#5 ~ g#4 ~ c#5 ~ g#4 ~ b4 ~ c#5 ~",
  Q: "[a#3,g#4,c#5,f5] ~ g#4@2 c#5@2 f5 ~ [b3,f#4,b4,d#5] ~ f#4@2 b4 ~ [f#3,f#4,a#4,c#5] ~", // A#m7 B F#
  R: "~@2 f3 ~ f#3 ~@3 [d#4,a#4,c#5,f#5] ~ [a#3,g#4,c#5,f5] ~@3 [d#4,a#4,c#5,f#5] ~", // D#m7 A#m7 D#m7
  S: "[a#3,g#4,c#5,f5] ~@3 [a3,a4,c5,f5] ~@3 [a3,a4,c5,f5] ~@3 [a3,a4,c5,d#5] ~@3", // A#m7 F Adim
  T: "[f#3,f#4,a#4,c#5] ~ f#4@2 a#4@2 c#5 [f#4,a#4] [f#3,c#5,f5] ~ f#5 ~ f5 ~ c#5 ~", // F# F#maj7
  U: "[d#4,a#4,c#5,f#5] ~ [a#3,g#4,c#5,f5] ~@3 [d#4,a#4,c#5,f#5] ~ [a#3,g#4,c#5,f5] ~@3 [a3,a4,c5,f5] ~@3", // D#m7 A#m7 D#m7 A#m7 F
  V: "[a3,a4,c5,f5] ~@3 [a3,a4,c5,d#5] ~@3 [a#3,f4,a#4,d5] ~@7", // F Adim A#
})).s("gm_piano").gain(0.26).pan(0)

// chords · piano · "Elec Piano L CH"
const piano_2 = note(`<
  ~@25 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD@2 AE@2 AF AG AH@2 AD@2 AI@2 AJ@2 AK@2 AL AM AN AO
  AP AA AQ@2 AR@2 AS@2 AT AU AV AW AX AY AZ BA BB BC
>`.pickRestart({
  A: "~@8 [g#4,b4,c#5,f5] ~ g#4@2 b4 ~ [g#4,b4,c#5,f5] ~", // C#7
  B: "g#4 ~ b4 ~ [b4,c#5,f5] ~ g#4 ~@3 g#4 ~ [b4,c#5,f#5] ~ g#4 ~", // C#7 Bsus2
  C: "[b4,c#5] ~ g#4 ~ c#5@2 g#4 ~ [c#3,b4,c#5,f5] ~ g#4@2 b4 ~ [c#3,b4,c#5,f5] ~", // Bsus2 C#7
  D: "g#4 ~ b4@2 [c#4,b4,c#5,f5] ~ g#3 ~ c#3 ~ g#4 ~ f#5@2 g#4@2, ~@2 g#4 ~@9 g#4 ~@3", // C#7
  E: "c#5 ~ g#4 ~ b4@2 g#4@2 e5@2 g#4@2 a4@2 b4@2", F: "e5@2 a4@2 b4@2 e5 ~ b5 ~ g#4@2 a4@2 b4@2",
  G: "e5@2 g#4@2 a4@2 b4@2 e5 ~ a4@2 b4@2 c#5@2", H: "e5 ~ a4@2 b4@2 c#5 ~ f#5 ~ a4 ~ b4 ~ c#5 ~",
  I: "f#5 ~ a4 ~ b4 ~ c#5 ~ e5 ~ g#4@2 a4@2 b4@2", J: "e5@2 g#4@2 a4@2 b4 ~ b5 ~ g#4@2 a4@2 b4@2",
  K: "e5 g#4 a4 b4 e5 a4 b4 c#5", L: "e5 ~ a4@2 b4@2 c#5 ~ f#5 ~ a4@2 b4@2 c#5 ~",
  M: "g#5 ~ a5 ~ g#5 ~ f#5 ~ [g#4,b4,c#5,f5] ~ g#4 ~ b4@2 [d#3,b4,c#5,f5] ~", // C#7
  N: "g#4@2 b4@2 [c#5,f5] ~ g#3 ~ c#3 ~ g#4 ~ f#5@2 c#3@2, ~@2 c#4 ~@5", // C#
  O: "c#5 ~ g#4 ~ b4@2 g#4 ~ [c#3,g#4,b4,c#5,f5] ~ g#4@2 b4 ~ [c#3,b4,c#5,f5] ~, ~@4 c#3 ~@11", // C#7
  P: "g#4@2 b4@2 [c#3,c#5,f5] ~ g#4 ~ c#3@2 g#4 ~ f#5@2 g#4 ~", // C#
  Q: "c#5 ~ g#4@2 b4@2 c#5 ~ [b3,d#5]@2 f#4@2 b4 ~ [f#3,f#4,a#4,c#5] ~, ~@8 [f#4,b4] ~@7", // B F# B5
  R: "~@4 [d#4,a#4,c#5,f#5] ~@3 [a#3,g#4,c#5,f5] ~ g#4@2 c#5@2 f5 ~", // D#m7 A#m7
  S: "[b3,f#4,d#5] ~ f#4 ~ b4 ~ [f#3,f#4,a#4,c#5] ~@3 f3 ~ f#3 ~@3, b4 ~@7", // B F#
  T: "[d#4,a#4,c#5,f#5] ~ [a#3,g#4,c#5,f5] ~@3 [d#4,a#4,c#5,f#5] ~ [a#3,g#4,c#5,f5] ~@3 [a3,a4,c5,f5] ~@3", // D#m7 A#m7 D#m7 A#m7 F
  U: "[a3,a4,c5,f5] ~@3 [a3,c5,d#5] ~@3 [f#3,f#4,a#4,c#5] ~ [f#4,a#4] ~ [a#4,c#5,f5] ~ f#4@2", // F Adim F# A#m
  V: "[f#3,f#4,a#4,c#5,f5] ~ f#4@2 [a#4,c#5,f5] ~ f#4 ~ [d#4,a#4,c#5,f#5] ~ [a#3,g#4,c#5,f5] ~@3 [d#4,a#4,c#5,f#5] ~", // F#maj7 A#m D#m7 A#m7 D#m7
  W: "[g#4,c#5,f5] ~@3 [a3,a4,f5] ~@3 [a3,a4,c5,f5] ~@3 [a3,a4,c5,d#5] ~@3, ~@2 c5 ~@5", // C# Dm F Adim
  X: "[a#3,f4,a#4,d5] ~@3 a#4 ~ c5@2 f5@2 ~@2 a#4@2 c5@2, ~@2 f4@4 a#4 ~ a#4 ~ f4@4 ~@2", // A#
  Y: "f5@2 ~@2 a#4@2 c5 ~ [a#3,f4,a#4,c5,f5] ~@2 [a#4,c5,d#5] ~@2 d5 ~, a#3 ~ f4@4 ~@5 f4@2 ~@3", // A#sus2 Cm7
  Z: "[a#3,f#5] ~ b4@2 c#5@2 f#4@2 f#5@2 b4@2 c#5@2 f#4@2", AA: "f#5 b4 c#5 f#4 f#5 b4 c#5 f#4, ~@3 c#3",
  AB: "f#5 f#4 b4 c#5 f#5 f#4 b4 c#5, e3@3 ~@5", AC: "~ f#4 b4 c#5 f#5 f#4 b4 c#5, f#5 ~@7, ~ e3@11 c#3@4",
  AD: "[f#5 b4 c#5 f#4 f#5 b4 c#5 f#4 f#5 b4 c#5 f#4 f#5 b4 c#5 f#4, d#3@7 c#3]/2",
  AE: "[f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5 ~, e3@7 c#3]/2",
  AF: "g#5 ~ g#4@2 c#5@2 d#5@2 g#5@2 g#4@2 c#5@2 d#5@2, d#3", AG: "g#5 g#4 c#5 d#5 g#5 g#4 c#5 d#5, f#3",
  AH: "[g#5 g#4 c#5 d#5 g#5 g#4 c#5 d#5 g#5 g#4 c#5 d#5 g#5 g#4 c#5 d#5, f3]/2",
  AI: "[f#5 f#4 b4 c#5 f#5 f#4 b4 c#5 f#5 f#4 b4 c#5 f#5 f#4 b4 c#5, e3@27 ~ c#3@4]/2",
  AJ: "[f#5 b4 c#5 f#4 f#5 c#5 b4 f#4 f#5 b4 c#5 f#4 f#5 c#5 b4 f#4, d#3]/2",
  AK: "[f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5@2 f#5@2 ~ f#4 b4@2 c#5 ~, c#3@4 ~@2 e3@21 c#3@2 ~@3]/2",
  AL: "g#5 g#4 c#5 d#5 g#5 g#4 [d#2,d#3,c#5] d#5, [d#2,d#3]@11 ~@5", // D#7 D#
  AM: "[f2,f3,g#5]@2 g#4@2 c#5@2 d#5@2 g#5@2 g#4@2 [f#2,f#3,c#5]@2 d#5 ~, ~@4 [f#2,f#3]@7 ~@5", // Fm F#5 F#
  AN: "g#5 g#4 c#5 d#5 g#5 g#4 c#5 d#5, [f2,f3]@13 ~@3, e2 ~@15", AO: "g#5@2 g#4@2 c#5@2 d#5@2 g#5@2 g#4@2 c#5@2 d#5 ~",
  AP: "[d#3,f#5] b4 c#5 f#4 f#5 b4 c#5 f#4", // D#m
  AQ: "[f#5 f#4 b4 c#5 f#5 f#4 b4 c#5 f#5 f#4 b4 c#5 f#5 f#4 b4 c#5, e3@7 c#3]/2",
  AR: "[f#5@2 c#5 ~ b4@2 f#4@2 f#5@2 b4@2 c#5@2 f#4@2 ~ f#4@2 ~ b4@2 c#5@2 f#5@2 c#5@2 b4@2 f#4@2, d#3, ~@8 f#5 ~@7]/2",
  AS: "[f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 b4@2 c#5@2 f#5@2 f#4@2 [c#3,b4]@2 c#5 ~, e3@7 ~]/2", // C#7
  AT: "g#5 g#4 c#5 d#5 g#5 g#4 [d#3,c#5] d#5, [d#2,d#3]@10 ~@2 d#2 ~@3", // D#7 D#
  AU: "g#5@2 g#4@2 c#5@2 d#5@2 g#5@2 g#4@2 c#5@2 d#5 ~, [f#2,f#3]@7 ~", // F#
  AV: "g#5 g#4 c#5 d#5 g#5 g#4 c#5 d#5, f3@7 ~ f3@7 ~",
  AW: "g#5@2 g#4@2 c#5@2 d#5@2 g#5@2 g#4@2 c#5 ~ d#5@2, f3@7 ~ f3@7 ~",
  AX: "g5@2 ~@2 b4@2 d5@2 g5@2 g4@2 b4@2 g5 ~, g3@7 ~, ~ g4@2 ~@5",
  AY: "f#5@2 g4@2 b4@2 d5@2 e5@2 ~@2 b4@2 d5 ~, g3, ~@10 g4@5 ~",
  AZ: "f#5 ~ b4@2 c#5@2 f#4@2 f#5@2 b4@2 c#5@2 f#4@2, b3@15 ~", BA: "f#5 f#4 b4 c#5 f#5 f#4 b4 c#5, b3@13 ~@3",
  BB: "~@3 f#4@2 b4@3 c#5@3 f#5@3 f#4 ~, b3@7 ~", BC: "~@2 d#5@5 ~@9, [b3,f#4]@7 ~@9, ~ [b4,c#5]@6 ~@9",
})).s("gm_piano").gain(0.26).pan(0)

// bass · celesta · "Elec Bass L CH"
const bass = note("<~@25 A B C B D@8 E F C B G@2 H I J K L M ~@43>".pickRestart({
  A: "~@4 c#2 ~@2 c#2", B: "~ c#3@2 g#2 c#2 ~@2 c#2", C: "~ g#2@2 c#3 c#2 ~@2 c#2",
  D: "[~@2 g#2@6 c#3@14 g#2@2 c#3@13 ~ c#3@2 d3@14 a3@2 d4@6 c#4@4 b3@2 a3@2 f#3@2 c#3@14 g#2@2 c#2@10 c#3@6 d3@4 a3@2 d4@8 c#4@4 b3@4 a3@2, ~@56 c4 ~@71]/8",
  E: "~ f#3@2 g#3 c#3 ~@2 c#3", F: "~@2 c#3 g#2 c#2 ~@2 c#3", G: "[~@2 c#3@4 ~@2 b2@6 f#2@6 d#3@3 ~ a#2@8]/2",
  H: "b2@3 f#2@2 f2 f#2 ~", I: "d#3 ~ a#2@3 ~ d#3 ~ a#2@3 ~ a2@3 ~", J: "a2@3 ~ a2@4 f#2@8",
  K: "f#3@6 f3@2 d#3@2 a#2@4 d#3 ~", L: "a#2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", M: "a#2@7 ~",
})).s("gm_electric_bass_finger").gain(0.26).pan(0)

// bass · clavinet · "Elec Bass L CH"
const bass_2 = note(`<
  ~@50 A@2 B@2 A@2 B@2 C D E@2 F@2 G@2 F@2 G@2 H D E@2 F@2 G@2 F@2 G@2 H D E@2 I@2 J@2 ~@2
>`.pickRestart({
  A: "[d#3@7 c#3]/2", B: "[e3@7 c#3]/2", C: "d#3", D: "f#2", E: "f2/2", F: "[d#2@7 c#2]/2", G: "[e2@7 c#2]/2", H: "d#2",
  I: "g2/2", J: "[b2@15 ~]/2",
})).s("gm_clavinet").gain(0.36).pan(0)

// other · tenor sax · "Flute"
const tenor_sax = note("<~@29 A@2 B C@3 D E@2 ~@54>".pickRestart({
  A: "[~@8 e4@12 e4@4 b4@7 ~]/2", B: "b4@2 ~ a4@3 g#4@2 e4@7 ~",
  C: "[e4@2 ~ e4@2 ~ e4@2 f#4@15 ~ e4@11 ~ e4@4 b4@7 ~]/3", D: "b4@3 a4@3 g#4@2 e4@6 ~@2",
  E: "[e4@2 ~ e4@3 f#4@2 b3@13 ~@11]/2",
})).s("gm_tenor_sax").gain(0.26)

// chords · acoustic bass · "Flute"
const acoustic_bass = note("<~@48 A@2 B@8 C@4 D@8 E@4 F@8 G@4 ~@6>".pickRestart({
  A: "[g4@8 g4 ~@8 c4@13 ~@2, g3@29 ~@3, d4@17 ~@15, ~@2 f4@5 ~]/2",
  B: "[c#4@16 ~@16 c#4@16 d#4@3 d#4@13, [b3,f#4]@125 ~@3, g#3@37 ~ f#3@87 ~@3, ~@32 d#4@31 ~@65]/8", // B5
  C: "[g#4@2 f#4@2 ~ g#4@3, [g#3,c#4,d#4]@29 ~@3, ~ f4]/4", D: "[c#4 d#4 c#4 d#4, [f#3,b3,f#4]@31 ~]/8",
  E: "[~ f#4 f4@2, [g#3,c#4,d#4,g#4]@29 ~@3]/4", F: "[f#3 [d#3,d#4] c#4 d#4, [b3,f#4]@31 ~, c#4@37 ~@27 f#3@59 ~@5]/8",
  G: "[g#4@16 f#4@5 ~ f#4@10 f4@28 ~@4, [g#3,c#4,d#4]@15 ~, ~@21 g#4@39 ~@4]/4", // G#sus4
})).s("gm_acoustic_bass").gain(0.26)

// chords · piano · "Drums"
const piano_3 = note(`<
  ~@25 A B C D E F G H@2 I H@2 J B K L M N O ~ P Q ~ R S T U V W V W T X Y Z AA AB AC AD AE AF AE AF AG AH AI@2 AJ AK V
  AF AE W T AL AM AN AO AP AQ AR AS ~@5
>`.pickRestart({
  A: "~@2 e3!2 e3@2 d3 ~ [a3,c4] ~ a3 ~ [e3,a3] ~ d#2@2, ~@8 d#2@2 ~@4 a3 ~", // Am A5
  B: "a3 ~ d#2@2 [e3,a3] ~ b3 ~ [d#2,a3] ~ a3 ~ [e3,a3] ~ d#2@2, ~@2 a3 ~@11 a3 ~", // A5 D#dim A5
  C: "a3 ~ d#2@2 [e3,a3] ~ [d#2,a3] ~ [d#2,a3,c4] ~ a3 ~ [e3,a3] ~ [d#2,a3] ~, ~@2 a3 ~@13", // A5 D#dim Adim A5 D#dim
  D: "a3 ~ d#2@2 [e3,a3] ~ [d#2,b3] ~ [d#2,a3] ~ a3 ~ [e3,a3] ~ [d#2,a3] ~, ~@2 a3 ~@13", // A5 G#m D#dim A5 D#dim
  E: "a3 ~ d#2@2 [e3,a3] ~ [d#2,a3] ~ [d#2,a3,d#4] ~@5 [d#2,d#4] ~, ~@2 a3 ~@13", // A5 D#dim D#
  F: "~@2 d#4 ~@3 [d#2,d#4] ~ [d#2,d#4] ~@5 [d#2,d#4] ~", G: "~@2 d#3 ~@3 [d#2,d#4] ~ [d#2,d#4] ~@3 d#4 ~ [d#2,d#4] ~",
  H: "d#4 ~ [d#3,d#4] ~ d#4 ~ [d#2,d#4] ~ [d#2,d#4] ~ d#4 ~ d#4 ~ [d#2,d#4] ~", // D#
  I: "d#4 ~ [d#3,d#4] ~ d#4 ~ [d#2,d#4] ~ [d#2,d#4] ~@3 d#4 ~ [d#2,d#4] ~", // D#
  J: "f3 ~ f3 ~ d3@2 c3 ~ [d#2,a3,c4] ~ a3 d#2 [e3,a3] ~ d#2@2, ~@14 a3 ~", // Adim A5
  K: "a3 ~ d#2@2 [e3,a3] ~ [d#2,a3] ~ [d#2,a3,c4,d4] ~ a3 d#2 [e3,a3] ~ d#2@2, ~@2 a3 ~@11 a3 ~", // A5 D#dim Adim A5
  L: "a3 ~ d#2@2 [e3,a3] ~ b3 ~ [d#2,a3] ~ a3 ~ [e3,a3] ~ [d#2,a3] ~, ~@2 a3 ~@13", // A5 D#dim A5 D#dim
  M: "a3 ~ d#2@2 [e3,a3] ~ [d#2,a3] ~ [d#2,c4]@2 ~@4 [d#2,c4] ~, ~@2 a3 ~@13", N: "~@4 d#4 ~@3 d#4 ~@7",
  O: "d#2 ~@2 d#2 ~@4, c4 ~@5 c4 ~@9", P: "~@8 d#4 ~@5 d#4 ~", Q: "~@4 d#4 ~@11", R: "~@6 d#2!2 f3 ~@5 d#2@2",
  S: "~@2 f3@2 ~@2 d#2@2 d3@2 ~@2 c3@2 b2 ~", T: "[d#2,c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 d#4 ~ d#2 ~",
  U: "[d#2,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 [c4,d#4] ~@3, ~@6 d#2 ~", // D# Emaj7 Cm
  V: "[c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 d#4 ~ d#2 ~, d#2 ~@7", // Cm Emaj7
  W: "d#2@2 ~@2 d#4 ~ d#2@2 [e3,d#4] ~@3 [c4,d#4] ~@3, d#4 ~@11 d#2@2 ~@2", // Emaj7 Cm
  X: "d#2@2 e3@2 d#4 ~ d#2@2 [f3,d#4] ~@3 d3@2 c3 ~, d#4 ~@11 d#4 ~@3", // F7
  Y: "[d#2,c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 [c4,d#4] ~@3, ~@6 d#2 ~", // Cm Emaj7 Cm
  Z: "[c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 [d#2,c4,d#4] ~@3, d#2 ~@7", // Cm Emaj7 Cm
  AA: "[d#2,c4,d#4] ~@3 d#4 ~ d#2!2 e3@2 ~@2 d#4 ~ d#2@2, ~@8 d#4 ~@7", // Cm
  AB: "d#4 ~ f3@2 d#4 ~ d#2@2 d3@2 ~@2 c3@2 b2 ~, ~@8 d#4 ~@3 d#4 ~@3",
  AC: "[d#2,b3,c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 d#4 ~ d#2 ~", // Cm Emaj7
  AD: "[d#2,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 d#2@2 ~@2, ~@12 d#4 ~@3", // D# Emaj7
  AE: "d#2@2 ~@2 d#4 ~ d#2@2 [e3,d#4] ~@3 d#4 ~ d#2 ~, d#4 ~@15", // Emaj7
  AF: "d#2@2 ~@2 d#4 ~ d#2@2 [e3,d#4] ~@3 d#2@2 ~@2, d#4 ~@11 d#4 ~@3", // Emaj7
  AG: "d#2@2 ~@2 d#4 ~ d#2@2 [e3,d#4] ~ d#2@2 d#4 ~ d#2@2, d#4 ~@15", // Emaj7
  AH: "d#4 ~@3 d#4 ~ d#2@2 d3@4 c3@2 b2 ~, ~@2 f3@4 ~@2 d#4 ~@3 d#4 ~@3",
  AI: "[c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 [c4,d#4] ~@3, d#2 ~@5 d#2 ~", // Cm Emaj7 Cm
  AJ: "[c4,d#4] ~@3 d#4 ~ d#2!2 e3@2 d#2@2 d#4 ~ d#2@2, d#2@2 ~@6 d#4 ~@7", // Cm
  AK: "d#4 ~ e3@2 d#4 ~ d#2@2 [f3,d#4] ~ f3 ~ d3@2 c3 ~, ~@12 d#4 ~@3", // F7
  AL: "d#2@2 ~@2 d#4 ~@3 [e3,d#4] ~@3 [b3,c4,d#4] ~@3, d#4 ~@11 d#2@2 ~@2", // Emaj7 B
  AM: "[d#2,c4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 d#4 ~ d#2@2", AN: "f3 ~ f3 ~ f3 ~ f3 ~ [d#2,d3] ~ d3 ~ c3@2 b2 ~",
  AO: "[c4,d4,d#4] ~@3 d#4 ~ d#2@2 [e3,d#4] ~@3 [c4,d#4] ~@3, d#2 ~@5 d#2 ~", // Cm Emaj7 Cm
  AP: "[c4,d#4] ~@3 d#4 ~ d#2!2 e3@2 ~@2 [d#2,c4,d#4] ~@3, d#2@2 ~@6 d#4 ~@7", // Cm
  AQ: "[c4,d#4] ~@3 d#4 ~ d#2@2 e3@2 ~@2 d#4 ~ d#2 ~, d#2@2 ~@6 d#4 ~@7", // Cm
  AR: "d#2@2 ~@2 d#4 ~ d#2@2 d#4 ~ d3@2 c3@2 b2 ~, d#4 ~ e3@4 ~@6 d#4 ~@3", AS: "[d#2,c4] ~@15",
})).s("gm_piano").gain(0.31)

stack(piano, piano_2, bass, bass_2, tenor_sax, acoustic_bass, piano_3)

More by Peter Gabriel