Strudelify

Solo con l'anima mia

Armani

KeyA majorTempo88 bpm
0:00/0:00
// Solo con l'anima mia — Armani
// 88 bpm, 4/4, key A 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 92 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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
const piano = note(`<
  A@2 B@2 C D E F G H E F I J K L M N O P ~@20 Q R S T@2 U ~@2 V@2 ~@2 W ~@3 X ~@3 Y ~@2 Z AA Z AB Z AC AD AE Z AF AG AH
  AI AJ AK AL@2 AM AN AM AO AM AN AM AO AM AN AM AO
>`.pickRestart({
  A: "[~@6 a4@2 ~@3 g4@4 ~ [a2,a3,e4,g4,a4]@16, f#5 ~@3, a4@3 ~ [e4,b4]@4 ~@8, ~@3 d5@5 ~@7 d4@16 ~]/2", // A7 E5
  B: "[~@6 a4@2 ~@3 g4@4 ~ [a2,e4]@16, f#5 ~@3, a4@3 ~ [e4,b4]@4 ~@8, ~@3 d5@5 ~@7 d4@16 ~]/2", // A5 E5
  C: "[d2,d3,a3,d4,f#4,a4]", D: "[f#2,f#3,a3,d4,f#4,a4]", E: "[g2,g3,b3,d4,g4] [e2,e3,d4,e4,g4]",
  F: "~ c#4, [a2,a3,d4,e4,a4]", G: "[d4,f#4,a4]@11 ~ [a4,d5]@4, [d2,d3,a3], ~@11 f#4@5", H: "[f#2,a3,d4,f#4]",
  I: "~@3 d5@5, [g2,g4], ~ d3@15, ~@2 g3@3 g3@11, ~@3 a4@13", // G
  J: "~@3 a5@5, [a2,b4], ~ e3@15, ~@2 a3@3 a3@11, ~@3 c#5@13", // Asus2
  K: "~ f#4, d2, f#4@3 d3@5, ~ d3@2 d4@4 a3@9, ~@2 a3@3 g4@3 ~@8",
  L: "~@13 a3@3, b1, c#4@3 ~@5, f#3@2 ~ d4@13, ~ b2@4 b2@11",
  M: "~@3 d5@5, [g2,g4], ~ d3@15, ~@2 g3@3 g3@11, ~@3 a4@5 ~@8", // G
  N: "~@7 c#5@6 [g2,b3,d4,g4]@3, [a2,b4]@13 ~@3, ~ e3@12 ~@3, ~@2 a3@3 a5@10 ~, ~@3 c#5@2 a3@8 ~@3", // G Asus2
  O: "[d2,a3,d4,f#4]", P: "[a1,a2,b3,d4,e4,g4]", Q: "[c3,g3,c4,e4]@13 ~ c3@2, ~@13 [g3,c4,e4]@3",
  R: "[g3,b3,d4]@12 ~ [g3,b3] d3@2, g2@13 d4@2 ~", S: "[d3,a3,d4,f#4]@6 ~ d3, ~@13 [a3,d4,f#4]@2 ~",
  T: "[[a2,a3,d4,e4]@13 ~@3 [a3,c#4]@9 ~@2 [c#4,e4] ~ [a3,c#4,e4,a4]@3, ~@13 [a3,d4,e4]@2 ~ a1@16, ~@14 a2@9 ~@2 a2@7, ~@8 [e4,a4]@5 a3 ~@2]/2", // Asus4 A C#m A Asus4 A5
  U: "[d2,d3,a3,d4,f#4]@3 ~", V: "[~@3 [g#5,b5]@5, ~@11 [b4,e5]@21]/2",
  W: "~@7 b4, ~@5 f#5@4 b5@2 e5 d#5@4, ~@3 b5 d#6@4, ~@7 e6@9, ~@5 f#5@3",
  X: "[f#4,b4,d#5]@3 ~@3 [g#4,c#5,e5]@10, ~@3 [f#4,b4,d#5,f#5]@13", Y: "~@7 b4@9, ~@3 a4@13, ~@4 b4@3 ~@9, ~@5 e5@11",
  Z: "[b3,e4,g#4]@5 [b3,e4,g#4]@3 [f#3,c#4,e4,f#4,a4]@5 ~ f#3@2, [e2,e3] f#2, ~@13 [c#4,e4,f#4,a4]@3", // E F#m7 E F#m7
  AA: "[b2,f#4]@4 ~@3 e5 ~@2 f#4@6, b1, [b3,e4]@3 b4 d#5@4, ~ b2@3, ~@5 f#4@3 ~ b4@7", // B5 E5
  AB: "[b2,b3,e4,f#4]@4 ~ [b3,d#4,f#4]!2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@3, b1", // Bsus4 B
  AC: "b2@4 ~@5 [f#5,b5]@7, b1@7 b4@9, e4@3 f#4@5, [b3,f#4]@5 b3@11, ~ b2@3", // B5
  AD: "[d3,a3]@4 ~ a3@2 ~@4 d4@2 ~ d3@2, d2, d4@8 [a3,e4,f#4]@5 [a3,d4,e4]@3, f#4 ~@3 d3@3 d3@3 d3@2 ~@4", // D5 F#m7 Asus4
  AE: "~@2 e3@2 ~@6 a4 ~@2 a4@3, a2, [a3,c#4,e4]@4 e4@2 e4@2 e3@3 e5@5, ~@5 [e3,a3]@2 a4@2 e4@7, ~@11 a4 e3@4", // A A5
  AF: "f#4 ~@6 b4@9, b1, [b2,b3]@3 f#4@5, e4@2 b4@3 e4@11, ~ f#4@2 f#5@5 ~@8", // B
  AG: "[b3,e4,g#4]@5 [b3,e4,g#4]@3 [f#3,c#4,e4,a4]@5 ~ f#3@2, [e2,e3]@8 ~@5 [c#4,e4,f#4,a4]@3", // E F#m7 E F#m7
  AH: "~@3 f#5@2 ~@6 [b3,d#4,f#4]@5, b1, [b2,b3,e4]@7 b4@9, ~ b5@4 b5@3 ~@8, ~@3 f#5 ~@4", // B E5
  AI: "[d3,a3,d4,f#4]@13 ~ d3@2, ~@13 [a3,d4,f#4]@3", // D
  AJ: "[a2,a3,c#4,e4]@8 ~ [b4,c#5,e5]@2 ~ b4 ~ a4@2, a1, ~@11 a4@2 b4@3, ~@3 [c#5,e5]", // A C#m7 C#m
  AK: "[e3,b3,e4,g#4]@6 ~ e3, ~@13 [b3,e4,g#4]@2 ~", // E
  AL: "[[b2,b3,e4,f#4]@13 ~@3 [b3,d#4]@9 ~@2 [d#4,f#4] ~ [b3,d#4,f#4,b4]@3, ~@13 [b3,e4,f#4]@2 ~ b1@16, ~@14 b2@9 ~@2 b2@7, ~@8 [f#4,b4]@5 b3 ~@2]/2", // Bsus4 B D#m B Bsus4 B5
  AM: "[b3,e4,g#4]@5 [b3,e4,g#4]@3 [f#3,c#4,e4,f#4,a4]@5 ~ f#3@2, [e2,e3]@8 ~@5 [c#4,e4,f#4,a4]@3", // E F#m7 E F#m7
  AN: "b2@4 ~@3 e5 ~@2 f#4@6, b1, [b3,e4]@3 b4 d#5@4, ~ b2@3, ~@5 f#4@3 ~ b4@7", // E5
  AO: "[b2,b3,e4]@4 ~ [b3,d#4,f#4]!2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@3, b1", // E5 B
})).s("gm_piano").gain(0.38).pan(0.4)

