Strudelify

Calypso and Rum

CHRISTIE,TONY

KeyF♯ majorTempo92 bpm
0:00/0:00
// Calypso and Rum — CHRISTIE,TONY
// 92 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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 · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  A B C D E@2 F G H E F I H J B C K L M B C K L E@3 G@2 E@2 N F O P@2 Q D E@2 R S R T U@5 P@2 Q D E V@4 W X@2 Y Z AA X@2
  Y Z AA X@2 Y Z AA X@2 Y Z AA AB
>`.pickRestart({
  A: "~@8 c#2@3 g#1 c#2 g#1 c#2@2", B: "f#2@3 c#2 f#2 c#2 f#2@2 c#2@3 g#1 c#2 g#1 c#2@2",
  C: "f#2@3 c#2 f#2 c#2 f#2@2 b2@3 f#2 b2 f#2 b2@2", D: "f#2@3 f#2!2 f2 d#2@2 c#2@3 g#1 c#2 g#1 c#2@2",
  E: "f#2@3 f#2 c#2@2 f#1@2 f#2@3 f#2 c#2@2 f#1@2", F: "f#2@3 f#2 c#2@2 f#1@2 c#2@3 c#2 g#1@2 g#1@2",
  G: "c#2@3 c#2 g#1@2 g#1@2 c#2@3 c#2 g#1@2 g#1@2", H: "c#2@3 c#2 g#1@2 g#1@2 f#2@3 f#2 c#2@2 f#1@2",
  I: "b2@3 b2 f#2@2 b2@2 f#2@3 f#2 c#2@2 f#1@2", J: "f#2@2 ~@6 c#2@3 g#1 c#2 g#1 c#2@2",
  K: "f#2@3 c#2 f#2 c#2 f#2@2 f#2@3 f#2!2 f2 d#2@2", L: "c#2@3 g#1 c#2 g#1 c#2@2 f#2@3 f#2 c#2@2 f#1@2",
  M: "f#2@3 f#2 c#2@2 f#1@2 c#2@3 g#1 c#2 g#1 c#2@2", N: "c#2@3 c#2 g#1@2 g#1@2 b2@3 b2 f#2@2 b2@2",
  O: "f#2@3 f#2 c#2@2 f#1@2 f#2@2 ~@6", P: "c#2@3 g#1 c#2 g#1 c#2@2 f#2@3 c#2 f#2 c#2 f#2@2",
  Q: "b2@3 f#2 b2 f#2 b2@2 f#2@3 c#2 f#2 c#2 f#2@2", R: "b2@3 d#2!2 ~ f#2@2 b2@3 d#2!2 ~ f#2@2",
  S: "b2@3 d#2!2 ~ f#2@2 f#2@3 c#2!2 ~ f#2@2", T: "c#2@3 g#1 c#2!2 b1 g#1 c#2@3 g#1 c#2 g#1 c#2@2",
  U: "[c#2@3 g#1 c#2 g#1 b1 g#1 c#2@3 ~@4 a#0@2 ~ a#0@2 ~@4 a#0@2 ~@5 a#0@2 ~ a#0@2 ~@4 a#0@2 ~@5 a#0@2 ~ a#0 ~@5 a#0@2 ~@5 a#0@2 ~ a#0 ~@5 a#0@3 ~@5]/5",
  V: "[~@2 a#0@2 ~@4 a#0@2 ~@5 a#0@2 ~ a#0@2 ~@4 a#0@2 ~@5 a#0@2 ~ a#0 ~@5 a#0@2 ~@5 a#0@2 ~ a#0 ~@5 a#0@3 ~@4 a#0]/4",
  W: "~@2 a#0 ~@5 a#0@2 ~@4 g1@2", X: "d2@3 a1 d2 a1 d2@2 g2@3 d2 g2 d2 g2@2",
  Y: "c3@3 g2 c3 g2 c3@2 g2@3 d2 g2 d2 g2@2", Z: "g2@3 g2!2 f#2 e2@2 d2@3 a1 d2 a1 d2@2",
  AA: "g2@3 g2 d2@2 g1@2 g2@3 g2 d2@2 g1@2", AB: "g1@3 ~",
})).s("gm_synth_bass_2").gain(0.35)

// other · kalimba
const kalimba = note(`<
  A B C D E F G H I F G J I K B C L M N B C L M O P Q R S T Q U V W X Y Z D AA@2 AB Z AB AC AD ~@4 X Y Z D E ~@5 AE AF
  AG AH AI AE AF AG AH AI AE AF AG AH AI AE AF AG AH AI AJ
