Strudelify

All Blues

Davis Miles

KeyE minorTempo130 bpm
0:00/0:00
// All Blues — Davis Miles
// 130 bpm, 3/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 193 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/3)

// 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 1"
const piano = note(`<
  ~@3 A@5 B@4 C@3 D E@2 F@2 G@3 ~ H@2 I J K@2 ~ L M@2 ~ N O@2 ~@2 P Q R S T U@3 V@2 W@2 X@4 Y@3 Z AA@2 AB AC AD@2 AE@2
  AF AG AH AI AJ@2 AK@2 AL@2 AM@8 AN@2 AO AP AQ AP AR AP AS AP AT@4 AU@3 AV@3 AW AX AY AZ BA@2 BB@3 BC BD BE@2 BF BG BH
  BI@2 BJ@2 BK BL BM@2 BN BO BP BQ BR BS BT@2 BU BV@2 BW BX BY BZ@2 ~ CA@5 CB@3 ~ CC@3 CD@3 CE CF BG BH BG CG CH@2 I CI
  BD CJ CK BF CL CM CN@2 CO@2 CP@2 CQ@8 ~
>`.pickRestart({
  A: "[~@12 [f4,b4]@2 ~@10 b4@2 ~@3 b4@2 ~@8 b4@2 ~@2 a4 ~ b4 ~@4 b4@2 ~ b4@2 ~ b4@2 ~ b4@2 b4@3 ~@5 b4@3 ~@2 a4@2 ~@7 a4@2 b4@2 a4 ~@2 g4@29 ~, ~@4 [f4,a4]@4 [f4,a4]@3 a4@3 ~@2 f4@3 f4@4 a4@3 a4@2 a4@3 a4@7 a4@4 b4@3 ~@4 a4@3 a4@3 a4@19 ~@46, ~@6 [g4,b4]@3 b4@3 ~@3 b4@2 a4@3 a4@2 g4@4 g4@5 ~ g4@4 g4@9 ~@2 g4@11 g4@9 g4@9 ~@2 g4@9 ~@33, ~@10 g4@4 [g4,a4]@4 [g4,b4]@3 b4@3 f4@5 f4@5 f4@11 ~ f4@2 ~@8 f4@9 ~ f4@11 f4@2 ~@41, ~@27 b4@2 ~@3 b4@7 ~@2 e5@4 ~@19 b4@5 ~@3 b4@4 ~@6 b4@3 ~@35]/5", // Fdim F G Gsus2 G
  B: "[~ e4@78 ~@17, [f3,b3,b4,e5]@13 ~@3]/4", C: "[[f3,b3,e4,b4,e5]@59 ~@13]/3", D: "~@2 [f3,b3,e4,b4,e5] ~@3",
  E: "[[e3,a#3,d4,g4,d5]@47 ~]/2", F: "[[e3,a#3,d4,c5,g5,c6]@15 ~ [e3,a#3,d4,c5,g5,c6]@8]/2",
  G: "[[f3,b3,e4,b4,f5,b5]@53 ~@19]/3", H: "[~ [c4,f4,c5]@47, [f#3,f5]@47 ~]/2", I: "[g3,c#4,f#4,c#5,f#5]",
  J: "[f#3,c4,f4,c5,f5]", K: "[f3,b3,e4,b4,e5]/2", L: "~ [f3,b3,e4]@23, [g4,b4]@23 ~",
  M: "[~ [f3,e4]@47, [b3,g4,b4]]/2", N: "~@2 [a4,d5], ~ [f3,b3,e4,b4,e5]@2", O: "[~ [f3,e4]@47, b3]/2",
  P: "~@16 [c5,e5]@7 ~, [f3,b3,e4,b4]@23 ~, ~ d5@23", Q: "~@2 [c5,e5], [f3,b3,e4,d5,f5]",
  R: "~@16 [c5,e5]@7 ~, [b3,d5]@23 ~, ~ [f3,e4,b4]@23", S: "~@2 [c5,e5], [f3,b3,e4,d5,f5]@23 ~",
  T: "~@16 [c5,e5]@7 ~, [f3,b3,e4,b4,d5]@23 ~", // C Bdim
  U: "[~@15 [c5,e5]@7 ~@42 [c5,e5]@8, [f3,b3,e4,d5,f5]@23 e4@48 ~, ~ [f3,b3,b4]@2, ~ d5 [d5,f5], ~@5 [c5,e5]@3 ~]/3", // C Bdim Fdim Dm C
  V: "[~@5 [c5,e5], [a#3,d4,a#4], d5 [d5,f5], ~ e3@47, ~@2 [c5,e5]@3 ~]/2", // C A# Dm C
  W: "[~@5 e5, [e3,d4,a#4], a#3@31 a#3@16 ~, d5 [d5,f5], ~@16 [c5,e5]@23 c5@8 ~]/2", // Em7b5 Dm C
  X: "[~@40 g4@8 ~@41 c4@7, f3@8 c5 [e4,g4] [d4,f4,a4] [e4,g4], b3@2 c5 [g4,b4,d5] b3 e5@3 [f4,a4] b4@3, [g4,b4] a4@2 d5@3, ~ e4@4 c5 [g4,b4] b3@5]/4", // Em Dm Em G F G
  Y: "[[f#3,c4,f4]@47 f5@3 ~ g3@21, ~@25 [c#4,f4,c#5]@11]/3", Z: "c5@5 c5, [f#3,c4,a4]", AA: "[f3,b3,b4]/2",
  AB: "[a3,c4,d4,f4,a4]", AC: "[g3,b3,d4,e4,g4]",
  AD: "[~ f3@30 [f3,b4] b3@2 ~@14, [g2,a3,b3,e4]@30 ~ e5@2 ~@15, ~@32 e4 ~@15]/2", AE: "[~@15 d3, [f3,b3,e4,b4,d5]]/2",
  AF: "~@16 [a3,c4]@7 ~, [g2,g3,b3]@23 ~, ~@8 d3@15 ~", AG: "~@9 g3@7 [a3,c4,e4]@8, [b3,d4]@2 ~, ~@8 f3@7 ~@9",
  AH: "~@2 e4, [b3,d4,f4]@23 ~, ~@15 [c4,g4]@8 ~", AI: "~@2 f4, d4, [f4,a4]@5 [a4,c5]@3, ~ [e4,g4,b4]@2",
  AJ: "[[e3,a#3,d4,g4,a#4]@31 ~ [e3,d4,c5,g5,c6] ~@15, ~@16 a#3 ~@7]/2", // Em7b5 C
  AK: "[[e3,a#3,d4,c5,g5,c6]@31 ~@9 g4@8, ~@2 [e3,a#3,d4,a#4,d5]]/2", // Em7b5
  AL: "[~ [f3,b3,e4,e5]@30 ~@2 [f3,e4]@7 [f3,b3,e4,g4,b4,e5]@8, b4@30 ~@2 [a4,d5]@15 ~, ~@32 b3@7 ~@9, ~@11 f4@5]/2", // E Fmaj7 Em D5
  AM: "[[f3,b3,e4,f4,a4,d5]@29 [f3,b3] ~@2 [c4,e4,a4]@7 ~ b3@7 ~ [f#3,c4]@31 ~@17 [g3,c#4,f4,a4]@12 ~@12 [f#3,c4,f4,c5]@13 [f#3,c4,f4,c5]@11 [f3,b3,e4,b4]@47 ~, ~@39 [d4,g4]@8 f4@31 ~@2 [f#3,c4,e4,g#4,b4]@16 ~@13 [g3,c#4,f4,c5]@10 ~@73, ~@22 c5@5 ~@2 f5@12 ~@7]/8", // Bm7b5 Fdim Am F#dim C#aug F E G5 …
  AN: "[[f3,b3,e4,d5,g5,d6] ~@12 [f3,b3,e4,d5,g5,d6]@35]/2", // Em7
  AO: "~@2 e4, [b3,d4,f4,a4,d5]@23 ~, ~@15 [c4,g4,b4,e5]@8 ~", AP: "~@2 [c4,e4,g4,b4,e5], [d4,f4,a4,c5,f5]",
  AQ: "~@2 [c4,e4,g4,b4,e5], ~ [b3,d4,f4,a4,d5]@23", AR: "~ [b3,d5]@14 ~ [c4,e4,g4,b4,e5]@8, [d4,f4,a4]@5 ~@3",
  AS: "[b3,d4,f4,a4,d5]@15 ~ [c4,e4,g4,b4,e5]@7 ~", // Bm7b5 Cmaj7
  AT: "[~ [b3,f4]@46 ~ [f3,b3]@15 ~ [f3,b3,c4]@7 ~@16 [c4,e4]@9, [d4,a4,d5]@46 ~ d4@23 ~ [b3,f4]@25, ~@48 g2@23 ~ [f3,d4]@24, ~@63 e4@7 ~@26]/4", // Bdim Fdim F C D5 Bdim Dm
  AU: "[[g2,f3,a3,b3,d4]@30 ~@2 [f3,b3,e4,b4,e5]@8 [f3,b3,e4,a4,d5]@24 ~ [d3,f3,a3]@7, ~@64 c4@7 ~]/3", // G7 E Bm7b5 Dm
  AV: "[[e3,g3,b3,d4]@7 ~@18 [e3,d4]@30 ~ [e3,a#3,d4,g4,c5] ~@15, ~@8 [f3,a3,c4,e4]@16 a#3@31 ~@17, ~@21 g4@34 ~@17]/3", // Em7 E7 Em7b5 Fmaj7
  AW: "[e3,a#3,d4]@2 [e3,a#3,d4,c5,e5], [a#4,d5]@23 ~", AX: "[e3,a#3,d4]@2 [e3,a#3,d4,c5,e5], [d5,f5]",
  AY: "~@16 [f3,b3,e4,a4,c5]@7 ~, b4@11 ~, [f3,b3,e4]@5 ~@3, ~ g4@22 ~", // Fmaj7 E
  AZ: "[f3,b3,e4]@15 ~ [f3,b3,e4,c5]@8, [b4,d5], ~@15 e5@8 ~", // E Fmaj7 Bm
  BA: "[[f3,b3,e4]@15 ~ b3@7 ~@8 f4@8 ~ f4@8, [b4,d5]@22 ~@9 a4@17, ~@15 [f3,e4,a4,c5]@7 ~ [f3,b3,e4,g4,b4]@25]/2", // E Bm Fmaj7 Em
  BB: "[[f#3,c4]@31 ~@17 [g3,c#4,f4,c#5]@24, ~@31 [f#3,c4,c5]@16 ~@25, ~@39 f5@32 ~]/3", // F#dim Gm7b5 F#dim
  BC: "~ [c4,f4,c5]@12 [f#3,c4,f4,c5,f5]@11, [f#3,a4] ~", BD: "[f3,b3,e4,b4,e5]",
  BE: "[~ [f3,b3,e4]@22 ~ [f3,b3,e4,a4,c5]@24, [b4,d5,g5]@23 f5@24 ~]/2", BF: "[f3,b3,e4,g4,b4,e5]",
  BG: "[f3,b3,e4]@2 [f3,b3,e4,a4,c5], [g4,b4]", BH: "[f3,b3,e4]@2 [f3,b3,e4,a4,c5], [b4,d5]",
  BI: "[~@41 c5@7, g4@5 a4, [f3,b3,e4]@2 b3, b4 [b4,d5], ~@16 [a4,c5]@17 [f3,e4]@15]/2", // E Bm Am Fmaj7
  BJ: "[~@41 [a4,c5]@7, g4@47 ~, ~ [f3,b3,e4]@31 [f3,b3,e4]@16, ~ b4@23 [b4,d5]@24, ~@16 [a4,c5]@25 ~@7]/2", // Am E Bm Am
  BK: "~@2 [b3,d4,e4,g4,c5]", BL: "[c4,e4,f4,a4,d5] g4 [e4,g4,a4,c5,f5], ~ [d4,f4,b4,e5]@2",
  BM: "[~ [e3,a#3,d4,d5,g5]@30 ~ [e3,a#3,d4,c5,g5,c6]@4 ~@12]/2", BN: "[e3,a#3,d4,c5,g5,c6]@23 ~",
  BO: "~ a#3@7 [e3,a#3,d4]@8 [e3,a#3,d4,a#4,d5,f5]@8, [e3,d4,f4,a#4,d5]@7 ~ [g4,c5,e5]@16", // Em7b5 A# C
  BP: "[f3,b3,e4,b4,e5]@16 [f3,b3,e4,a4,d5]@3 ~@5", BQ: "~@8 [f3,b3,e4,g4,b4]@7 ~ [f3,b3,e4,a4,c5]@8",
  BR: "[f3,b3,e4,g4,b4]", BS: "~ a4@23, [f3,b3,f4]", BT: "[[f#3,c4,f4]@35 ~@8 f5@5, ~@3 c4, ~@37 [f#3,c5]@11]/2",
  BU: "~ [g3,c#4,f4,c5]@22 ~", // Csus4
  BV: "[[f#3,c4,e4,g#4,b4]@12 ~ [f#3,c4,e4,g#4,b4]@10 ~ [f3,b3]@12 ~ [f3,b3,b4]@11, ~@23 [g4,b4]@13 g4@12]/2", // E Fdim G
  BW: "[f3,b3,f4,a4]", BX: "~ [f3,b3,g4,b4]@13 [f3,b3,g4,b4]@10", BY: "~ [f3,b3,f4,a4]@23",
  BZ: "[~ b4@47, [f3,b3,e4,e5]]/2", // E
  CA: "[~@16 b4@2 ~@19 b4@2 ~@21 e5@2 ~@9 e5@2 ~@16 b4@31, ~@12 f4@9 a4@3 g4@9 f4@7 b4@6 a4@8 b4@2 a4@3 d5@3 a5@6 b4@6 e5 d5@2 a4 b4@2 d5 e5@39, ~@14 g4@9 f4@8 a4@3 g4@8 f4@5 b4@4 g4@36 a4@33, ~@18 e5@9 b4 e5@10 ~ e5@19 b4@6 e5 d5@2 a4@3 d5@3 a5@47, ~@19 b4@6 a4@5 b4@5 a4@6 a4@3 g4@6 f4@36 d5@34]/5",
  CB: "[~ [e4,b4,e5]@48 ~@23, ~ [f3,b3]@59 ~@12]/3", // E5 Fdim
  CC: "[~ [b3,e4]@2 ~@11 [f3,b3,e4,f5,a5]@48 ~@10, [f3,f5,a5] ~@35]/3", // E5 Fmaj7 F
  CD: "[~@15 f5@8 ~ e3@48, ~@8 [f3,b3,e4,e5,g5]@15 [a#3,d4,d5]@48 ~]/3", CE: "~ [e3,a#3,d4,g4]@23, a#4",
  CF: "~ [e3,a#3,d4,g4,a#4]@14 [e3,a#3,d4,g4,a#4]@8 ~", // Em7b5
  CG: "~ f3@14 ~ [f3,b3,e4]@8, [b4,d5]@23 ~, [b3,e4]@15 [a4,c5]@8 ~", CH: "[f#3,c4,f4,a4,c5]/2",
  CI: "[f#3,c4,f4,c5,f5]@23 ~", CJ: "[f3,b3,e4]@2 [f3,b3,e4], [b4,d5,g5]", CK: "[f3,b3,e4,a4,c5,f5]",
  CL: "~@15 [a4,c5]@8 ~, [b3,g4,b4]@23 ~, ~ [f3,e4]@23", CM: "~@2 [a4,c5], [b4,d5], ~ [f3,b3,e4]@2",
  CN: "[~@5 [a4,c5], [f3,b3,e4,g4], b4 [b4,d5], ~@2 [a4,c5]@3 ~]/2", // Am Em Bm Am
  CO: "[~@5 c5, [f3,b3], b4 [b4,d5], ~ [e4,g4]@47, ~@16 [a4,c5]@23 a4@9]/2", // Fdim Bm Em Am
  CP: "[~ [b4,d5], [f3,b3,e4,g4], b4 ~, ~ [a4,c5]@2]/2", CQ: "[~ [g2,a3]@191, f3@13 ~@35, ~ [b3,e4]@52 ~@139]/8",
})).s("gm_piano").gain(0.22)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B A C D E F G A C A C A G A C H I J K F C A G L M N O A G A E D E A C D E A G A P A B F C D C J K H K A C Q R S T U
  V D E Q G Q C Q B D C A G W X Y K A C Q R S Z AA AB Q G Q E D E D C F B D C A C Q C A B A B W AC H AC D E D C S AD AE
  O Q G A C Q E Q C A B A G W AC W K A C F G AF T U V Q C Q E A B A C Q E D C A C A B A E A G Y AC H K F E A C AG AH U
  AI D C A C D B A E D E AJ E AK@2 ~@7
