Strudelify

Mack the Knife

Bobby Darin

KeyA minorTempo130 bpm
0:00/0:00
// Mack the Knife — Bobby Darin
// 130 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 3 "Vibraphone" named as a mallet, played on vibraphone (its rock organ patch is not one); ch 7 "Muted Trumpet" named as a brass, played on trumpet (its voice oohs patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 116 bars on a 24-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 · "Acous Grand Pinano"
const piano = note("<~@41 A@2 B C D E F G H@3 I J@2 K L@2 M B N O P Q R S T U V@2 W X Y ~@43>".pickRestart({
  A: "[[e3,a3,d4,g4,c5]@28 [e3,a3,d4,g4,c5] ~@7 [c#4,e4,g4,a#4,c#5]@11 ~]/2", B: "[e4,f4,a4,c5,e5]@23 ~",
  C: "[f3,b3,e4,b4,e5] ~@2 [f3,b3,e4,b4,e5]@2 [f3,b3,d4,a4,d5]@7", D: "[f3,c4,f4,a4,c5]@11 ~",
  E: "[f3,b3,e4,g4,b4,e5]@4 ~@2 [f3,b3,e4,g4,b4,e5]@4 ~ [f3,b3,d4,f4,a4]@13, ~@10 d5@13 ~", F: "[e3,a3,d4,g4,c5]",
  G: "[e3,a3,d4,c5,g5,c6] ~@9 [e3,a3,d4,c5,g5,c6]@14", // Am7
  H: "[[b3,d4,e4,g4,b4,d5]@10 [e4,g4,a4,c5] ~@11 [b3,c4,d#4,f#4,b4]@11 ~ [g#3,c4,d#4,f#4,g#4]@5 ~ [a3,c4,d#4,a4]@7 ~ [f4,a4]@10 [e4,f4,a4,c5,e5]@12 ~@2, ~@39 f#4@8 [c4,d4,c5]@10 ~@15]/3", // Em7 Am7 B G#7 Adim F Fmaj7 Csus2
  I: "[g4,a4,c5,e5,g5]@2 ~@2 [g4,a4,c5,e5,g5]@7 ~ [f4,a4,c5,e5] ~@2 d4 [e4,f4,a4,c5,e5]@8, ~@6 e4 ~@5", // Am7 Fmaj7
  J: "[[c4,e4,f4,a4,c5]@21 ~@7 [f#4,a#4,d#5]@2 ~@4 [f3,b3,d4] ~@5 [f3,b3,d4]@8, ~@11 [f3,b3,e4,g4,b4,e5]@4 [f4,a4,d5]@9]/2", // Fmaj7 D#m Bdim Em Dm
  K: "[e3,a3,d4,g4,c5]@11 ~", // Am7
  L: "[~@4 [e3,a3,d4,c5,g5,c6] ~@17 [e3,a3,d4,c5,g5,c6]@19 ~ [e3,a3,d4,d5,g5,c6]@4 [a5,d6] [e3,a3,d4,e5]]/2", // Am7 D5 Dsus2
  M: "~@4 [e3,a3,d4,d5,g5,c6] ~@11 [f4,g4,a#4,c#5,f5]@8", // Am7 Gm7b5
  N: "[c4,e4,f4,a4]@2 ~@2 [a3,c4,e4,f4,a4]@7 ~ b3 ~ [g4,b4,e5] ~ [f3,b3] ~ [f4,a4,d5]@4 [f4,a4,d5] ~, a3 ~@23", // Fmaj7 Em Fdim Dm
  O: "~@12 a3 ~ [c4,f4] ~ a3 ~ [e4,f4,a4]@4 [c4,e4,f4,a4] ~, ~@17 c4@4 ~@3", // F5 Fmaj7
  P: "~@11 [f3,b3,e5]@5 [f4,a4,d5]@8, ~@10 [g4,b4]@5 ~@9", Q: "[e3,a3,d4,g4,c5]@21 ~ [e3,a3,d4,c5,g5,c6] ~",
  R: "~@10 a#5 c6 [e3,a#3,d4,d#5,d#6]@4 ~@2 [e3,a#3,d4,d#5,d#6]@3 ~ [e3,a#3,d4,d#5,d#6] ~", // Em7b5
  S: "~@4 [g3,c4,e4,d5,d6] ~@7 [g3,c4,e4,d5,d6]@5 ~ [g3,c4,e4,c5,c6]@3 ~ [b4,b5]@2", // C B
  T: "~@10 [g#3,c4,d#4,f#4,g#4]@5 ~ [a3,c4,d#4,f#4,a4]@8", // G#7 Adim
  U: "[c4,d4,f4,a4,c5]@17 d4 [e4,f4,a4,c5,e5]@3 ~ [f4,a4,c5] e4, ~@11 e5", // Dm7 Fmaj7 F
  V: "[~@13 [g4,a4,c5,e5,g5]@4 ~ [f#4,a4,c5,e5,f#5]@4 [f4,a4,c5,d5,f5]@4 ~@8 [a3,e4,f4,a4,c5]@3 ~@5 [e4,f4,a4,c5,e5]@3 ~ [d#4,f4,a4,d#5]@2, ~@40 d4@5 ~@3]/2", // Am7 F#m7b5 Dm7 Fmaj7 F7
  W: "~@2 [d4,f4,a4,c5,d5]@3 ~ c4@4 [f4,a4] ~@2 [f3,b3,f4,b4] ~@3 [f3,b3,f4,b4]@6 ~", // Dm7 F Fdim
  X: "[e3,a3,d4,g4,c5]@21 ~ [e3,a3,d4,g5,c6] ~", Y: "~@10 [e3,a3,d4,g5,c6] ~@13",
})).s("gm_piano").gain(0.23)