// chords · piano · soft notes
const piano_soft = note(`<
  A ~ A B ~@2 C ~ D@2 C ~@3 E F G ~ H ~@22 I ~@27 J K ~@2 L M ~ N ~@3 O P O Q O P O Q O P O Q
>`.pickRestart({
  A: "[d2,d3] [e2,e3]", B: "[a3,g4,a4]", C: "~ b3", D: "[~@11 d4@4 [d3,f#3]@17]/2", E: "~ d4", F: "~@3 b3@5, ~ f#3@7",
  G: "~ a4", H: "d3", I: "d3@3 ~", J: "~@4 a3 ~@8 f#4@3, ~@6 d3 ~", K: "~ c#4 ~@2, ~@4 a3 ~@11",
  L: "~ f#2, ~@8 f#4@5 ~@3", M: "f#4 ~", N: "e3 ~", O: "~ f#2", P: "f#4@5 ~@11", Q: "f#4 ~@3",
})).s("gm_piano").gain(0.27).pan(0.4)

// bass · fretless bass
const bass = note(`<
  ~@20 A B C D E F G H I J K L M N O P O P Q P R S T U V O P O W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AL AM AN
  AM AO AP AL AQ AL AQ AO AP AR AS AT AL AM AU AM AL AM AU AM AL AM AU AM
>`.pickRestart({
  A: "d1@14 ~ d1", B: "f#1@15 f#1", C: "g1@7 g1 e1@7 e1", D: "a1@7 a1 ~ a1 a1@6", E: "b1@6 ~ b1 ~ b1 b1@4 ~ b1",
  F: "c#2@7 c#2", G: "~@7 d1@9, d2", H: "b1@2 ~ b1 ~@2 b1@10", I: "g1@14 ~ a1", J: "a1@12 ~ a1@2 f#1",
  K: "f#1@13 ~ f#1@2", L: "g1", M: "a1@6 ~ a1 ~ a1 a1@4 ~ a1", N: "a1@5 ~ a1!2 ~ a1 a1@3 a1 a1@2",
  O: "d1@3 d1@2 ~ d1@2 e1@2 ~ e1 ~ e1 e1@2", P: "a1@3 a1@2 ~ a1!2 ~ a1 a1@6", Q: "d2@3 d1@2 ~ d1@2 e1@2 ~ e1 ~ e1 e1@2",
  R: "c1@6 ~ c1 ~ c1 c1@6", S: "g1@6 ~ g1 ~ g1 g1@6", T: "d1@5 ~ d1!2 ~ d1 d1@4 ~ d1", U: "a1@6 a1 a1@2 a1 a1@4 ~ a1",
  V: "a1@6 a1 a1@2 a1 a1@3 a1 a1@2", W: "a1@11 a1 b1@4", X: "e1@14 ~ e1", Y: "g#1@15 g#1", Z: "a1@7 a1 f#1@7 f#1",
  AA: "b1@7 b1 ~ b1 b1@6", AB: "c#2@7 c#1@2 c#1 c#1@4 ~ c#1", AC: "d#1@7 d#1", AD: "~@7 e2@9, e1",
  AE: "c#1@6 c#1 c#1@7 c#2 b1", AF: "a1@2 a1 ~ a1@3 a1 ~ a1 a1@5 a1", AG: "b1@2 b1 ~ b1@3 b1 ~ b1 b1@4 b1 g#1",
  AH: "~@7 g#2@7 ~ g#1, g#1@7 ~", AI: "a1@7 a1@8 a1", AJ: "b1@2 b1@5 b1 ~ b1 b1@4 ~ b1",
  AK: "b1@5 ~ b1!2 ~ b1 b1@3 b1 b1@2", AL: "e1@3 e1@2 ~ e1@2 f#1@2 ~ f#1 ~ f#1 f#1@2", AM: "b1@3 b1@2 ~ b1!2 ~ b1 b1@6",
  AN: "e2@3 e1@2 ~ e1@2 f#1@2 ~ f#1 ~ f#1 f#1@2", AO: "d1@6 ~ d1 ~ d1 d1@6", AP: "a1@6 ~ a1 ~ a1 a1@6",
  AQ: "b1@3 b1@3 b1 b1@2 b1 b1@6", AR: "e1@5 ~ e1!2 ~ e1 e1@4 ~ e1", AS: "b1@6 b1 b1@2 b1 b1@4 ~ b1",
  AT: "b1@6 b1 b1@2 b1 b1@3 b1 b1@2", AU: "g#1@3 g#1@2 ~ g#1@2 a1@2 ~ a1 ~ f#1 f#1@2",
})).s("gm_fretless_bass").gain(0.72)

