Strudelify

How High the Moon

Fitzgerald Ella

KeyG majorTempo147 bpm
0:00/0:00
// How High the Moon — Fitzgerald Ella
// 147 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(147/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.

// bass · electric bass finger · "Bass"
const bass = 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 AA AB AC AD AE AF AG AH AI AJ U AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA BB BC AN BD BE BF BG BH BI BJ BK BL BM BN E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE
  AF AG AH BO D BP D BQ@2 BR
>`.pickRestart({
  A: "b1@4 a#1 ~ a#1 ~", B: "a1@4 d2 ~ d2 ~", C: "g1@9 ~ g1@4 g#1@2", D: "a1 d2", E: "g1@2 g1 ~@3 g1@4 f1@4 f#1 ~",
  F: "g1@2 ~@4 b1 ~ g1@2 f#1@2 f1@2 f#1 ~", G: "g1@2 g1 ~@3 g1@2 f1 ~ g1@2 a#1 ~ b1@2", H: "c2 ~@2 c2@2 g1 f1 e1",
  I: "f1@2 ~@4 f1@2 f1@2 g1 ~ a1@2 g1 ~", J: "f1@2 c2@2 a1@2 g1 ~ f1@2 g1@2 f1 ~ g1 ~", K: "f1 ~@2 f1@2 g#1@2 a1",
  L: "a#1@2 a#1@2 g1@2 a#1 ~@3 c2@2 c#2 ~ d2@2", M: "d#2@2 d#2 ~@3 d#2@4 d2 ~ a#1 ~ g1@2",
  N: "a1@2 a1@2 c2@2 c#2@2 d2@2 e1@2 f1 ~ f#1@2", O: "g1@2 c2@4 a#1@2 g1@2 f1@2 g1@2 g#1 ~",
  P: "a1@2 a1@2 c2@2 c#2 ~ d2@2 f#1@2 f1 ~ f#1 ~", Q: "g1@2 g1 ~@3 g1@4 g1 ~ a1 ~ g1@2",
  R: "a1@2 c2 ~@3 c#2@2 d2@2 f#1@2 a1@2 a#1@2", S: "b1@2 f#1@2 g#1@2 a1 ~ a#1@2 g1@2 f1@2 g1@2",
  T: "a1@2 a1@2 c2@2 c#2@2 d2@2 f#1 ~ f1@2 f#1@2", U: "g1@2 g1 ~@3 g1@2 ~@2 g1@6",
  V: "g1@2 ~@4 a1@2 g1@2 e1@2 f1 ~ f#1@2", W: "g1@2 g1 ~@3 f1@2 g1@2 f1 ~ g1@2 a#1@2", X: "c2 d2 c2 a1 g1 f1@2 e1",
  Y: "f1@2 f1 ~@3 f1@8 f1@2", Z: "g1 a1 g1 f1@2 g1 f1 e1", AA: "f1@2 ~@4 f1@4 f1@4 g#1 ~",
  AB: "a#1@2 a#1 ~@3 a#1@2 d2@2 c#2@4 d2@2", AC: "d#2@2 c2 ~@3 a#1@4 g1@4 g#1@2",
  AD: "a1@2 a1 ~ c2@2 c#2@2 d2@2 e1@2 f1@2 f#1@2", AE: "g1@2 ~@4 g1@4 d2 ~ b1@2 g1 ~",
  AF: "a1@2 c2 ~ a1@2 c2@2 d2@2 g#1@2 a1 ~ a#1@2", AG: "b1@2 a1@2 f#1@2 a1@2 a#1@2 f1 ~ g1@2 g#1@2",
  AH: "a1@2 c2@2 a1@2 c2@2 d2@2 e1@2 f1 ~ f#1@2", AI: "g1@2 g1 ~@3 g1@2 ~@2 g1@2 e1@2 g1@2",
  AJ: "a1@2 d2@2 c2@2 c#2@2 d2@2 d2 ~@3 d2@2", AK: "g1@2 g1 ~@3 b1@2 g1@2 f#1@2 f1@2 f#1@2",
  AL: "g1@2 g1 ~@3 g1@2 f1 ~ g1@4 a#1@2", AM: "c2@2 e1 ~ g1@2 a#1@4 g1@2 f1@2 e1@2", AN: "f1@2 f1 ~@3 f1@2 ~@2 f1@6",
  AO: "f1@2 c2 ~ d2 ~ c2@2 a1@2 g1@2 f1 ~ e1@2", AP: "f1@2 c2 ~@3 a#1@2 g#1 ~ f1@2 g#1@2 a1@2",
  AQ: "a#1@2 a#1 ~@3 a#1@4 d2 ~ c#2@2 d2@2", AR: "d#2 ~@2 d#2 g1 f1 g1 g#1",
  AS: "a1@2 a1@2 c2@2 c#2@2 d2@2 f#1@2 f1 ~ f#1@2", AT: "g1@2 g1 ~@3 g1@4 f1@2 g1 ~ g#1@2",
  AU: "a1@2 e2@2 d2 ~ c2@2 d2@2 f#1@2 f1@2 f#1 ~", AV: "g1@2 e1 ~ g1@2 a1@2 b1@2 a1 ~ g1@2 g#1@2",
  AW: "a1@2 d2 ~ c2 ~ c#2 ~ d2@2 f#1@2 a1@2 a#1 ~", AX: "b1 a1 g#1 a1 a#1 f1 g1 g#1",
  AY: "a1@2 d2 ~ c2@2 c#2 ~ d2@2 f1@4 f#1@2", AZ: "g1@2 g1 ~@3 g1@2 e1@2 g1 ~ f1@2 f#1@2",
  BA: "g1@2 g1 ~@3 g1 ~@3 e1@2 f1@2 f#1@2", BB: "g1@2 a#1@4 g1 ~ a#1@2 c2@2 a#1@2 b1@2",
  BC: "c2@2 c2 ~@3 c2@2 a1 ~ g1@2 f1 ~ e1 ~", BD: "f1@2 c2 ~@3 e2@2 c2 ~ a1 ~ f1@2 e1 ~",
  BE: "f1@2 c2@4 a#1 ~ g#1 ~ f1@2 g#1 ~ a1@2", BF: "a#1@2 a#1 ~@3 a#1 ~ c2@2 d2 ~ c2@2 d2@2",
  BG: "d#2@2 ~@4 d2@4 a#1@2 g1@2 g#1 ~", BH: "a1@2 a1@2 c2 ~ c#2@2 d2@2 e1@2 f1@2 f#1@2",
  BI: "g1@2 g1 ~ a1 ~ g1 ~@3 e1 ~ g1@2 g#1@2", BJ: "a1!2 c2 c#2 d2 g#1 a1 a#1",
  BK: "b1@2 f#1@2 g#1@2 a1@2 a#1@2 f1 ~@3 g1@2", BL: "a1@2 g1@2 a1 ~ c2@2 d2@2 f1 ~@3 f#1 ~",
  BM: "g1@2 g1 ~@3 g1@4 e1@2 g1 ~ g#1@2", BN: "a1@2 c2 ~@3 c#2 ~ d2@2 a1@4 b1 ~", BO: "g1", BP: "b1 a#1",
  BQ: "[g1@31 ~]/2", BR: "g1 ~@7",
})).s("gm_electric_bass_finger").gain(0.24).pan(0.3)

// other · piano
const piano = note(`<
  ~@4 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 AA AB AC AD AE AF ~@32 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 AA AB AC AD ~@7