>`.pickRestart({
  A: "g1@16 e2@7 ~", B: "f2@15 ~ e2@8", C: "f2@16 e2@7 ~", D: "g1@15 ~ e2@8", E: "f2@2 e2", F: "g1@15 ~ e2@7 ~",
  G: "f2@15 ~ e2@7 ~", H: "c2@15 ~ a2@8", I: "a#2@15 ~ a2@8", J: "c2@16 a2@7 ~", K: "a#2@16 a2@7 ~",
  L: "d2@7 ~ b2@7 ~ c3@8", M: "d2", N: "d#2@7 ~", O: "d2@8 b2@7 ~ c3@7 ~", P: "f2@7 ~ e2@4", Q: "g1@2 e2",
  R: "f2@8 e2@3 ~", S: "d2@15 ~ b2@7 ~", T: "c3@15 ~ d2@8", U: "d#2@23 ~", V: "d2@8 b2@7 ~ c3@8", W: "c2@2 a2",
  X: "a#2@8 a2@3 ~", Y: "c2@15 ~ a2@7 ~", Z: "c3@16 a2@7 ~", AA: "d#2@8 a#2@7 ~ d#3@7 ~", AB: "d2@8 a2@7 ~ d3@8",
  AC: "a#2@2 a2", AD: "c3@2 d2", AE: "d#2", AF: "d2@16 b2@7 ~", AG: "d2@15 ~ b2@8", AH: "c3@15 ~ d2@7 ~",
  AI: "d2 b2 c3", AJ: "g1@7 ~ e2@4", AK: "[g1@47 ~]/2",
})).s("gm_acoustic_bass").gain(0.3)

// other · tenor sax
const tenor_sax = note(`<
  A B C D E@2 F@2 G@2 C H I J C B K B K L@3 M B N@2 O P@2 Q R S T U T V A B A W ~@104 T X Y@3 D A U C B Z@2 C V C J AA V
  AB J C AC@2 V AD@5 AE@2 AF@4 V A AG AH J AI@2 ~@7
