Strudelify

Fantastic Voyage

Coolio

KeyE minorTempo116 bpm
0:00/0:00
// Fantastic Voyage — Coolio
// 116 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 200 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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 · epiano1 · "PIANO"
const epiano1 = note(`<
  ~@21 A@2 B C A@2 B C A@2 B D A@2 B E F G H@2 F G H I ~@8 A@2 B C A@2 B C A@2 B C A@2 B E F G H@2 F G H J F G H@2 F G H
  I ~@54 F G H@2 F G H J F G H@2 F G H I ~@28 F G H@2 F G H J F G H@2 F G H I K
>`.pickRestart({
  A: "[[e4,g4,b4]@2 ~@4 [b3,d4,f#4]@16 ~@2 [b3,e4,g4]@3 ~ [b3,d4,f#4]@3 ~]/2", // Em Bm Em Bm
  B: "[a3,c4,e4]@2 [a3,c4,e4] ~@3 [e4,g4,b4]@8 ~@2", // Am Em
  C: "[e4,g4,b4]@3 [f#4,a4] ~@4 [e4,g4,b4,d5] ~ [g4,b4,d5] ~ [e4,g4,b4]@2 ~@2, ~@5 e4 ~@2", // Em F#m Em7 G Em
  D: "[e4,g4,b4]@3 [f#4,a4] ~@12", E: "[e4,g4,b4]@3 ~ [d4,f#4,a4]@3 ~ [c4,e4,g4]@3 ~ [d4,f#4,a4]@3 ~",
  F: "[e4,g4,c5]@3 ~ [e4,g4,c5] ~@3 [e4,g4,d5]@3 ~ [c4,e4,g4,c5]@2 ~@2, c4@4 ~@3 c4@4 ~@5", // C Em7 C
  G: "[d4,a4,d5]@4 [f#4,a4,d5] ~@3 [f#4,a4,e5]@3 ~ [d4,f#4,a4,d5]@2 ~@2, f#4@3 ~@4 d4@4 ~@5", // D5 D F#m7 D
  H: "[e4,g4,b4,e5]@3 e4 [g4,b4,e5] ~ [b3,e4,g4,b4]@8 ~@2", I: "[e4,g4,b4,e5] ~ [e4,f#4,a4,d5]@14",
  J: "[e4,g4,b4,e5]@3 ~ [b3,e4,g4,b4]@3 ~ [e4,g4,b4,e5]@3 ~ [d4,f#4,a4,d5]@3 ~", // Em D
  K: "[e3,b3,e4,g4,b4,e5] ~ [e3,b3,e4,g4,b4,e5] ~@13", // Em
})).s("gm_epiano1").gain(0.32)

// chords · percussive organ · "ORGAN"
const percussive_organ = note(`<
  ~@37 A B C D A B C E ~@24 A B C F A B C G A B C H A B C E ~@54 A B C F A B C G A B C H A B C E ~@28 A B C F A B C G A
  B C H A B C E I
>`.pickRestart({
  A: "[c5,e5,g5,c6]@3 c5 [e5,g5,c6] c5 ~@2 [c5,e5,g5,d6]@3 ~ [c5,g5]@2 ~@2, ~@12 [e5,c6] ~@3", // C C5 C
  B: "[d5,f#5,a5,d6]@3 d5 [f#5,a5,d6] d5 ~@2 [d5,f#5,a5,e6]@3 ~ [d5,f#5,a5,d6] ~@3", // D
  C: "[e5,g5,b5,e6]@3 e5 [g5,b5,e6] ~ [b4,e5,g5,b5]@10", // Em
  D: "~ g5@2 e5 [g5,b5,e6] e5 [b4,e5,g5,b5]@10, [e5,b5,e6]@3 ~@13", E: "[e5,g5,b5] ~ [d5,f#5,a5,d6]@14, e6 ~@7",
  F: "~ g5@2 e5 [g5,b5,e6] e5 b5@2 [a5,a6] b6 [a5,a6] ~ g6 [a5,a6] g5@2, [e5,b5,e6]@3 ~@3 [b4,e5]@10, ~@6 g5@6 g5@2 g4 ~, ~@9 b5@6 ~", // Em A E5
  G: "~ g5@2 e5 [g5,b5,e6] e5 ~@2 [e5,g5,b5,e6]@4 [d5,f#5,a5,d6]@4, [e5,b5,e6]@3 ~@13", // Em D E5
  H: "~ g5@2 e5 [g5,b5,e6] e5 b5@2 [a5,a6] b6 [a5,a6] ~ g6@2 [f#5,f#6] ~, [e5,b5,e6]@3 ~@3 [b4,e5]@10, ~@3 g5@3 g5@2, ~@9 b5@6 ~", // Em A F# E5
  I: "[e5,g5,b5,e6] [e3,e4,e5,g5,b5,e6] ~@6, [e3,e4] ~@15", // Em E
})).s("gm_percussive_organ").gain(0.28)