>`.pickRestart({
  A: "~@8 c#3 ~@2 f2 c#3!2 f2 c#3", B: "f#2 ~@2 c#3 ~ c#3 f#2 ~ c#3 ~@2 f2 c#3 f2 c#3!2",
  C: "f#2!2 ~ c#3 ~ c#3 f#2 ~ b2!2 ~ f#2 b2 f#2 b2!2", D: "f#2 ~@2 c#3 ~ c#3 f#2 ~ c#3 ~@2 g#2 c#3 g#2 c#3!2",
  E: "f#2 ~@2 c#3 ~ c#3 f#2 ~ f#2!2 ~ c#3 ~ c#3 f#2 ~", F: "f#2 ~@2 c#3 ~@2 c#2 ~ f#2 ~@2 c#3 ~ f#2 c#3 d#3",
  G: "f#2 ~@2 c#3 ~@2 c#2 ~ g#2 ~@2 c#3 ~ g#2 c#3 d#3", H: "c#3 ~@2 g#2 ~@2 g#2 ~ c#3 ~@2 g#2 c#3 g#2 c#3 d#3",
  I: "c#3 ~@2 g#2 ~@2 g#2 ~ c#3 ~@2 f#2 c#3 f#2 c#3 d#3", J: "b2 ~@2 f#2 ~@2 f#2 ~ c#3 ~@2 f#2 c#3 f#2 c#3 d#3",
  K: "f#2 ~@7 c#3 ~@2 f2 c#3!2 f2 c#3", L: "f#2 ~@2 c#3 ~@2 c#3 ~ f#2 ~@2 c#3 ~ c#3 f#2 ~",
  M: "c#3 ~@2 g#2 c#3 g#2 c#3!2 f#2 ~@2 c#3 ~ c#3 f#2 ~", N: "f#2!2 ~ c#3 ~ c#3 f#2 ~ c#3 ~@2 f2 c#3!2 f2 c#3",
  O: "f#2!2 ~ c#3 ~ c#3 f#2 ~ f#2 ~@2 c#3 ~ c#3 f#2 ~", P: "f#2!2 ~ c#3 ~ c#3 f#2 ~ f#2 ~@2 c#3 ~@2 c#2 ~",
  Q: "f#2 ~@2 c#3 ~ f#2 c#3 d#3 f#2 ~@2 c#3 ~@2 c#2 ~", R: "g#2 ~@2 c#3 ~ g#2 c#3 d#3 c#3 ~@2 g#2 ~@2 g#2 ~",
  S: "c#3 ~@2 g#2 c#3 g#2 c#3 d#3 c#3 ~@2 g#2 ~@2 g#2 ~", T: "c#3 ~@2 f#2 c#3 f#2 c#3 d#3 f#2 ~@2 c#3 ~@2 c#2 ~",
  U: "g#2 ~@2 c#3 ~ g#2 c#3 d#3 b2 ~@2 f#2 ~@2 f#2 ~", V: "c#3 ~@2 f#2 c#3 f#2 c#3 d#3 c#3 ~@2 g#2 ~@2 g#2 ~",
  W: "c#3 ~@2 f#2 c#3 f#2 c#3 d#3 f#2 ~@7", X: "c#3 ~@2 f2 c#3!2 f2 c#3 f#2 ~@2 c#3 ~ c#3 f#2 ~",
  Y: "c#3 ~@2 f2 c#3 f2 c#3!2 f#2!2 ~ c#3 ~ c#3 f#2 ~", Z: "b2!2 ~ f#2 b2 f#2 b2!2 f#2 ~@2 c#3 ~@2 c#3 ~",
  AA: "[f#2,a#4,c#5] [a#4,c#5] ~ [c#3,a#4,c#5] ~ c#3 [f#2,f#4,a#4] ~ [f#2,a#4,c#5] [a#4,c#5] ~ [c#3,a#4,c#5] ~ c#3 [f#2,f#4,a#4] ~", // F# A#m F# A#m F#
  AB: "b2!2 ~ f#2 b2 f#2 b2!3 ~@2 f#2 ~@2 b2 ~", AC: "c#3 ~@2 g#2 c#3 g#2 c#3!3 ~@2 g#2 c#3 g#2 c#3 g#2",
  AD: "c#3 ~@2 g#2 c#3 g#2 c#3!3 ~@7", AE: "d3 ~@2 f#2 d3!2 f#2 d3 g2 ~@2 d3 ~ d3 g2 ~",
  AF: "d3 ~@2 f#2 d3 f#2 d3!2 g2!2 ~ d3 ~ d3 g2 ~", AG: "c3!2 ~ g2 c3 g2 c3!2 g2 ~@2 d3 ~@2 d3 ~",
  AH: "g2 ~@2 d3 ~ d3 g2 ~ d3 ~@2 a2 d3 a2 d3!2", AI: "g2 ~@2 d3 ~ d3 g2 ~ g2!2 ~ d3 ~ d3 g2 ~", AJ: "g2 ~@15",
})).s("gm_kalimba").gain(0.27).pan(0.4)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  A B C B D E@2 F@2 G@2 H I A B C J K@2 B C J L@7 J M B N I@2 O@2 P@2 Q@2 R S@2 ~@4 I@2 O@2 T ~@5 U@2 V@2 W U@2 V@2 W
  U@2 V@2 W U@2 V@2 X@2
>`.pickRestart({
  A: "~ [g#3,c#4,f4]", B: "[a#3,c#4,f#4] [g#3,c#4,f4]", C: "[a#3,c#4,f#4] [b3,d#4,f#4]", D: "[a#3,c#4,f#4]@13 ~@3",
  E: "c#4/2", F: "[c#4@31 ~]/2", G: "[[a#3,c#4,f#4] [g#3,c#4,f4] [a#3,c#4,f#4]@4 [g#3,c#4,f4]@2]/2",
  H: "[b3,d#4,f#4] [a#3,c#4,f#4]", I: "[g#3,c#4,f4] [a#3,c#4,f#4]", J: "[a#3,c#4,f#4]",
  K: "[[g#3,c#4,f4]@8 [a#3,c#4,f#4]@15 ~ [g#3,c#4,f4]@8]/2", // C# F# C#
  L: "[[g#3,c#4,f4]@8 [a#3,c#4,f#4]@25 ~@7 c#4@32 c#4@31 ~ [a#3,c#4,f#4]@4 [g#3,c#4,f4]@4]/7", // C# F# C#
  M: "[g#3,c#4,f4] [b3,d#4,f#4]", N: "[a#3,c#4,f#4]@9 ~@7", O: "[[b3,d#4,f#4] [a#3,c#4,f#4]@2 [g#3,c#4,f4]]/2",
  P: "[[a#3,c#4,f#4]@25 ~@7]/2", Q: "[[b3,d#4,f#4]@3 [a#3,c#4,f#4]]/2", R: "[b3,d#4,f#4]", S: "[[g#3,c#4,f4]@25 ~@7]/2",
  T: "[a#3,c#4,f#4]@15 ~", U: "[a3,d4,f#4] [b3,d4,g4]", V: "[[c4,e4,g4] [b3,d4,g4]@2 [a3,d4,f#4]]/2", W: "[b3,d4,g4]",
  X: "[[b3,d4,g4]@7 ~]/2", // G
})).s("gm_synth_strings_1").gain(0.23).pan(0.6)