>`.pickRestart({
  A: "b3@15 ~ c4@8", B: "d4@15 ~ c4@7 ~", C: "b3@15 ~ c4@7 ~", D: "d4@15 c4@8 ~", E: "[b3@16 c4@7 d4@15 ~ c4@8 ~]/2",
  F: "[b3@15 c4@7 ~ d4@15 ~ c4@8 ~]/2", G: "[b3@14 ~ c4@7 ~ d4@16 c4@8 ~]/2", H: "d4@15 c4@7 ~@2", I: "b3@15 c4@7 ~@2",
  J: "d4@15 ~ c4@8", K: "a#3@15 c4@8 ~", L: "[~ d4@15 c4@6 ~ b3@16 ~ c4@7 d4@15 ~ c4@8 ~]/3", M: "b3@15 c4@8 ~",
  N: "[~@23 c4@24 ~]/2", O: "c#4@23 ~", P: "[c4@21 ~@2 c4@25]/2", Q: "~ d4@23", R: "c4", S: "b3@5 ~", T: "b3@16 c4@7 ~",
  U: "d4@16 ~ c4@7", V: "d4@16 c4@7 ~", W: "d4@14 ~ c4@8 ~", X: "d4@7 ~ c4@4",
  Y: "[b3@15 c4@7 ~ d4@15 ~ c4@7 ~ b3@16 ~ c4@7 ~]/3", Z: "[b3@15 ~ c4@6 ~ d4@15 ~ c4@8 ~]/2", AA: "a#3@15 c4@7 ~@2",
  AB: "a#3@15 ~ c4@7 ~", AC: "[d4@15 ~ c4@7 b3@15 ~ c4@8 ~]/2", AD: "[~@23 c4@24 c#4@23 ~ c4@21 ~@3 c4@24 ~]/5",
  AE: "[d4@23 c4@23 ~@2]/2", AF: "[b3@20 ~@3 b3@15 ~ c4@7 ~ d4@14 ~ c4@8 ~ b3@16 c4@8 ~]/4", AG: "~ d4@14 ~ c4@7 ~",
  AH: "b3@14 ~ c4@8 ~", AI: "[b3@47 ~]/2",
})).s("gm_tenor_sax").gain(0.25)

// other · muted trumpet · "MT TRUMPET"
const muted_trumpet = note(`<
  ~@8 A@2 B@2 C@2 D@2 E F G H I@2 J@2 K@4 L M L N ~@7 O P@2 ~ Q@5 R@2 ~ S T U ~ V W X ~ Y Z AA AB@2 AC AD ~@2 AE@4 AF ~
  AG@3 AH AI AJ AK AL AM AN@2 ~@2 AO ~@64 AP@2 AQ@2 AR@2 AS@2 AT@2 AU H AV@4 AW@4 L M AX@2 ~@8 AY@8 ~
