Strudelify

senorita

Jilli Hickman

KeyC majorTempo117 bpm
0:00/0:00
// senorita — Jilli Hickman
// 117 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5838323; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(117/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@2 B@2 C D@3 A@2 B@2 C E@3 F G H I J K L M N G H I J K L O A@2 B@2 C P@3 A@2 B@2 C E@3 Q G H I J K L R N G H S A@2
  B@2 C P@3 A@2 B@2 C E@3 Q G T I U K V W A@2 B@2 C E@3 X
>`.pickRestart({
  A: "[c5@2 a4@2 e4@2 c5 b4@2 g4@2 g4 c5 b4 a4 b4]/2", B: "[c5@2 g4@2 e4@2 c5 b4@2 g4@2 g4 c5 b4 a4 g4]/2",
  C: "f4@3 c5@3 c5@2 c5@3 ~@3 f4@2",
  D: "[f4@3 c5@3 c5@2 c5@3 ~@3 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 ~@10]/3",
  E: "[f4@3 c5@3 c5@2 c5@3 ~@3 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@3 a4@3 g4@2]/3",
  F: "a4@2 ~@2 c5 ~@5 c5 ~@5", G: "~@4 c5 ~@5 c5 ~@3 c5 ~", H: "~@4 d5 ~@5 d5 ~@5", I: "~@4 d5 ~@5 d5 ~@3 d5 ~",
  J: "~@4 g4 ~@5 g4 ~@5", K: "~@4 g4 ~@5 g4 ~@3 g4 ~", L: "~@4 a4 ~@5 a4 ~@5", M: "~@4 a4 ~@5 a4 ~@3 a4 ~",
  N: "~@2 c5 ~@2 c5 ~@2", O: "~@3 b4 c5 b4 a4 b4",
  P: "[f4@3 c5@3 c5@2 c5@3 ~@3 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@2 b4@2 a4@2 b4@2]/3",
  Q: "a4 ~ c5 ~@2 c5 ~@2", R: "~@6 g5@3 f5 e5 d5 c5@4", S: "e5 ~ e5 b4 c5 b4 a4 b4", T: "~@2 f5@2 e5 d5 c5@2 b4@4 ~@4",
  U: "~@2 g5@2 f5 e5 d5@2 c5@4 ~@4", V: "f5@3 e5@3 d5@2 e5@2 ~@6", W: "f5@3 e5@3 d5@2 e5@2 a4@2 b4 a4 b4@2",
  X: "a4 ~@3",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note(`<
  A@2 B@2 C D@3 A@2 B@2 C E@3 F G H I J K L M N G H I J K L O A@2 B@2 C P@3 A@2 B@2 C Q@3 R G H I J K L S N G H T A@2
  B@2 C P@3 A@2 B@2 C Q@3 R G U I V K W X A@2 B@2 C Q@3 Y
