Strudelify

Turn the Beat Around

Gloria Estefan

KeyD majorTempo136 bpm
0:00/0:00
// Turn the Beat Around — Estefan Gloria
// 136 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 95 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@2 A@2 B@2 C@2 D@2 E F G H I J I K L M N O P Q R O S T M N O P Q R O S T F G H I J I K L F G H I J I K L A@2 B@2 C@2
  D@2 E@4 ~@8 U@2 V@2 W@2 X@2 Y U@2 V@2 W@2 X@2 Y@4 ~
>`.pickRestart({
  A: "[~ f#2@2 ~ c#2@2 ~ e2@2 ~ f#2@4 ~@2 e2@4 ~@2 d2@5 ~ a1@2 ~ c#2@2 ~ d2@2 ~ d2@2 ~ a1@2 ~ c#2@2 ~ d2@2]/2",
  B: "[~ d2@2 ~ a1@2 ~ c#2@2 ~ d2@4 ~@2 e2@4 ~@2 f#2@5 ~ d2@2 ~ e2@2 f#2@2 ~@2 f#2@2 ~ c#2@2 ~ e2@2 ~ f#2@2]/2",
  C: "[~ f#2@3 c#2@2 ~ e2@2 ~ f#2@4 ~@2 e2@4 ~@2 d2@5 ~ a1@2 ~ c#2@2 ~ d2@2 ~ d2@2 ~ a1@3 c#2@2 ~ d2@2]/2",
  D: "[~ d2@2 ~ a1@2 ~ c#2@2 ~ d2@4 ~@2 e2@5 ~ f#2@5 ~ d2@3 e2@2 ~ f#2@2 ~ f#2@2 ~ c#2@3 e2@3 f#2@2]/2",
  E: "f#2@2 ~@2 c#2@2 ~ e2@2 f#2@2 ~ f#2@2 ~ c#2@2 ~ e2@2 ~ f#2@2 ~", F: "f#2@3 ~@2 f#2 c#2@2 ~ e2@2 ~@2 f#2@4 ~@7",
  G: "~ e2@3 ~ e2 ~ b1@3 c#2@3 e2@4 ~@7", H: "~ f#2@3 ~ f#2 ~ c#2@2 ~ e2@2 ~ f#2@4 ~@7",
  I: "~ e2@3 ~ e2 ~ b1@3 c#2@2 ~ e2@3 ~@8", J: "~ f#2@3 ~ f#2 ~ c#2@3 e2@2 ~ f#2@3 ~@8",
  K: "~ f#2@3 ~ f#2 ~ c#2@2 ~ e2@2 ~ f#2@3 ~@8", L: "~ e2@3 ~ e2 ~ b1@2 ~ c#2@2 ~ e2@4 ~@7",
  M: "~ f#2@2 c#2@2 ~@2 e2 ~@2 f#2@7 e2 ~ e2@5", N: "~ d2@2 ~ a1 ~@2 c#2 ~@2 d2@5 ~ b1 ~@2 c#2@3 d2@2",
  O: "~ d2@2 ~ a1@2 ~ c#2@2 ~ d2@7 e2 e2@4 ~@2, ~ d#2 ~@22", P: "~ f#2@2 ~ c#2@2 ~ e2@2 ~ f#2@5 ~ c#2@2 ~ e2@3 f#2@2",
  Q: "~ f#2@2 ~ c#2@2 ~ e2 ~@2 f#2@7 e2@2 e2@4 ~", R: "~ d2@3 a1 ~@2 c#2 ~@2 d2@5 ~ a1@2 ~ c#2@2 d2@3",
  S: "~ f#2@2 ~ c#2@2 ~ e2 ~@2 f#2@6 c#2@2 ~ e2@2 ~ f#2 ~", T: "~ d2@2 ~ d2@5 ~ d2@5 ~ e2@7 ~",
  U: "[~ g2@2 ~ d2@2 ~ f2@2 ~ g2@4 ~@2 f2@4 ~@2 d#2@5 ~ a#1@2 ~ d2@2 ~ d#2@2 ~ d#2@2 ~ a#1@2 ~ d2@2 ~ d#2@2]/2",
  V: "[~ d#2@2 ~ a#1@2 ~ d2@2 ~ d#2@4 ~@2 f2@4 ~@2 g2@5 ~ d#2@2 ~ f2@2 g2@2 ~@2 g2@2 ~ d2@2 ~ f2@2 ~ g2@2]/2",
  W: "[~ g2@3 d2@2 ~ f2@2 ~ g2@4 ~@2 f2@4 ~@2 d#2@5 ~ a#1@2 ~ d2@2 ~ d#2@2 ~ d#2@2 ~ a#1@3 d2@2 ~ d#2@2]/2",
  X: "[~ d#2@2 ~ a#1@2 ~ d2@2 ~ d#2@4 ~@2 f2@5 ~ g2@5 ~ d#2@3 f2@2 ~ g2@2 ~ g2@2 ~ d2@3 f2@3 g2@2]/2",
  Y: "g2@2 ~@2 d2@2 ~ f2@2 g2@2 ~ g2@2 ~ d2@2 ~ f2@2 ~ g2@2 ~",
})).s("gm_acoustic_bass").gain(0.25)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@2 A@2 B@2 C@2 D@2 E ~@3 F G H I J A@2 B@2 C@2 D@2 E A@2 B@2 C@2 D@2 E ~@3 F G H I J ~@3 F G H I J A@2 B@2 C@2 D@2
  E@4 ~@8 K@2 L@2 M@2 N@2 O K@2 L@2 M@2 N@2 O@4 ~
>`.pickRestart({
  A: "[~ [a4,c#5,f#5] ~@2 [a4,c#5,f#5]@4 ~@2 [g#4,b4,e5]@4 ~@2 [g#4,b4,e5]@4 ~@2 [f#4,a4,d5]@25 ~, ~@10 d#5 ~@37]/2", // F#m E D
  B: "[~ [f#4,a4,d5] ~@2 [f#4,a4,d5]@4 ~@2 [f#4,a4,d5]@4 ~@2 [g#4,b4,e5]@4 ~@2 [a4,c#5,f#5]@4 ~@2 [a4,c#5,f#5]@20]/2", // D E F#m
  C: "[~ [a4,c#5,f#5] ~@2 [a4,c#5,f#5]@5 ~ [g#4,b4,e5]@4 ~@2 [g#4,b4,e5]@4 ~@2 [f#4,a4,d5]@25 ~]/2", // F#m E D
  D: "[~ [f#4,a4,d5] ~@2 [f#4,a4,d5]@4 ~ [f#4,a4,d5]@4 ~@3 g#4@4 ~@2 [a4,c#5,f#5]@4 ~@2 [a4,c#5,f#5]@19 ~, ~@15 [b4,e5]@4 ~@29]/2", // D F#m E5
  E: "~ [f#4,a4,d5] ~@2 [f#4,a4,d5]@4 ~@2 [f#4,a4,d5]@4 ~@2 [g#4,b4,e5]@4 ~@4", // D E
  F: "g#4 ~@2 g#4 a4@2 a#4 a4 a#4@2 b4@2 ~ b4 ~ c5 c#5 ~ d5 d#5 ~ e5 f5@2, ~ g4 ~@4 c5 ~@5", G: "f#5", H: "~ g#5@23",
  I: "~ a5@23", J: "~ b5@23",
  K: "[~ [a#4,d5,g5] ~@2 [a#4,d5,g5]@4 ~@2 [a4,c5,f5]@4 ~@2 [a4,c5,f5]@4 ~@2 [g4,a#4,d#5]@25 ~, ~@10 e5 ~@37]/2", // Gm F D#
  L: "[~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@4 ~@2 [a4,c5,f5]@4 ~@2 [a#4,d5,g5]@4 ~@2 [a#4,d5,g5]@20]/2", // D# F Gm
  M: "[~ [a#4,d5,g5] ~@2 [a#4,d5,g5]@5 ~ [a4,c5,f5]@4 ~@2 [a4,c5,f5]@4 ~@2 [g4,a#4,d#5]@25 ~]/2", // Gm F D#
  N: "[~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~ [g4,a#4,d#5]@4 ~@3 a4@4 ~@2 [a#4,d5,g5]@4 ~@2 [a#4,d5,g5]@19 ~, ~@15 [c5,f5]@4 ~@29]/2", // D# Gm F5
  O: "~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@4 ~@2 [a4,c5,f5]@4 ~@4", // D# F
})).s("gm_string_ensemble_1").gain(0.32)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@3 A ~ B ~ C ~ D ~ E ~@8 F ~ G ~ H ~ D ~@2 F ~ G ~ H ~ D ~ E ~@8 I ~ J ~@5 F ~ G ~ H ~ D ~@4 K ~@8 L ~ M ~ N ~ O ~@2
  L ~ M ~ N ~ O ~@4 P