>`.pickRestart({
  A: "[b4@41 ~@3 d4@3 ~]/2", B: "[b4@4 c5@4 b4@35 ~ d4@3 ~]/2", C: "[~ b4@4 c5@3 ~ b4@34 ~ d4@3 ~]/2", D: "[b4@47 ~]/2",
  E: "a4@16 a#4@7 ~", F: "c5@2 d5", G: "c5@15 ~ a#4@8", H: "a4@19 ~ d4@4", I: "[b4@45 ~ a4 g#4]/2",
  J: "[~ g4@39 ~@3 g#4@5]/2", K: "[a4@45 ~@2 a#4@46 ~@3]/4", L: "a4", M: "b4@23 ~", N: "g4@23 ~", O: "~@20 a4 ~ c5@2",
  P: "[~ b4@23]/2", Q: "[~@7 a4@2 g4 ~@3 f4@22 ~@3 e4 ~ f4 ~@4 e4@9 ~@2 d4@2 e4@2 ~@2 d4@35 ~@18 g4 ~ a4 ~@2]/5",
  R: "[c5@3 ~@2 a#4@23 ~@20]/2", S: "~@6 g4@2 ~@3 g4 ~@10 g4@2", T: "~@19 g4 ~ g4 ~@2", U: "g4@4 ~ g4 ~@18",
  V: "~@5 g4 ~ a#4@3 ~@3 a#4@4 ~@2 a4@3 ~@2", W: "~@15 c5@3 ~@2 c5@2 ~@2, ~@19 c#5@2 ~@3", X: "~@2 c5@3 ~@19",
  Y: "~@7 f5@3 ~ e5@2 f5@2 ~ d5@2 ~@2 c5@2 ~@2", Z: "a#4@2 ~@9 a#4@3 ~ c5@3 ~ a#4@2 b4@2 ~", AA: "g4 ~@11",
  AB: "[~@10 f4@3 ~@2 e4@3 ~@5 e4@3 ~@18 e4@2 ~@2]/2", AC: "d4@4 ~@2 d4 ~@14 d4 ~@2", AD: "d4 ~@23",
  AE: "[~@8 d4 ~ f4 ~@2 g4@2 ~ f4@20 ~@2 e4@2 f4 ~@4 e4@10 d4 ~ e4 ~@2 d4@16 ~@3 c#4 ~ d4 ~ d#4 e4 ~ f4 ~ f#4 ~ g4 g#4 ~ a4 ~ a#4]/4",
  AF: "b4 ~ c5 ~ c#5 d5@11 ~@8",
  AG: "[~@14 d5@2 c5@2 ~@2 a#4@21 ~ a4@3 ~@2 a#4@2 ~ c5@3 ~ a#4@2 ~@2 a4@2 ~@2 c5@2 ~ a#4 ~ b4@3 g4@2]/3",
  AH: "~@3 f4@4 ~ g4@4 ~ f4@8 ~@3", AI: "e4@6 ~@2 f4@4 ~ e4@7 ~ e4@2 ~", AJ: "~@5 e4@2 ~ d4@3 ~@13",
  AK: "~@15 a4@2 a#4@4 ~@3", AL: "a#4@5 ~ g4 ~ c#5@5 ~@3 c5@4 ~ a#4@3", AM: "~@4 a#4@3 ~ c5@3 ~@2 c#5@2 ~ d5@5 ~ c#5 ~",
  AN: "[d5@6 ~@3 e5@2 f5 ~@2 d5@2 ~@3 b4@2 ~@2 c5@2 ~@3 b4@2 ~ g4@2 ~ f4@4 ~@4 g4@5 ~, ~@27 a#4@2 ~@19]/2",
  AO: "~@3 g3 ~ c4@2 ~ a#3 b3@5 ~@10", AP: "[~ b4@41 ~@3 d4@3]/2", AQ: "[~@2 b4@3 c5@3 b4@34 ~@2 d4@3 ~]/2",
  AR: "[b4@3 ~ c5@3 ~ b4@33 ~@4 d4@2 ~]/2", AS: "[~@2 b4@45 ~]/2", AT: "[a4@15 ~ a#4@7 c5@16 ~ d5@8]/2",
  AU: "c5@15 a#4@8 ~", AV: "[b4@44 ~ a4 ~@2 g4@39 ~@5 g#4@4, ~@47 g#4@2 ~@47]/4", AW: "[~ a4@44 ~@2 a#4@47 ~@2]/4",
  AX: "[a4@23 g4@23 ~@2]/2", AY: "[~ b4@3 ~ c5@3 b4@184]/8",
})).s("gm_muted_trumpet").gain(0.35)

// other · muted trumpet · "MT TRUMPET" · soft notes
const muted_trumpet_soft = note("<~@39 A ~@11 B ~@3 C D E ~@2 F G H I ~@7 J ~@7 K ~@5 L ~ M ~@105>".pickRestart({
  A: "~@18 g4 ~@5", B: "~@2 g4@3 ~@12 g4@3 ~@4", C: "~@11 g4 ~@12", D: "~@2 a4 ~@19 a#4@2", E: "~@2 a#4 ~@5",
  F: "~@7 g4 ~@16", G: "~@5 d4@2 ~@4 d4@2 ~@11", H: "~@19 d4@2 ~@3", I: "~ d4 ~@4", J: "~@5 c4 ~@18", K: "~ d4@2 ~@21",
  L: "~ f4@2 ~@9", M: "~@16 g3@5 ~@3",
})).s("gm_muted_trumpet").gain(0.2)

// drums · kick
const kick = s("bd").struct("<~@88 A ~@15 A ~@23 A ~@7 A ~@7 A ~@48>".pickRestart({
  A: "x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A B@2 C ~@2 D ~ E F G H E@4 A E@2 I E@2 F J E A@2 K A@2 E A@3 E D A E A L E M E A@2 D F N E G F N E ~@3 A ~ A O E
  A@2 P Q N R S E T U A U ~ U V ~ D W D ~ X U D ~ Y U Z E@2 A@4 E@2 A E@2 AA A@3 L A E@2 AB Y ~ AC AD AE AF AG AH AI D
  AJ AK AL T AM D ~ U X AN Y ~ X AO ~ Y AP AN A@3 D ~ A T E@2 A E A@2 E@2 F A F@2 ~ A ~ E A E@2 A T A@2 E A L A ~ AQ E@4
  AP ~ L@2 ~ AR ~@7
>`.pickRestart({
  A: "~@2 x", B: "~ x", C: "~@11 x ~@12", D: "~@16 x ~@4 x ~@2", E: "~@5 x ~@2", F: "~@13 x ~@10", G: "~@5 x",
  H: "~@16 x ~@2 x ~@4", I: "~@16 x ~@3 x ~@2 x", J: "~@8 x ~@2 x ~@4 x ~ x ~@5", K: "~@3 x!2 ~@3 x ~@3", L: "~ x ~",
  M: "~@8 x ~@4 x ~@2 x ~@7", N: "~@17 x ~ x ~@4", O: "~@19 x ~@4", P: "~@5 x ~@11 x ~ x ~@4", Q: "x ~ x",
  R: "x ~@14 x ~@7 x", S: "~@5 x ~@10 x ~@3 x ~@3", T: "~@7 x", U: "x", V: "~@19 x ~@3 x", W: "~ x ~@13 x ~@5 x ~@2",
  X: "~ x ~@20 x ~", Y: "~@11 x", Z: "x ~@12 x ~@10", AA: "~@8 x ~@8 x ~@6", AB: "~@7 x ~@7 x ~@8",
  AC: "~@7 x ~@5 x ~@10", AD: "~@6 x ~@6 x ~@8 x ~", AE: "~@14 x ~@2 x ~@4 x ~", AF: "~ x ~@22", AG: "x ~@18 x ~@4",
  AH: "x ~@2 x ~@7 x ~@4 x ~@2 x ~ x ~@2", AI: "~@14 x!2 ~@8", AJ: "x ~@6 x", AK: "x ~@10 x", AL: "x ~@20 x ~ x",
  AM: "x!2", AN: "~@17 x ~@6", AO: "~@17 x ~@3 x ~@2", AP: "~@8 x ~@2 x", AQ: "~@3 x ~@4", AR: "~ x ~@2 x ~@3 x ~@15",
})).gain(0.35)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@31 A ~@20 B C D A E ~@6 F B ~@2 B ~ G H ~@2 D ~@3 I ~@2 J ~@3 D K ~@22 G ~@3 F A ~@2 G ~ F G E ~ L ~@3 C ~@2 F G ~@6
  M N G B ~@5 D ~@11 H O ~ P ~@5 H ~@2 E G ~ G Q B ~@6 D@2 R S ~@7
