Strudelify

Mother -In-Law

Ernie K-Doe

KeyE♭ majorTempo130 bpm
0:00/0:00
// Mother -In-Law — Ernie K-Doe
// 130 bpm, 4/4, key D# 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: Full arrangement: all 84 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 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 K AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU@2 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 AB BU BV BW BX BY BZ CA ~
>`.pickRestart({
  A: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~@3 [g3,bb3,eb4]@2 eb2 ~ [g3,bb3,eb4] ~", // Eb
  B: "g3 ~ c2 ~@3 c2 ~ g1@2 bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@4 ~@4 c2 ~@3", // Cm7
  C: "[eb2,g3,bb3,eb4] ~ eb2 ~ [bb3,eb4] ~ [eb2,bb3,eb4] ~ eb4 ~ eb2 ~ [bb3,eb4] ~ eb2 ~, ~@2 g3 ~@3 g3 ~", // Eb Eb5
  D: "~@2 [ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~", // Absus2 Bb7
  E: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb
  F: "c2 ~ c2 ~ [g3,bb3,c4,eb4]@2 c2 ~ g1 ~ bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@12 c2 ~@3", // Cm7
  G: "[eb2,g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~", // Eb
  H: "[c2,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@5 ~@3 c2 ~@3", // Cm Cm7
  I: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~", // Eb
  J: "[c2,g3,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1@2 bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@4 ~@4 c2 ~@3", // Cm7
  K: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~", // Eb
  L: "[c2,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1@2 [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@5 ~@3 c2 ~@3", // Cm7
  M: "[g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [eb2,bb3,eb4] ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb Eb5 Eb
  N: "[g2,b3,d4] ~ g2 ~ [f3,b3,d4] ~ g2 ~ [f3,b3,d4] ~ [f3,b3,d4]@2 g2 ~ [g2,f3,b3,d4] ~", // G Bdim G7
  O: "[c2,g3,bb3,c4,eb4] ~ c2 ~ [g3,bb3,c4,eb4]@2 c2 ~ [c4,eb4] ~ [g3,bb3,c4,eb4]@2 c2 ~ [c2,g3,bb3,c4,eb4] ~", // Cm7 Cm Cm7
  P: "[f3,a3,c4] ~ f2 ~ [f3,eb4]@2 ~@2 [a3,c4] ~ [f3,a3,c4,eb4]@3 ~ f2 ~, ~@4 [a3,c4] ~@5 f2 ~@5", // F F7 Am F7 Am
  Q: "[ab3,a3,c4] ~ [f2,ab3,c4] ~ [g3,c4]@2 f2 ~ [f3,c4]@2 f2 ~ [f3,c4]@2 f2 ~", R: "[f3,ab3,bb3] ~@7, bb2 ~@15",
  S: "[g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~", // Eb
  T: "[c2,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@5 ~@3 c2 ~@3", // Cm7
  U: "[eb2,g3,bb3,eb4] ~ eb2 ~ [bb3,eb4] ~ [eb2,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~, ~@3 g3 ~@4", // Eb Eb5 Eb
  V: "~@2 [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,ab3,bb3] ~", // Bb7
  W: "[eb2,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb5 Eb
  X: "[c2,g3,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@5 ~@3 c2 ~@3", // Cm7
  Y: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [eb2,bb3,eb4] ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb Eb5 Eb
  Z: "[c2,c4] ~ [c2,g3,bb3,c4,eb4] ~@3 [g3,bb3,c4,eb4]@2 g1 ~ bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@6 c2 ~@5 c2 ~@3", // C Cm7
  AA: "[c2,g3,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1@2 [g3,bb3,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@4 ~@4 c2 ~@3", // Cm7 Eb Cm7
  AB: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb
  AC: "[c2,c4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [g3,bb3,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@6 ~@2 c2 ~@3", // C Eb Cm7
  AD: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ eb2 ~ [g3,eb4] ~ [g3,bb3,eb4]@2 eb2 ~ [g3,bb3,eb4] ~", // Eb Cm Eb
  AE: "[g2,b3,d4] ~ g2 ~ [f3,b3] ~ g2 ~ [f3,b3,d4] ~ [f3,b3,d4]@2 g2 ~ [g2,b3,d4] ~, ~@4 d4@2 ~@4 g2 ~@5", // G Fdim Bdim G
  AF: "[c2,ab3] ~ c2 ~ [eb3,c4]@2 c2 ~ [eb3,g3,c4] ~ g2@2 [g3,bb3,c4,eb4]@2 g2 ~, ~@4 g3 ~@11", // Fm Cm Cm7
  AG: "f2 ~ [f2,ab3,c4] ~ [ab3,c4] ~ [f2,g3] ~ [f3,c4] ~ [f2,c3] ~ [f3,c4]@2 [f2,c3] ~, ~ a3 ~@6", // Fm Ab Fsus2 F5
  AH: "[f3,bb3] ~ [f2,a3,c4] ~ [f3,a3,c4] ~ f2 ~ [a3,c4] ~ [f2,c3]@2 [f3,a3,c4]@2 [f2,c3] ~, ~@4 f3 ~@3", // Bb5 F Am F5 F F5
  AI: "[bb2,f3,ab3,bb3] ~@15", // Bb7
  AJ: "[eb2,g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~ eb2 ~@3 eb2 ~ eb2 ~ [g3,bb3,eb4]@2 eb2 ~, ~@3 [g3,bb3,eb4]@2 ~@3", // Eb
  AK: "[c2,g3,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1@2 bb1@2 [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@4 ~@4 c2 ~@3", // Cm7
  AL: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3] ~ [eb2,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~, ~@2 eb4 ~@5", // Eb Gm Eb5 Eb
  AM: "~@2 [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3] ~", // Bb7
  AN: "[g4,eb5]@2 eb2 ~@3 [g4,eb5]@3 ~ eb2 ~ [g4,eb5]@2 eb2 ~, gb4 ~@5 [eb2,gb4] ~@5 [eb2,gb4] ~@3", // Cm Ebm
  AO: "[f4,c5]@2 c2 ~@3 c2@2 ~@2 [bb1,eb4]@2 [c2,c4]@2 bb3@2, [c2,gb4] ~@5 c5@7 ~@3, ~@8 [g1,f4,gb4]@5 ~ bb1 ~", // F5 Eb5 C Cdim
  AP: "[eb4,g4]@2 eb2 ~ eb4 ~ [eb4,g4]@2 c4 ~ [eb4,g4]@2 c4@2 [eb2,bb3,g4] ~, eb2 ~@5 eb2 ~@3 eb2 ~ eb2 ~@3", // Eb
  AQ: "[c2,eb4] ~ [c2,bb3] ~ c4@2 [c2,eb4,g4] ~ g1@2 [bb2,bb4]@2 [c2,c3,c5]@2 [eb3,eb5]@2, g4@2 ~@8 bb1 ~@3 bb1 ~", // Cm C7 Cm Bb C Eb
  AR: "eb2 ~ eb2 ~ [eb2,gb4] ~ eb2 ~ [ab4,c5]@2 [g4,bb4]@2 eb2 ~ eb2 ~, ~@4 [g4,bb4]@4 ~@2 eb2 ~@5", // Ebm Ab Gm
  AS: "[c2,g4,c5]@2 c2 ~ c2 ~ [g4,c5]@2 g1 ~ [bb1,bb2,bb4]@2 [c3,c5]@2 [eb3,eb5]@2, gb4 ~@5 [c2,gb4] ~@5 c2 ~ bb1 ~", // C5 Bb C Eb Cdim
  AT: "eb2 ~ eb2 ~ eb2 ~ eb2 ~@3 [bb2,eb4]@2 [eb2,eb4,gb4] ~ [c3,g4]@2, ~@4 [eb3,eb4,g4,eb5]@6 [eb2,f4] ~ b2@2 [eb2,eb4] ~", // Eb5 Ebm C5 Eb Ebsus2 Eb
  AU: "[c2 ~ c2 ~ [bb3,bb4]@2 [c4,c5] ~ [g1,eb4,eb5]@2 ~@2 [c2,g4,g5]@2 bb1 ~ eb2 ~ eb2 ~ [g3,bb3,eb4]@2 eb2 ~ [eb2,bb4,bb5] ~ eb2@2 ~@2 eb2 ~, ~@3 c2@2 [bb1,f4,f5]@2 [bb4,bb5]@4 ~@2 [bb4,bb5]@3]/2", // Bb C Cm C5 Eb Eb5 Bb5 Bb
  AV: "g1 ~ g1 ~@3 g1@2 [b4,b5] ~ g1 ~ g1 ~ g1 ~, [b4,b5]@7 ~@3 [b4,b5]@5 ~, ~@4 [f3,b3,d4]@11 ~", // B Bdim
  AW: "[c5,c6]@2 c2 ~ [c5,c6]@2 c2@2 [bb4,bb5] ~ c2 ~ c2 ~ c2 ~, [g3,c4,eb4] [g3,bb3,eb4], c2 ~@9 [bb4,bb5]@5 ~", // C Bb Cm Eb Bb
  AX: "f1 ~ f1@2 ~@2 [f1,a2]@4 ab2@4 a2@2, [a4,a5]@7 ~, ~@10 f1 ~@3 f1 ~", // F A
  AY: "~@2 f1 ~ [a3,gb4]@2 [f1,g4]@2 f4@2 f1 ~@3 [f1,f2] ~, f2@13 ~@3, ~@4 f1 ~@3 a3 ~ [a3,eb4]@6", // D Fsus2 F Adim
  AZ: "[bb1,bb2,f3,ab3]@2 ~@2 [bb1,bb2,bb3]@2 [c3,c4]@2 [eb3,eb4] [c3,c4] [eb3,eb4]@5 ~", // Bb7 Bb C Eb C Eb
  BA: "[eb2,ab3,c4]@3 ~ [g3,bb3]@4 [ab2,ab3,c4]@2 [ab2,ab3,c4]@2 [ab2,ab3,c4]@2 [eb2,g3,bb3]@2, ~@2 eb2 ~@5", // Ab Gm Ab Eb
  BB: "~@2 [bb2,f3,ab3,bb3] ~ [bb2,f3,ab3,bb3]@2 [bb2,f3,ab3,bb3]@2 [bb2,f3,ab3,bb3]@2 [bb2,f3,ab3,bb3]@2 [bb2,f3,ab3,bb3] ~@3", // Bb7
  BC: "[eb2,g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 eb2 ~ [g3,bb3,eb4]@2 eb2 ~", // Eb
  BD: "[c2,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [g3,bb3,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@6 ~@2 [c2,c4] ~@3", // Cm7 Eb Cm7 C
  BE: "[eb2,g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 [g3,bb3,eb4]@4 eb2 ~ [g3,bb3,eb4]@2 eb2 ~, ~@6 eb2 ~@9", // Eb
  BF: "[c2,bb3,c4,eb4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [c2,g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@7 ~@5", // Cm7
  BG: "[eb2,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 [g3,bb3,eb4]@4 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb5 Eb
  BH: "c2 ~ [c2,g3,bb3,c4,eb4] ~@3 c2 ~ g1@2 bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@6 [g3,bb3,c4,eb4]@4 ~@2 c2 ~@3", // Cm7
  BI: "[eb2,g3,bb3,eb4] ~ eb2 ~@5 eb2 ~ eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]@2 ~ [g3,bb3,eb4]@2", // Eb
  BJ: "[c2,c4] ~ c2 ~@3 c2 ~ g1@2 bb1 ~ [g3,bb3,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@6 ~@2 [c2,c4] ~@3", // C Eb Cm7 C
  BK: "[eb2,g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ eb2 ~ eb2@2 [g3,bb3,eb4]@2 eb2 ~", // Eb
  BL: "[g2,f3,b3,d4] ~ g2 ~ [f3,b3] ~ [f3,b3,d4] ~@3 g2 ~ [f3,b3,d4]@2 g2@2, ~@2 d4 ~@5", // G7 Fdim Bdim
  BM: "[c2,c4,eb4] ~ c2 ~ [g3,bb3,c4,eb4] ~ [g3,bb3,c4,eb4] ~@3 c2@2 ~@2 g2 ~, ~@3 c2 ~@2 [g3,bb3,c4,eb4]@2", // Cm Cm7
  BN: "[f2,f3,a3] ~ f2 ~ [f3,a3,c4] ~ [f2,f3,a3] c4 ~@2 [f3,a3,c4,eb4]@4 f2 ~, ~@4 eb4@2 ~@4 f2 ~@5", // F F7
  BO: "[f3,a3,c4,eb4] ~ [f3,a3,c4,eb4] ~ f2 ~ [a3,c4,eb4] ~ [ab3,c4]@2 [f2,c4] ~ [f2,g3,c4] ~ [f2,f3,c4] ~, ~@8 f2 ~ a3@2 ~@4", // F7 Adim Ab F5 Fsus2 F5
  BP: "[bb2,f3,bb3] ~@7, ab3 ~@15", // Bb5
  BQ: "[eb2,g3,bb3] ~ [eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb
  BR: "c2 ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [c2,g3,bb3,c4,eb4]@2 bb1 ~, ~@2 [g3,bb3,c4,eb4]@3 ~@3", // Cm7
  BS: "[eb2,g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 [g3,bb3,eb4]@4 eb2 ~ [g3,bb3,eb4]@2 eb2 ~", // Eb
  BT: "[c2,c4] ~ c2 ~@3 c2 ~ g1 ~ bb1 ~ [g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@6 ~@2 c2 ~@3", // C Cm7
  BU: "c2 ~ c2 ~@3 c2 ~ g1 ~ bb1@2 [c2,g3,bb3,c4,eb4]@2 bb1 ~, ~@4 [g3,bb3,c4,eb4]@5 ~@7", // Cm7
  BV: "[eb2,g3,bb3,eb4] ~ [eb2,g3,bb3,eb4] ~@3 [eb2,g3,bb3,eb4] ~@3 [g3,bb3,eb4]@2 eb2 ~ [bb3,eb4]@2, ~@14 [eb2,g3] ~", // Eb Eb5 Eb
  BW: "[c2,c4] ~ [c2,g3,bb3,c4,eb4] ~@3 c2 ~ g1 ~@3 [g3,bb3,c4,eb4]@2 bb1 ~, ~@6 [g3,bb3,c4,eb4]@5 ~ c2 ~@3", // C Cm7
  BX: "[eb2,g3,bb3,eb4] ~ eb2 ~ [g3,bb3,eb4] ~ eb2 ~@3 [g3,bb3,eb4]@2 eb2@2 [g3,bb3] ~, ~@7 eb4", // Eb Gm
  BY: "c2@2 [c2,g3,bb3,c4,eb4] ~@5 c2@2 g1@2 c2 ~ [c2,bb3] ~, c4 ~@5 [g3,bb3,c4,eb4]@6 ~@2 eb4@2", // Cm7 C7 Cm7
  BZ: "eb2 ~ eb2 ~ [g3,bb3,eb4] ~ eb2 ~@3 eb2 ~@3 eb2 ~, ~@3 [g3,bb3,eb4]", // Eb
  CA: "[c2,c4] ~ [c2,g3,bb3,c4,eb4] ~@3 [g3,bb3,c4,eb4]@2 g1 ~ bb1@2 c2 ~@3, ~@6 c2 ~@9", // C Cm7
})).s("gm_piano").gain(0.44).pan(0.4)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D E F G F G H E H A I J K L M A N G O E F G F G H E H A I J K P M A N Q O E F G F G H E H A I J K L M A R E F
  G F G H E H A I J K L M A N G N S F T F U F V W ~
>`.pickRestart({
  A: "eb2 ~@2 eb2!2 eb2@2 eb2", B: "c2 ~@2 bb1 g1 bb1 c2 d2", C: "eb2@3 ~@3 eb2@2 eb2@2 eb2@4 eb2@2",
  D: "c2 ~ bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2", E: "eb2@3 ~@3 eb2@2 eb2@2 eb2@2 eb2@2 d2@2",
  F: "c2 ~@2 c2 g1 bb1 c2 d2", G: "eb2 ~@2 eb2!4 d2", H: "c2@3 ~@3 c2@2 g1@2 bb1@2 c2@2 d2@2",
  I: "g1@3 ~@3 g1@6 g1@2 g1@2", J: "c2 ~@2 c2!2 d2 eb2 c2", K: "f1 ~@2 f1@2 a1 c2 a1",
  L: "f1@3 ~@3 f1@2 c2@2 f1@2 g1@2 a1@2", M: "bb1 ~@6 d2", N: "c2 ~@2 g1!2 bb1 c2 bb1", O: "c2 bb1!7",
  P: "f1@3 ~@3 f1@2 c2@2 f1@2 f1@4", Q: "eb2 ~@2 eb2 eb2@2 eb2@2", R: "eb2 bb1!5 d2@2",
  S: "eb2@2 ~@4 eb2 ~ eb2@2 eb2@3 ~ eb2@2", T: "eb2@3 ~@3 eb2 ~ eb2 ~ eb2@2 ~@2 eb2@2",
  U: "eb2@2 ~@4 eb2 ~ eb2 ~ eb2@3 ~ eb2@2", V: "eb2@3 ~@3 eb2 ~ eb2 ~ eb2@3 ~ eb2@2", W: "c2 ~@2 c2 g1 bb1 c2 ~",
})).s("gm_acoustic_bass").gain(0.33)