// chords · trumpet
const trumpet = note(`<
  ~@13 A B C D E F G C H I ~@10 J K L@2 M ~@10 J K L@2 N J K O@2 P@2 Q R@2 S T Q R@2 S T Q R@2 S T Q R@2 U ~
>`.pickRestart({
  A: "~@8 [f4,g#4] ~ [f4,g#4] [e4,g4] [f4,g#4] [f#4,a#4] [g#4,b4] [f#4,a#4]", // Fm Em Fm F# G#m F#
  B: "~@2 [a#4,c#5]!2 ~ [g#4,b4] [f#4,a#4] ~ [f4,g#4] ~ [f4,g#4] [e4,g4] [f4,g#4] [f#4,a#4] [g#4,b4] [f#4,a#4]", // A#m G#m F# Fm Em Fm F# G#m …
  C: "~@3 [a#4,c#5] ~ [a#4,c#5] [c#4,f#4] ~ [d#5,f#5]@2 ~ [d#5,f#5]@2 [c#5,f5] d#5@2, ~@14 b4 ~", // A#m F#5 D#m C#
  D: "[a#4,c#5]@3 [c#5,d#5] c#5 b4 a#4 [a#4,c#5]@7 ~@2", // A#m C#sus2 A#m
  E: "[c#4,g#4]@3 [c#4,a#4]@3 [c#4,g#4]@2 [a#3,f#4]@4 ~ c#4 d#4 f4", // C#5 F# C#5 D#m
  F: "f#4 g#4 a#4 b4 c#5@4 [f4,g#4] ~ [f4,g#4] ~ [f4,g#4] [f#4,a#4] [g#4,b4] [f#4,a#4]", // Fm F# G#m F#
  G: "~@2 [a#4,c#5]!2 ~ [g#4,b4] [f#4,a#4] ~ [f4,g#4] ~ [f4,g#4] ~ [f4,g#4] [f#4,a#4] [g#4,b4] [f#4,a#4]", // A#m G#m F# Fm F# G#m F#
  H: "[a#4,c#5]@3 [c#5,d#5] c#5 b4 a#4 [a#4,c#5]@3 [a#4,c#5]!2 ~ [g#4,b4] [f#4,a#4] ~", // A#m C#sus2 A#m G#m F#
  I: "[c#4,g#4]@3 [c#4,a#4]@3 [c#4,g#4]@2 [a#3,f#4]@7 ~", // C#5 F# C#5 D#m
  J: "[f4,g#4] ~ [f4,g#4] ~ [f4,g#4] [f#4,a#4] [g#4,b4] [f#4,a#4] ~@2 [a#4,c#5]!2 ~ [g#4,b4] [f#4,a#4] ~", // Fm F# G#m F# A#m G#m F#
  K: "[f4,g#4] ~ [f4,g#4] ~ [f4,g#4] [f#4,a#4] [g#4,b4] [f#4,a#4] ~@3 [a#4,c#5] ~ [a#4,c#5] [c#4,f#4] ~", // Fm F# G#m F# A#m F#5
  L: "[[d#5,f#5]@2 ~ [d#5,f#5]@2 [c#5,f5] d#5@2 [a#4,c#5]@3 [c#5,d#5] c#5 b4 a#4 [a#4,c#5]@7 ~@2 [c#4,g#4]@3 [c#4,a#4]@3 [c#4,g#4]@2, ~@6 b4 ~@25]/2", // D#m C# A#m C#sus2 A#m C#5 F# C#5
  M: "[a#3,f#4] ~", N: "[a#3,f#4]@4 ~ c#4 d#4 f4 f#4 g#4 a#4 b4 c#5@4",
  O: "[[d#5,f#5]@2 ~ [d#5,f#5]@2 [c#5,f5] d#5@2 [a#4,c#5]@3 [c#5,d#5] c#5 b4 a#4 [a#4,c#5]@3 [a#4,c#5]!2 ~ [g#4,b4] [f#4,a#4] ~ [c#4,g#4]@3 [c#4,a#4]@3 [c#4,g#4]@2, ~@6 b4 ~@25]/2", // D#m C# A#m C#sus2 A#m G#m F# C#5 …
  P: "[[a#3,f#4]@7 ~ [d4,g4] [e4,a4] [g4,b4] [a4,c5] [b4,d5] [c5,e5] [c#5,f5] [d5,f#5]@5 [f#4,a4] [g4,b4] [a4,c5] [g4,b4] ~@2 [b4,d5]!2 ~ [a4,c5] [g4,b4] ~]/2", // D#m G5 A5 G Am Bm C C# …
  Q: "[f#4,a4] ~ [f#4,a4] ~ [f#4,a4] [g4,b4] [a4,c5] [g4,b4] ~@3 [b4,d5] ~ [b4,d5] [d4,g4] ~", // F#m G Am G Bm G5
  R: "[[e5,g5]@2 ~ [e5,g5]@2 [d5,f#5] e5@2 [b4,d5]@3 [d5,e5] d5 c5 b4 [b4,d5]@3 [b4,d5]!2 ~ [a4,c5] [g4,b4] ~ [d4,a4]@3 [d4,b4]@3 [d4,a4]@2, ~@6 c5 ~@25]/2", // Em D Bm Dsus2 Bm Am G D5 …
  S: "~@5 d4 e4 f#4 g4 a4 b4 c5 d5@4, [b3,g4]@7 ~@9", // Em
  T: "[f#4,a4] ~ [f#4,a4] ~ [f#4,a4] [g4,b4] [a4,c5] [g4,b4] ~@2 [b4,d5]!2 ~ [a4,c5] [g4,b4] ~", U: "[b3,g4]@7 ~@9",
})).s("gm_trumpet").gain(0.35).pan(0.7)

