Strudelify
A Taste of Honey cover art

1965 · Whipped Cream & Other Delights

A Taste of Honey

Alpert

KeyF minorTempo160 bpm
0:00/0:00
// A Taste of Honey — Alpert
// 160 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/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 Taste O"
const piano = note(`<
  ~@13 A@2 B C D E F G H I J K L ~ M N O P M N O P M@2 Q R S ~ T U V W ~@11 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
  AN AO@2 ~@10 AP AQ AR AS AT AU AV AW AX AU AV AW AX@2 AY AZ AY AZ AY AZ BA BB ~
>`.pickRestart({
  A: "[f2 ~@2 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~@3 [e4,ab4] f2@2 ~ [e4,ab4,c5] ~@3 [e4,ab4,c5] ~@3 [e4,ab4,c5] ~@3 [eb4,ab4,c5], ~@15 c5@2 ~@15]/2", // Fm E Eaug Ab
  B: "~ f2@2 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] f2@2 ~ [eb4,ab4,c5] ~@3 [d4,ab4,c5]", // Ab Dm7b5
  C: "bb2@3 [d4,ab4,c5] ~@3 [d4,ab4] bb2@3 [d4,ab4,bb4] ~@2 [ab4,c5] ~", // Dm7b5 Ddim Bb7 Ab
  D: "~@2 c5 ab4 ~@3 [ab4,c5] ~@3 [f4,ab4,c5] ~@3 [e4,ab4,c5]", // Ab Fm Eaug
  E: "~@3 [e4,ab4,c5] ~@3 [e4,ab4,c5] f2@2 ~ [e4,ab4,c5] ~@3 [eb4,ab4,c5]", // Eaug Ab
  F: "f2@3 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] f2@3 [eb4,ab4,c5] ~@3 [eb4,ab4,c5]", // Ab
  G: "~ bb2@2 [d4,ab4,c5] ~@3 [d4,ab4,c5] bb2 ~@2 [d4,ab4,c5] ~@3 [d4,ab4,c5]", // Dm7b5
  H: "f2@3 [f4,ab4,c5] ~@3 [f4,ab4,c5] c3@2 ~ [f4,ab4,c5] ~@2 c5 [f4,ab4]", // Fm
  I: "f2@3 [f4,ab4,c5] ~@2 c5 [f4,ab4] c3@2 [f4,ab4,c5] ~ f2@2 ~ [f4,ab4,c5]", // Fm
  J: "~@3 [ab2,eb4,ab4,c5]@5 ~ [ab2,eb4,ab4,c5] ~@6", K: "~@3 [g2,d4,g4,bb4]@5 ~ [g2,d4,g4,bb4] ~@5 [f2,c4,f4,ab4]",
  L: "~@8 [eb2,f4,ab4]@5 ~@2 [c4,f4,ab4]", M: "[f4,ab4,c5] ~@6 [f4,ab4,c5] ~@8", N: "[e4,ab4,c5] ~@6 [e4,ab4,c5] ~@8",
  O: "[eb4,ab4,c5] ~@6 [eb4,ab4,c5] ~@8", P: "[d4,ab4] ~@6 [d4,ab4] ~@8", Q: "~@3 [eb4,ab4,c5]@5 [eb4,ab4,c5] ~@7",
  R: "~@3 [d4,g4,bb4]@4 ~ [d4,g4,bb4] ~@7", S: "~@8 [ab3,db4,f4]@5 ~@2 [ab3,c4,f4]",
  T: "[ab3,eb4,f4] ~@3 g2@3 [ab3,eb4,f4] ab2@3 ab3 ~ a2@3, f2 ~@7", // Fm7
  U: "[ab3,d4,f4] bb2@2 ~ d3@3 [ab3,d4,f4] eb3@3 ab3 e3@3 ab3", // Ddim
  V: "[f3,ab3,eb4,f4] ~@3 f3@2 ~ [ab3,eb4,f4] ~@3 f3 ab3 ~@2 f3", // Fm7
  W: "[ab3,d4] bb2@2 ~ f3@2 ~@2 bb2@3 ~@2 c3@3, f4@2 ~@5 [ab3,d4,f4]@8 ~", // Abdim Ddim
  X: "~@4 f2 ~@2 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~@3 [f4,ab4,c5]", // Fm
  Y: "~@3 [e4,ab4] f2@2 ~ [e4,ab4,c5] ~@3 [e4,ab4,c5] ~@3 [e4,ab4,c5], ~@3 c5@2 ~@11", // E Eaug
  Z: "~@3 [eb4,ab4,c5] ~ f2@2 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] f2@2 ~ [eb4,ab4,c5]", // Ab
  AA: "~@3 [d4,ab4,c5] bb2@3 [d4,ab4,c5] ~@3 [d4,ab4] bb2@3 [d4,ab4,bb4]", // Dm7b5 Ddim Bb7
  AB: "~@2 [ab4,c5] ~@3 c5 ab4 ~@3 [ab4,c5] ~@3 [f4,ab4,c5]", // Ab Fm
  AC: "~@3 [e4,ab4,c5] ~@3 [e4,ab4,c5] ~@3 [e4,ab4,c5] f2@2 ~ [e4,ab4,c5]", // Eaug
  AD: "~@3 [eb4,ab4,c5] f2@3 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] f2@3 [eb4,ab4,c5]", // Ab
  AE: "~@3 [eb4,ab4,c5] ~ bb2@2 [d4,ab4,c5] ~@3 [d4,ab4,c5] bb2 ~@2 [d4,ab4,c5]", // Ab Dm7b5
  AF: "~@3 [d4,ab4,c5] f2@3 [f4,ab4,c5] ~@3 [f4,ab4,c5] c3@2 ~ [f4,ab4,c5]", // Dm7b5 Fm
  AG: "~@2 c5 [f4,ab4] f2@3 [f4,ab4,c5] ~@2 c5 [f4,ab4] c3@2 [f4,ab4,c5] ~", // Fm
  AH: "f2@2 ~ [f4,ab4,c5] ~@3 [eb4,ab4,c5]@5 [eb4,ab4,c5] ~@3", AI: "~@7 [d4,g4,bb4]@4 ~ [d4,g4,bb4] ~@3",
  AJ: "~@3 [ab3,db4,f4]", AK: "~@3 [ab3,c4,f4] ~@12",
  AL: "~@4 [ab3,eb4,f4] ~@3 g2@3 [ab3,eb4,f4] ab2@3 ab3, ~@2 f2 ~@5", // Fm7
  AM: "~ a2@3 [ab3,d4,f4] bb2@2 ~ d3@3 [ab3,d4,f4] eb3@3 ab3", // Ddim
  AN: "e3@3 ab3 [f3,ab3,eb4,f4] ~@3 f3@2 ~ [ab3,eb4,f4] ~@3 f3", // Fm7
  AO: "[ab3 ~@2 f3 [ab3,d4] bb2@2 ~ f3@2 ~@2 bb2@3 ~@2 c3@3 ~@12, ~@4 f4@2 ~@5 [ab3,d4,f4]@7 ~@14]/2", // Abdim Ddim
  AP: "~@5 f2 ~ c5 [f4,ab4] ~@2 [f4,c5] ab4 ~@2 c5", // Fm F5
  AQ: "[f4,ab4] ~@3 [f4,ab4] f2@2 ~ [f4,ab4,c5] ~@2 [f4,c5] ab4 ~@2 f4, ~@2 c5 ~@5", // Fm F5
  AR: "[ab4,c5] ~@2 gb4 [a4,db5] gb2 ~ db5 [gb4,a4] ~@2 [gb4,db5] a4 ~@2 db5", // Ab A Gbm Gb5
  AS: "[gb4,a4] ~@3 [gb4,a4] gb2@2 ~ [gb4,a4,db5] ~@2 [gb4,db5] a4 ~@2 gb4, ~@2 db5 ~@5", // Gbm Gb5
  AT: "[a4,db5] ~@2 gb4 [a4,db5] [gb4,a4,db5] ~@5 [gb4,a4,db5] ~@4", AU: "~@5 [f4,a4,db5] ~@5 [f4,a4,db5] ~@4",
  AV: "~@5 [e4,a4,db5] ~@5 [e4,a4,db5] ~@4", AW: "~@5 [eb4,a4] ~@5 [eb4,a4] ~@4",
  AX: "~@5 [gb4,a4,db5] ~@5 [gb4,a4,db5] ~@4", AY: "~@7 [e4,a4,db5]@5 ~ [e4,a4,db5] ~@2",
  AZ: "~@7 [eb4,ab4,b4]@4 ~@2 [eb4,ab4,b4] ~@2", BA: "~@13 [gb6,gb7] ~@2",
  BB: "~@5 [gb6,gb7] ~@5 [gb6,gb7]@2 [a6,c7] [eb6,e6,gb6,ab6,b6] ~", // Gb Am Emaj7
})).s("gm_piano").gain(0.25).pan(0.2)