// chords · epiano1
const epiano1 = note("<~@20 A@2 B C D E F G H I J@2 K L ~@15 M N O P Q R S T U V W X Y Z ~@29>".pickRestart({
  A: "[[d2,d4]@13 e4@3 [f#3,d4]@16, [a3,f#4], d3@16 f#2@13 ~@3]/2", B: "[g2,g4] [e3,e4,g4], [b3,d4], ~@8 e2@5 ~@3",
  C: "a3@5 ~@3 c#4@8, e4, [a1,d4] ~, ~@5 [a2,a3]@11", D: "~@13 d5@3, [g3,b3,d4], ~@7 d3@9, ~@9 g4@7, ~@11 a4@5",
  E: "~@7 e3@2 ~@5 e3@2, e4, c#4@3 c#4, a3@9 [a3,a4]@7, ~@5 e3@2 ~", F: "[a3,f#4] [a3,c#4,f#4], [d3,d4]",
  G: "~@7 a5, b2, c#4@8 ~@3 d5@5, ~@3 d4@5 c#5@8, ~@3 a4@5", H: "[g2,g3,b3,d4]@12 ~ [g2,g3,b3,d4]@3",
  I: "[a2,a3,c#4,e4]@12 ~ [a2,a3,c#4,e4]@3", // A
  J: "[[f#2,a3,d4,f#4]@12 ~ [f#2,a3,f#4]@3 [g2,b3,g4]@12 ~ [g2,b3,d4,g4]@3, ~@13 d4@15 ~@4]/2", // D F#m G
  K: "[a2,a3,d4,f#4,a4]@13 [a2,a3,d4,f#4,a4]@2 ~", L: "[a2,a3,d4,e4,a4]", M: "~@13 g#3@3, [e2,b2,e3,b3], ~@5 f#3@3",
  N: "~@13 g#3@3, [g#2,b3,e4], g#3@13 ~@3, ~@5 f#3@3", O: "[a3,c#4,e4]@8 ~@5 a4@3, a2, ~ [f#2,f#3,a3,c#4,e4]",
  P: "~ d#4, [b2,b3,e4,f#4]", Q: "[c#2,c#3,c#4,e4,g#4]", R: "[d#2,d#3,b3,d#4,f#4]",
  S: "[b3,e4]@3 [b3,e4,g#4]@5, [e2,e3,a4]", // E5 E A5
  T: "[c#4,g#4]@3 [c#4,e4,g#4]@3 [c#2,c#3,c#4,e4,g#4]@10, d#4, [c#2,c#3]@3 ~@5", // C#5 C#m C#
  U: "[a1,a2,a3,c#4,e4]@13 [a1,a2,a3,c#4,e4]@3", V: "[b3,d#4,f#4]@13 [b3,d#4,f#4]@3, [b1,b2]",
  W: "[g#1,g#2,b3,e4,g#4]@13 [g#1,g#2,b3,e4,g#4]@3", X: "[a1,a2,c#4,e4,a4]@13 [a1,a2,c#4,e4,a4]@3",
  Y: "[b1,b2,b3,e4,g#4,b4]@13 ~ b1@2, ~@13 [b2,b3,e4,g#4,b4]@3", Z: "[b2,b3,e4,f#4,b4] [b2,b3,d#4,f#4,b4], b1",
})).s("gm_epiano1").gain(0.32).pan(0.6)