>`.pickRestart({
  A: "d4@6 b3 g3", B: "d3@3 g3@2 d4@2 b3", C: "a#3@3 d4@2 a#3 d3@2", D: "e3@5 g3 a#3@2", E: "a3@3 f3@5", F: "e3@3 a3",
  G: "g#3@2 f3 d#3", H: "d3@3 g#3", I: "a#3@2 a#3 d4", J: "c4 a3@2 g3 f#3!2 e3@2", K: "d3@4 d#3@3 g3",
  L: "a3@3 c4 d4 f#3@2 a3", M: "b3@3 d3", N: "e3 c4 a3 c4", O: "d4 b3 a#3 f3", P: "g3 a3@2 g3 f#3@3 e3",
  Q: "d3@2 g3 f#3@2 g3 b3 d4", R: "b3@2 g3 e3", S: "d3@2 f3 d4", T: "c4@3 g3@3 e3@2", U: "f3@4 f3@2 e3 f3",
  V: "a3@3 g3", W: "g#3@3 g3", X: "f3@3 d3@3 g#3@2", Y: "g3@3 a#3@2 g#3@2 a#3", Z: "c4 f3 f#3!2",
  AA: "d3@3 f#3 g3@2 b3@2", AB: "c4 e3 f#3 d#3", AC: "d3 g3 g#3 a#3", AD: "c4 b3@2 c4 d4 d4@2 c4",
  AE: "b3@2 f3 g3@2 g3 f3@2", AF: "e3 g3 f#3@2",
})).s("gm_piano").gain(0.32).pan(0.7)

// chords · rock organ
const rock_organ = note(`<
  A B C D E F G H I J K L M N O P Q R S T E U V W I X Y Z AA AB AC AD AE AF AG AH AI AJ V AK I AL AM AN AO AP AQ AR AS
  AB AT AU E AV AW H I AX AY AZ BA BB U BC BD BE BF BG E F G H I J K L M N O P Q R S T E U V W I X Y Z AA AB AC AD AE AF
  BH BI BJ BK BL@2 BM