// chords · electric guitar clean · "GUITAR 1"
const electric_guitar_clean = note(`<
  ~@16 A B C D E F G H I F G H I J K H I J K H I L M N O L P Q ~ R S T U R V W X J K H I J K H I J K H I J K H I L M N O
  L P N O L P N O L M Q ~ R S T U R S T U R S T U R S T U ~@23 A R S T U R S T U R S T U R Y L M N O L M N O L P N O L P
  Q ~ R S T U R S T U R S T U R S T U R S T U R S T U R S T Z L P N O L M N O L P N O L P Q ~@2
>`.pickRestart({
  A: "~@6 g2 ~ a2@3 g2 a2@2 g2@2", B: "e2@4 ~@2 d3@2 e3@2 d3 ~@5", C: "~@8 e3@2 d3@2 e3@2 d3 ~",
  D: "e2@4 ~@2 d3@2 e3@2 d3@2 ~@2 e2!2", E: "a2!4 g2@2 e2 ~ e3!2 d3@2 e3@2 g3 ~",
  F: "[e4,g4,b4]@2 ~@4 [d4,f#4,b4]@2 e3 ~ e3 ~@3 d3 e3", G: "g3 e3 g3@2 e3 ~@3 [b3,e4]@2 d4 ~ [e3,b3] ~ b3 ~",
  H: "a3 ~ g3 ~ a3 ~@3 a3 ~@2 a3!2 ~ e3 g3", I: "a3!3 g3 ~@2 e3 ~ g3!2 a3@2 b3@2 d4@2",
  J: "[e4,g4,b4]@3 [e4,g4,b4]!2 ~ [d4,f#4,b4]@2 e3 ~ e3 ~@3 d3 e3", // Em Bm
  K: "g3 e3 g3@2 e3 ~@3 [b3,e4]@2 d4 ~ [b3,e4]@2 d4 ~", // E5
  L: "[e4,g4,c5]@2 [c4,e4,c5] c4 ~@4 [c5,e5,g5]@2 ~ [e4,g4]@3 ~@2, ~@7 c4@3 [c5,e5,g5]@3 ~@3", // C Em C
  M: "[f#4,a4,d5]@2 ~ d4 [f#4,a4,d5] d4 [f#4,a4,d5,e5] ~ [f#4,a4,e5] d4 ~ d5 ~@4, ~ [f#4,a4,d5] ~@3 [f#4,a4,e5] ~@2", // D F#m7 D F#m7
  N: "~ e4 ~ e4 [g4,b4,e5] ~ [b3,e4,g4,b4]@8 e4@2, [g4,b4,e5] ~@7", // Em
  O: "~ e4 ~ [e4,g4,e5] b4 ~ [b3,e4,g4,b4]@6 ~@4, [g4,b4,e5] ~@7", // Em
  P: "[f#4,a4,d5]@2 ~ d4 [f#4,a4,d5] d4 [f#4,a4,d5,e5] ~ [f#4,a4,e5] d4 ~ d5 ~@4, ~@2 [f#4,a4,d5]@2 ~@6 [f#4,a4,e5]@3 ~@3", // D F#m7 D F#m7
  Q: "~ e4 ~ e4 [g4,b4,e5] ~ [b3,e4,g4,b4]@8 ~@2, [g4,b4,e5] ~@7", R: "e2@3 ~@3 d3@2 e3@2 d3 ~@3 g2 a2",
  S: "~ a2!2 ~ g2@3 ~ a2 ~ g2 ~ a2 ~ g2 ~", T: "e2@3 ~@3 d3@2 e3@2 d3 ~@4 a2, ~@7 g2",
  U: "~ a2 a2@2 g2 ~@2 g2 a2!2 ~ g2 a2@2 g2 ~", V: "~ a2!2 ~ g2@3 ~ a2@2 g2 ~ a2@2 g2 ~",
  W: "e2@3 ~@3 [g2,d3]@2 [a2,e3]@2 [g2,d3] ~ e2!4", X: "a2!2 a2@2 g2@2 e2 ~ e2 g2 ~ a2!2 b2 d3 e3",
  Y: "~ a2!2 ~ g2@3 ~ g2!2 a2@2 b2@2 d3@2", Z: "~ a2 a2@2 g2 ~@2 g2!3 a2@2 b2@2 d3@2",
})).s("gm_electric_guitar_clean").gain(0.24)