// chords · celesta · A#m G#m F# Fm G#m F# A#m G#m …
const celesta = note(`<
  [~@2 [a#4,c#5]!2 ~ [g#4,b4] [f#4,a#4] ~ [f4,g#4]!3 g#4 ~@2 [g#4,b4]@2]
  [[f#4,a#4]@2 [a#4,c#5] [a#4,c#5]@2 [g#4,b4] [f#4,a#4]@2 [f4,g#4]!3 g#4 ~@2 [g#4,b4]@2]
  [[f#4,a#4]@5 ~@3 [d#5,f#5]@2 [d#5,f#5] [d#5,f#5]@2 [c#5,f5] [b4,d#5]@2]
  [[a#4,c#5]!4 ~ [g#4,b4] [f#4,a#4]@2 [f4,g#4]!5 f4 [c#4,f#4]@2]
  [[c#4,f#4] ~@3]
  ~@74
>`).s("gm_celesta").gain(0.49).pan(0.4)

// chords · celesta · soft notes · Fm
const celesta_soft = note("<[~@11 f4 [f4,g#4] g#4 ~@2]!2 ~@77>").s("gm_celesta").gain(0.31).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A B@4 C@8 D B@2 E C F B@2 E C G F B@7 H C@3 B@3 C@3 I@2 C@7 B@2 J@4 H C@3 B@2 C@3 B@2 C@3 B@2 C@3 B@2 K
>`.pickRestart({
  A: "~@8 x ~@2 x ~@2 x ~", B: "x ~@2 x ~@4 x ~@2 x ~@2 x ~", C: "x ~@2 x ~@2 x ~ x ~@2 x ~@4",
  D: "x ~@3 x ~@3 x ~@2 x ~@2 x ~", E: "x ~@2 x ~@4 x ~@2 x ~@4", F: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
  G: "x ~@3 x ~@3 x ~@2 x ~@4", H: "x ~@2 x ~@4 x ~@3 x ~@3", I: "x ~@2 x ~@2 x ~ x ~@3 x ~@3", J: "x!2", K: "x",
})).gain(0.55)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A@4 B@7 ~@4 B ~@4 B ~ B ~ A@7 ~@4 A ~ A ~@2 B ~@2 B@4 ~@3 A ~@9 A ~@4 A ~@4 A ~@4 A ~@2
>`.pickRestart({
  A: "~ x ~@14", B: "~@9 x ~@6",
})).gain(0.18)