// bass · acoustic bass · "Electric Bass (Finger)"
const bass = note(`<
  ~ A B C D A B C E F G H I J K L M N O P Q R S T U F V H W H X Y Z N AA P AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT T AU AV AW P R AX AY AZ BA AO AP BB BC BD BE BF BG AV BH AK BI P BJ T BK BL BM BN BO BP BQ AV BR BS V BT
  BU H BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ CG CK CL@2 ~ CM@2
>`.pickRestart({
  A: "c2@8 ~@2 c2@13 ~", B: "d#2@9 ~ d#2@13 ~", C: "d2@8 ~@2 d2@13 ~", D: "g1@4 ~ g1@6 ~", E: "g1@8 ~@2 g1@13 ~",
  F: "c2 ~ g1 ~", G: "c2@5 ~@7 a1@5 ~ c#2@4 a1 ~", H: "d2@5 ~@7 a1@6 ~@6", I: "g1@6 ~@6 b1@6 ~@4 c2 ~", J: "d2 ~ a1 ~",
  K: "g1@5 ~@7 b1@5 ~@5 b1 ~", L: "c2@6 ~@6 g1@5 ~@7", M: "c2@5 ~ d2@3 ~ c2 ~ e2@5 ~ c2@6",
  N: "e2@4 c2 ~ f2@4 c2 ~ g2@6 e2@6", O: "d#2@5 ~ d#2@6 f#2@6 d#2@6", P: "d2@6 e2@4 d2 ~ f2@6 d2@6",
  Q: "a2@4 d2 ~ g#2@4 d2 ~ a2@6 f2@6", R: "g2@4 d2 ~ f2@6 e2@6 d2@5 ~", S: "g1@6 d2@4 g1 ~ f2@6 b1@6",
  T: "c2@6 d2@4 c2 ~ e2@6 c2@6", U: "g2@3 ~ c2 ~ f#2@3 ~ c2 ~ g2@5 ~ g1@6", V: "c2@6 ~@6 a1@5 ~ c#2@4 a1 ~",
  W: "g1@6 ~@6 b1@5 ~@5 b1 ~", X: "g1@5 ~@7 b1@4 ~@6 b1 ~", Y: "c2@5 ~@7 g1@5 ~@7", Z: "c2@5 ~ d2@4 c2 ~ e2@5 ~ c2@6",
  AA: "d#2@5 ~ d#2@5 ~ f#2@6 d#2@6", AB: "a2@4 d2 ~ g#2@6 a2@6 d2@6", AC: "g2@3 ~ d2 ~ f2@6 e2@6 d2@5 ~",
  AD: "g1@6 b1@3 ~ g1 ~ f2@5 ~ d2@6", AE: "c2@11 ~ g1@12", AF: "c2@6 g2@4 c2 ~ a2@6 g2@5 ~",
  AG: "c2@4 c3 ~ a#2@4 c2 ~ a2@6 g2@4 c2 ~", AH: "f2@6 e2@6 c#2@6 e2@4 c#2 ~", AI: "d2@6 e2@4 d2 ~ f2@5 ~ d2@6",
  AJ: "g2@4 d2 ~ f#2@5 ~ g2@6 f2@6", AK: "d2@5 ~ e2@4 d2 ~ f2@6 d2@5 ~", AL: "g2@4 d2 ~ f#2@5 ~ g2@6 g1@6",
  AM: "c2@5 ~ d2@4 c2 ~ e2@6 c2@6", AN: "g2@4 c2 ~ f#2@5 ~ g2@5 ~ f2@5 ~", AO: "e2@6 f2@4 e2 ~ g2@6 e2@5 ~",
  AP: "d#2@5 ~ d#2@6 c2@6 d#2@4 c2 ~", AQ: "d2@6 c2@6 b1@4 c2 ~ a1@6", AR: "g1@6 f2@5 ~ e2@6 d2@6",
  AS: "g2@4 d2 ~ f2@6 e2@6 g2@4 d2 ~", AT: "f2@6 d2@5 ~ g1@6 b1@4 g1 ~", AU: "d2@4 c2 ~ e2@4 c2 ~ g2@6 d2@5 ~",
  AV: "c2@6 d2@4 c2 ~ e2@6 c2@5 ~", AW: "g2@4 c2 ~ f#2@5 ~ g2@5 ~ c#2@5 ~", AX: "d2@6 e2@4 d2 ~ f2@5 ~ d2@4 g2 ~",
  AY: "d2 ~ f#2 ~ d2 ~ g2@3 ~ f2 ~ d2 ~ f2 ~ d2 ~ d2@3 ~ b1 ~", AZ: "c2@6 d2@3 ~ c2 ~ e2@6 c2@4 c2 ~",
  BA: "g2@4 c2 ~ f#2@5 ~ g2@6 c2@6", BB: "d2@6 e2@4 d2 ~ f2@5 ~ e2@6", BC: "d2@6 c2@6 b1@5 ~ a1@5 ~",
  BD: "g1@4 g2 ~ f2@6 e2@6 d2@6", BE: "c2@5 ~ g1@5 ~ a1@6 b1@5 ~", BF: "c2@6 e2@4 c2 ~ g2@6 e2@4 c2 ~",
  BG: "g2@4 c2 ~ f#2@5 ~ g2@6 e2@6", BH: "e2@6 g1@6 a1@6 c#2@4 a1 ~", BI: "g2@4 d2 ~ f#2@6 g2@6 f2@6",
  BJ: "g1@6 g2@4 g1 ~ f#2@5 ~ g2@6", BK: "g2@4 c2 ~ f#2@6 g2@4 c2 ~ d#2@6", BL: "e2@3 ~ d2 ~ f2@6 g2@6 e2@4 c2 ~",
  BM: "d#2@3 ~ c2 ~ d2@6 c#2@6 c2@5 ~", BN: "d2@6 e2@4 d2 ~ f2@6 d2@5 ~",
  BO: "a2@4 d2 ~ g#2@4 d2 ~ a2@3 ~ d2 ~ g#2@4 d2 ~", BP: "g2@4 d2 ~ f2@6 e2@6 d2@6",
  BQ: "g1@6 b1@4 g1 ~ f2@4 g1 ~ d2@5 ~", BR: "g2@6 f2@5 ~ g2@5 ~ g1@6", BS: "c2@5 ~@7 g1@6 ~@6",
  BT: "d2@5 ~@7 a1@7 ~@5", BU: "g1@7 ~@5 b1@6 ~@4 b1 ~", BV: "g1@5 ~@7 b1@6 ~@6", BW: "c2@5 ~@7 g1@5 ~@5 g1 ~",
  BX: "c2@3 ~ g1 ~ d2@5 ~ e2@6 c2@5 ~", BY: "e2@3 ~ c2 ~ f2@6 g2@6 e2@6", BZ: "d#2@5 ~ d#2@6 c2@5 ~ d#2@3 ~ c2 ~",
  CA: "d2@6 f2@4 d2 ~ a2@4 d2 ~ g#2@4 d2 ~", CB: "a2@4 d2 ~ g2@6 f2@6 e2@6", CC: "d2@2 g2 f2@3 e2@3 d2@3",
  CD: "c2 b1 a1 g1", CE: "c2@5 ~ d2@4 c2 ~ e2@6 c2@5 ~", CF: "a1@6 e2@4 a1 ~ g2@6 a1@6",
  CG: "d2@6 e2@3 ~ d2 ~ f2@6 d2@6", CH: "g2@4 d2 ~ f#2@5 ~ g2@6 d2@5 ~", CI: "c2@6 d2@4 c2 ~ e2@5 ~ c2@5 ~",
  CJ: "a1@6 c#2@3 ~ a1 ~ g2@5 ~ a1@6", CK: "g2@4 d2 ~ f#2@5 ~ g2@6 b1@6", CL: "[c2@10 e2@11 ~ f2@11 ~ f#2@12 g2@2]/2",
  CM: "[~@6 c2@3 ~@7]/2",
})).s("gm_acoustic_bass").gain(0.3)

