Strudelify

Autumn Leaves

Joseph Kosma

KeyE minorTempo89 bpm
0:00/0:00
// Autumn Leaves — Joseph Kosma
// 89 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 57 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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 · vibraphone
const vibraphone = note("<~@29 A@2 B@5 C@2 ~@8 D@7 E@2 ~@2>".pickRestart({
  A: "[~@15 f#5@40 ~@4 g5@37, ~@12 b3@43 ~ [e3,b3]@40, ~@13 [a4,d#5]@43 ~ [e4,b4]@39, ~@29 e5@19]/2", // E5 Adim E5
  B: "[~@40 [d4,d5,f#5,b5,d6]@18 ~@3 b5@41 ~@5 c6@13 ~@3 [c5,d#5,a5]@18 ~@3 f#5@28 ~@5 b5@42 ~@3 a5@18, ~@2 [a3,c5]@56 g3@44 ~@2 f#3@37 ~@2 [b3,a4,d#5]@30 ~@47 c#3@20, ~@2 d4@3 a5@54 ~@116 g5@44 ~@21, ~@3 a4@56 [g4,d5,g5]@43 ~@3 f#4@36 ~@33 [e4,b4]@45 ~@2 [c#4,a4,e5]@19, ~@3 f#5@37 ~@65 [d#5,a5]@15 ~@120]/5", // Bm Adim Am B7 G5 E5 A D#dim
  C: "[~@2 f#5@7 ~ e5@13 ~@9, ~@3 b3@23 ~@2 [b3,g4,b4]@41 ~@27, ~@4 [f#3,a4,d#5]@23 ~@69]/2", // Em D#dim
  D: "[~@23 f#5@39 ~@2 g5@38 ~@3 a5@35 ~ [c5,f#5,b5,d6]@17 ~@2 b5@44 ~@18 [c5,d#5]@15 ~ f#5@29 ~@2 b5@42 ~@3 a5@21 ~, ~@20 [b3,a4]@41 ~@2 [b3,e4,b4,e5]@39 ~ [a3,d4,f#5]@36 ~ d4@17 ~ [d4,g4,d5]@47 f#3@32 [f#3,b3]@30 ~ [b3,g5]@43 ~ c#3@23 ~, ~@21 d#5@41 ~@40 c5@37 ~@20 g5@46 ~ f#4@31 [a4,d#5]@3 ~@27 b4@44 ~@2 [a4,e5]@22 ~, ~@206 [d#5,a5]@15 a5@15 ~@100, ~@69 c6@10 ~@33]/7", // Bm Cm B7 E5 D G5 B5 Em …
  E: "[~@2 f#3@28 ~@3 e5@39 ~@24, ~ [a4,d#5,f#5]@29 ~ [e3,b3,e4]@41 ~@24, ~@4 [g4,b4]@5 ~@3]/2", // D#dim E5 G
})).s("gm_vibraphone").gain(0.13)

// chords · vibraphone · soft notes
const vibraphone_soft = note("<~@33 A@3 B@2 ~@9 C@2 D@2 E@2 F G@2 ~>".pickRestart({
  A: "[~@23 f#3@15 ~ [e3,b3]@23 ~@10]/3", B: "[~@28 e4@41 ~@27, ~@9 e3@14 ~@9]/2", C: "[~@15 e3@39 ~ d3@37 ~@4]/2",
  D: "[~@13 g3@47 ~@36]/2", E: "[~@28 e4@43 ~@2 c#4@22 ~, ~@27 e3@44 ~@25]/2", F: "~ b3@29 ~@18",
  G: "[~@25 e3@62 ~@9]/2",
})).s("gm_vibraphone").gain(0.04)