>`.pickRestart({
  A: "[f#4,a4,d5,b5] [g#4,d5,f5,a#5]", B: "[c5,e5,g5,a5] [a4,c5,f#5,d6]", C: "[g4,b4,d5,e5,g5]",
  D: "[g4,c5,e5,a5] [f#4,a4,c5,d6]", E: "[d4,f#4,g4,b4]", F: "f#4@5 ~ d4@2, [g4,b4], d4@3 ~, ~@5 f#4@3",
  G: "~@8 g4 ~@3 f4@4, [a#4,d5], f4@3 ~", H: "a#4@2 ~ g4, e4, g4@3 ~, ~ a#4", I: "[e4,f4,a4,c5]",
  J: "c5@2 ~ a4, [e4,f4], a4@3 ~, ~ c5", K: "~@10 f4@4 d#4 ~, [g#4,c5,d#5]",
  L: "d5@3 ~ a#4@2 g#4@2, f4, g#4@3 ~, ~@3 d5@5", M: "~@5 d4@2 d#4, [g4,a#4,d5,d#5]",
  N: "e4@6 ~@4 d4 ~@3 f#4@2, [g4,c5], ~@3 e4@5", O: "f4@2 ~ d4, a#4, d4@3 ~, ~ f4",
  P: "[d#4,g4,c5]@8 ~@2 d4 ~@3 d#4@2, ~ [f#4,a4,c5], ~@4 d#4@3 ~", // Cm F#dim
  Q: "g4@3 ~@3 d4@2, b4, d4@3 ~, f#4@5 f#4@3, ~@3 g4@5", R: "c5@2 ~ a4, [e4,g4], ~ c5",
  S: "~@10 f4 ~@3 d4@2, [f#4,a4,d5]", T: "~@8 a4 ~@3 f#4@4, [e4,g4,c5]", U: "g4@5 ~@2 f#4, [d4,b4], f#4@7 ~, ~@5 g4@3",
  V: "f4@5 ~ d4@2, a#4, d4@3 ~, ~@5 f4@3", W: "g4@3 g4, [e4,a#4]", X: "e4@5 ~@2 f4, [a4,c5], f4@7 ~, ~@5 e4@3",
  Y: "g#4@6 ~@4 f4 ~@3 d#4@2, [c5,d#5], ~@3 g#4@5", Z: "g#4@5 ~ f4@2, d4, f4@3 ~, ~@5 g#4@3",
  AA: "d#4@6 ~@2 d4 ~@3 d#4@4, [g4,a#4,d5], ~@3 d#4@3 ~@2", AB: "~@10 f#4@4 d4 ~, [e4,g4,c5]",
  AC: "f#4@10 ~@2 d4 ~@3, [g4,b4,d5], ~@5 f#4@3", AD: "[e4,g4,c5]@8 f#4@2 ~@4 d#4 ~, ~ [a4,c5,d#5], ~@5 f#4@3",
  AE: "[d4,f#4,a4]@4 g#4 ~@2 f4, ~ d4, ~@4 f4@3 ~, ~@5 g#4@3", AF: "~@8 f#4@4 d4 ~@3, [e4,g4,c5]",
  AG: "g4@3 ~@4 d4, [b4,d5], e4@5 e4@3, ~@3 g4@5", AH: "[e4,g4,c5] [f#4,a4,c5]", AI: "[f#4,g4,b4,d5]",
  AJ: "b4@3 ~@3 f#4@2, d5, f#4@3 ~, g4@5 g4@3, ~@3 b4@5", AK: "~@3 c5 ~@2 g4@2, e4, g4@3 ~, a#4!2",
  AL: "e4@3 e4, [f4,a4,c5]", AM: "~@10 f4 ~@3 d#4@2, [g#4,c5], d#4@7 ~", AN: "d4@5 ~ f4@2, g#4, f4@3 ~, ~@5 d4@3",
  AO: "~@10 d4 ~@3 d#4@2, [g4,a#4,d5,d#5]", AP: "~@10 a4 ~ f#4 ~@3, [e4,g4,c5]",
  AQ: "~@6 g4 ~@7 d4 ~, [a#4,d5], f4@5 f4@3", AR: "[d#4,g4,c5]@8 ~@2 d4@4 d#4 ~, ~ [f#4,a4,c5,d#5]",
  AS: "f#4@3 f#4, [d4,g4,b4]", AT: "f#4@6 ~@4 g#4@4 f4 ~, [a4,d5], ~@3 f#4@5", AU: "[e4,g4,c5]@2 f#4!2, ~ [a4,c5]",
  AV: "b4@3 ~@3 f#4@2, d4, f#4@3 ~, g4!2, ~@3 b4@5", AW: "f4@5 ~@2 d4, [a#4,d5], ~@5 f4@3",
  AX: "f4@5 ~@2 e4, [a4,c5], e4@7 ~, ~@5 f4@3", AY: "g#4@6 ~@4 f4 ~@3 d#4@2, c5, d#4@7 ~, ~@3 g#4@5",
  AZ: "f4@5 ~@2 d4, g#4, d4@7 ~, ~@5 f4@3", BA: "~@10 d4 ~@3 d#4@2, [g4,a#4,d5], d#4@7 ~",
  BB: "c5@6 ~@2 a4 ~@3 f#4@4, [e4,g4], ~@3 c5@5", BC: "~@8 f#4 ~@3 d#4 ~@3, [e4,g4,c5]",
  BD: "~@2 f4 d4, [f#4,a4], d4@3 ~", BE: "e4@6 ~@4 d4 ~ f#4 ~@3, [g4,c5], ~@3 e4@5",
  BF: "e4@5 ~@2 d4, [g4,b4], d4@7 ~, ~@5 e4@3", BG: "[e4,g4,c5]@8 c5@2 ~@4 d5 ~, ~ [f#4,a4], ~@5 c5@3",
  BH: "[e4,g4,b4,d5]", BI: "[g4,c5,e5] [f#4,a4,c5,d#5]", BJ: "[f#4,a4,d5] [f4,g#4,d5]", BK: "[g4,c5,e5] [f#4,a4,c5]",
  BL: "[[e4,g4,b4,d5]@31 ~]/2", BM: "[a4,b4,d5,e5] ~@7",
})).s("gm_rock_organ").gain(0.2).pan(0.3)

// other · epiano1 · "Electric Piano1"
const epiano1 = 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 AA AB AC AD AE AF AG AH AI AJ ~@32 AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN ~@7
>`.pickRestart({
  A: "f#5@2 f#5 b5 a#5 f5@2 g#5", B: "a5@2 a5@2 e5 a5 g5 e5 f#6@2 a5@2 d5 f5 f#5 d6",
  C: "f5@2 d5@2 ~@6 e5 g5 e5 d5 e5 d5", D: "c5@2 e5@2 e5 g5 d5 e5 d5 f5 d5 f5 f#5 f5 f#5 c6, b4 ~@15",
  E: "g5@2 g5@9 ~ d5@4, f#5 ~ f#5 ~@13", F: "g5 g5@5 g5@2, f#5 ~@15", G: "g5@2 g5 g5@3 d5@2, f#5 ~@3 f#5 ~@11",
  H: "c5@2 a5 c6@3 a#5@2, ~@4 g5 ~@11", I: "a5 c6@7, g#5 ~@15", J: "a5 c6@6 a5, g#5 ~@15", K: "d#6 f6@5 g#5@2, c6 ~@15",
  L: "g5 a#5@5 g#5@2, f5 ~@15", M: "c6 d#6@5 g5@2, a#5 ~@15", N: "g5 a5 e5@2 f#5@2 a5@2, e5 ~@15", O: "g5@3 a#4",
  P: "c5!2 d5 f#5", Q: "g5@4 d5 f#5 g5@2", R: "a5 e5 d6 d5", S: "f#5 a5 a#5 f5", T: "g5 a5 e5@2 f#5 a5@2 c6, e5 ~@15",
  U: "d6 g5 e6 g6@5, ~@4 d6 ~@11", V: "d6 g5 e6 g6@3 b5@2, ~@4 d6 ~@11", W: "d6@3 f5", X: "e5 g5@5 g5@2, d#5 ~@15",
  Y: "f5@3 c5@3 e5 f5", Z: "c5@3 f5 f5@2 e5@2", AA: "d#5 f5@6 g#5, c5 ~@15", AB: "g5 a#5@5 f5@2, f5 ~@15",
  AC: "g5 a#5@6 g5, f#5 ~@15", AD: "g5 a5@2 g5 f5@2 d5@2, e5 ~@15", AE: "g5@2 g5@9 ~ f#5@4, f#5 ~ f#5 ~@13",
  AF: "e6 a5 c5@2 c#5@2 a5@2", AG: "f#5@2 f#5@2 a#5!2 g#5@2, ~@8 a5 ~ a5 ~@5", AH: "a5 c5 f#5 d5",
  AI: "g5 g5@3 e5@2 g5@2, f#5 ~@15", AJ: "g5 a5 g5@2 f5@2 d5@2, e5 ~@15", AK: "b4@5 d5 e5 b4",
  AL: "d5@10 b4@2 e5 f#5 a5 f#5", AM: "f5@8 g5@4 a#5 a5 a#5 f6", AN: "e5@2 g5@6 d5 e5 g5 a5 g5 d5 c5 d5, d#5 ~@15",
  AO: "f5 f5@7, e5 ~@15", AP: "a5@4 g#5@2 a5@2 e5@2 g#5 a5 f5 g#5 a5 f5", AQ: "g#5@8 f5@4 d#5@2 f5 g#5",
  AR: "a#5 g#5 f5 c#5 d5 c#6 d6 a#5", AS: "g5@2 [g#5,a5] a#5 d#6 a#5 d5@4 g5@2 d#5@2 d5@2",
  AT: "e5 a6 c6 e6 f#5 f5 f#5 d5, ~@4 b5 ~@11", AU: "g5@2 g5@2 f6@2 g6@4 g5 a#5 g5@2 f5@2, ~@4 d6 ~@11",
  AV: "d#6@2 a5@2 b4@2 c5@2 a5@2 a5@2 g#5 f#5 d#5 f#5", AW: "g5@6 b4@4 a#4 b4 g5 a#4 b4 f#5",
  AX: "c5@2 e5@2 d#5@2 d5 c5 d5@4 f#5@2 c6@2", AY: "d5 c#5 d5 b4 d5 f5 g#5 f5, ~@8 c#5 ~@7",
  AZ: "a5@4 d#5@2 e5@2 f#5@2 c5@2 d5@2 f#5 a5", BA: "g5 b4 ~@4 d5 e5", BB: "f#5@6 g5@4 f#5@2 a5@2 f#5 a5",
  BC: "a#5@6 g5@6 g5@2 f5 d5", BD: "e5@6 c5@4 a#5@2 a5@2 g5 f5", BE: "c5@5 e5 d5 e5",
  BF: "c6@2 d6 f6@3 e5 c5, ~@4 c6 ~@11", BG: "g#5@3 f5 d#5 f5 g#5 a#5",
  BH: "a#5@2 a#5@5 ~ f5@2 g#5@2 a#5@2 d5 a#4, a5 ~ a5 ~@13", BI: "d#5@2 d#5@9 ~ g5@2 a#5@2, d5 ~ d5 ~@13",
  BJ: "a5@2 c5@2 d5 d#5 e5 g5 a5@2 g5@2 f5 g5 g#5 a5", BK: "c6@2 g5@2 a#5@2 b5@2 g5@2 a#5@2 f#5 d5 e5 f#5",
  BL: "a5@2 c5@2 e5 g5 a5 e5 d5@2 d#5@2 d5 f#5 d#5 c5", BM: "d5!2 b4@2 d5 e5 d5 b4 d5@2 f5@2 c#5@2 d5@2, ~@8 c#5 ~@7",
  BN: "c5 c5@2 b4 c5 d5@2 b4, b4 ~@15",
})).s("gm_epiano1").gain(0.12).pan(0.7)