// chords · celesta
const celesta = note("<~@4 A ~@5 B@2 ~@4 A ~@95 A ~@5 B@2 ~@4 A ~@75>".pickRestart({
  A: "~@3 b4, ~ e5", B: "[~@3 e5 ~@4, ~@5 b4@4 ~@7]/2",
})).s("gm_celesta").gain(0.4)

// bass · electric bass pick · "BASS 1"
const bass = note(`<
  ~ A@2 B@2 C@2 D@2 E ~ E ~ E ~ E F G@2 H@2 ~@2 I ~@7 I ~@4 J K L M@2 K N O P G@2 Q@2 R@2 H@2 ~@2 I ~@7 I ~@4 S K L T@2
  K L T@2 K L T@2 K N O P G@2 C@2 G@2 U@2 G@2 V@2 G@2 D@2 G@2 V@2 W@2 X@2 C@2 B@2 C@2 D@2 E ~ E ~ E ~ E F Y@2 G@2 Z@2
  AA@2 G@2 B@2 AB@2 K L T@2 K L T@2 K L T@2 K N O P G@2 C@2 G@2 U@2 G@2 V@2 G@2 D@2 G@2 V@2 W@2 X@2 C@2 AB@2 K L T@2 K L
  T@2 K L T@2 K N O P AC
>`.pickRestart({
  A: "[e1@4 ~@2 g1 ~ a1@2 g1@2 ~@3 g1@3 d3 ~@7 d3 ~ d3@4]/2",
  B: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@3 g2 a2 ~@2 c#3 d3 ~@2 d3 e3]/2",
  C: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@7 d3 ~ d3@4]/2",
  D: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@9 e4@3 ~, ~@27 e3@4 ~]/2", E: "e1 ~@3", F: "~@14 d3 c#3",
  G: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@7 g2 a2 ~@2 c#3 d3]/2", H: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@13]/2",
  I: "~@8 a2 ~@2 a2 ~@4", J: "~@7 g1!2 ~ g1@2 a1@2 b1 ~", K: "c2@3 ~ c2@2 c3 c2 g1@2 g2 g1 c2 ~ c2!2",
  L: "d2@2 d3 d2 d2@2 d3 d2 d1@2 d2!3 d1 d3 d2",
  M: "[e1@2 e2 ~ e2@2 e3 ~ e1@2 e2 ~ e2@2 e3 ~ e1@2 e1@2 f#1@2 f#2@2 g1@2 g2@2 b1@2 b2@2, ~@3 e1@2 ~@2 e2@2 ~@2 e1@2 ~@2 e2@2 ~@15]/2",
  N: "d2@2 d3 d2 d2@2 d3 d2 d1@3 d2 ~ d2!3", O: "e2@4 e1@2 ~ e1 e1@4 ~@4", P: "e2 d2@7",
  Q: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@2 d3 ~@2 d3 ~@6 d2]/2",
  R: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@7 g1 a1 ~@2 c#3 d3]/2", S: "~@7 g1!2 ~ g1@2 a1@2 b1@2",
  T: "[e1@2 e2 ~ e2@2 e3 ~ e1@2 e2 ~ e2@2 e3 ~ e1 ~ e1@2 f#1@2 f#2@2 g1@2 g2@2 b1@2 b2@2, ~@3 e1@2 ~@2 e2@2 ~@2 e1@2 ~@2 e2@2 ~@15]/2",
  U: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@2 d3 ~@2 a2 ~@2 g2 a2@2 g2@2]/2",
  V: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@4 d3 ~@2 d3 ~ d3@4]/2",
  W: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@7 c#3 d3 ~@2 d3 e3]/2",
  X: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@3 e3 d3 ~@2 a2 g2 ~@2 e2 d2]/2",
  Y: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@3 a2 g2 ~@2 c#3 d3 ~@2 d3 e3]/2",
  Z: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~@7 a2 b2 ~@2 d3 e3]/2", AA: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 ~@14]/2",
  AB: "[e1@4 ~@2 g1 ~ a1@2 g1 ~@4 g1@3 d3 ~ g1 ~ g1@2 a1 ~ a1@2 b1 ~ b1@2]/2", AC: "e2 e1 ~@6",
})).s("gm_electric_bass_pick").gain(0.4)