// other · vibraphone
const vibraphone = note(`<
  ~ A@2 B C D E F G H ~@31 I J K L@2 M@2 N O P Q R S T U V W X Y Z@2 AA AB AC@2 AD AE AF AG AH@2 AI ~@43
>`.pickRestart({
  A: "[f#6 g6 ~@2 g6@30 c6 ~ f6 f#6 f6 d#6 c6 ~ d#6@3 ~ f6@2, c7@11 ~@5]/2",
  B: "~@10 c7@2 a#6 c7 ~ a#6@2 ~ a#6@3 ~ c7 ~", C: "f6 f#6 f6 ~ c6 ~ f6@3 ~ d#6 e6@4 ~ c6@2 a5@3 ~@3, ~@3 d#6@2 ~@19",
  D: "c6@3 ~ a5 ~@2 e6 ~ d#6 e6@6 ~@2 a6 d#6 ~ d#6 d6 c6, ~@6 [d#6,a6]@2 ~ a6@7 ~@2 d6@2 a6@2 ~@2", // D#dim
  E: "a6 d#6 ~ d#6 [c6,d6] ~ [d6,a6]@2 d#6!2 [c6,d6] ~ [d6,a6]@2 d#6 ~ [d6,d#6] c6 [d6,a6]@2 d#6 ~ [c6,d6] ~, d6@2 ~ a6@2 ~@4 a6@2 ~@4 a6@2 ~@7", // Csus2 D5 Csus2 D5 D#maj7 D5 Csus2
  F: "f#6 g6 a#6 ~ g6 a#6 g6 a#6 g6 a#6 g6 a#6 g6 a#6@2 g6 ~@8",
  G: "~@3 a#6 g6 ~ [f#6,c7] ~ f6 d#6 ~ c6 a#5 g5 ~ [f#5,c6] ~ f5 d#5 ~ f5 d#5@2 e5, ~ c7 ~@10", H: "c5@3 ~@3 c5@8 ~@10",
  I: "[d6,d#6] e6 ~@2 [e6,a6]@13 ~@3 d#6 ~ d#6 [c6,d6], a6@2 ~@16 a6@2 ~ a6@2 ~, ~@19 d6@2 ~@3", // D#maj7 A5 Csus2
  J: "~ d6@3 c6 ~@9 e6 ~ f6 f#6 g6 ~ d6 f6 ~ d#6, ~@13 [d#6,a6]@2 ~@9", K: "e6 c6 ~@4 c6@3 ~ c6 ~@13",
  L: "[~@7 b6 a#6@2 c7 ~ [f#6,c7] f6@3 d#6 ~ f6@3 ~ d#6 e6@4 ~ c6 ~ a5@3 ~@3 c6@3 ~ c6 ~@7, ~@7 c7@2 ~@39]/2", // F#dim
  M: "[~@9 a#5 ~ c6 ~ f5@3 d#5 ~ f5@3 ~ d#5 e5@5 c5 ~ a4@3 ~@3 c5@3 ~ c5 ~@7, ~@6 [f#5,c6] ~@17]/2", // F#dim
  N: "~@12 [d#5,a5]@2 e5 f5 ~ f#5 g5@3 ~ [f5,a5] ~", O: "[d#5,a5] [e5,a5]@3 [c5,a5]@2 ~@6 [g4,g5]@3 ~ [g4,g5]@2 ~@6",
  P: "~@6 d#5@2 ~ c#5@2 d#5 e5 f#5 ~ g5 a5 ~@2 c6@2 ~ d6@2, ~@8 c5@2 ~@8 a#5@2 ~ c#6@2 ~",
  Q: "d#6 e6@2 ~ d#6 e6@4 ~ c6 a5 g6@2 d6 [c6,g6]@4 ~@5, a6@9 ~@3 c6 ~@11", // C5
  R: "~@8 g6 ~ f#6 f6 e6@2 c#6 c6@2 a#5 g5@2 ~ a5@2 e5, ~@10 g#5 ~", S: "g5 f#5 ~ f5@2 ~@16 e6 g6@2",
  T: "~ f6@2 ~ c#6 ~@2 e6@2 ~@2 d#6 ~ d6@3 ~ a5 ~ a#5@3 g#5@2, ~@7 d#6 ~@16",
  U: "~ f5 f#5 g5@2 ~ [f5,c6]@3 ~@2 [e5,c6]@2 ~@9 [f5,a5] ~, ~ c6 ~@10", // F5 C F
  V: "a5 e5 ~ e5 d#5 c5 [f5,a5]@3 ~ [d#5,a5]@2 e5 ~ e5 d#5 c5 ~ [f5,a5]@3 ~@2 f#5, d#5@2 a5@2 ~@10 a5@3 ~@5 c5@2", // F D#dim F
  W: "~ g5 a#5 g5 ~ a#5 g5 [g5,a#5] a#5 g5 ~@14", // Gm
  X: "c6@2 f#6 g6 a#6 g6 a#6 g6 a#6 g6 ~ g6 ~@6 c7@2 a#6@2 c7 ~, ~@5 a#6 ~@6",
  Y: "f#6 f6@2 ~ f#6 f6@17 c6 ~, c7@3 ~ c7@17 ~@3",
  Z: "[d#6,a6]@2 c6 ~ [d6,a6]@2 c6 ~ [d#6,a6]@2 c6 ~ [d6,a6]@2 c6 ~ [d#6,a6]@2 c6 ~ [d6,a6]@2 c6 ~", // D#dim D5 D#dim D5 D#dim D5
  AA: "[d#6,g6]@2 e6@2 ~ [f6,a6] ~ [d#6,g6] e6 g6 e6 c6 g5 f5@3 ~@3 e5@3 [f5,a5] ~, ~@8 d#5 ~@3, ~@17 g5@4 ~@3", // D# F D# F
  AB: "a5 e5 ~ e5 d#5 c5 [d5,f5]@3 ~ [c5,e5] ~@13, d#5 a5 ~@10", // Dm C
  AC: "[~@23 d#5 e5 ~ g5 a5 ~ c6 d#6@2 e6 f6 ~ f#6 g6@2 ~ f6@2 [d#6,a6] e6 g6 ~ a6 c7 ~, ~@23 a5@2 ~@13 d6@2 ~@8]/2", // D#dim
  AD: "a#6 f#6 ~ a6 g#6 ~@2 c7@2 ~ d#6 ~@2 d#6@2 e6@2 c#6 c6 a#5 ~ g5 ~ [f#5,c6], ~@3 g6 ~@8, ~@7 f#6 ~ f6@2 ~ f6@2 ~@10", // F#dim
  AE: "[f5,c6]@4 ~@2 f5@3 ~@2 f5 ~ e5@2 ~@2 c5 ~ a4@4 ~, ~@13 d#5 ~@10", // F5
  AF: "c5@3 ~ a4 ~ [d#5,a5]@2 e5 ~ d#5 e5@9 ~@2 c5 a4, ~@5 a5@5 ~@2", AG: "~ c5 ~ d5 c5@3 ~@17",
  AH: "[~@6 [d#6,a6]@2 e6 f6@2 ~ g6 ~ c6 [d#6,a6]@2 e6 f6 ~@2 g6@2 ~ d#6@2 e6 f6 f#6@2 ~ c6@2 ~ e6@2 ~ f#6@2 g6@2 c6 [d#6,a6]@2 e6 f6@2 f#6, ~@11 f#6@2 ~@7 f#6@2 ~ c6@2 ~@8 [d#6,a6]@2 ~ f6@2 ~@10, ~@24 a6 ~@5 g6@2 ~@16]/2", // D#dim
  AI: "g6@3 ~@3 [f6,a6]@3 ~@2 d#6@2 e6@3 ~ c6 ~@6, ~@11 a6@7 ~@6", // F
})).s("gm_vibraphone").gain(0.31)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@4 A@3 B@3 ~@6 C@5 D@2 E@2 ~@7 F G@4 H@2 I@2 ~@39 F J@2 K@2 L@4 ~@7 F M@6 N@2 O@2 P@4 Q@2 ~@3
>`.pickRestart({
  A: "[~@23 g5@35 ~ c6@6 ~ a#5@6]/3", B: "[g5@15 e5@2 f5@4 g5@18 f5@2 ~ e5@3 g4@26 ~]/3",
  C: "[~@18 g5 a5@2 ~ c6 d6@13 c6@24 b5@6 a5@5 c6@12 ~ d5@23 e5@6 ~ f5@6, ~@21 b5@2 ~@97]/5",
  D: "[c6@11 d5@24 ~ c6@5 b5@6 ~]/2", E: "[a5@35 ~@13]/2", F: "~@18 g5@2 ~@2 c6 ~, ~@10 a5 ~, ~@21 b5@2 ~",
  G: "[d6@11 c6@24 b5@6 ~ a5@5 c6@12 d5@24 ~ e5@5 f5@6 ~]/4", H: "[c6@12 d5@23 c6@6 ~ b5@6]/2", I: "[a5@11 ~]/2",
  J: "[d6@12 c6@23 b5@6 ~ a5@6]/2", K: "[c6@12 d5@24 e5@5 f5@6 ~]/2", L: "[c6@11 d5@25 c6@6 b5@5 a5@35 ~@14]/4",
  M: "[d6@11 c6@24 b5@6 ~ a5@5 c6@12 ~ d5@24 e5@5 f5@6 c6@12 d5@24 ~ c6@6 b5@6]/6", N: "[a5@36 e5@5 g5@6 ~]/2",
  O: "[a5@6 c6 b5]/2", P: "[a5@35 e5@6 ~ g5@5 a5@24 e6@24 ~]/4", Q: "c6/2",
})).s("gm_string_ensemble_1").gain(0.19)

// chords · muted trumpet · "Trumpet"
const muted_trumpet = note(`<
  ~@9 A B C D E@2 F G ~@8 H G I@2 C J K G ~@40 F B C J L M F G ~@8 A N O J P Q A B ~@16 R@2 ~