// bass · acoustic bass
const bass = note(`<
  ~@2 A@8 ~@3 B C D E C@2 D F G H I J@3 B C D E C@2 D F G H I J@3 K L M N O@8 ~@3 P Q@2 R S Q@2 T U V W X Y@2 Z AA AB T
  AC@8 ~@3 AD AE AF AG AH AG@2 AI AJ AG@2 AI AK AL AM AN AO AN AO AN AP ~ AQ
>`.pickRestart({
  A: "[~@2 db2@62 c2@63 ~]/8", B: "f2@4 g2@3 ~ ab2@4 c2@3 ~", C: "f2@3 ~ g2@3 ~ ab2@3 ~ c2@3 ~",
  D: "f2@3 ~ g2@3 ~ ab2@3 ~ a2@3 ~", E: "bb2@3 ~ f2@3 ~ bb1@4 d2@3 ~", F: "bb2@3 ~ f2@3 ~ bb1@3 ~ d2@3 ~",
  G: "f2@3 ~ f2@3 ~ c2@3 ~ c2@3 ~", H: "f2@3 ~ f2@3 ~ c2@3 ~ f2@3 ~", I: "ab2 ~@2 ab2@5 ab2 ~@7",
  J: "[~@3 g2@4 ~ g2@2 ~@2 eb2@2 ~ f2@2 ~@7 db2@6 ~ f1@2 ~@14 c2]/3", K: "f1@2 ~ f2 g1@3 ~ ab1@3 ~ a1@3 ~",
  L: "bb1@3 ~ d2@3 ~ eb2@3 ~ e2@2 ~ bb1", M: "f2@3 c2 g2@3 ~ ab2@3 ~ a2@3 ~", N: "bb2@3 ~ f2@3 ~ bb1@3 ~ c2@4",
  O: "[~@3 db2@31 c2@30]/8", P: "~@4 f2@4 g2@3 ~ ab2@4", Q: "c2@3 ~ f2@3 ~ g2@3 ~ ab2@3 ~",
  R: "a2@3 ~ bb2@3 ~ f2@3 ~ bb1@4", S: "d2@3 ~ f2@3 ~ g2@3 ~ ab2@3 ~", T: "a2@3 ~ bb2@3 ~ f2@3 ~ bb1@3 ~",
  U: "d2@3 ~ f2@3 ~ f2@3 ~ c2@3 ~", V: "c2@3 ~ f2@3 ~ f2@3 ~ c2@3 ~", W: "f2@3 ~ ab2 ~@2 ab2@5 ab2 ~@3",
  X: "~@7 g2@4 ~ g2@2 ~@2", Y: "[eb2@2 ~ f2@2 ~@7 db2@6 ~ f1@2 ~@11]/2", Z: "~@3 c2 f1@2 ~ f2 g1@3 ~ ab1@3 ~",
  AA: "a1@3 ~ bb1@3 ~ d2@3 ~ eb2@3 ~", AB: "e2@2 ~ bb1 f2@3 c2 g2@3 ~ ab2@3 ~", AC: "[c2@3 ~@2 db2@30 c2@29]/8",
  AD: "~@5 f2@4 g2@3 ~ ab2@3", AE: "~ c2@3 ~ f2@3 ~ g2@3 ~ ab2@3", AF: "~ c2@3 ~ gb2@4 ab2@3 ~ a2@3",
  AG: "~ db2@3 ~ gb2@3 ~ ab2@3 ~ a2@3", AH: "~ db2@3 ~ gb2@4 ab2@3 ~ a2@3", AI: "~ bb2@3 ~ b2@3 ~ gb2@3 ~ b1@3",
  AJ: "~ eb2@3 ~ gb2@3 ~ ab2@3 ~ a2@3", AK: "~ eb2@3 ~ gb2@3 ~ gb2@3 ~ db2@3", AL: "~ db2@3 ~ gb2@3 ~ gb2@3 ~ db2@3",
  AM: "~ gb2@3 ~@3 a2@5 ~ a2 ~@2", AN: "~@7 ab2@4 ~@2 ab2@2 ~", AO: "~@7 a2@5 ~ a2 ~@2", AP: "~ e2@2 gb2@2 ~@11",
  AQ: "~ gb2@3 ~@12",
})).s("gm_acoustic_bass").gain(0.36)