// chords · rock organ
const rock_organ = note(`<
  ~@20 A@2 ~@2 B@2 ~@2 C D@3 E F G@5 H I@5 J@4 ~@4 K@4 L M@3 N O P@5 Q R@2 S@4 T@5 U@4 V@8
>`.pickRestart({
  A: "[f#4,a4,d5]/2", B: "[b4 a4, [g4,d5]]/2", C: "[d4,g4,b4]", D: "[[e4,c#5]@4 f#4@3 ~ [g4,b4]@4, a4@2 ~, ~ d5@2]/3",
  E: "[a4,d5], f#4@3 ~", F: "[e4,a4,d5]",
  G: "[f#4@3 ~@5 [e4,g4,b4]@8 ~@8 c#5@8 f#4@8 [e4,g4,b4]@8 ~@8 c#5@8 f#4@8 [e4,g4,b4]@8, d5@3 ~ d5@3 ~ d5@2, a4 ~@15 a4@24 ~@8 a4@24 ~@8, ~ e4 ~ e4 ~]/5", // Em
  H: "d5 c#5, [e4,a4]", // A5
  I: "[[c5,e5]@16 ~@10 b5@2 ~ g5@3 [f#4,f#5]@16 ~@25 a5 [c#6,e6]@2 [a5,b5,c#6] a5!2 [a4,b4,c5,d5,e5,f5,g5], g4@32 a4@47 ~, ~@16 d5@48 c#5@15 ~, ~@8 b4@8 ~@8 e5@15 ~, ~@25 g5 a#5 ~ a5@4 ~@42 [a5,b5] ~ e6@3 ~]/5", // C F# C#m A Am7 Asus2
  J: "[[f#4,a4] [e4,g4,b4] ~ c#5 f#4 [e4,g4,b4] ~ c#5, d5@3 ~ d5@3 ~, g4 ~@15 a4@24 ~@24, ~ e4 ~ [e4,a4]]/4", // F#m Em A5
  K: "[c#5@16 b4@16 e5@16 d#5@3 ~@3 e5@10, a4@37 ~@11 c#5@16, e5@32 [g#4,b4]@19 ~@13]/4", L: "[e4,a4,c#5]",
  M: "[[f#4,d#5]@4 g#4@3 ~ [a4,c#5]@4, b4@2 ~, ~ e5@2]/3", N: "[b4,e5] ~@15, g#4@3 ~", O: "[f#4,b4,e5]",
  P: "[[g#4,b4]@2 [f#4,a4,c#5]@2 f#4 ~ d#5@2 g#4@2 [f#4,a4,c#5]@2 f#4 ~ d#5@2 g#4@2 [f#4,a4,c#5]@2, e5@3 ~ e5@3 ~ e5@2, ~@2 b4@3 ~ b4@3 ~]/5", // G#m F#m
  Q: "e5 d#5, b4, f#4 ~@3", R: "[[d5,f#5]@16 ~@10 c#6@2 ~ a5@3, a4, ~ [c#5,e5], ~@25 a5@3 ~@4, ~@26 c6 ~ b5@4]/2",
  S: "[b4@8 [f#4,a4,c#5]@8 f#4@3 ~@5 d#5@8 g#4@8 [f#4,a4,c#5]@8 f#4@4 ~@4 d#5@8, e5@3 ~ e5@3 ~, g#4 ~@3 b4@6 ~@2 b4@4]/4", // F#m
  T: "[[d5,f#5]@16 c#5@16 [g#4,g#5]@16 ~@25 b5 [d#6,f#6]@2 [b5,c#6,d#6] b5!2 [b4,c#5,d5,e5,f#5,g5,a5], a4@32 b4@47 ~, ~@16 e5@48 d#5@15 ~, ~@24 f#5@15 ~, ~@74 [b5,c#6] ~ f#6@3 ~]/5", // D G# D#m B Bm7 Bsus2
  U: "[[a4,b4] ~@7 [f#4,a4,c#5]@8 f#4@4 ~@4 d#5@8 g#4@8 [f#4,a4,c#5]@8 f#4@4 ~@4 d#5@8, e5@3 ~ e5@3 ~, g#4 ~@3 b4@6 ~@2 b4@4]/4", // Asus2 F#m
  V: "[b4@2 [f#4,a4,c#5]@2 f#4 ~ d#5@2 g#4@2 [f#4,a4,c#5]@2 f#4 ~ d#5@2, e5@3 ~ e5@3 ~, g#4 ~@3 b4@6 ~@2 b4@4]/4", // F#m
})).s("gm_rock_organ").gain(0.39).pan(0.6)