// bass · fretless bass · "BASS 2"
const bass_2 = note(`<
  ~ A ~ B ~ B ~ B ~ C ~ C ~ C ~ C ~ B ~ B D E F G H I J K L E M K H E M N O P Q R@2 P S T U B ~ B ~ B ~ B D I M V H E W
  X L I Y K H E Z AA AB P Q AC@2 P Q AC@2 P Q AC@2 P S T U B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B
  ~ C ~ C ~ C ~ C ~ B ~ AD ~ B ~ B ~ B ~ B ~ B AE P Q AC@2 P Q AC@2 P Q AC@2 P S T U B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~
  B ~ B ~ B ~ B ~ AF AE P Q AC@2 P Q AC@2 P Q AC@2 P S T U AG
>`.pickRestart({
  A: "e1@4 ~@2 g1 ~ a1@2 g1@2 ~@4", B: "e1@4 ~@2 g1 ~ a1@2 g1 ~@5", C: "e1 ~@3", D: "~@10 d2 e2 g2 e2 d2@2",
  E: "g1@2 ~@4 e1@2 ~@6 d2 e2", F: "g2 e2 g2@2 e2@2 ~@6 a1 b1 d2 e2", G: "a1 ~ a1@2 ~@10 g1 a1",
  H: "c2 a1 c2@2 a1 ~@7 e2@4", I: "g1@2 ~@4 e1 ~@7 d2 e2", J: "g2 ~ g2@2 e2 ~@7 d2 e2 g2 a2", K: "~@2 a1@2 ~@10 g1 a1",
  L: "c2 a1 c2@2 a1 ~@11", M: "g2 e2 g2@2 e2 ~@7 a1 b1 d2 e2", N: "a1 ~ a1 ~ a1@6 ~@4 g1 a1",
  O: "c2 a1 c2@2 a1 ~@2 g1!2 ~ g1@2 a1@2 b1@2", P: "c2@3 ~ c2@2 c3 c2 g1@2 g2 g1 c2 ~ c2!2",
  Q: "d2@2 d3 d2 d2@2 d3 d2 d1@2 d2!3 d1 d3 d2",
  R: "[e1@2 e2 ~ e2@2 e3 ~ e1@2 e2 ~ e2@2 e3 ~ e1@2 e1@2 f#1@2 f#2@2 g1@2 g2@2 b1@2 b2@2, ~@3 e1@2 ~@2 e2@2 ~@2 e1@2 ~@2 e2@2 ~@15]/2",
  S: "d2@2 d3 d2 d2@2 d3 d2 d1@3 d2 ~ d2!3", T: "e2@4 e1@2 ~ e1 e1@4 ~@4", U: "e2 d2@7", V: "~@2 a1 ~@11 g1 a1",
  W: "g2 e2 g2@2 e2 ~@7 d2 e2 g2 a2", X: "a1 ~ a1 ~ a1@5 ~@5 g1 a1", Y: "g2 ~ g2@2 e2@2 ~@6 a1 b1 d2 e2",
  Z: "g2 e2 g2@2 e2@2 ~@6 d2 e2 g2 a2", AA: "a1 ~ a1 ~ a1@4 ~@6 g1 a1", AB: "c2 a1 c2@2 a1@2 ~ g1!2 ~ g1@2 a1@2 b1@2",
  AC: "[e1@2 e2 ~ e2@2 e3 ~ e1@2 e2 ~ e2@2 e3 ~ e1 ~ e1@2 f#1@2 f#2@2 g1@2 g2@2 b1@2 b2@2, ~@3 e1@2 ~@2 e2@2 ~@2 e1@2 ~@2 e2@2 ~@15]/2",
  AD: "~@6 g1 ~ a1@2 g1 ~@5", AE: "~@4 g1 ~ g1@2 a1 ~ a1@2 b1 ~ b1@2", AF: "e1@4 ~@2 g1 ~ a1@2 ~@6", AG: "e2 e1 ~@6",
})).s("gm_fretless_bass").gain(0.22)