// bass · acoustic bass
const bass = note("<~@6 A@6 B@3 C@7 D@2 E F G H@2 I@2 J@2 K@2 L@3 M N@2 O@2 P Q R@3 S@2 T@3 U V@2 ~>".pickRestart({
  A: "[~@41 e3@17 d3@13 ~@2 c#3@18 b2@19 ~@3 a2@35 e2@27 g#2@33 ~@6 g#2@16 ~ a2@18 ~@2 c3@37]/6",
  B: "[~@3 f#2@17 c3@9 b2@24 ~@22 e3@11 ~@4 d3@15 c#3@10 c3@6 ~ b2@20 ~@2]/3",
  C: "[e3@16 d3@15 ~ c3@10 g2@40 ~ f#2@20 b2@18 g2@11 e2@8 d2@18 c#2@18 ~ c3@21 ~ b2@15 f#2@8 b2@37 ~@2 a2@23 ~ a2@5 ~@2 d3@22 ~ g2@15 ~@2 g2@4]/7",
  D: "[~@2 g2@25 ~ f#2@17 d3@6 b2@25 e2@20]/2", E: "b2@29 ~ a2@17 ~", F: "a2@5 ~ d3@20 ~ g2@16 d3@5",
  G: "~ g3@20 ~ f#2@19 f#3@7", H: "[b2@30 e2@24 ~ b2@8 e2@30 ~@3]/2",
  I: "[~@13 b2@20 c3@6 b2@21 e2@7 b2@5 d3@4 e3@20]/2", J: "[~@9 a2@6 d3@5 e3@5 ~ d3@32 g2@37 ~, ~@2 d2@11 ~@83]/2",
  K: "[~@11 f#3@24 ~@11 b2@32 e2@18, ~@5 f#2@15 ~@28]/2",
  L: "[b2@5 d3@23 c#3@14 c3@10 b2@12 f#2@12 e2@12 b2@16 ~@2 g3@38]/3", M: "~@4 a2@17 ~@2 a2@5 ~ d3@19",
  N: "[~ g2@14 ~@3 g2@5 ~ g3@22 ~ f#2@17 ~@3 f#2@5 b2@23 ~]/2", O: "[e2@19 ~ b2@8 f#3@8 e3@20 ~ a2@18 a3@6 d3@15]/2",
  P: "~@3 g2@15 ~ g3@6 d3@23", Q: "~ f#2@9 f#3@3 b2@11",
  R: "[~@4 e2@52 ~@12 b2@20 c3@5 ~ b2@17 ~ e2@4 b2@5 ~ e3@4 ~@4 g3@14]/3",
  S: "[~@7 d2@6 a2@5 ~ d3@5 e3@6 d3@23 c3@11 g2@32]/2",
  T: "[~@15 f#3@29 ~ b2@19 ~@2 b2@9 e2@15 b2@5 e3@4 ~ d3@6 g3@12 ~ c#3@13 c3@12, ~@7 f#2@15 ~@50]/3",
  U: "~ b2@30 ~ e2@16", V: "[b2@10 a2@17 e2@40 ~@29]/2",
})).s("gm_acoustic_bass").gain(0.25)