>`.pickRestart({
  A: "~@4 [c5,e5,g5] ~@7 [c5,e5,g5] ~@11, ~@2 a5 ~@3 a5 ~@5", B: "[c5,e5,g5,a5]@8 ~@2 [c5,e5,g5,a5] ~@13",
  C: "~@4 [c5,d5,f5,a5] ~@7 [c5,d5,f5,a5] ~@11", D: "[b4,d5,f5,a5]@8 ~ [b4,d5,f5,a5] ~@14",
  E: "[~@4 [c5,d5,f5,a5] ~@6 [c5,f5] [d5,a5] ~@11 [d5,f5]@9 ~ [b4,d5,f5,a5] ~@13, ~@23 [b4,a5]@8 ~@17]/2", // Dm7 F5 D5 Dm Bm7b5 B7
  F: "~@4 [c5,e5,g5,a5] ~@7 [c5,e5,g5,a5] ~@11", G: "[c5,e5,g5,a5]@8 ~ [c5,e5,g5,a5] ~@14",
  H: "~@4 [c5,e5,g5] ~@7 [c5,e5,g5,a5] ~@11, ~@2 a5 ~@9", // C Am7
  I: "[~@4 [c5,d5,f5,a5] ~@7 [c5,d5,f5] ~@11 d5@8 ~@2 [b4,d5,f5,a5] ~@13, ~@12 a5@2 ~@9 [b4,f5,a5]@8 ~@17]/2", // Dm7 Bm7b5
  J: "[b4,d5,f5,a5]@8 ~@2 [b4,d5,f5,a5] ~@13", K: "~@4 [c5,e5,g5,a5] ~@6 [c5,e5,a5] g5 ~@11",
  L: "~@4 [c5,d5,f5,a5] ~@7 [c5,d5,f5] ~@11, ~@6 a5 ~@5", M: "[b4,d5,f5,a5]@9 ~ [b4,d5,f5] ~@13, ~@5 a5 ~@6",
  N: "[c5,e5,g5,a5]@8 ~ [c5,a5] [e5,g5] ~@13", O: "~@4 [c5,d5,f5] ~@7 [c5,d5,f5] ~@11, ~@2 a5 ~@3 a5 ~@5",
  P: "~@3 [c5,d5,f5,a5] ~@8 [c5,d5,f5] ~@11, ~@11 a5@2 ~@11", Q: "[b4,d5,f5,a5]@8 ~@2 [b4,d5,f5] ~@13, ~@5 a5 ~@6",
  R: "[~@11 [d5,f5,a5,c6]@2 ~@10 [d#5,f#5,a5,c6]@2 ~@8 [e5,c6]@2 ~@13, ~@16 [g5,a5] ~@7]/2", // Dm7 D#dim C Gsus2
})).s("gm_muted_trumpet").gain(0.16).pan(0.7)

// chords · trumpet · "Muted Trumpet"
const trumpet = note(`<
  ~@17 A B C D E F G H ~@8 A I C J K L M N ~@40 O I C J P F M N ~@8 A I C J E F M Q E F R S T L ~@5