// other · brass section
const brass_section = note(`<
  ~@11 A@2 B C D E F G H I J@3 K@2 L B C D E F G H I J@3 K@2 ~@14 M@3 N O@2 P Q R@2 S@3 T U@2 ~@13 V@3 W X Y X Y Z@2 AA
  AB AC@2 AD@3 AE AF AE AF AE AG ~ AH
>`.pickRestart({
  A: "[~@28 c4@2 ~ f4, c3@15 ~]/2", B: "~@11 c4 f4@2 ~ c5", C: "~@11 f4 c5 ~@2 d5", D: "eb5@14 ~ f5",
  E: "d5 c5 ~ bb4 ~@7 f4 c4@2 ~ f4, ~@12 bb3 ~@3", F: "~@7 f4 ~@3 c4 f4@3 c5", G: "~@7 c5 ~@3 f4 c5 ~@2 d5",
  H: "eb5@6 ~ eb5@7 ~ f5", I: "d5 c5 ~ bb4 ~@7 bb4 c5 ~@2 eb5",
  J: "[f5 eb5 ~@6 c4 bb3@2 ~@5 ab3 g3 ~ ab3@13 ~@3 [c5,eb5]@5 [ab4,c5] ~@7, ~ f5@10 ~@5, ~@11 c4@21 ~@16]/3", // Cm Ab
  K: "[~@3 [g4,bb4]@5 g4 ~@3 eb3@2 ~@10 [db4,f4]@5 ~@2 f4, ~@15 f3@17]/2", L: "~@11 f4 c4@3 f4",
  M: "[~@32 c4@2 ~ f4 ~@11 c4, ~@2 c3@15 ~@7]/3", N: "f4@2 ~ c5 ~@11 f4",
  O: "[c5 ~@2 d5 eb5@14 ~ f5 d5 c5 ~ bb4 ~@7 f4]/2", P: "c4@2 ~ f4 ~@7 f4 ~@3 c4, bb3 ~@15", Q: "f4@3 c5 ~@7 c5 ~@3 f4",
  R: "[c5 ~@2 d5 eb5@6 ~ eb5@7 ~ f5 d5 c5 ~ bb4 ~@7 bb4]/2",
  S: "[c5 ~@2 eb5 f5 eb5 ~@6 c4 bb3@2 ~@5 ab3 g3 ~ ab3@13 ~@3 [c5,eb5]@5 [ab4,c5] ~@3, ~@7 f5@30 ~@11, ~@5 c4@7 ~@4]/3", // Cm Ab
  T: "~@7 [g4,bb4]@5 g4 ~@3", U: "[eb3@2 ~@10 [db4,f4]@5 ~@2 f4 ~@12, ~@3 f3@17 ~@12]/2",
  V: "[~@33 c4@2 f4 ~@11 c4, ~@5 c3@30 ~@13]/3", W: "~ f4@2 c5 ~@11 gb4", X: "~ db4 ~ gb4 ~@11 db4",
  Y: "~ gb4@2 db5 ~@11 gb4", Z: "[~ db5 ~ eb5 ~ e5@14 gb5 ~ eb5 db5 b4 ~@7 gb4]/2",
  AA: "~ db4@2 gb4 ~@7 gb4 ~@3 db4, ~ b3 ~@14", AB: "~ gb4@2 db5 ~@7 db5 ~@3 gb4",
  AC: "[~ db5 ~ eb5 ~ e5@6 e5@7 ~ gb5 ~ eb5 db5 b4 ~@7 b4]/2",
  AD: "[~ db5 ~ e5 ~ gb5 e5 ~@6 db4 ~@7 a3 ab3 a3@13 ~@3 [db5,e5]@5 ~ [a4,db5] ~@2, ~@7 gb5@30 ~@11, ~@7 b3 ~@16, ~@5 db4@7 ~@4]/3", // Dbm A
  AE: "~@7 [ab4,b4]@5 ~ ab4 ~@2", AF: "~@7 [db5,e5]@5 ~ [a4,db5] ~@2", AG: "~ e3@2 gb3 ~@12",
  AH: "~ [gb3,gb4,gb5]@2 ~@13", // Gb
})).s("gm_brass_section").gain(0.4)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@2 A B C D ~ E F G ~@3 H I J K H I L M N O P Q R@2 H I J K H I L M N O P Q R@2 S T S U ~ V W X ~ Y Z AA ~@3 AB AC AD
  AE AF AC AG AH AI AJ AK AL AM AN AO AP AQ AP AR AS AT AU ~ AV AW AX ~@3 AY AZ BA@3 BB BC BD BA BB BC BE BF BA BG BH BI
  BH BI BH ~@2 BJ