// chords · pad warm
const pad_warm = note("<~@15 A@6 B@5 C@4 ~@8 D E@2 F@2 G H I@8 J@4>".pickRestart({
  A: "[~ [e3,g3,b3,e4]@15 ~ [d3,f#4,c5,e5]@23 ~ [d4,b4]@40 ~@23 [a3,d4]@17 e3@19 ~ d3@17 [c#3,a#3,e4,a#4]@18 [c3,a#3,e4,g4]@22 ~ f#4@46 ~@16 [e3,a3,e4,a4]@27, ~@40 [d3,g4]@41 f#2@26 ~@91 [f#2,b2,a3,d#4]@46 ~@44, ~@82 [c4,d#4,a4]@25 ~@181, ~@83 f#3@25 ~@13 [g3,b3,e4,b4]@37 ~@130, ~@103 f#4@18 ~@167]/6", // Em D7 G D5 A#dim C7 A5 G5 …
  B: "[~@2 [a2,d3,d4,f#4,a4]@25 [d3,d4,f#4]@22 [g3,e4]@22 ~ [f#3,c4,e4]@26 ~ b3@25 ~ g4@48 ~ [c4,e4,a4]@24 ~ d3@20 [d4,f#4,b4]@21, ~@27 [g2,b4]@44 f#2@53 [e2,b2,g3,e4]@50 ~@66, ~@36 a4@26 ~@25 c5@22 ~@11, ~@98 [b2,d#4]@26 ~@49 a2@25 [d4,f#4,a4]@20 ~@22]/5", // D C F#m7b5 Am Bm G Em B …
  C: "[~ [g3,e4]@20 ~ [f#2,f#3,c4,e4]@26 [b2,b3,d#4]@28 ~@2 [e3,g3,b3,e4]@34 ~ g3@44 ~@35, ~@22 a4@54 ~ [e2,b2]@35 [e4,g4,b4]@44 ~@36]/4", // C F#m7b5 B Em E5 Em
  D: "~ [a3,c4,e4,c5]@6 [d3,d4,f#4]@5, ~@3 a2@25 ~@20", // Am D
  E: "[~ [d3,d4,f#4]@22 [g3,e4]@23 ~ f#3@23 [b2,b3,d#4]@26, g2@23 [f#2,a4]@25, ~ b4@45 [c4,e4]@25 ~@25]/2", // D C B F#m C
  F: "[~ [b2,e3]@55 [a2,a3,c4,e4,a4,c5]@24 [d4,f#4,a4]@16, [e2,b3,g4,b4]@19 ~@13]/2", // E5 Am D Em
  G: "~@3 [d4,f#4]@20 ~ [d3,g3,e4]@24, ~ g2@23, ~ b4@15", H: "~@3 [c4,e4]@23 [b2,b3,d#4]@22, ~ [f#2,f#3]@23, ~ a4@15",
  I: "[~@3 [e2,b2,g3,b3,e4]@28 [g4,b4,e5]@38 [f#2,b2,a3,d#4,f#4]@42 ~ [e3,g4]@39 [a2,d3,c4,f#4,a4]@37 [d3,c4,f#4,b4,d5]@16 ~ [d4,g4,b4]@49 [d#4,a4]@16 [c4,d#4,a4]@14 [a3,d#4,f#4]@32 [b2,e3,b3,g4,b4]@42 [c#3,a3,e4,a4]@26, ~@111 [e2,b2,b3,e4]@40 ~@53 [g2,d3,g3]@50 [f#2,f#3,c5]@31 ~@99]/8", // Em B7 Em D7 Bm G D#dim Adim …
  J: "[[a3,d#4,f#4]@28 ~@4 [g3,b3,e4]@39 ~ e5@96 ~@24, ~@31 e2@40 [e3,g4,b4]@96 ~@25]/4", // D#dim Em
})).s("gm_pad_warm").gain(0.15)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@13 A@2 B@2 ~@3 C@2 ~@3 D@2 ~ E@2 ~@8 F ~@3 G ~@2 H@2 ~ I ~ J@3 K ~@3>".pickRestart({
  A: "[~@25 e4@49 ~ [a3,d#4,f#4]@20 ~, ~@74 b2@21 ~]/2", B: "[~@17 c4@23 g2@43 ~@13]/2",
  C: "[~@21 [a2,c4]@28 d2@26 ~@21, ~@7 c5@18 ~@7]/2", D: "[~@6 d2@21 g2@41 ~@28]/2",
  E: "[~@17 b3@44 ~@35, ~@4 [e3,e5]@11 ~@9]/2", F: "~@5 a4@23 ~ d2@19", G: "~@2 d3",
  H: "[~@31 [e3,g3,b3,e4]@39 ~@26]/2", I: "~@7 d2@37 ~@4", J: "[~@45 f#2@31 e2@41 c#2@27, ~@11 b2@8 ~@17]/3",
  K: "~ b2@27 ~@20",
})).s("gm_pad_warm").gain(0.08)