// chords · synth strings 1
const synth_strings_1 = note("<A@2 B@2 C@2 D@2 E@2 D@2 F G@3 H I J K@2 ~@28 L@4 ~@39>".pickRestart({
  A: "[[d2,a3,f#4] [e2,b3] [a2,a3]@2, d4, ~ [e4,g4]@3]/2", B: "[[d2,a3,f#4] [e2,b3] [a2,a3]@2, d4 ~@7 [e4,g4]@24]/2",
  C: "[[a3,d4]@15 ~@17, f#4@31 ~]/2", D: "[g4 ~@2 c#4, b3 [a3,a4], ~ e4@3]/2", E: "[[a3,d4]@11 ~@21, f#4]/2",
  F: "b3 ~@5 d4@4 c#4@3 b3@3, g3, g2@7 ~",
  G: "[c#4 ~@5 e4@4 d4@3 c#4@3 g4@8 ~@8 c#4@6 d4@10, a3@3 ~ f#4@4, a2 [d2,d3,d4] [b1,b2,b3]]/3", // D B
  H: "b3 ~@2 c#4@3 d4@10, [g2,g3]@15 ~", I: "c#4@2 ~ d4@3 e4@10, [e3,a3]@15 ~, a2@13 ~@3",
  J: "[f#3,a3,d4], [d2,d3]@13 ~@3", K: "[[a1,a2,b3,d4,e4] ~, a3@9 ~@7]/2",
  L: "[g#4@32 c#4@7 ~@17 d#4@8, e4@39 ~ f#4@24, b3 ~@15 a4@8 [b3,b4]@8]/4", // B
})).s("gm_synth_strings_1").gain(0.22)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A@4 ~@2 B ~ C ~ C ~@2 D@2 ~@2 D@2 ~@4 E@2 ~@2 F@2 G@4 ~@23 H@2 I@4 ~@29
>`.pickRestart({
  A: "[~@4 a3@8 ~@4 [d3,d5]@9 ~@7, ~@26 a5@23 ~@15]/4", B: "~ a4, ~ e5@3", C: "~ d5, ~ a5@3", D: "[d5,e5,a5]/2",
  E: "[g4,a4,d5]/2", F: "[[g4,a4,d5]@29 ~@3]/2", G: "[[e5,a5], d5 ~]/4", H: "[[a4,b4,e5]@29 ~@3]/2",
  I: "[[f#5,b5], e5 ~]/4", // B5
})).s("gm_string_ensemble_2").gain(0.22)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~ A@3 B@2 ~ C ~ D ~ D ~@80>".pickRestart({
  A: "e5/3", B: "[d6, a4@15 ~]/2", C: "~ a5@3", D: "~ d6@3",
})).s("gm_string_ensemble_2").gain(0.11)

// other · lead 3 calliope
const lead_3_calliope = note("<~@24 A@2 ~@2 A@2 ~@23 B@2 C D B@6 ~@29>".pickRestart({
  A: "a4 ~ a4 ~ a4 ~ a4 ~", B: "b4 ~ b4 ~ b4 ~ b4 ~", C: "a4 ~ a4 ~ g#4 ~ g#4 ~", D: "f#4 ~ f#4 ~@5",
})).s("gm_lead_3_calliope").gain(0.23).pan(0.1)

// other · alto sax
const alto_sax = note("<~@44 A B@2 C@2 ~@30 D E@2 F@2 ~ G@2 D H@2 F@2>".pickRestart({
  A: "~@14 [a4,b4] [d5,e5]", B: "[f#5@3 e5@2 d5@2 a4 b4@2 ~ a4@3 a4 a4@2 ~@8 a4 ~@2 a4 b4 d5 e5]/2",
  C: "[f#5!2 g5 f#5@2 g5@2 f#5@2 d5 ~ d5@2 e5@2 b4@3 a4 a4@11 ~@2, ~@5 f#5 ~@26]/2", D: "~@14 [b4,c#5] [e5,f#5]",
  E: "[g#5@3 f#5@2 e5 ~ b4 c#5@2 ~ b4@3 b4 b4@3 ~@7 b4 ~@2 b4 c#5 e5 f#5]/2",
  F: "[g#5!2 a5 g#5@2 a5@2 g#5@2 e5 ~ e5@2 f#5@2 c#5@3 b4 b4@11 ~@2, ~@5 g#5 ~@26]/2",
  G: "[~@3 e5 d#5@3 e5 d#5 c#5 b4@3 c#5 g#4 ~@2 c#5 ~@14, ~@15 b4@9 ~@8]/2",
  H: "[g#5@3 f#5@2 e5@2 b4 c#5@2 ~ b4@3 b4 b4@3 ~@7 b4 ~@2 b4 c#5 e5 f#5]/2",
})).s("gm_alto_sax").gain(0.43)

// drums · kick
const kick = s("bd").struct("<~@4 A@16 B@13 C B@10 C B@3 D B@13 C B@16 C B@12>".pickRestart({
  A: "~@2 x ~@2 x ~@10", B: "x ~ x ~@4 x ~ x!2 ~@3 x!2", C: "x ~ x ~@4 x ~ x!3 ~@3 x",
  D: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@12 A@21 B A@10 B A@3 C A@13 B A@16 B A@12>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x",
})).gain(0.72)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@12 A B A B A B A B ~@13 C ~@10 C ~@17 C ~@16 C ~@12>".pickRestart({
  A: "~ x ~@8 x ~@3 x!2", B: "~ x ~@13 x", C: "~@12 x!3 ~",
})).gain(0.24)

// drums · low tom
const low_tom = s("lt").struct("<~@33 A ~@10 A ~@17 A ~@7 B ~@8 A ~@12>".pickRestart({
  A: "~@13 x!2 ~", B: "~@7 x",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A B A B A B A B A B A B C D E D C D E D C D E D E F G H@5 I H@3 J I H@2 K C D E D C D E D C D E D E F G H@5 I H I
  H@3 I H I L M I H@11
>`.pickRestart({
  A: "x!3 ~ x!4", B: "x!5 ~ x!2", C: "~ x!2 ~ x ~ x!5 ~ x ~ x!2", D: "x!3 ~ x!7 ~ x ~ x!2",
  E: "x!3 ~ x ~ x!5 ~ x ~ x!2", F: "x!3 ~ x!7 ~@5", G: "~ x!3 ~ x!8 ~ x!2", H: "x!13 ~ x!2", I: "~ x!12 ~ x!2",
  J: "x!11 ~@5", K: "x!8", L: "x!13 ~ x ~", M: "~ x!10 ~@5",
})).gain(0.32)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A B A B A B A B A B A B C D C D C D C D C D C D C E ~@15 C D C D C D C D C D C D C E ~@29
>`.pickRestart({
  A: "~ x ~ x ~@2 x ~@2 x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~ x ~ x ~@3 x ~ x", C: "~@3 x ~ x ~@5 x ~@4",
  D: "~@3 x ~@7 x ~@4", E: "~@3 x ~@12",
})).gain(0.16)

// drums · mid tom
const mid_tom = s("mt").struct("<~@33 A ~@10 A ~@17 A ~@7 B ~@8 A ~@12>".pickRestart({
  A: "~@5 x ~@2 x ~@3 x ~@3", B: "~@12 x!2 ~@2",
})).gain(0.48)
// … 54 more lines