// drums · clap
const clap = s("cp").struct("<~@53 [~ x ~ x]!4 ~@22>").gain(0.49)

// drums · hihat
const hihat = s("hh").struct(`<
  [~@8 x ~ x!2 ~@2 x ~]
  [x ~ x!2 ~@2 x ~ x ~ x!2 ~@2 x ~]!12
  [~@2 x!2 ~@4 x ~ x!2 ~@2 x ~]
  [x ~ x!2 ~@2 x ~ x ~ x!2 ~@2 x ~]!18
  [x ~ x!2 ~@2 x ~@3 x!2 ~@4]
  [x ~ x!2 ~@2 x ~ x ~ x!2 ~@2 x ~]!6
  [x!16]!39
  ~
>`).gain(0.37)

// drums · low tom
const low_tom = s("lt").struct("<~@4 [~@7 x] ~@8 x ~@18 [~ x] ~@46>").gain(0.49)

// drums · mid tom
const mid_tom = s("mt").struct("<~@4 A ~@8 B ~@3 C ~@14 D ~@19 E ~@9 E ~@4 F ~@11>".pickRestart({
  A: "~@9 x ~ x!2 ~@3", B: "~@2 x!2 ~@4", C: "~@10 x!2 ~ x!2 ~", D: "~@6 x!2", E: "~@3 x ~ x!2 ~@9",
  F: "~@3 x ~ x!2 ~@2 x!2 ~@5",
})).gain(0.49)