// bass · lead 8 bass lead · "SYNTH B.1"
const bass_3 = note(`<
  ~ A B C ~ D E C ~ A B C F A G C ~ A B C ~ H ~@3 H ~@3 H ~@3 H ~@2 I J K L M J K N O A B C ~ A B C ~ H ~@3 H ~@3 H ~@3
  H ~@2 P J K L M J K L M J K L M J K N O A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B Q@2 A B C ~ D E C ~ A B C F A G C
  ~ A B C ~ A B C R A B C ~ C S J K L M J K L M J K L M J K N O A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B Q@2 A B C S
  J K L M J K L M J K L M J K N O T
>`.pickRestart({
  A: "e1@4 ~@10 g1 a1", B: "~ a1!2 ~ g1@4 ~@8", C: "e1 ~@3", D: "e1@4 ~@10 e1 g1", E: "a1!3 ~ g1@4 ~@8",
  F: "~ a#2 a2 ~ g2 ~ e2 d2 ~ e2 ~ d2 e2 ~@3", G: "~ g1 a1 ~ g1@4 ~@8", H: "g1 ~@2 e1 ~@4",
  I: "~@8 g1 ~ g1@2 a1@2 b1@2", J: "c2 ~ c2 ~ g1 ~ c2 ~", K: "d2 ~ d2 ~ d1 ~ d1 ~", L: "e2 ~ e2 ~ e1 ~ e1 ~",
  M: "e1 ~ f#1 ~ g1 ~ b1 ~", N: "e2@2 ~@2 e1@2 ~ e1 e1@2 ~@6", O: "e2 d2@7", P: "~@7 g1!2 ~ g1@2 a1@2 b1@2",
  Q: "[e1@2 ~@5 b3@3 ~@6]/2", R: "a#3 a3 g3 e3 a3 g3@6 ~@5", S: "~@4 g1 ~ g1@2 a1 ~ a1@2 b1 ~ b1 ~", T: "e1!2 ~@6",
})).s("gm_lead_8_bass_lead").gain(0.36)

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

// drums · snare
const snare = s("sd").struct(`<
  A B@19 C B@15 C B@6 D E B@7 C B@15 C B@14 D E B@53 C B@14 D E B@27 C B@14 D F ~
>`.pickRestart({
  A: "~@10 x ~ x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@5 x ~ x!2 ~@2", D: "~@4 x ~@5 x ~ x!4", E: "~@3 x", F: "~@12 x!4",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~ [~ x ~ x]!198 ~>").gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<A ~@19 A ~@15 A ~@15 A ~@15 A ~@69 A ~@43 A ~@17>".pickRestart({
  A: "~@15 x",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C B C B C B C B C B C B C B C B C B D E C F C E C F C E C F C E C F D G H@2 I H I G J B C B C B C B D E C F C E C
  F C E C F C E C F D G H@2 I G H@2 I G H@2 I H I G J B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B
  C B C B C B C B C B C B C B C B C B C B D G H@2 I G H@2 I G H@2 I H I G J B C B C B C B C B C B C B C B C B C B C B C
  B C B C B D G H@2 I G H@2 I G H@2 I H I G J ~
>`.pickRestart({
  A: "x!3 ~", B: "~@2 x!6", C: "x!8", D: "x!5 ~@3", E: "~ x!2 ~ x!2 ~ x", F: "x ~ x!6",
  G: "~@2 x ~ x ~ x!3 ~ x ~ x ~ x ~", H: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", I: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2",
  J: "~ x ~@2",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<A ~@19 A ~@15 A ~@15 A ~@15 A ~@69 A ~@43 A ~@17>".pickRestart({
  A: "~@7 x",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ C ~ B ~ C ~ B ~ C ~ B ~ C ~ D@3 E D ~@2 C A ~ A ~ A ~ A ~ B ~ C ~ B ~ C
  ~ B ~ C ~ B ~ C ~ D@3 E D@3 E D@3 E D ~@2 C A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ D@3 E D@3 E D@3 E D ~@2 C A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  D@3 E D@3 E D@3 E D ~@2 C A
>`.pickRestart({
  A: "x", B: "~@3 x ~@4", C: "~ x ~@6", D: "~@15 x", E: "~ x ~@14",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@21 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A B A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A B A ~@3 A ~@3 A ~@3 A
  ~@3 A ~@3 A ~@3 A ~@3 A ~@11 A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A B A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
  A ~@3 A ~@3 A ~@3 A ~ A B@2
>`.pickRestart({
  A: "x", B: "x!2 ~@6",
})).gain(0.8)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~ [~@2 x!2 ~@4]!198 ~>").gain(3.24)

stack(
  epiano1, percussive_organ, electric_guitar_clean, celesta, bass, bass_2, bass_3, kick, snare, clap, low_tom, hihat,
  mid_tom, open_hat, crash, cabasa
// … 1 more lines

More by Coolio