>`.pickRestart({
  A: "~@4 [e4,g4] ~@7 [e4,g4] ~@11", B: "[d#4,f#4]@8 ~ [d#4,f#4] ~@14", C: "~@4 [d4,f4] ~@7 [d4,f4] ~@11",
  D: "[d4,f4]@8 ~@2 [d4,f4] ~@13", E: "~@4 [f4,a4] ~@7 [f4,a4] ~@11", F: "[f4,a4]@8 ~@2 [f4,a4] ~@13",
  G: "~@4 [e4,a4] ~@6 [e4,a4] ~@12", H: "[e4,a4]@8 ~ [e4,a4] ~@14", I: "[d#4,f#4]@8 ~@2 [d#4,f#4] ~@13",
  J: "[d4,f4]@9 ~ [d4,f4] ~@13", K: "~@4 a4@2 ~@6 [f4,a4] ~@11, ~@4 f4 ~@19", L: "[f4,a4]@4 ~ a4 ~@6, ~@10 f4 ~@13",
  M: "~@4 [e4,a4] ~@7 [e4,a4] ~@11", N: "[e4,a4]@8 ~@2 [e4,a4] ~@13", O: "~@4 g4@2 ~@6 [e4,g4] ~@11, ~@4 e4 ~@19",
  P: "~@2 a4 ~@3 a4 ~@5, ~@4 f4 ~@7 f4 ~@11", Q: "[e4,a#4]@8 ~@2 [e4,a#4] ~@13",
  R: "~@4 [e4,a4] ~@7 a4@2 ~@10, ~@12 e4 ~@11", S: "[e4,a#4]@4 ~ a#4 ~@6, ~@10 e4 ~@13",
  T: "~@4 [f4,a4] ~@7 f4 ~@11, ~@11 a4@2 ~@11", // F
})).s("gm_trumpet").gain(0.12).pan(0.7)

// chords · trombone · "Brass Section"
const trombone = note(`<
  ~ A B C D E F C G H I J K J K H L M N O@2 P@2 Q@2 H I R S T U V W X Y O@2 Z@2 AA@2 ~@32 AB I AC K AD K AE AF M N O@2
  P@2 AG@2 AH I AI U AI U AJ AK M N O@2 AL@2 AM AN AO AP AO AQ AR AS AT@2 ~ AU@2