>`.pickRestart({
  A: "~@7 x ~@4", B: "~ x ~@22", C: "~@3 x", D: "~@2 x", E: "x", F: "~@17 x ~@6", G: "~@3 x ~@4", H: "~ x ~",
  I: "~@11 x", J: "~@16 x ~@6 x", K: "~@8 x ~@8 x ~@6", L: "~@19 x ~@4", M: "~@5 x ~@11 x ~@6", N: "~ x ~@10",
  O: "~@13 x ~@10", P: "~@5 x ~@2", Q: "~@9 x ~@7 x ~@6", R: "~@18 x ~ x ~ x!2", S: "~@6 x ~@3 x ~ x ~@10 x",
})).gain(0.2)

// drums · clap
const clap = s("cp").struct(`<
  ~@15 A ~@7 B ~@2 C D ~@3 E ~@7 F ~@5 G ~@5 G ~@3 G ~ H I H ~ J ~ G ~@3 G ~ G ~ K ~@3 G ~@3 G ~@4 G ~@2 B ~@15 L ~@3 L
  ~@5 M ~ N ~ G@2 D ~@6 I F ~ E ~ O ~ G ~ F ~ P ~ Q ~@2 G F ~@15 C ~@9 G ~ D ~ D Q R ~@9 G ~@7