>`.pickRestart({
  A: "~@17 [a4,d5,f#5]@4 ~@3", B: "~@16 [a4,c#5,f#5] [a4,c#5,f#5]@4 ~@3",
  C: "~@17 [a4,f#5]@2 [a4,d5,f#5]@2 ~@3, ~@16 d5@3 ~@5", D: "~@16 [a4,c#5,f#5]@3 ~@5", E: "[a4,c#5,f#5] ~@7",
  F: "~@4 [a4,d5,f#5] ~", G: "~@16 a4 [a4,c#5] ~@6, ~@15 f#5@4 ~@5, ~@15 c#5@2 ~@7",
  H: "~@15 [a4,d5,f#5] [a4,d5,f#5]@2 ~@6", I: "~@5 [b4,g#5]@2 ~@5, ~@9 e5@4 ~@11",
  J: "~ [e4,g#4,b4]@3 ~@2 e5@2 ~@3 [b4,e5,g#5]@8 ~@5, ~@5 [g#4,b4]@2 ~@17, ~@6 d5 ~@17", K: "[a4,c#5,f#5] ~@11",
  L: "~@4 [a#4,d#5,g5] ~", M: "~@16 a#4 [a#4,d5] ~@6, ~@15 g5@4 ~@5, ~@15 d5@2 ~@7",
  N: "~@15 [a#4,d#5,g5] [a#4,d#5,g5]@2 ~@6", O: "~@16 [a#4,d5,g5]@3 ~@5", P: "[a#4,d5,g5] ~@11",
})).s("gm_brass_section").gain(0.49)

// chords · brass section · "BRASS 1"
const brass_section_2 = note(`<
  ~@3 A ~ B ~ C ~ D ~ E ~@8 A ~ B ~ C ~ D ~@2 A ~ B ~ C ~ D ~ E ~@16 A ~ B ~ C ~ D ~@11 F ~ G ~ H ~ I ~ J ~@2 G ~ H ~ I
  ~ J ~@5