>`.pickRestart({
  A: "[a4@2 e4@2 a3@2 a4 e4@2 c4@2 c4 a4 g4 f#4 g4]/2", B: "[g4@2 e4@2 c4@2 a4 e4@2 c4@2 c4 a4 g4 f#4 e4]/2",
  C: "d4@3 e4@3 e4@2 e4@3 ~@3 d4@2",
  D: "[d4@3 e4@3 e4@2 e4@3 ~@3 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 ~@10]/3",
  E: "[d4@3 e4@3 e4@2 e4@3 ~@3 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 a4@2 f4@3 e4@3 d4@2]/3",
  F: "e4@2 ~@2 e4 ~@5 e4 ~@5", G: "~@4 e4 ~@5 e4 ~@3 e4 ~", H: "~@4 g4 ~@5 g4 ~@5", I: "~@4 g4 ~@5 g4 ~@3 g4 ~",
  J: "~@4 c4 ~@5 c4 ~@5", K: "~@4 c4 ~@5 c4 ~@3 c4 ~", L: "~@4 d4 ~@5 d4 ~@5", M: "~@4 d4 ~@5 d4 ~@3 d4 ~",
  N: "~@2 e4 ~@2 e4 ~@2", O: "~@3 b4 c5 b4 a4 b4",
  P: "[d4@3 e4@3 e4@2 e4@3 ~@3 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 a4@2 g4@2 g4@2 f4@2 g4@2]/3",
  Q: "[d4@3 e4@3 e4@2 e4@3 ~@3 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 a4@2 g4@3 f4@3 e4@2]/3",
  R: "e4 ~ e4 ~@2 e4 ~@2", S: "~@6 d5@3 c5 b4 a4 f4@4", T: "g#4 ~ g#4 b4 c5 b4 a4 b4",
  U: "~@2 d5@2 c5 b4 a4@2 g4@4 ~@4", V: "~@2 d5@2 c5 b4 a4@2 a4@4 ~@4", W: "d5@3 c5@3 b4@2 c5@2 ~@6",
  X: "d5@3 c5@3 b4@2 c5@2 f4@2 g4 f4 g4@2", Y: "e4 ~@3",
})).s("gm_clarinet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E G A B C
  H A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B@2 E ~
>`.pickRestart({
  A: "~@4 e4 ~@5 e4 ~@5", B: "~@4 e4 ~@5 e4 ~@3 e4 ~", C: "~@4 g4 ~@5 g4 ~@5", D: "~@4 g4 ~@5 g4 ~@3 g4 ~",
  E: "~@4 d4 ~@5 d4 ~@5", F: "~@4 d4 ~@5 d4 ~@3 d4 ~", G: "~@6 b4@3 a4 g4 f4 e4@4", H: "e5 ~ e5 ~@5",
})).s("gm_alto_sax").gain(0.25)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B E G A B C
  H A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B@2 E ~