// chords · synth brass 1 · "SynthBrass 1"
const synth_brass_1 = note("<~@98 A B C D E@2 F>".pickRestart({
  A: "[g3,b3,d4,e4]", B: "[g3,c4,e4] [a3,c4,d#4,f#4]", C: "[d4,f#4,a4] [g#3,d4,f4]", D: "[g3,c4,e4] [a3,c4,f#4]",
  E: "[b3@28 b3@3 ~, [d4,e4,g4]@31 ~]/2", F: "[d4,e4,g4] ~@15",
})).s("gm_synth_brass_1").gain(0.24).pan(0.4)

// other · trumpet · "LEAD"
const trumpet = note(`<
  ~@3 A B@4 C@4 D E@5 F G H@4 I J@3 K L@2 M N@3 ~@32 O@5 C@4 D E@5 F G H@4 I J@3 K L@2 M N@3 M P@4 ~
>`.pickRestart({
  A: "~ d4@2 ~ g4 ~ a4 ~", B: "[a4@6 b4@12 d4@5 ~ g4@2 ~@2 a4@2 a#4@19 ~ c4@5 ~ f4@2 ~@2 g4@2 ~@2]/4",
  C: "[g4@6 a4@12 c4@5 ~ f4@2 ~@2 g4@2 ~ g#4@19 d4@5 ~ d#4@2 ~@2 f4@2 ~@2]/4", D: "g4@5 ~ g4@2 ~ g4@4 ~ g4 ~",
  E: "[~ g4@4 ~ g4 ~ a4@2 g4@2 a4@2 a#4@21 ~@5 a4@2 g4 ~ a4@2 b4@19 ~ a4@4 ~@2 b4@2 ~@2 c5@2 ~@2]/5",
  F: "d5@5 ~ d5@2 ~ d5@2 ~ d5@2 d5 ~", G: "~@2 d4@5 ~ g4@2 ~@2 a4@2 ~@2",
  H: "[a4@6 b4@12 d4@5 ~ g4 ~@3 a4@2 ~ a#4@19 c4@5 ~ f4@2 ~@2 g4@2 ~@2]/4", I: "g4@3 a4@5",
  J: "[~@2 c4@5 ~ f4@2 ~@2 g4@2 ~ g#4@19 d4@5 ~ d#4@2 ~@2 f4@3 ~]/3", K: "g4@5 ~ g4 ~ g4@4 ~@2 g4 ~",
  L: "[~ g4@4 ~ g4 ~ a4@2 g4@2 a4@2 b4@17 ~]/2", M: "~ a4@2 ~ b4 ~ c5 ~",
  N: "[d5@5 ~ d5 ~@2 d5@2 ~ d5@2 ~ d5@2 ~ d4@4 ~@2 g4@2 ~@2 a4@2 g4@18]/3",
  O: "[~@2 d4@4 ~@2 g4@2 ~@2 a4@2 a4@7 ~ b4@12 d4@5 ~ g4@2 ~@2 a4@2 a#4@19 ~ c4@5 ~ f4@2 ~@2 g4@2 ~@2]/5",
  P: "[d5@5 ~ d5 ~@2 d5@2 ~ d5@2 ~ d5@2 ~ d4@4 ~@2 g4@2 ~@2 a4@2 g4@32 ~@2]/4",
})).s("gm_trumpet").gain(0.3).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E@2 F G@2 H I J F J K H@2 L H M G M N O F J H@2 G M I H@2 G P O K F@2 H@2 G P K N G Q H R J H@2 L H S K L G T
  F H F O H E J U V E@2 F G@2 H I J F J K H@2 L H M G M N O F J H@2 G M I H@2 G W D@2 X W@3