>`.pickRestart({
  A: "~@6 [e3,g3,c4] ~@5 [e3,g3,a#3]@4 [e3,g3,c4] ~@7", B: "[d#3,g3,c4]@2 ~@4 [d#3,g3,a#3]@4 [d#3,g3,c4] ~@13",
  C: "~@6 [d3,f3,c4]@2 ~@4 [d3,f3,a3]@4 [d3,f3] ~@7, ~@8 c4 ~@3", // Dm7 Dm
  D: "[f3,b3] ~@5 [f3,b3,e4]@4 [f3,a3,d4] ~@13, e4 ~@11", E: "~@6 [e3,g3,c4]@2 ~@4 [e3,g3,a#3]@4 [e3,g3,c4] ~@7",
  F: "[d#3,g3,c4]@2 ~@4 [d#3,g3,a#3]@4 [d#3,g3] ~@13, ~@5 c4 ~@6", // Cm D#
  G: "[f3,b3,e4]@2 ~@4 [f3,b3,e4]@4 [f3,a3] ~@13, ~@5 d4 ~@6", H: "[g3,a3,c4]@3 ~@15 [g3,a3,c4]@3 ~ [g3,a3,c4] ~",
  I: "~@6 [g3,a#3,c#4]@2 ~ [g3,a#3,c#4]@2 ~", J: "[f3,a3,c4]@3 ~@15 [f3,a3,c4]@3 ~ [f3,a3] ~, ~@11 c4",
  K: "~@12 [f3,a3,b3]@3 ~@3 [f3,a3,b3]@4 ~@2", L: "~@4 [g3,a3,c4] ~ [g3,a3,c4] ~", M: "[e4,g4]@11 ~",
  N: "[d#4,f#4]@23 ~", O: "[[d4,f4]@23 ~]/2", P: "[[d4,f4]@34 ~@2 [d4,f4]@4 ~@2 [d4,f4]@5 ~]/2",
  Q: "[[c4,e4]@31 ~@5 [f3,a3,b3]@4 ~@2 [f3,a3,b3]@5 ~]/2", R: "[f3,a3,c4]@2 ~@16 [f3,a3,c4]@3 ~ [f3,a3] ~, ~@11 c4",
  S: "~@12 [f3,a3,b3]@4 ~@2 [f3,a3,b3]@5 ~", T: "[f3,a3,c4]@3 ~@15 [f3,a3,c4]@3 ~ [f3,a3,c4] ~",
  U: "~@6 [f3,a3,b3]@2 ~ [f3,a3,b3]@2 ~", V: "[g3,a3,c4]@3 ~@15 [g3,a3,c4]@3 ~ [a3,c4]@2, ~@22 g3 ~",
  W: "~@6 [g3,a3,c4]@2 ~ [g3,a3,c4]@2 ~", X: "[e4,g4]@23 ~", Y: "[d#4,f#4]@11 ~",
  Z: "[[d4,f4]@17 ~ [d4,f4]@2 ~ [d4,f4]@2 ~]/2", AA: "[[c4,e4]@23 ~]/2",
  AB: "[g3,a3,c4]@2 ~@16 [g3,a3,c4]@4 [g3,a3,c4] ~", AC: "[f3,a3,c4]@2 ~@16 [f3,a3,c4]@4 [f3,a3,c4] ~",
  AD: "[f3,a3,c4]@3 ~@15 [f3,a3,c4]@4 [f3,a3] ~, ~@11 c4", AE: "[g3,a3,c4]@3 ~@15 [g3,a3,c4]@4 [g3,a3] ~, ~@11 c4",
  AF: "~@12 [g3,a3,c4]@4 ~@2 [g3,a3,c4]@3 ~@3", AG: "[[c4,e4]@33 ~@3 [a3,b3]@4 ~@2 [a3,b3]@4 ~@2]/2",
  AH: "[a3,c4]@3 ~@15 [g3,a3,c4]@4 [g3,a3,c4] ~", AI: "[f3,a3,c4]@3 ~@15 [f3,a3,c4]@4 [f3,a3,c4] ~",
  AJ: "[g3,a3,c4]@3 ~@15 [g3,a3,c4]@4 [g3,a3,c4] ~", AK: "~@12 [g3,a3,c4]@3 ~@3 [g3,a3,c4]@4 ~@2",
  AL: "[[d4,f4]@34 ~@2 [d4,f4]@5 ~ [d4,f4]@5 ~]/2", AM: "[c4,e4]@23 ~", AN: "[a#3,c#4]@11 ~", AO: "[a3,c4]@23 ~",
  AP: "[a3,b3]@23 ~", AQ: "[a#3,c#4]@23 ~", AR: "[a3,c4]@11 ~", AS: "[a3,b3]@11 ~",
  AT: "[[g3,c4]@7 ~@3 [g3,a#3]@10 ~@2 [f3,a3]@9 ~@3 [f#3,g#3]@11 ~ [f3,g3]@2]/2", AU: "[~@6 [e3,g3,a3,d4]@3 ~@7]/2",
})).s("gm_trombone").gain(0.16).pan(0.3)

// chords · trumpet · "Synth Brass"
const trumpet_2 = note("<~ A ~@2 B ~ C ~ D ~@105 E@2>".pickRestart({
  A: "[c5,e5,g5,a5,c6]@2 ~@8 [c5,e5,g5,a5,c6]@2 d6@2 [c5,c6] [d5,d6] [c5,c6] d5 [c5,d6] [d5,c6] [c5,d6] [d5,c6] [c5,d6] c6, ~@12 d5 ~@11", // Am7 C D C Csus2 D7 Csus2 D7 …
  B: "~@8 [c5,d5,f5,g5,c6] ~@3", C: "~@18 [c5,d#5,a#5,c6]@3 ~ [c5,d#5,a#5,c6] ~", D: "~@5 [d5,f5,g5,c6] ~@6",
  E: "[~@16 [c5,c6,c#6] ~ d5@9 ~@21, ~@8 c#5 ~@15, ~@17 d6@10 ~@21]/2", // C#maj7
})).s("gm_trumpet").gain(0.25).pan(0.6)

// chords · alto sax · "Clarinet"
const alto_sax = note("<~ A@3 B@4 C ~@102 D@2 ~ E@2>".pickRestart({
  A: "[~@18 [a3,c4]@4 [g3,a#3]@19 ~ [g3,a#3]@4 [f3,a3]@16 ~@2 [d3,f3]@2 [f3,a3]@2 [a3,c4]@2 [c4,e4]@2]/3", // Am Gm F Dm F Am C
  B: "[[e4,g4]@3 ~ [d#4,f#4]@2 [d4,f4]@3 ~ [c4,e4]@7 ~ [b3,d4]@3 ~ [a3,c4]@18 ~@2 [a3,c4]@4 [g3,a#3]@19 ~ [g3,a#3]@3 ~ [f3,a3]@16 ~@2 [d3,f3]@2 f3@2 [a3,c4]@2 [c4,e4]@2, ~@90 a3 ~@5]/4", // Em D#m Dm C Bm Am Gm F …
  C: "[e4,g4]@3 ~ [d#4,f#4]@2 [d4,f4]@3 ~ [c4,e4]@8 ~@6", // Em D#m Dm C
  D: "[[c4,c5]@4 [d4,d5]@2 [c4,c5]@3 ~ [a#3,a#4]@6 [c4,c5]@2 [a#3,a#4]@4 [a3,a4]@5 ~ [a#3,a#4]@2 [a3,a4]@3 ~ [g#3,g#4]@5 ~ [a#3,a#4]@2 [g#3,g#4]@4 [g3,g4]@2]/2", // C D C A# C A# A A# …
  E: "[~@6 [d4,d5]@3 ~@7]/2", // D
})).s("gm_alto_sax").gain(0.25).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A B ~@2 C ~ D ~ E ~@7 C ~@15 F ~@7 F ~@8 G ~@13 G ~ B ~@7 G ~@7 G ~@14 F ~@14 H I J K ~
// … 89 more lines

More by Bobby Darin