// drums · open hat
const open_hat = s("oh").struct("<~@78 x>").gain(0.37)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A B C B C D E D E D E D E F B C G D E B C G D H@2 C B C B C B C I G D E B C@2 D@9 G D E B C G@4 C G D E B C G D E B C
  G D E B C G D E B C ~
>`.pickRestart({
  A: "~@8 x!6 ~ x", B: "x ~ x!14", C: "x!14 ~ x", D: "x!16", E: "x!6 ~ x!2 ~ x!6", F: "~@8 x ~ x!6", G: "x ~ x!7 ~ x!6",
  H: "x!6 ~ x!9", I: "x ~ x!6 ~@8",
})).gain(0.24)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  A B A B A ~ C ~ C ~ C ~ C D B A E ~ C B A E ~ F@2 A B A B A B A B E ~ C B A@2 ~@9 E ~ C B A E@4 A E ~ C B A E ~ C B A
  E ~ C B A E ~ C B A ~
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@14", C: "~@6 x ~@2 x ~@6", D: "~@9 x ~@6", E: "~ x ~@7 x ~@6", F: "~@3 x ~@4",
})).gain(0.12)

// drums · cowbell
const cowbell = s("cb").struct("<~@44 [~ x ~ x ~ x ~ x]!4 ~@31>").gain(0.43)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct(`<
  ~@44
  [~@7 x ~@5 x ~@2]
  [~@9 x!2 ~@4 x]
  [~@11 x ~ x ~@2]
  [~@5 x ~@3 x ~ x ~ x ~@2]
  ~@31
>`).gain(1.95)

// drums · agogo bells
const agogo_bells_2 = s("agogo:4").struct(`<
  ~@44
// … 11 more lines

More by CHRISTIE,TONY