// other · trumpet
const trumpet = note("<~@14 A ~ B ~@5 C ~@9 A ~ B ~@5 C ~@9 A ~ B ~@13 A ~ B ~@5 C ~ C ~ C ~ C ~ D ~>".pickRestart({
  A: "~@2 c5 gb4@2 eb4 f4 ~", B: "~@2 c5 eb5@2 ~@3", C: "~@2 bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~",
  D: "~@2 bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~@3",
})).s("gm_trumpet").gain(0.29)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A ~ A ~@3 A ~@3 A ~@7 A ~ A ~@3 A ~@3 A ~@7 A ~ A ~@19 A ~@3 A ~@7 A ~ A ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@4 [bb3,eb4,g4]!3 [g3,c4,eb4]", // Eb Cm
})).s("gm_electric_guitar_clean").gain(0.3)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
  A B A B ~@2 A B ~@2 A B ~@6 A B A B ~@2 A B ~@2 A B ~@6 A B A B ~@18 A B ~@2 A B ~@6 A B A B A B A B A B A B C ~
>`.pickRestart({
  A: "~@3 g2@2 bb2 c3 bb2", B: "eb3@3 ~@13", C: "~@3 g2@2 bb2 ~@2",
})).s("gm_electric_guitar_clean").gain(0.15)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note(`<
  A B A B ~@2 A B ~@2 A B ~@6 A B A B ~@2 A B ~@2 A B ~@6 A B A B ~@18 A B ~@2 A B ~@6 A B A B A B A B A B A B C ~