>`.pickRestart({
  A: "~@15 f3", B: "f3!7 ~ g3!8", C: "~ ab3!13 ~ ab3", D: "ab3!2 ~ ab3 ~@2 ab3 ~@9", E: "~ bb3!8 ab3!7",
  F: "ab3 ~ g3!3 ~ g3 eb3!9", G: "~ eb3!2 ~ eb3 ~@11",
  H: "f3@2 ~ [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,e4]", // Fm Abaug
  I: "f3@2 ~ [ab3,c4,e4] ~@3 [ab3,c4,e4] ~@3 [ab3,c4,e4] ~@3 [ab3,c4,eb4]", // Abaug Ab
  J: "f3@2 ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,d4]", // Ab Abdim
  K: "bb2@2 ~ [ab3,c4,d4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,f4]", // Dm7b5 Fm
  L: "f3@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,d4]", // Ab Dm7b5
  M: "bb2@3 [ab3,c4,d4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4]", // Dm7b5
  N: "f3@2 ~ [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]", // Fm
  O: "f3@3 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]", P: "~@3 [ab3,c4,eb4]@4 ~ [ab3,c4,eb4] ~@7",
  Q: "~@3 [g3,bb3,d4]@4 ~ [g3,bb3,d4] ~@7", R: "[[f3,ab3,c4] ~@7 [f3,ab3,db4]@5 ~@2 [f3,ab3,c4]@2 ~@14 f4]/2",
  S: "~@3 [ab3,eb4] ~@3 [ab3,eb4] ~@3 [ab3,eb4] ~@3 [ab3,d4]", // Ab5 Abdim
  T: "~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,eb4]", U: "~@3 [ab3,d4] ~@3 [ab3,d4] ~@8", V: "~@3 f3!8 ~ g3!4",
  W: "g3!4 ~ ab3!11", X: "ab3!2 ~ ab3!3 ~ ab3 ~@2 ab3 ~@5", Y: "~@5 bb3!8 ab3!3", Z: "ab3!5 ~ g3!3 ~ g3 eb3!5",
  AA: "eb3!4 ~ eb3!2 ~ eb3 ~@7", AB: "~@4 f3@2 ~ [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]",
  AC: "~@3 [ab3,c4,e4] f3@2 ~ [ab3,c4,e4] ~@3 [ab3,c4,e4] ~@3 [ab3,c4,e4]", // Abaug
  AD: "~@3 [ab3,c4,eb4] f3@2 ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]", // Ab
  AE: "~@3 [ab3,d4] bb2@2 ~ [ab3,c4,d4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4]", // Abdim Dm7b5
  AF: "~@3 [ab3,c4,f4] f3@2 ~ [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]", // Fm
  AG: "~@3 [ab3,c4,eb4] f3@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]", // Ab
  AH: "~@3 [ab3,c4,d4] bb2@3 [ab3,c4,d4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4]", // Dm7b5
  AI: "~@3 [ab3,c4,d4] f3@2 ~ [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]", // Dm7b5 Fm
  AJ: "~@3 [ab3,c4,f4] f3@3 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]", // Fm
  AK: "~@3 [ab3,c4,f4] ~@3 [ab3,c4,eb4]@4 ~ [ab3,c4,eb4] ~@3", AL: "~@7 [g3,bb3,d4]@4 ~ [g3,bb3,d4] ~@3",
  AM: "~@4 [f3,ab3,c4] ~@7 [f3,ab3,db4]@4", AN: "~@3 [f3,ab3,c4]@2 ~@11",
  AO: "~@3 f4 ~@3 [ab3,eb4] ~@3 [ab3,eb4] ~@3 [ab3,eb4]", AP: "~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4]",
  AQ: "~@3 [ab3,eb4] ~@3 [ab3,eb4] ~@3 [ab3,eb4] ~@3 [ab3,eb4]", AR: "~@5 ab3 ~@10", AS: "~@6 f3!2 ~ f3!6 g3",
  AT: "g3!7 ~ ab3!8", AU: "ab3!8 ~@2 ab3 ~ ab3 ~@3", AV: "~@6 bb3!2 ~ bb3!6 ab3", AW: "ab3!7 g3!3 ~ g3 eb3 ~ eb3 ~",
  AX: "eb3!4 ~ eb3!3 ~ eb3 ~@6", AY: "~@5 f3@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]",
  AZ: "~@3 [ab3,c4,f4] ~ f3@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@3 [ab3,c4,f4]", // Fm
  BA: "~@3 [a3,db4,gb4] ~ gb3@2 [a3,db4,gb4] ~@3 [a3,db4,gb4] ~@3 [a3,db4,gb4]", // Gbm
  BB: "~@3 [a3,db4,f4] ~ gb3@2 [a3,db4,f4] ~@3 [a3,db4,f4] ~@3 [a3,db4,f4]", // Aaug
  BC: "~@3 [a3,db4,e4] ~ gb3@2 [a3,db4,e4] ~@3 [a3,db4,e4] ~@3 [a3,db4,e4]", // A
  BD: "~@3 [a3,eb4] ~ b2@2 [a3,db4,eb4] ~@3 [a3,db4,eb4] ~@3 [a3,db4,eb4]", // Adim Ebm7b5
  BE: "~@3 [a3,db4,eb4] ~ b2@2 [a3,db4,eb4] ~@3 [a3,db4,eb4] ~@3 [a3,db4,eb4]", // Ebm7b5
  BF: "~@3 [a3,db4,eb4] ~ gb3@2 [a3,db4,gb4] ~@3 [a3,db4,gb4] ~@3 [a3,db4,gb4]", // Ebm7b5 Gbm
  BG: "~@3 [a3,db4,gb4] ~@3 [a3,db4,e4]@4 ~@2 [a3,db4,e4] ~@2", BH: "~@7 [ab3,b3,eb4]@4 ~@2 [ab3,b3,eb4] ~@2",
  BI: "~@7 [a3,db4,e4]@4 ~@2 [a3,db4,e4] ~@2", BJ: "~ [e3,a3,gb4]@2 ~@13",
})).s("gm_acoustic_guitar_nylon").gain(0.28).pan(0.8)

// other · marimba
const marimba = note(`<
  ~ A B C D E F G H I ~@31 J K L M N C O P Q G R S ~@17 T U V W X Y Z AA AB AC AD AE ~@3 AF AG AH AI AJ AK AL AM AN AK
  AL AM ~@11