>`.pickRestart({
  A: "x ~ x!2", B: "~ x ~@3 x ~@2", C: "x ~@4 x ~ x", D: "x!2", E: "x!2 ~ x ~@3 x", F: "x!2 ~ x ~ x ~@2",
  G: "x ~@2 x ~ x ~@2", H: "x ~@2 x ~@4", I: "~ x ~@3 x ~ x", J: "x ~@2 x!2 ~@3", K: "x!2 ~ x ~@4", L: "x ~@2 x ~@3 x",
  M: "x ~@2 x ~ x ~ x", N: "x ~@2 x!2 ~@2 x", O: "x!2 ~ x ~ x ~ x", P: "~ x!2 ~ x!2 ~ x",
  Q: "~@2 x!2 ~@2 x ~ x ~ x ~@3 x ~", R: "x!2 ~ x!3 ~ x", S: "~@2 x!2 ~@12", T: "~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x!2",
  U: "~@2 x ~ x ~@3 x ~ x!2 ~@2 x!2", V: "x ~ x ~@3 x ~ x ~ x!2 ~@2 x!2", W: "x", X: "~ x!2 ~ x!2 ~@2",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C D@2 E D@3 F D@3 G D H D@5 I D@2 J G D@3 F D@3 K L D@2 M D@3 N D@3 O D P D@3 Q D R D@2 S T D@2 U G D@3 V D@3 E
  D@3 F D@3 G D H D@5 I D@2 J G D@3 F D@3 W X Y A F Z F
>`.pickRestart({
  A: "x ~@2 x", B: "~@3 x", C: "~ x", D: "~ x ~ x", E: "~@4 x ~@5 x ~@3 x!2", F: "x", G: "~ x ~@6",
  H: "~@2 x ~@2 x ~@2", I: "~@2 x ~@3 x ~@3 x ~ x!3 ~", J: "~@4 x ~@3 x!8", K: "x!2 ~@4 x ~@5 x ~@3",
  L: "~@4 x ~@5 x!2 ~@4", M: "~@4 x ~@3 x!2 ~ x!3 ~@2", N: "x ~@2 x ~@2 x ~", O: "x!2 ~@2 x!2 ~@6 x ~@3",
  P: "~@4 x ~@6 x ~@4", Q: "~ x ~@2", R: "x!2 ~@2 x!2 ~ x ~ x!2 ~ x!3 ~", S: "~@4 x ~@7 x ~ x!2", T: "x ~@2 x ~@4",
  U: "~@3 x!2 ~@7 x ~@3", V: "x!2 ~@3 x!2 ~@2 x ~@2 x!2 ~@2", W: "~@2 x ~ x!3 ~@3 x ~ x ~ x ~", X: "x ~@4 x ~@2",
  Y: "x!2", Z: "~@2 x ~@2 x!2 ~@2 x!2 ~ x!3 ~",
})).gain(0.36)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A B ~@3 C ~@3 A ~@3 D ~ E ~@5 F ~@3 D ~ G ~ A ~@4 B ~@2 H ~@7 I ~@5 J ~ K ~@4 G ~@2 D ~@7 C ~@3 A ~@3 D ~ E ~@5 F
  ~@3 D ~ G ~ A ~@3 L M ~@3 N ~