// chords · piano
const piano = note("<A@2 B@7 C@3 D@5 E@5 F G@3 H I@4 J@7 K L@2 M@3 N@3 O@6 P Q@2 ~>".pickRestart({
  A: "[~@53 d#5@4 f#5@21 e5@18, ~@9 e2@23, ~@7 b2@17, ~@28 g3@22 c#5@7 ~@39, ~@15 b4@4 ~@13]/2",
  B: "[~@28 g4@4 ~@23 c5@20 ~@2 e4@16 [e4,g4,c5,e5]@8 ~@5 [e4,g4,c5,e5]@5 ~ [d4,f#4,b4,d5]@7 [c4,e4,a4,c5]@8 [c4,e4,c5,e5]@11 ~ [c4,a4,c5]@28 ~@15 f#4@6 ~@3 f4@4 ~@18 b2@22 ~@10 g4@4 ~@10 g4@4 ~@13 e4@6 f#4@18 ~ f#4@5 ~@6 g4@5 a4@5 ~@5 g4@6 a4@3, ~@4 a2@70 ~@93 b2@46 ~@22 [e3,g3,e4]@15 [d3,e4]@14 [g3,b3]@18 ~@24 a2@30, ~@5 e3@69 ~ a3@19 ~@142 b3@14 ~@13 c#3@18 ~ [b2,a3]@25 ~@29, ~@6 c4@19 f#4@7 d5@42 ~@96 b4@66 ~@35 g4@11 ~@40 f#4@14, ~@20 e4@14 ~@42 c4@18 ~@7 [f#4,a4,d5,f#5]@11 ~@56 f#4@14 ~@6 f#4@6 ~@3 f#4@38 ~@6 f#4@9 ~@4 f#4@10 ~ e4@11 ~@31 [c4,e4,f#4]@13 ~@16]/7", // C Bm Am C F Em Dsus2 G …
  C: "[~@14 e3@5 ~@6 g3@5 ~@7 d5@6 c5@5 ~@7 d5@14 ~@12 c5@6 ~ c4@20 ~@6 a4@5 g4@6 ~@14 g4@5, ~@3 e2@3 b4@24 d4@11 ~@29 [d4,f4,b4]@17 ~@22 a3@35, ~@4 e4@26 g#3@39 g#3@18 ~@21 c3@36, ~@4 b3@6 b2@9 f#3@12 ~ b4@10 ~@7 b4@21 ~@6 d5@11 ~@44 a4@13, ~@5 g4@26 f4@10 ~@46 a4@21 ~ [e4,f#4]@12 ~@4 f#4@19]/3", // Bdim Esus2
  D: "[~@20 e4@8 ~@3 f#4@37 f#4@7 ~@10 g4@4 ~@10 f#4@5 ~@12 c3@6 ~ [a3,d#4,f#4]@19 ~@12 g4@6 ~@2 e5@7 ~@8 [a4,c5]@9 ~@14 d3@6 ~@13 b4@7 ~@8 a4@6, ~@4 [e3,f#4]@24 ~@2 b2@46 [g3,b3,e4]@13 d3@15 c#3@18 b2@19 ~ [e3,g3,b3,e4]@18 [d3,c4]@26 g2@20 b3@12 g3@8 f#3@14, ~@12 g4@16 ~@47 e3@15 ~@4 g4@11 [a#3,e4]@17 ~@39 c5@8 [b4,d5]@17 ~ g4@39 ~@14, ~@81 f#4@9 b4@17 ~@41 f#4@12 f#4@11 ~@15 d4@40 ~ [d#4,c5]@13, ~@189 b4@23 a3@14 ~@14]/5", // D#dim Am Esus2 Em D7 A#dim Bm Cm
  E: "[g4@5 ~@13 [f#3,a4]@5 ~@31 b4@6 ~ a#4@6 ~@7 g4@6 ~@15 e4@7 ~@15 f#2@11 ~@17 e4@7 ~@6 g4@7 ~@12 c4@6 ~@5 e4@5 ~ d4@10 ~@9 f#4@4 ~@13 d4@5 [d4,f#4]@5, ~@5 [b2,a3]@18 g3@57 ~@8 f#4@15 ~@49 f#4@13 ~@12 e4@11 ~@6 f#4@19 ~@5 b4@22, ~@6 [d4,f#4]@17 e3@11 ~@8 d3@18 ~ [c#3,e4]@19 c3@22 b2@16 ~@11 b2@37 ~@27 d3@23 ~ g2@23, ~@12 [g3,g4]@12 [b3,e4]@36 ~@21 e4@14 ~@8 [a3,d#4,f#4]@43 ~@37 c4@12 ~@9 d4@13 ~@13 [d3,b3]@10, ~@25 b4@29 ~@13 a#4@13 ~ g4@22 ~@65 [a4,c5]@27 ~@13 e4@8 ~@8 f#4@11 ~@5]/5", // F#m D B7 D C#m G E5 D#dim …
  F: "~@22 e4@5 ~@7 c4@5 c4@5 [c4,e4]@4, ~ e4@21 ~@6 a4@20, ~@11 c4@15 ~@13 [f#3,a3]@9, ~@18 d4@9 ~@7 e4@10 ~@4", // C F#m
  G: "[~@2 b3@6 b3@6 ~@8 [a3,d#4]@7 ~@42 g4@7 ~@8 e4@5 ~@5 [e4,g4]@5 ~ d4@4 ~@11 f#4@4 ~@8 d4@5 d4@5 [d4,f#4]@5, ~ b2@28 [e2,g3]@18 e3@5 b3@25 ~@14 c4@10 f#4@15 ~@5 g2@23, ~@2 d#4@12 a#3@15 ~@3 g4@26 ~@6 f#4@14 ~ c5@22 ~@12 e4@9 ~ b4@21, ~@15 c#4@15 e4@26 ~@2 e4@20 ~@8 g4@5 e4 a3@10 ~@6 d4@14 ~@7 f#4@10 ~@5, ~@43 f#3@14 ~@21 a2@23 d3@21 ~@12 [d3,b3]@10]/3", // Adim Em D Em G
  H: "~@16 e4@7 ~@6 c4@6 c4@6 [c4,e4]@7, g3@21 ~@14 [f#3,a3]@13, ~ e4@15 ~@7 a4@25, ~@7 c4@14 ~@27, ~@11 d4@10 ~@8 e4@12 ~@7", // C F#m
  I: "[~@22 g4@7 ~@2 [b3,e4]@16 ~ [b4,e5]@18 ~@34 e4@10 ~@2 f#4@9 ~@8 c3@5 ~@14 [d#4,f#4]@4 ~@15 f#3@5 ~@16 g4@4, b2@29 e2@39 ~@42 b2@22 ~@2 b2@18 ~ e2@20 ~@19, ~ [b3,d#4]@29 b2@37 ~@24 d#4@20 a3@22 ~@20 b3@4 ~@2 b2@14 ~@9 f#4@10, ~@8 f#4@21 ~@18 [g3,e4,g4]@21 ~ e6@42 ~@13 f#4@12 ~@3 [d#4,f#4]@9 ~@6 e4@9 e3@9 g3@20, ~@15 a4@15 ~@37 [g5,b5]@44 ~@10 b3@11 ~@12 [c#4,e4]@9 ~@2 g4@18 ~@4 g4@11 ~@4]/4", // E5 D#m B C D#m G C#m
  J: "[~@20 e3@5 ~@7 d4@8 ~@10 [a4,c5]@8 ~@11 e3@5 f#3@5 a3@6 ~@13 [g4,b4]@7 ~@2 c5@8 c5@8 ~ a4@13 a4@4 ~@25 c5@8 ~@17 f#3@5 ~@12 e4@13 ~@16 g4@6 ~@18 b3@5 ~@9 b2@7 ~@8 e3@8 ~@14 e4@8 ~@10 g4@6, ~@4 a4@37 b4@18 d4@33 ~@13 f#2@18 ~@18 b2@15 b2@19 ~@2 b4@10 b4@36 ~@32 g4@11 ~@3 e4@13 ~ [g4,b4]@17 g4@23 ~@13, ~@10 a2@16 ~@32 g2@7 d3@12 ~@8 g3@21 ~@17 f#3@19 [a3,f#4]@33 b3@6 b2@6 e3@9 ~ g3@26 ~@9 c3@12 ~@5 f#2@17 ~ [e2,g3]@16 ~@18 [b4,e5]@23 ~@12, ~@15 d3@10 d3@14 ~ d3@20 g4@32 ~@84 g4@10 [b3,g4]@36 [a3,e4,a4]@22 [a3,d#4,f#4]@23 ~ b3@14 [f#3,b3,e4]@18 e4@12 ~@8 f#4@16, ~@60 b4@26 ~@5 [f#4,a#4]@14 ~ [d#4,a4]@18 d#4@18 ~@32 e2@21 ~@26 c#3@22 b2@12 ~ b2@11 ~@31 g3@38]/7", // Am G D Em E5 Em A5 D#dim …
  K: "~@12 e4@5 ~@5 [e4,g4]@5 ~ d4@4 ~@12 f#4@4, ~@5 [a4,c5]@23 ~@11 e4@8 ~, ~@6 g4@3 a3@5 d3@10, ~@17 c4@10 ~@7 d4@13 ~, ~@17 e4@5 ~@6 f#4@16 ~@4", // Em Am
  L: "[~ b4@2 ~@4 d4@5 d4@5 ~ f#4@6 e4@6 ~@11 e4@5 ~@9 c4@5 ~@5 [c4,e4]@5 ~ b3@6 b3@6 ~@6 [a3,d#4]@7, ~@6 f#4@11 d4@6 ~@7 c4@15 ~@10 e4@5 c4 a3@9 b2@26, ~@12 [d3,b3]@12 g3@22 f#2@25 ~@25, ~@36 d4@9 ~@2 a4@24 d#4@13 ~@12, ~@60 f#3@11 ~@12 [a#3,c#4]@13]/2", // C Adim G A#m
  M: "[~@20 e3@17 ~@13 g4@6 ~@8 e4@5 e4@5 [e4,g4]@5 d4@6 ~@9 f#4@4 ~@7 d4@4 ~ d4@5 [d4,f#4]@6 ~@19 e4@4, e2@28 ~@61 e4@8 ~@7 f#4@6 d3@12 ~@6 c4@16, ~ e4@13 f#3@14 ~@9 e4@20 ~@7 g4@10 ~@5 f#4@15 ~@5 b4@11 ~@11 e4@18 ~@5, ~ g3@4 ~@3 b2@20 ~@41 [a3,c4]@10 d3@19 g2@13 ~@23 d4@10, ~@3 g4@36 ~@5 f#4@12 ~@2 [a4,c5]@21 ~@6 d4@12 ~@12 b3@12 g3@23]/3", // Em D Am
  N: "[~@10 c4@5 c4@5 [c4,e4]@5 ~@21 g4@5 ~@2 [g3,b3,e4]@12 ~ e5@14 ~@28 e4@10 ~@3 f#4@8 ~@7 c3@5 b2@3, ~@3 a4@22 ~@2 b3@25 ~@13 [g3,b3,g4,b4]@16 ~@18 d#4@20 d#4@22 ~@3, ~@9 e4@11 ~@6 d#4@13 a4@13 ~@28 [b4,g5]@40 ~@9 b3@13 ~@2, ~@15 [f#3,a3]@10 b2@26 e2@29 ~@38 a3@23 ~@3, ~@33 f#4@19 ~@30 e6@38 ~@11 f#4@12 ~]/3", // C Em G Em F#m
  O: "[~@10 [d#4,f#4]@5 ~@13 f#3@5 ~@17 g4@5 ~@12 d3@5 ~@14 f#4@7 ~@10 [a4,c5]@8 ~@15 f#3@6 a3@6 ~@13 [g4,b4]@7 ~ c5@8 c5@6 ~ a4@7 a4@8 ~@22 c5@7 ~@11 e3@4 f#3@6 ~@12 e4@13 ~@18 g4@6, ~ d#4@9 ~@6 [e4,g4]@20 ~@3 g4@11 ~@7 a4@36 ~@19 g4@38 ~@9 a4@15 ~@44 e2@18 ~@28 [c#3,e4]@24, ~@2 f#4@8 ~@10 b2@12 ~@12 f#4@11 ~ f#4@29 ~@9 f#4@18 d4@46 d#4@15 ~ [c#4,d#4]@15 [a3,d#4,f#4]@30 b3@10 b3@12 ~@24 [a3,a4]@23, ~@6 [c#4,e4]@9 [e2,b3]@18 ~@23 [d2,c4]@16 e3@21 ~@18 g2@7 d3@4 e3@7 ~@9 g3@20 [f#2,f#3]@31 ~@7 f#2@23 ~@5 b2@11 ~@4 g3@26 ~@11 c3@12, ~@25 e3@8 ~ g3@21 ~@7 a2@12 ~@4 d3@15 [d3,c4,b4,d5]@19 ~ b4@26 ~@5 [f#4,a#4]@14 ~@45 b2@17 [g4,b4]@9 [g4,b4]@36 ~@23]/6", // D#m Am G Em C#m C#sus2 D#dim A …
  P: "~@23 b3@8 ~@9 b2@8, ~ b2@30 ~@17, ~@2 [a3,d#4,f#4]@29 ~ [g3,b3]@16, ~@8 f#2@23 e2@17, ~@15 g4@16 ~@2 e4@15", // D#dim G
  Q: "[~@12 [a4,c5]@11 ~@3 [g4,b4,e5]@29 ~@2 e6@34 ~@5, a2@25 e2@35 ~@36, ~ [e4,b4,d5]@23 ~@32 b5@37 ~@3]/2", // Am Em E7
})).s("gm_piano").gain(0.24)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@3 A B@3 C@3 D@2 E@2 ~@3 F G@2 H I J K@3 L M@3 ~ N@2 O@2 ~@2 P Q R ~ S@2 ~ T U@2 ~@3 V@2 ~@3 W ~
>`.pickRestart({
  A: "~@13 f#2@10 ~", B: "[~@43 a3@28 ~ a3@67 ~@5, ~@71 d#4@26 ~@47]/3", C: "[~@42 d#4@24 ~ a3@33 ~@44]/3",
  D: "[~@14 c5@7 ~@19 e4@21 ~@35, ~@39 a3@22 ~@35]/2", E: "[~@3 f#2@25 ~@3 [a3,d#4]@45 ~@20]/2", F: "~@17 e3@4 ~@3",
  G: "[~@13 a#3@19 ~ a#3@22 ~@41]/2", H: "~@13 a3@3, ~@11 a2@13", I: "~@16 d4@3 ~@5", J: "~ g3@26 f#2@21",
  K: "[~@37 b2@19 ~@23 a4@22 ~@43]/3", L: "~@23 f#2@25",
  M: "[~@31 g3@16 [e3,b3]@19 [g4,b4,e5]@45 d#4@21 ~@12, ~@33 e4@17 ~@22]/3", // E5 Em
  N: "[~@4 d2@22 ~@15 [f#4,d5]@19 ~@36, ~@3 f#4@37 ~@56, ~@3 c4@22 ~@15 c4@19 ~@37]/2", // D
  O: "[~@10 f#3@17 f#2@19 ~@6 f#2@27 ~@17, ~@46 d#4@33 ~@17]/2", P: "~ b3@3", Q: "~ a2@6 ~@5", R: "g2 ~",
  S: "[~@28 b3@28 ~ a2@22 ~@17]/2", T: "~@3 f#2@23 ~@22",
  U: "[~@17 [e3,e4]@14 ~@2 b5@38 b2@22 ~@3, ~@5 b2@26 g4@41 ~@24, ~@4 e5@5 ~@3, ~@8 e4@7 ~@9]/2", // E
  V: "[~@45 b2@7 ~@44]/2", W: "~@8 b4@37 ~@3, ~@5 e4@38 ~@5, ~@6 g4@37 ~@5, ~@7 [e5,g5]@38 ~@3",
})).s("gm_piano").gain(0.12)

// chords · pad sweep
const pad_sweep = note("<~@29 A@7 B@3 ~@18>".pickRestart({
  A: "[~@14 [a3,f#4]@44 [e2,b2,b3,e4,g4]@40 [a2,d3,c4,f#4,a4]@37 [c3,f#3,b3,d4]@19 [g2,g3,b3,d4]@47 [d#4,a4]@16 [c4,d#4,a4]@19 ~ [f#2,a3]@33 ~@22 b2@22 ~ c#3@21, ~@13 [f#2,b2]@45 ~@143 c5@35 [d#4,f#4]@34 g4@44 [c#2,a3,e4,a4]@22, ~@271 [b3,b4]@44 ~@21]/7", // D Em D7 Bm G D#dim Adim F#m …
  B: "[~@2 [f#2,b2,a3,d#4,f#4]@25 ~ [b2,g3,b3,e4]@71 ~@45]/3", // B7 Em
})).s("gm_pad_sweep").gain(0.15)

// chords · pad sweep · soft notes
const pad_sweep_soft = note("<~@29 A@2 B ~ C@3 D@3 ~@18>".pickRestart({
  A: "[~@14 d#4@45 ~@37]/2", B: "~ d2@19 ~@4", C: "[~@9 [f#2,f#3]@36 b2@33 e2@44 ~@22]/3", D: "[~@27 e2@71 ~@46]/3",
})).s("gm_pad_sweep").gain(0.08)

stack(vibraphone, vibraphone_soft, bass, pad_warm, pad_warm_soft, piano, piano_soft, pad_sweep, pad_sweep_soft)