>`.pickRestart({
  A: "db4 ~ f4 db4 f4 db4 [db4,f4] f4 ~ eb4 g4 eb4 g4 eb4 g4 eb4", // Db
  B: "g4 f4 ab4 ~ [f4,ab4] f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4", // Fm
  C: "ab4 f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4",
  D: "ab4 f4 ab4 f4 [f4,ab4] ~ ab4 f4 ab4 [f4,ab4] ~ [f4,ab4] f4 ab4 f4 ~", // Fm
  E: "bb4 g4 bb4 g4 bb4 g4 [g4,bb4] bb4 g4 ~ ab4 f4 ab4 f4 ab4 f4", // Gm
  F: "ab4 eb4 g4 eb4 g4 ~ c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 eb4",
  G: "c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 eb4",
  H: "c4 eb4 c4 eb4 ~ c4 eb4 c4 eb4 c4 eb4 c4 eb4 ~ [c4,eb4] ~", I: "c4 ~@15",
  J: "[ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,c5] [c5,eb5] [ab4,eb5] [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5,eb5] [ab4,c5]", // Ab Cm Ab5 Ab
  K: "eb5 [ab4,bb4] d5 [ab4,bb4,d5] [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4,d5] [ab4,bb4] d5 [ab4,bb4]", // Absus2 Bb7 Absus2 Bb7 Absus2
  L: "d5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5] [c5,eb5] [ab4,eb5]", // Ab Cm Ab5
  M: "[ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] [ab4,bb4,d5] d5 [ab4,bb4] d5 [ab4,bb4] d5 ~ [ab4,bb4] ~", // Absus2 Bb7 Absus2
  N: "~ [ab4,bb4] ~@3 f4 ab4 ~ [f4,ab4] f4 ab4 f4 ab4 f4 ab4 f4", // Absus2 Fm
  O: "ab4 f4 ab4 f4 ab4 f4 ab4 f4 [f4,ab4] ~ ab4 f4 ab4 [f4,ab4] ~ [f4,ab4]", // Fm
  P: "f4 ab4 f4 ~ bb4 g4 bb4 g4 bb4 g4 [g4,bb4] bb4 g4 ~ ab4 f4", // Gm
  Q: "ab4 f4 ab4 f4 ab4 eb4 g4 eb4 g4 ~ c4 eb4 c4 eb4 c4 eb4",
  R: "c4 eb4 c4 eb4 c4 eb4 c4 eb4 ~ c4 eb4 c4 eb4 c4 eb4 c4", S: "eb4 ~ [c4,eb4] ~ c4 ~@11",
  T: "~@4 [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,c5] [c5,eb5] [ab4,eb5] [ab4,c5] eb5", // Ab Cm Ab5 Ab
  U: "[ab4,c5] eb5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,bb4] d5 [ab4,bb4,d5] [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] d5", // Ab Absus2 Bb7 Absus2
  V: "[ab4,bb4,d5] [ab4,bb4] d5 [ab4,bb4] d5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5] eb5 [ab4,c5,eb5] [ab4,c5] eb5 [ab4,c5]", // Bb7 Absus2 Ab
  W: "eb5 [ab4,c5] [c5,eb5] [ab4,eb5] [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] d5 [ab4,bb4] [ab4,bb4,d5] d5 [ab4,bb4] d5 [ab4,bb4]", // Ab Cm Ab5 Absus2 Bb7 Absus2
  X: "d5 ~ [ab4,bb4] ~@2 [ab4,bb4] ~@3 f4 ab4 f4 ab4 f4 ab4 f4", // Absus2
  Y: "ab4 f4 ab4 f4 ab4 f4 [f4,ab4] ab4 f4 ab4 f4 ab4 f4 ab4 f4 ab4", // Fm
  Z: "f4 ab4 f4 ab4 f4 ab4 f4 ab4 f4 [f4,ab4] ~ [f4,ab4] ab4 f4 ab4 f4", // Fm
  AA: "ab4 f4 ab4 f4 ab4 f4 bb4 g4 bb4 g4 bb4 g4 bb4 g4 bb4 g4",
  AB: "ab4 f4 ab4 ~ [f4,ab4] f4 ab4 eb4 g4 eb4 g4 ~ c4 eb4 c4 eb4", // Fm
  AC: "c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 eb4 [c4,eb4] ~ [c4,eb4] c4 ~ [c4,eb4]", // Cm
  AD: "eb4 c4 eb4 ~ [c4,eb4] ~ [c4,eb4] ~ c4 eb4 c4 eb4 c4 eb4 c4 eb4", AE: "c4 eb4 ~ [c4,eb4] ~ c4 ~@10",
  AF: "~@5 ab4 c5 ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ~ [ab4,c5] ab4", // Ab
  AG: "c5 ~ [ab4,c5] ab4 ~ c5 [ab4,c5] ab4 c5 ab4 c5 ab4 c5 ab4 c5 ab4", // Ab
  AH: "c5 ~ [ab4,c5] ab4 c5 a4 db5 a4 db5 a4 db5 a4 db5 a4 db5 a4", // Ab
  AI: "db5 ~ [a4,db5] a4 db5 a4 db5 a4 db5 a4 db5 a4 db5 a4 db5 a4", AJ: "db5 ~ a4 ~@8 [a4,db5,gb5] ~@4",
  AK: "~@11 [a4,db5,f5] ~@4", AL: "~@11 [a4,db5,e5] ~@4", AM: "~@11 [a4,db5,eb5] ~@4", AN: "~@11 [a4,db5,gb5] ~@4",
})).s("gm_marimba").gain(0.3)

// chords · trombone
const trombone = note("<A@2 B@3 C D@4 ~ E@2 ~@31 F G@8 ~ H@3 ~@16 I J@8 ~ K@3 ~@22>".pickRestart({
  A: "[~@15 [db3,f3]@8 ~ [eb3,g3]@8]/2", B: "[~ [f3,ab3]@47]/3", C: "[g3,bb3]@8 ~ ab3@7, ~ f3",
  D: "[~ [eb3,g3]@5 ~@2 [c3,eb3]@49 ~@7]/4", E: "[c3@15 ~]/2", F: "~@5 [db3,f3]@3",
  G: "[[eb3,g3]@6 [f3,ab3]@44 ~@2 [g3,bb3]@8 ~ ab3@8 [eb3,g3]@5 ~@2 [c3,eb3]@49 ~@3, ~@15 f3@2 ~@15]/8", // Eb Fm Gm Eb Cm
  H: "[~@2 c3@15 ~@7]/3", I: "~@15 [db3,f3]",
  J: "[~@5 [eb3,g3]@5 [f3,ab3]@43 ~@2 [g3,bb3]@8 [f3,ab3]@8 [eb3,g3]@5 ~@2 [c3,eb3]@48 ~@2]/8", K: "[~@5 c3@30 ~@13]/3",
})).s("gm_trombone").gain(0.4)
// … 73 more lines

More by Alpert