>`.pickRestart({
  A: "~ x!2 ~", B: "~@9 x ~@6", C: "~@9 x ~@2 x!2 ~@2", D: "x!2 ~@6 x!2 ~@6", E: "~@8 x!2 ~@6",
  F: "x!2 ~@2 x!2 ~@2 x!2 ~@6", G: "~@3 x ~@12", H: "~@14 x!2", I: "~@7 x ~@8", J: "~@11 x ~@4", K: "~@3 x!2 ~@3",
  L: "x ~@7 x!2 ~@6", M: "~@8 x!2 ~@2 x!2 ~@2", N: "x!2 ~@6 x ~@7",
})).gain(0.12)

// drums · low tom
const low_tom = s("lt").struct("<~@14 [~@6 x!2] ~@47 [~@13 x!2 ~] ~@15 [~@6 x!2] ~@26>").gain(0.28)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~ B C D@2 E D@3 ~ D@3 ~ D E F D F E F ~ D F E ~ F D@2 ~ D@3 ~ E D@2 E D@3 ~ D@3 ~ D E D@3 E D ~ D@2 E ~ D@3 ~ D@3 ~
  E D@2 E D@3 ~ D@3 ~ D E F D F E F ~ D F E ~ F D@2 ~ D@3 ~@7
>`.pickRestart({
  A: "x!2 ~ x ~@2 x ~ x ~@2 x ~@2 x ~", B: "x!2 ~ x ~@2 x ~ x ~@7", C: "x!2 ~ x ~@2 x ~@9", D: "~ x ~ x", E: "~ x ~@2",
  F: "~@3 x",
})).gain(0.28)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<[~@2 x ~ x!2 ~ x ~@2 x ~ x!2 ~@2] ~ [~@2 x ~ x!2 ~ x ~@8]!2 ~@101>").gain(0.16)

// … 34 more lines

More by Fitzgerald Ella