>`.pickRestart({
  A: "~@4 e3 ~@5 e3 ~@5", B: "~@4 e3 ~@5 e3 ~@3 e3 ~", C: "~@4 g3 ~@5 g3 ~@5", D: "~@4 g3 ~@5 g3 ~@3 g3 ~",
  E: "~@4 d3 ~@5 d3 ~@5", F: "~@4 d3 ~@5 d3 ~@3 d3 ~", G: "~@6 d4@3 c4 b3 a3 g3@4", H: "g#3 ~ g#3 ~@5",
})).s("gm_tenor_sax").gain(0.25)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@7 A B@2 C@2 D E@3 F G H I J K L M N O P Q R S T U B@2 C@2 D V@3 W@2 X@2 Y Z@3 AA O AB Q R AC AD@2 AE AF AE AG B@2
  C@2 D V@3 W@2 X@2 Y Z@3 AH AI AJ AI AJ AI AK AL ~ AM AN@2 ~ AO@3 AP
>`.pickRestart({
  A: "~@3 b4 c5 b4 a4 b4", B: "[c5@2 a4@2 e4@2 c5 b4@2 g4@2 g4 c5 b4 a4 b4]/2",
  C: "[c5@2 g4@2 e4@2 c5 b4@2 g4@2 g4 c5 b4 a4 g4]/2", D: "f4@3 c5@3 c5@2 c5@3 ~@3 f4@2",
  E: "[f4@3 c5@3 c5@2 c5@3 ~@3 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@3 a4@3 g4@2]/3",
  F: "a4@2 ~@2 c5 ~@5 c5 ~@5", G: "~@4 c5 ~@5 c5 ~@3 c5 ~", H: "~@4 d5 ~@5 d5 ~@5", I: "~@4 d5 ~@5 d5 ~@3 d5 ~",
  J: "~@4 g4 ~@5 g4 ~@5", K: "~@4 g4 ~@5 g4 ~@3 g4 ~", L: "~@4 a4 ~@5 a4 ~@3 [c5,c6]@2", M: "[b4,b5]@3 ~@13",
  N: "~@2 e5@2 d5@2 e5@2 d5@2 c5@3 ~@3", O: "~ e5 d5 e5 d5 c5 b4 a4", P: "g4@2 e5@2 d5@2 e5@2 d5@2 c5@3 ~@3",
  Q: "~ e5 d5 e5 f5 e5 d5 c5", R: "a4@3 e5@3 e5@2 e5@3 ~@5", S: "~@5 g5!3", T: "g5@3 d5@3 d5@2 d5@3 ~@3 [a4,a5]@2",
  U: "[g4,g5]@3 ~@3 b4@2 c5@2 b4@2 a4@2 b4@2", // G
  V: "[f4@3 c5@3 c5@2 c5@3 ~@3 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@2 b4@2 a4@2 b4@2]/3",
  W: "[[c5,c6]@2 [a4,a5]@2 [e4,e5]@2 [c5,c6] b5@2 [g4,g5]@2 [g4,g5] [c5,c6] [b4,b5] [a4,a5] [b4,b5]]/2", // C A E C G C B A …
  X: "[[c5,c6]@2 [g4,g5]@2 [e4,e5]@2 [c5,c6] b5@2 [g4,g5]@2 [g4,g5] [e5,e6] [d5,d6] [c5,c6] [b4,b5]]/2", // C G E C G E D C …
  Y: "[f4,f5]@3 [c5,c6]@3 [c5,c6]@2 [c5,c6]@3 ~@3 [f4,f5]@2", // F C F
  Z: "[[f4,f5]@3 [c5,c6]@3 [c5,c6]@2 [c5,c6]@3 ~@3 b5@4 [c5,c6]@2 [b4,b5]@2 [c5,c6]@2 [b4,b5]@2 [g4,g5]@2 ~@2 b5@4 [c5,c6]@2 [b4,b5]@2 [c5,c6]@2 [b4,b5]@3 [a4,a5]@3 [g4,g5]@2]/3", // F C B C B G C B …
  AA: "[a4,a5] ~@7", AB: "g4 ~@7", AC: "~@14 f5!2",
  AD: "[g5 f5 e5 d5 e5@2 e5@2 e5!3 d5 e5 c5@2 d5@4 ~@3 g5@3 f5 e5 d5 c5@4]/2", AE: "e5@3 d5@3 f5@2 e5@2 c5@2 a4@2 f4@2",
  AF: "e5@3 d5@3 f5@2 e5@4 ~@4", AG: "g#5 ~ g#5 b4 c5 b4 a4 b4", AH: "[a4,a5] ~@5 d5 e5",
  AI: "f5@3 g5@3 f5@2 e5@3 d5@3 c5@2", AJ: "d5 ~@5 d5 e5", AK: "b4@2 ~@6 [b4,b5]@3 [a4,a5]@3 [g4,g5]@2",
  AL: "[a4,a5]@4 ~@6 a4@2 b4 a4 b4@2", AM: "~@10 f4@2 g4 f4 g4@2", AN: "[~@5 c5 d5 f5@2 e5 d5 c5 d5 e5 ~@2]/2",
  AO: "[~@14 b5@4 [c5,c6]@2 [b4,b5]@2 [c5,c6]@2 [b4,b5]@2 [g4,g5]@2 ~@2 b5@4 [c5,c6]@2 [b4,b5]@2 [c5,c6]@2 [b4,b5]@3 [a4,a5]@3 [g4,g5]@2]/3", // C B C B G C B C …
  AP: "[a4,a5] ~@3", // A
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~@7 A B@2 C@2 D E@3 F G H I J K L M N O P Q R S T U V@2 W@2 X Y@3 V@2 W@2 X Z@3 AA O AB Q R AC AD@2 AE AF AE AG V@2
  W@2 X Y@3 V@2 W@2 X Z@3 AH AI AJ AK AL AM AN AO ~ AP AQ@2 ~ AR@3 AS
>`.pickRestart({
  A: "~@3 b4 c5 b4 a4 b4", B: "[c5@2 a4@2 e4@2 c5 b4@2 g4@2 g4 c5 b4 a4 b4]/2",
  C: "[c5@2 g4@2 e4@2 c5 b4@2 g4@2 g4 c5 b4 a4 g4]/2", D: "f4@3 c5@3 c5@2 c5@3 ~@3 f4@2",
  E: "[f4@3 c5@3 c5@2 c5@3 ~@3 b4@4 c5@2 b4@2 c5@2 b4@2 g4@2 ~@2 b4@4 c5@2 b4@2 c5@2 b4@3 a4@3 g4@2]/3",
  F: "a4@2 ~@2 e4 ~@5 e4 ~@5", G: "~@4 e4 ~@5 e4 ~@3 e4 ~", H: "~@4 g4 ~@5 g4 ~@5", I: "~@4 g4 ~@5 g4 ~@3 g4 ~",
  J: "~@4 c4 ~@5 c4 ~@5", K: "~@4 c4 ~@5 c4 ~@3 c4 ~", L: "~@4 d4 ~@5 d4 ~@3 [a4,a5]@2", M: "[g4,g5]@3 ~@13",
  N: "~@2 c5@2 b4@2 c5@2 b4@2 a4@3 ~@3", O: "~ c5 b4 c5 b4 a4 g4 f4", P: "e4@2 c5@2 b4@2 c5@2 b4@2 a4@3 ~@3",
  Q: "~ c5 b4 c5 d5 c5 b4 a4", R: "f4@3 c5@3 c5@2 c5@3 ~@5", S: "~@5 e5!3", T: "e5@3 b4@3 b4@2 b4@3 ~@3 d5@2",
  U: "c5@3 ~@3 b4@2 c5@2 b4@2 a4@2 b4@2", V: "[a4@2 e4@2 a3@2 a4 e4@2 c4@2 c4 a4 g4 f#4 g4]/2",
  W: "[g4@2 e4@2 c4@2 a4 e4@2 c4@2 c4 a4 g4 f#4 e4]/2", X: "d4@3 e4@3 e4@2 e4@3 ~@3 d4@2",
  Y: "[d4@3 e4@3 e4@2 e4@3 ~@3 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 a4@2 g4@2 g4@2 f4@2 g4@2]/3",
  Z: "[d4@3 e4@3 e4@2 e4@3 ~@3 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 a4@2 g4@3 f4@3 e4@2]/3",
  AA: "[e4,e5] ~@7", AB: "e4 ~@7", AC: "~@14 d5!2",
  AD: "[e5 d5 c5 b4 c5@2 c5@2 c5!3 b4 c5 g4@2 b4@4 ~@3 d5@3 c5 b4 a4 g4@4]/2", AE: "c5@3 b4@3 d5@2 c5@2 a4@2 f4@2 d4@2",
  AF: "c5@3 b4@3 d5@2 c5@4 ~@4", AG: "e5 ~ e5 b4 c5 b4 a4 b4", AH: "[e4,e5] ~@5 d5 e5",
  AI: "f5@3 g5@3 f5@2 e5@3 d5@3 c5@2", AJ: "d5 ~@5 b4 c5", AK: "c5@3 d5@3 c5@2 a4@3 g4@3 e4@2", AL: "g4 ~@5 b4 c5",
  AM: "c5@3 d5@3 c5@2 a4@3 a4@3 g4@2", AN: "d4@2 ~@6 [g4,g5]@3 [f4,f5]@3 [e4,e5]@2",
  AO: "[f4,f5]@4 ~@6 f4@2 g4 f4 g4@2", AP: "~@10 d4@2 e4 d4 e4@2", AQ: "[~@5 c5 d5 f5@2 e5 d5 c5 d5 e5 ~@2]/2",
  AR: "[~@14 g4@4 a4@2 g4@2 a4@2 g4@2 d4@2 ~@2 g4@4 a4@2 g4@2 a4@2 g4@3 f4@3 e4@2]/3", AS: "[e4,e5] ~@3",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A B C D A B E F A B C D A B E F G H I J K L M N G H I J K L M N A B C D A B E F A B C D A B E F G H I J K B E O A B C
  P A B C D A B E F A B C D A B E F Q A B C R S T U A V C D A B E F ~
>`.pickRestart({
  A: "~@4 e4 ~@5 e4 ~@5", B: "~@4 e4 ~@5 e4 ~@3 e4 ~", C: "~@4 g4 ~@5 g4 ~@5", D: "~@4 g4 ~@5 g4 ~@3 g4 ~",
  E: "~@4 d4 ~@5 d4 ~@5", F: "~@4 d4 ~@5 d4 ~@3 d4 ~", G: "~@2 g4@2 f4@2 g4@2 f4@2 e4@3 ~@3",
  H: "~ g4 f4 g4 f4 e4 d4 c4", I: "d4@2 g4@2 f4@2 g4@2 f4@2 e4@3 ~@3", J: "~ g4 f4 g4 a4 g4 f4 e4",
  K: "c4@3 g4@3 g4@2 g4@3 ~@5", L: "~@5 b3!3", M: "b3@3 f4@3 f4@2 f4@3 ~@3 a4@2", N: "g4@3 ~@13",
  O: "~@6 d4@3 c4 b3 a3 g3@4", P: "e4 ~ e4 ~@5", Q: "~@4 e4 ~@11", R: "~@6 d4 e4", S: "f4@3 g4@3 f4@2 e4@3 d4@3 c4@2",
  T: "b3@2 ~@6 b4@3 a4@3 g4@2", U: "a4 ~@3", V: "~@4 e4 ~@5 d4@2 e4 d4 e4@2",
})).s("gm_french_horn").gain(0.25)

// other · trombone
const trombone = note(`<
  A B C D E F G H A B C D E F G H I J K L M N O P Q R S T U V W X A B C D E F G H A B C D E F G H Q R S T U F G Y A B C
  Z A B C D E F G H A B C D E F G H AA A B C AB AC AD AE A AF C D E F G H ~
>`.pickRestart({
  A: "~@4 e3 ~@5 e3 ~@5", B: "~@4 e3 ~@5 e3 ~@3 e3 ~", C: "~@4 g3 ~@5 g3 ~@5", D: "~@4 g3 ~@5 g3 ~@3 g3 ~",
  E: "~@4 c4 ~@5 c4 ~@5", F: "~@4 c4 ~@5 c4 ~@3 c4 ~", G: "~@4 d3 ~@5 d3 ~@5", H: "~@4 d3 ~@5 d3 ~@3 d3 ~",
  I: "~@2 e3@2 d3@2 e3@2 d3@2 c3@3 ~@3", J: "~ e3 d3 e3 d3 c3 b2 a2", K: "g2@2 e3@2 d3@2 e3@2 d3@2 c3@3 ~@3",
  L: "~ e3 d3 e3 f3 e3 d3 c3", M: "a2@3 e3@3 e3@2 e3@3 ~@5", N: "~@5 g2!3", O: "g2@3 d3@3 d3@2 d3@3 ~@3 c3@2",
  P: "b2@3 ~@13", Q: "~@2 g3@2 f3@2 g3@2 f3@2 e3@3 ~@3", R: "~ g3 f3 g3 f3 e3 d3 c3",
  S: "b2@2 g3@2 f3@2 g3@2 f3@2 e3@3 ~@3", T: "~ g3 f3 g3 a3 g3 f3 e3", U: "c3@3 g3@3 g3@2 g3@3 ~@5", V: "~@5 g3!3",
  W: "g3@3 d3@3 d3@2 d3@3 ~@3 d3@2", X: "c3@3 ~@13", Y: "~@6 d4@3 c4 b3 a3 g3@4", Z: "g#3 ~ g#3 ~@5", AA: "~@4 e3 ~@11",
  AB: "~@6 d3 e3", AC: "f3@3 g3@3 f3@2 e3@3 d3@3 c3@2", AD: "b2@2 ~@6 e3@3 d3@3 c3@2", AE: "d3 ~@3",
  AF: "~@4 e3 ~@5 f3@2 g3 f3 g3@2",
})).s("gm_trombone").gain(0.25)

// other · trombone
const trombone_2 = note(`<
  A B C D E F G H A B C D E F G H I J K L M N O P A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G Q A B C
  R A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G H ~
>`.pickRestart({
  A: "~@4 c3 ~@5 c3 ~@5", B: "~@4 c3 ~@5 c3 ~@3 c3 ~", C: "~@4 e3 ~@5 e3 ~@5", D: "~@4 e3 ~@5 e3 ~@3 e3 ~",
  E: "~@4 g3 ~@5 g3 ~@5", F: "~@4 g3 ~@5 g3 ~@3 g3 ~", G: "~@4 a3 ~@5 a3 ~@5", H: "~@4 a3 ~@5 a3 ~@3 a3 ~",
  I: "~@2 e3@2 d3@2 e3@2 d3@2 c3@3 ~@3", J: "~ e3 d3 e3 d3 c3 b2 a2", K: "g2@2 e3@2 d3@2 e3@2 d3@2 c3@3 ~@3",
  L: "~ e3 d3 e3 f3 e3 d3 c3", M: "a2@3 e3@3 e3@2 e3@3 ~@5", N: "~@5 g2!3", O: "g2@3 d3@3 d3@2 d3@3 ~@3 c3@2",
  P: "b2@3 ~@13", Q: "~@6 b3@3 a3 g3 f3 e3@4", R: "e3 ~ e3 ~@5",
})).s("gm_trombone").gain(0.25)

// bass · tuba
const bass = note(`<
  A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 A@2 F
  G A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 ~
>`.pickRestart({
  A: "[a2@2 e3@2 a2 e3 ~ a2@2 e3@2 a2 e3@2 a2@2]/2", B: "[c2@2 g2@2 c2 g2 ~ c2@2 g2@2 c2 g2@2 c2@2]/2",
  C: "[f2@2 c3@2 f2 c3 ~ f2@2 c3@2 f2 c3@2 f2@2]/2", D: "[g2@2 d3@2 g2 d3 ~ g2@2 d3@2 g2 d3@2 g2@2]/2",
  E: "[g2@4 d3@4 g2@2 d3@2 ~@2 g2@4 ~@4 d3@3 c3 b2 a2 g2@4]/2", F: "c2@2 g2@2 c2 g2 ~ c2", G: "e2 ~ e2 ~@5",
})).s("gm_tuba").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A B ~@4 A B A B ~@4 A B A B ~@4 A B A B ~@4 A B A B ~@4 A B A B ~@4 A B A B ~@4 A ~ A B ~@2 A B ~@4 A B A B ~@4 A B A
  B ~@4 A B A B ~@4 A B ~
>`.pickRestart({
  A: "~@2 x ~@2 x ~@2", B: "~@2 x ~@2 x ~ x",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct(`<
  A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~
  C A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@3
>`.pickRestart({
  A: "~@2 x ~@2 x ~@2", B: "~@2 x ~@2 x ~ x", C: "x!2 ~@2",
})).gain(0.4)

// drums · splash
const splash = s("cr").struct("<[~ x ~ x]!55 ~ [~ x ~ x]!3 ~ [~ x ~ x]!32 ~>").gain(0.4)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  ~@2 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A C ~@2 A B ~@6 A B ~@6 A B ~@6 A B ~@5
>`.pickRestart({
  A: "~@2 x ~@2 x ~@2", B: "~@2 x ~@2 x ~ x", C: "x!2 ~@2",
})).gain(1.04)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@59 [x!2 ~@2] ~@33>").gain(1.04)

// drums · mt
const mt = s("mt").struct(`<
  ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A ~@3 A
// … 16 more lines

More by Jilli Hickman