>`.pickRestart({
  A: "~@5 x", B: "~@3 x", C: "~@5 x ~ x", D: "~@13 x ~@10", E: "~@11 x", F: "~@19 x ~@4", G: "~@7 x", H: "~@2 x",
  I: "~@5 x ~@2", J: "~@17 x ~@4 x ~", K: "~ x ~@15 x ~@6", L: "~@14 x ~@4 x ~@4", M: "x ~ x",
  N: "~@9 x ~ x ~@4 x ~@2 x ~@4", O: "~@19 x ~ x ~@2", P: "~@8 x ~@10 x ~@4", Q: "~@7 x ~@4", R: "~@6 x ~@10 x ~@4 x ~",
})).gain(0.4)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  A@5 B A C D A C B D B C D A@4 D A B E A B@2 A F A F A F@2 E F@4 G H A F A F B F I A J F A F E F A F@2 E F@2 E F A ~ A
  ~ F D F@11 E F K L D M B@4 A@3 B H N F@2 A B O A@2 P Q A Q A ~ B ~ B R O@3 Q@2 S T F@5 R L@2 H F@6 E F@2 G U F@3 G B A
  H D@2 V H A@2 H A D A D A W B@2 A@3 B@2 X G B@2 A Y A@3 B@2 A@3 B@3 ~@9
>`.pickRestart({
  A: "~@2 x", B: "~@5 x ~@2", C: "~@11 x ~@12", D: "~ x", E: "~@7 x ~@16", F: "~ x ~", G: "x ~ x", H: "~@13 x ~@10",
  I: "~ x ~@6", J: "~@7 x ~@11 x ~@4", K: "~@7 x ~@12 x ~@3", L: "~@2 x ~@2 x", M: "~@17 x ~@6", N: "~ x!2", O: "~@7 x",
  P: "~@5 x ~@18", Q: "~@11 x", R: "~@8 x ~@12 x ~@2", S: "~@2 x ~@4 x", T: "~@5 x ~@15 x ~@2", U: "~ x ~@7 x ~@14",
  V: "~@7 x ~@4", W: "~@5 x ~@14 x ~@3", X: "x!3", Y: "~@13 x ~@7 x ~@2",
})).gain(0.35)

// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~@63 A B ~ B ~@5 C ~@11 C ~@21 B ~ D ~ E ~@2 F B@2 F B ~@75>".pickRestart({
  A: "x", B: "~ x ~", C: "~@5 x", D: "~@8 x ~@12 x ~@2", E: "~@2 x ~@2 x", F: "~@3 x ~@4",
})).gain(0.2)
// … 27 more lines

More by Davis Miles