>`.pickRestart({
  A: "~@3 g2@2 bb2 c3 bb2", B: "eb3 ~@7", C: "~@3 g2@2 bb2 ~@2",
})).s("gm_baritone_sax").gain(0.4).pan(0.7)

// other · alto sax
const alto_sax = note("<~@14 A ~ B ~@5 C ~@9 A ~ B ~@5 C ~@9 A ~ B ~@13 A ~ B ~@5 C ~ C ~ C ~ C ~ D ~>".pickRestart({
  A: "~@4 c5@2 gb4@3 ~ eb4@4 ~@2", B: "~@4 c4@2 eb4@5 ~@5", C: "~@2 bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~",
  D: "~@2 bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~@3",
})).s("gm_alto_sax").gain(0.25).pan(0.4)

// other · alto sax
const alto_sax_2 = note("<~@14 A ~ B ~@5 C ~@9 A ~ B ~@5 C ~@9 A ~ B ~@13 A ~ B ~@5 C ~ C ~ C ~ C ~ D ~>".pickRestart({
  A: "~@4 f4@2 gb4@4 eb4@2 f4@3 ~", B: "~@4 c4@2 eb4@5 ~@5", C: "~@2 bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~",
  D: "~@2 bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~@3",
})).s("gm_alto_sax").gain(0.25).pan(0.3)

// other · trombone
const trombone = note("<~@14 A ~ B ~@5 C ~@9 A ~ B ~@5 C ~@9 A ~ B ~@13 A ~ B ~@5 C ~ C ~ C ~ C ~ D ~>".pickRestart({
  A: "~@2 c4 gb3@2 eb3 f3 ~", B: "~@4 c3@2 eb3@5 ~@5", C: "~@2 bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~",
  D: "~@2 bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~@5",
})).s("gm_trombone").gain(0.25).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A B A B A B A B A B A B A B A C A B A D A B A B A B A B A B A B A C A B A D A B A B A B A B A B A E A C A E A B
  A B A B A B A B A B@2 C A B A B A B A B A B A E ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x ~ x ~ x", C: "x", D: "x ~@2 x!2 ~@3", E: "x ~@2 x ~ x ~@2",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct("<~ A@17 B A@3 C A@12 D E A@3 C A@11 C A F A C A@13 B A@12 ~>".pickRestart({
  A: "~ x ~ x", B: "~@5 x!3", C: "~@4 x ~@5 x!3 ~ x ~", D: "~@4 x ~@7 x ~ x!2", E: "x ~@4 x!3", F: "x ~ x ~@2 x!3",
})).gain(0.44)

// drums · hihat
const hihat = s("hh").struct("<~ A@17 B A@3 C A@13 B A@3 D A@11 E A B A E A@13 B A@11 D ~>".pickRestart({
  A: "x!8", B: "x", C: "x!4 ~@4", D: "x!7 ~", E: "x!5 ~@3",
})).gain(0.27)

stack(
  piano, bass, trumpet, electric_guitar_clean, electric_guitar_clean_2, baritone_sax, alto_sax, alto_sax_2, trombone,
  kick, snare, hihat
)