>`.pickRestart({
  A: "~@15 [a4,d5,f#5]@4 ~@5", B: "~@16 [a4,c#5,f#5]!2 ~@6", C: "~@15 [a4,d5,f#5]@5 ~@4", D: "~@15 [a4,c#5,f#5]@4 ~@5",
  E: "[a4,c#5,f#5] ~@7", F: "[c4,c5]@8 ~@2 [e4,e5]@8 ~ g4@2 ~@3, ~@9 g5 ~@2", G: "~@15 [a#4,d#5,g5]@4 ~@5",
  H: "~@16 [a#4,d5,g5]!2 ~@6", I: "~@15 [a#4,d#5,g5]@5 ~@4", J: "~@15 [a#4,d5,g5]@4 ~@5",
})).s("gm_brass_section").gain(0.55)

// chords · brass section · "BRASS 1" · E
const brass_section_3 = note(`<
  ~@12
  [~@4 [b4,e5,g#5]@2 ~@3 [g#4,b4,e5]@2 ~@2 [e4,g#4,b4]@3 ~@8]
  ~@25
  [~@4 [b4,e5,g#5]@2 ~@3 [g#4,b4,e5]@2 ~@2 [e4,g#4,b4]@3 ~@8]
  ~@56
>`).s("gm_brass_section").gain(0.55)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@45 A B C D E F G H I ~@41>".pickRestart({
  A: "~ f#3@3 [a4,c#5,f#5] ~ [a4,c#5,f#5] f#3 [c#5,f#5] a4 [a4,c#5,f#5] ~ f#3 [a4,c#5,f#5] ~ [a4,c#5,f#5] f#3 [a4,c#5,f#5] ~ f#3 ~ [a4,c#5,f#5] f#3 [a4,c#5,f#5]", // F#m F#5 F#m
  B: "~ e3@3 [b4,e5,g#5]!2 ~ e3 [b4,e5,g#5] ~ [b4,e5,g#5] e3 ~ [b4,e5,g#5] ~ e3 [b4,e5,g#5] ~ e3 [b4,e5,g#5] ~@2 [b4,e5,g#5] ~, ~@7 e3", // E
  C: "f#3@3 ~ [a4,c#5,f#5]!2 ~ f#3 [a4,c#5,f#5] ~ [a4,c#5,f#5] ~ f#3 [a4,c#5,f#5] c#5 [a4,f#5] f#3 [a4,c#5,f#5] ~ f#3 [c#5,f#5] a4 f#3 [a4,c#5,f#5]", // F#m D F#m F#5 F#m
  D: "~ e3@3 [g#4,b4,e5]!2 ~ e3 [g#4,b4,e5] ~ [g#4,b4,e5] ~ e3 [g#4,b4,e5] g#4 [b4,e5,f5] e3 [g#4,b4,e5] ~ e3 [g#4,b4,e5] ~@2 [g#4,b4,e5], ~@11 e3", // E
  E: "~ f#3@3 [a4,c#5,f#5] ~ [a4,c#5,f#5] f#3 f#5 [a4,c#5] [a4,c#5,f#5] ~ [c#5,f#5] f#3@2 [a4,c#5,f#5] ~ f#3 [a4,c#5,f#5] ~ f#3 [a4,c#5,f#5] f#3 [a4,c#5,f#5]", // F#m A F#m F#5 F#m
  F: "~ e3@3 [b4,e5,f5,g#5] ~ [b4,e5,g#5] e3 [e5,g#5] b4 [b4,e5,g#5] ~ [b4,e5,g#5] e3 ~ [b4,e5,g#5] e3 [b4,g#5] e5 e3 [b4,d#5,e5,g#5] ~ e3 [b4,e5,g#5]", // E Emaj7 E
  G: "~ f#3@3 [c5,c#5,f#5,a5] [f#5,a5] c#5 f#3 [c#5,f#5,a5] ~ [c#5,f#5,a5] ~ [c#5,f#5,a5] f#3 ~ [c#5,f#5,a5] ~ f#3 [c#5,f#5,a5] f#3 ~ [c#5,f#5,a5] f#3 [c#5,f#5,a5]", // F#m
  H: "~ [d3,e3]@2 [b4,e5,g#5]!2 ~ [b4,e5,g#5] e3 ~ [b4,e5,g#5] ~ e3 [b4,e5,g#5] e3 ~ [b4,e5,g#5,b5] e3 ~ [b4,e5,g#5,b5] ~ e3 [b4,e5,g#5,b5] e3 [b4,b5]", // Dsus2 E B
  I: "[e5,g#5] ~@23", // E
})).s("gm_overdriven_guitar").gain(0.22)

// chords · tremolo strings · "TREMOLOSTR"
const tremolo_strings = note("<~ A@2 ~@69 B C@2 D E F@2 G@2 H I@2 J@2 K@2 L E M N O P Q>".pickRestart({
  A: "[~@11 c4 ~ b3 c4 ~ c#4 d4 d#4@2 e4 f4@2 f#4@4 ~@21]/2", B: "c4@8 ~ e4@7 ~@2 g4@5 ~",
  C: "[[a#4,d5,g5] ~@2 [a#4,d5,g5]@4 ~@3 [a4,c5,f5]@3 ~@3 [a4,c5,f5]@3 ~@3 [g4,a#4,d#5]@23 ~@3]/2", // Gm F D#
  D: "~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@4 ~@2 [a4,c5,f5]@3 ~@3 [a#4,d5,g5]@2", // D# F Gm
  E: "~@2 [a#4,d5,g5]@9 ~", // Gm
  F: "[~ [a#4,d5,g5] ~@2 [a#4,d5,g5]@3 ~@3 [a4,c5,f5]@3 ~@3 [a4,c5,f5]@3 ~@3 [g4,a#4,d#5]@25 ~]/2", // Gm F D#
  G: "[~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@4 ~@2 [a4,c5,f5]@3 ~@3 [a#4,d5,g5]@4 ~@2 [a#4,d5,g5]@16 ~@4]/2", // D# F Gm
  H: "~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@3 ~@2 [a4,c5,f5]@6 ~@3", // D# F
  I: "[[a#4,d5] ~@3 [a#4,d5,g5]@3 ~@3 [a4,c5,f5]@3 ~@3 [a4,c5,f5]@3 ~@8 d#5@19 ~@2, g5 ~@10 a#4@12 ~, ~@23 g4@24 ~]/2", // A# Gm F
  J: "[~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@3 ~@3 [g4,a#4,d#5]@4 ~@2 [a4,c5,f5]@3 ~@3 [d5,e5,g5]@4 ~@2 [a#4,d5,g5]@19 ~]/2", // D# F Em7 Gm
  K: "[~ [a#4,d5,g5] ~@2 [a#4,d5,g5]@4 ~@2 [a4,c5,f5]@4 ~@2 [a4,c5,f5]@3 ~@3 [g4,d#5]@25 ~, ~@21 a#4@25 ~@2]/2", // Gm F Cm
  L: "~ [g4,a#4,d#5] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@3 ~@3 [a4,c5,f5]@4 ~@2 [a#4,d5,g5]@2", // D# F Gm
  M: "d#5 [g4,a#4] ~@2 [g4,a#4,d#5]@4 ~@2 [g4,a#4,d#5]@4 ~@2 [a4,c5,f5]@7 ~", // Gm D# F
  N: "~ [a#4,d5] ~@2 [a#4,d5,g5]@4 ~@2 [a#4,d5,g5]@3 ~@3 [c5,f5,a5]@6 ~@2, g5 ~@11", // A# Gm F
  O: "~ [g5,a#5]@2 ~ [d#5,g5,a#5]@4 ~@2 [d#5,g5,a#5]@4 ~@2 [f5,a5,c6]@7 ~, d#5 ~@11", // Gm D# F
  P: "~ d6@2 ~ [g5,a#5,d6]@3 ~@3 [g5,a#5,d6]@3 ~@3 d#6@5 ~@3, a#5 ~@11, ~ g5 ~@22", Q: "[a#5,d6,g6] ~@3",
})).s("gm_tremolo_strings").gain(0.56)

// chords · pad poly · "POLYSYNTH"
const pad_poly = note("<~@72 A@4 B@4 C D E@2 F G@3 H I J K L M N>".pickRestart({
  A: "[~@24 [a#3,d4,g4] ~@3 [a#3,d4,g4]@4 ~@2 [f2,a3,c4,f4]@5 ~ [f2,a3,c4,f4]@4 ~@2 [d#2,g3,a#3,d#4]@28 ~@2 [d#2,g3,a#3,d#4]@3 ~@3 [d#2,g3,a#3,d#4]@4 ~@2 [f2,a3,c4,f4]@4 ~@2 [g2,a#3,d4,g4]@2, ~ [c2,c3]@25 ~@70, ~@24 g2@2 ~ g2@4 ~@65]/4", // Gm F D# F Gm C
  B: "[~@4 [g2,a#3,d4,g4]@22 ~@2 [g2,a#3,d4,g4]@4 ~@2 [f2,a3,c4,f4]@4 ~@2 [f2,a3,c4,f4]@4 ~@2 [d#2,g3,a#3,d#4]@28 ~@2 [d#2,g3,a#3,d#4]@3 ~@3 [d#2,g3,a#3,d#4]@4 ~@2 [f2,a3,c4,f4]@4 ~@2 [g2,a#3,d4,g4]@2]/4", // Gm F D# F Gm
  C: "~ [g2,a#3,d4,g4]@5", // Gm
  D: "[d#2,g3,d#4] ~@2 d#2 d#2@3 ~@2 [d#2,g3,d#4]@4 ~@2 [f2,c4] [f2,a3,c4,f4]@6 ~@2, a#3@3 a#3@6 a#3@11 ~@4, ~ [g3,d#4] ~@6", // D# F5 F Cm
  E: "[[a#3,d4,g4] ~@2 [g2,a#3,d4,g4]@4 ~@3 [f2,a3,c4,f4]@4 ~@3 f2@4 ~@2 [d#2,g3]@25, g2@2 ~@8 e4@2 ~@4 [a3,c4,f4]@4 ~@2 [a#3,d#4]@25 ~, ~@10 e2 ~@37]/2", // Gm F D# F D#5
  F: "~ [d#2,g3,a#3,d#4] ~@2 [d#2,g3,a#3,d#4]@3 ~@2 [d#2,g3,a#3,d#4]@4 ~@3 [f2,a3,c4,f4]@3 ~@3 [g2,a#3,d4,g4]@2", // D# F Gm
  G: "[~@2 [g2,a#3,d4,g4]@11 ~ [g2,a#3,d4,g4]@2 ~ [f2,a3,c4,f4]@2 ~ [f2,a3,c4,f4]@2 ~ [d#2,g3,a#3,d#4]@13, ~@20 e4 ~@15]/3", // Gm F D#
  H: "~ [d#2,g3,a#3,d#4] ~@2 [d#2,g3,a#3,d#4]@3 ~@3 [d#2,g3,a#3,d#4]@4 ~@2 [f2,c4,f4]@4 ~@2 [g2,a#3,d4,g4]@2", // D# F5 Gm
  I: "~ [g2,a#3,d4,g4]@4 ~", // Gm
  J: "~ [d#2,g3,a#3,d#4] ~@2 [d#2,g3,a#3,d#4]@4 ~@2 [d#2,g3,a#3,d#4]@4 ~@2 [f2,a3,c4,f4]@7 ~", // D# F
  K: "~ [g2,g4]@2 ~ [g2,a#3,d4,g4]@4 ~@2 [g2,a#3,d4,g4]@4 ~@2 [a2,c4,f4,a4]@8, ~ [a#3,d4] ~@22", // G Gm F A#
  L: "~ [a#2,d#4,g4]@2 ~ [a#2,d#4,g4,a#4]@4 ~@2 [a#2,d#4,g4,a#4]@5 ~ [c3,f4,a4,c5]@7 ~, ~ a#4 ~@22", // D# F
  M: "~ d#3@2 ~ [d#3,g4,a#4,d#5]@4 ~@2 [d#3,g4,a#4,d#5]@4 ~@2 [f3,a4,c5,f5]@7 ~, [g4,a#4,d#5] ~@11", // D# F D#
  N: "~ g3@4 ~@19, [a#3,d4,g4] ~@5", // Gm
})).s("gm_pad_poly").gain(0.48)

// other · piccolo
const piccolo = note("<~@11 A@2 B@2 C@2 D@2 E@2 F G H@2 I J K E@2 F G H@2 I J K L M@2 N ~@54>".pickRestart({
  A: "[~ f#5@2 e5@3 f#5@3 e5@3 f#5 ~@2 a5@5 ~@2 g#5@5 ~ e5@4 ~ e5@15]/2",
  B: "[~ f#5@2 ~ e5 ~@2 f#5@2 ~ e5@3 f#5@2 ~ a5@4 ~@2 b5@5 ~ g#5@12 a5@5 ~ b5@2]/2",
  C: "[~ a5@3 f#5 ~@2 f#5@2 e5@3 ~ f#5@3 a5@4 ~@2 g#5@5 ~ e5@5 ~ e5@5 ~ d5@2 ~ e5@5]/2",
  D: "[~ f#5@3 e5 ~@2 f#5@2 e5@3 ~ f#5@2 ~ a5@5 ~ b5@5 ~ g#5@20]/2",
  E: "[~ a5@2 ~ a5@4 ~@2 g#5@3 ~@3 g#5@3 ~@3 f#5@26]/2", F: "~ d5 ~@2 d5@4 ~@2 d5@6 e5@4 ~@2 f#5@2", G: "~@5 f#5@19",
  H: "[~ a5@2 ~ a5@5 ~ g#5@4 ~@2 g#5@5 ~ d6@25 ~]/2", I: "~ f#5 ~@2 f#5@4 ~@2 f#5@5 ~ g#5@5 ~ a5@2", J: "~@2 a5@9 ~",
  K: "~ d5 ~@2 d5@3 ~@3 d5@5 ~ e5@8", L: "~@10 e5@2 ~ f#5@2 f5 ~@3 [g4,a4] [e4,f4] d4 ~@2",
  M: "[~@6 g#5@11 a5@5 b5@4 ~@22]/2", N: "~ a5@3 ~ e6@2 ~@3 e6@3 b5!2 [a5,b5] a5!3 [f#5,g5] [e5,f#5] d5 [b4,c5] a4",
})).s("gm_piccolo").gain(0.56)

// other · piccolo · soft notes · Dsus2 Gsus2
const piccolo_soft = note(`<
  ~@23
  [~@22 c#6 ~]
  ~@8
  [~@22 c#6 ~]
  ~@4
  [~@9 c#5 ~@4 e5 [d5,e5] c#5 c5 b4 ~ a4 b3 [g3,a3] ~]
  ~@57
>`).s("gm_piccolo").gain(0.32)

// drums · kick
const kick = s("bd").struct("<[~@23 x] [~@5 x ~@6 x ~@5 x ~@5] [x ~@12 x ~@10] [~ x ~@11 x ~@10]!91 [~ x ~@22]>")
  .gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@2 [~@7 x ~@11 x ~@4]!92 ~>").gain(0.64)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@2
  [~@4 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x ~]
  [~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x ~]!91
  [~ x ~@22]
>`).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@4 ~ A@3 ~ A@4 ~ A@3 ~ A@3 ~ A@3 ~ A@4 ~ A@3 ~ A@4 ~ A@3 ~ A@6 ~ A@3 ~ A@4 ~
  A@3 ~ A@4 ~
>`.pickRestart({
  A: "~@23 x",
})).gain(0.64)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct(`<
  ~@5 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@4 A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@4 A ~@3 A ~@6 A ~@3 A ~@4 A ~@3
  A ~@5
>`.pickRestart({
  A: "~@23 x",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@67
  [~ x ~@22]
  [~ x!2 ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@4 x ~@2]
  ~@2
  [~ x ~@22]
  [~ x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2]
  ~@22
>`).gain(0.64)
// … 46 more lines

More by Gloria Estefan