Strudelify
Run to You cover art

1994 · Crash! Boom! Bang!

Run to You

Roxette

KeyD majorTempo100 bpm
0:00/0:00
// Run to You — Roxette
// 100 bpm, 4/4, key D 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 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): DISTORTION.
setcpm(100/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 · fretless bass · "FRETLESS"
const bass = note(`<
  ~@7 A B C D E B F G H I J K L@2 M N O P Q R Q S T U V W X U Y Z AA AB AC K AD@2 AE AF AG P AH R Q AI AJ AK AL AM AN AO
  AP AQ AR AS AT AU AV AW AX AY ~@3 AZ BA AZ BB BC BD BE BF AZ BA AZ BG AZ BA AZ BH ~
>`.pickRestart({
  A: "b2@5 ~ b2@10", B: "b2@3 a2@5", C: "g2@6 g2@9 ~", D: "g2@5 ~ g2@2 a2@5 ~ a2@2", E: "b2@5 ~ b2@9 ~",
  F: "g2@5 ~ g2@9 ~", G: "g2@3 g2 d2@2 d2@2", H: "b2@6 b2@7 ~ b2@2", I: "e3 d3", J: "c3", K: "e2@3 e2 d2@4",
  L: "[c2@24 ~@4 c2@2 [a#1,b1] [g#1,a1]]/2", M: "g1@3 g1@3 c2@3 ~ c2@5 ~", N: "e2@3 e2@3 d2@3 ~ d2@6",
  O: "g1@3 g1@2 ~ c2@3 ~ c2@6", P: "g1@3 g1@2 ~ d1@3 ~ d1@3 ~ d1@2", Q: "g1@3 g1@3 c2@3 ~ c2@6",
  R: "e1@3 e1@3 d1@4 d1@2 d1 d1@3", S: "g1@3 g1@3 d2@6 d2 ~@3", T: "b1@5 ~ b1@10", U: "b1@3 a1@5", V: "g1@6 g1@9 ~",
  W: "g1@5 ~ g1@2 a1@5 ~ a1@2", X: "b1@5 ~ b1@9 ~", Y: "g1@5 ~ g1@9 ~", Z: "g1@3 g1 d1@2 d2@2", AA: "b1@3 b1@2 d2!2 b1",
  AB: "e2 d2", AC: "c2", AD: "[c2@3 ~]/2", AE: "g1@3 g1@3 c2@3 ~ c2@5 d2", AF: "e2@3 e2@3 d2@3 ~ d2@2 d2@4",
  AG: "g1@3 g1 g1@2 c2@3 ~ c2@6", AH: "g1@3 g1@3 c2@3 ~ c2@4 f#1@2", AI: "g1@3 g1@3 d2@6 d2 e2 a1 b1",
  AJ: "e1@6 e1@9 ~", AK: "e1@6 e1@7 ~ e1@2", AL: "b1@5 ~ b1@8 b1 a1", AM: "g1@6 g1@7 ~ g1@2", AN: "b1@5 ~ b1@8 b1@2",
  AO: "b1@3 ~ b1@2 b1@8 b1@2", AP: "d2@3 d2@2 d1@3", AQ: "a1@3 d1@2 d2@3", AR: "f#1@6 e1@7 ~ e1@2",
  AS: "a1@3 ~ a1@2 d1@4 d2@4 d1 d2", AT: "a1@6 e1@4 e1@3 ~ e1@2", AU: "b1@6 b1@7 ~ b1@2",
  AV: "c#2@6 c#2@4 c#2@3 ~ c#2@2", AW: "d2@6 d2@7 ~ d2@2", AX: "e2@3 e2@2 e2!3", AY: "a1", AZ: "a1@3 a1@3 d2@3 ~ d2@6",
  BA: "f#1@3 f#1@3 e1@4 e1@2 e1 e1@3", BB: "a1@3 a1@3 e2@6 e2 ~@3", BC: "a1@3 a1@3 d2@3 ~ d2@5 ~",
  BD: "f#2@3 f#2@3 e2@3 ~ e2@6", BE: "a1@3 a1@2 ~ d2@3 ~ d2@6", BF: "a1@3 a1@2 ~ e1@3 ~ e1@3 ~ e1@2",
  BG: "a1@3 a1@3 e2@5 ~ e2@4", BH: "a1@3 a1@3 e2@6 e2@4",
})).s("gm_fretless_bass").gain(0.29)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@6 A ~@14 B ~ B ~ B ~ B ~@10 C ~ C ~@2 B ~ B ~ B ~ B ~ D E F@2 G@2 ~ H ~ H ~@3 I ~ H ~ H ~ H ~ H ~ H ~ H ~ H ~ H ~ H
  ~ H ~@2
>`.pickRestart({
  A: "~ a4@15", B: "~@3 d4@5", C: "~@5 a3@3", D: "~@2 g#3@9 ~@5", E: "~ g#3@7", F: "[~@7 g2@8 ~, ~@10 b3@9 ~@13]/2",
  G: "[~@14 b2@17 ~, ~@5 b3@5 ~@6]/2", H: "~@3 e4@5", I: "d3",
})).s("gm_distortion_guitar").gain(0.16).pan(0.4)

// chords · pad warm · "WARM PAD"
const pad_warm = note("<~@7 A@2 B@2 C@5 D@5 ~@8 A@2 B@2 C@5 D@5 ~@44>".pickRestart({
  A: "[[b3,d4,f#4]@3 [a3,c#4,e4]]/2", B: "[[g3,b3,d4]@3 [a3,c#4,e4]]/2",
  C: "[[b3,d4,f#4]@23 [a3,c#4,e4]@8 ~ [b3,d4]@23 ~@9 f#3@16, ~@31 g3@24 [d4,f#4]@25, ~@55 a3@8 ~@17, ~@7 b3@3]/5", // Bm A Bm D
  D: "[[e4,g4]@8 [a3,d4,f#4]@7 ~ c4@15 ~ b4@8 [d4,f#4,a4]@7 ~ c4@25 ~@7, ~@15 g3@16 g4@8 ~@41, ~@16 e4@24 ~@7 [e4,g4,b4]@24 ~@9]/5", // Em D Em
})).s("gm_pad_warm").gain(0.11).pan(0.4)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@42 A B C D E B F G H ~@6 I J K L M J N O P ~@4 Q N O R J S T U J N O P Q N O P ~
>`.pickRestart({
  A: "~@5 [g4,g5] [f#4,f#5] [e4,e5]", B: "[g4,g5]@2 ~@2 [g4,g5]@2 ~@2 [g4,g5]@2 ~@2 [g4,g5] ~ [e4,e5] [f#4,f#5]",
  C: "[g4,g5] ~ [g4,g5] [f#4,f#5]@2 [g4,g5] [f#4,f#5] [e4,e5]", // G F# G F# E
  D: "[g4,g5]@2 ~@2 [g4,g5]@2 ~@2 [g4,g5]@2 ~@2 [g4,g5]@2 [e4,e5] [f#4,f#5]", // G E F#
  E: "[g4,g5]@2 ~@2 [g4,g5]@2 [a4,a5]@4 [g4,g5]@2 [f#4,f#5]@3 ~", // G A G F#
  F: "[g4,g5]@2 ~@2 [g4,g5] ~ [f#4,f#5]@3 ~ [g4,g5]@2 [f#4,f#5]@2 [e4,e5]@2", // G F# G F# E
  G: "[g4,g5] ~@3 [g4,g5]@2 ~@2 [g4,g5]@2 ~@2 [g4,g5]@2 [e4,e5] [f#4,f#5]", H: "[g4,g5]@2 ~@2 [g4,g5]@2 [a4,a5]@7 ~@3",
  I: "~@5 [a4,a5] [g#4,g#5] [f#4,f#5]", J: "[a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5] ~ [f#4,f#5] [g#4,g#5]",
  K: "[f#3,f#4]@2 [a4,a5] [e3,e4,g#4,g#5]@2 [d3,d4,a4,a5] [e3,e4,g#4,g#5] [f#3,f#4,f#5], [a4,a5] ~@7", // F# A E D5 E F# A
  L: "[e3,e4,a4,a5]@2 [a2,a3]@2 [a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5]@2 [f#4,f#5] [g#4,g#5], ~@6 [a2,a3]@9 ~", // A5 A F# G# A
  M: "[e3,e4,a4,a5]@2 [a2,a3]@2 [a4,a5]@2 [b2,b3,b4,b5]@4 [a2,a3,a4,a5]@2 [b2,b3,g#4,g#5]@3 ~", // A5 A B A E
  N: "[a4,a5]@2 ~@2 [a4,a5] ~ [g#4,g#5]@3 ~ [a4,a5]@2 [g#4,g#5]@2 [f#4,f#5]@2", // A G# A G# F#
  O: "[a4,a5] ~@3 [a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5]@2 [f#4,f#5] [g#4,g#5]", // A F# G#
  P: "[a4,a5]@2 ~@2 [a4,a5]@2 [b4,b5]@7 ~@3", Q: "~@4 [a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5] ~ [f#4,f#5] [g#4,g#5]",
  R: "[a4,a5] ~ [a4,a5] ~@2 [a4,a5] [g#4,g#5] [f#4,f#5], ~@6 [b4,b5]@7 ~@3", // A G# F# B
  S: "[a4,a5] ~ [a4,a5] [g#4,g#5]@2 [a4,a5] [g#4,g#5] [f#4,f#5]", // A G# A G# F#
  T: "[a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5]@2 ~@2 [a4,a5]@2 [f#4,f#5] [g#4,g#5]", // A F# G#
  U: "[a4,a5]@2 ~@2 [a4,a5]@2 [b4,b5]@4 [a4,a5]@2 [g#4,g#5]@3 ~", // A B A G#
})).s("gm_string_ensemble_1").gain(0.16).pan(0.7)

// chords · rock organ · "ORGAN 3" · A Dmaj7 E
const rock_organ = note("<~@62 [[c#5,d5,e5,a5]] [[a4,c#5,e5]@15 ~] [[a4,c#5,d5,f#5]] [[g#4,b4,e5]@14 d5 ~] ~@21>")
  .s("gm_rock_organ").gain(0.19)

// chords · rock organ · "ORGAN 3" · soft notes · Am
const rock_organ_soft = note("<~@65 [~@14 [a4,b4,c5] g4] ~@21>").s("gm_rock_organ").gain(0.13)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B A C A B D E F G H E F G I E J K L M@2 N O N P N Q N P E F G H E F G I E L K L M@2 N Q N P N Q N P R@2 S T S@2 U V
  W V X Y Z AA AB V W V AC V W V AC V W V AC V W V AC V W V AD ~
>`.pickRestart({
  A: "[d4,g4]!2 [b3,d4,g4] [b3,d4,g4]@2 [b3,d4,g4] [g3,d4,g4]@3 [d4,g4] [g3,d4,g4]@2 [d4,g4]@2 ~ g4, [g2,d3]@3 [c3,e3]@3 [c3,e3,g3]@2, [g3,b3] g3@2 ~@4 [d4,g4]", // G5 G G5 C G G5
  B: "[b3,e4]!3 [g3,b3,e4]@2 [g3,b3,e4] [a3,d4,f#4]@3 [d4,f#4] [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]!2, [e2,b2]@3 [a2,d3]@3 [a2,d3]@2, [e3,g3] e3@2 ~@5", // E5 Em D E5 D5 Em
  C: "[d4,g4]!2 [b3,d4,g4] [b3,d4,g4]@2 [b3,d4,g4] [a3,d4,f#4]@3 [d4,f#4] [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]!2, [g2,d3]@3 [a2,d3]@3 [a2,d3]@2, [g3,b3] g3@2 ~@5", // G5 G D G5 D5 G
  D: "[a3,c#4,e4]@14 [a3,c#4,e4] [c#4,e4], [e2,a2,e3]", // A C#m A5
  E: "[d4,f#4]@2 [d4,f#4]!2 [b3,d4,f#4] [d4,f#4] f#4@3 [d4,f#4] [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, f#2, b2@3 [b2,f#3,b3], f#3@3 [f#3,b3]@3 ~@2, b3@4 ~@2 d4 ~@9", // D Bm D B5
  F: "[d4,f#4]@2 [d4,f#4]!4 [d4,f#4]@2 [c#4,e4]!2 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]!2, [f#2,b2,f#3]@2 [a2,e3,a3]!2, b3!2 ~@2", // D C#m B5 A5
  G: "[d4,g4]@2 [d4,g4]!2 [a3,d4,g4] [d4,g4] g4@3 [d4,g4] [d4,g4]@2 [d4,g4]@2 [d4,g4]!2, g2, b2@3 [b2,g3,a3], g3@3 [g3,a3]@3 ~@2, a3@4 ~@2 d4 ~@9", // G5 Dsus4 G5 Em Gsus2
  H: "[d4,g4]@2 [d4,g4]!4 [d4,g4]@2 [c#4,e4]!2 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]!2, [g2,b2,g3]@2 [a2,e3,a3]!2, a3!2 ~@2", // G5 C#m G A5
  I: "[d4,g4]@2 [d4,g4]!4 [d4,g4]@2 [d4,f#4]!2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, [g2,b2,g3]@2 [a2,d3,a3]!2, a3!2 ~@2", // G5 D G D5
  J: "[e4,g4]@2 [e4,g4]!4 [e4,g4]@2 [d4,f#4]!2 [d4,f#4]@2 ~@2 [d4,f#4]!2, [e2,b2,g3]@8 a2@7 ~, b3!2 [d3,a3] ~", // Em D Em D5
  K: "[d4,g4]@2 [d4,g4]!2 [g3,d4,g4] [d4,g4] g4@3 [d4,g4] [d4,g4]@2 [d4,g4]@2 [d4,g4]!2, e2, c3@3 [c3,e3,g3], e3@3 [e3,g3]@3 ~@2, g3@4 ~@2 d4 ~@9", // G5 C Em
  L: "[e4,g4]@2 [e4,g4]!4 [e4,g4]@2 [d4,f#4]!2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, [e2,b2,g3]@2 [a2,d3,a3]!2, b3!2 ~@2", // Em D Em D5
  M: "[e2,c3,g3,b3,e4,g4]/2", // Cmaj7
  N: "[d4,g4]@2 [d4,g4]!2 [b3,d4,g4] [d4,g4] [e4,g4]@3 [e4,g4] [e4,g4]@2 [e4,g4]@2 [e4,g4]!2, g2, [b2,g3]@3 [c3,g3,c4]@3 [c3,g3,c4]@2, b3 ~@3", // G5 G G5 Em C5
  O: "[e4,g4]@2 [e4,g4]!2 [b3,e4,g4] [e4,g4] [d4,f#4]@2 f#4 [d4,f#4] [d4,f#4]@2 ~@2 [d4,f#4]!2, [e2,b2,g3]@3 [a2,d3,a3]@3 [a2,d3,a3]@2, b3 ~@3", // Em D Em D5
  P: "[d4,g4]@2 [d4,g4]!2 [b3,d4,g4] [d4,g4] f#4@2 f#4 [d4,f#4] [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, [g2,d3,g3]@3 [a2,d3,a3]@3 [a2,d3,a3]@2, b3@4 ~@2 d4 ~@9", // G5 G G5 D G5 D5
  Q: "[e4,g4]@2 [e4,g4]!2 [b3,e4,g4] [e4,g4] [d4,f#4]@2 f#4 [d4,f#4] [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, [e2,b2,g3]@3 [a2,d3,a3]@3 [a2,d3,a3]@2, b3 ~@3", // Em D Em D5
  R: "[b3,e4]@2 [b3,e4]!2 [g#3,b3,e4] [b3,e4] e4@3 [b3,e4] [b3,e4]@2 [b3,e4]@2 [b3,e4]!2, e2, [b2,e3]@3 [b2,e3,g#3]@3 [b2,e3,g#3]@2, g#3@4 ~@2 b3 ~@9", // E5 E E5 E
  S: "[d4,f#4]@2 [d4,f#4]!2 [b3,d4,f#4] [d4,f#4] f#4@3 [d4,f#4] [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, f#2, [b2,f#3]@3 [b2,f#3,b3]@3 [b2,f#3,b3]@2, b3@4 ~@2 d4 ~@9", // D Bm D B5
  T: "[d4,g4]@2 [d4,g4]!2 [b3,d4,g4] [d4,g4] g4@3 [d4,g4] [d4,g4]@2 [d4,g4]@2 [d4,g4]!2, g2, [b2,g3]@3 [b2,g3,b3]@3 [b2,g3,b3]@2, b3@4 ~@2 d4 ~@9", // G5 G G5 Em
  U: "[d4,f#4]@2 [d4,f#4]!2 [a3,d4,f#4] [d4,f#4] f#4@3 [d4,f#4] [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, f#2, [d3,f#3]@3 [d3,f#3,a3]@3 [d3,f#3,a3]@2, a3@4 ~@2 d4 ~@9", // D
  V: "[e4,a4]@2 [e4,a4]!2 [c#4,e4,a4] [e4,a4] [f#4,a4]@3 [f#4,a4] [f#4,a4]@2 [f#4,a4]@2 [f#4,a4]!2, a2, [c#3,a3]@3 [d3,a3,d4]@3 [d3,a3,d4]@2, c#4 ~@3", // A5 A A5 F#m D5
  W: "[f#4,a4]@2 [f#4,a4]!2 [c#4,f#4,a4] [f#4,a4] [e4,g#4]@2 g#4 [e4,g#4] [e4,g#4]@2 [e4,g#4]@2 [e4,g#4]!2, [f#2,c#3,a3]@3 [b2,e3,b3]@3 [b2,e3,b3]@2, c#4 ~@3", // F#m E F#m E5
  X: "[e4,a4]@2 [e4,a4]!2 [c#4,e4,a4] [e4,a4] g#4@2 g#4 [e4,g#4] [e4,g#4]@2 [e4,g#4]@2 [e4,g#4] g#4, [a2,e3,a3]@3 [b2,e3,b3]@3 [b2,e3,b3]@2, c#4@4 ~@2 e4 ~@9", // A5 A A5 E A5 E5
  Y: "[d4,f#4]@2 [d4,f#4]!2 [b3,d4,f#4] [d4,f#4] f#4@3 [d4,f#4] [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]!2, f#3@3 [f#3,b3]@3 [f#3,b3]@2, b3@4 ~@2 d4 ~@9", // D Bm D B5
  Z: "[e4,a4]@2 [e4,a4]!2 [c#4,e4,a4] [e4,a4] a4@3 [e4,a4] [e4,a4]@2 [e4,a4]@2 [e4,a4] a4, a3@3 [a3,c#4]@3 [a3,c#4]@2, c#4@4 ~@2 e4 ~@9", // A5 A A5 A
  AA: "[c#4,f#4]@2 [c#4,f#4]!2 [a3,c#4,f#4] [c#4,f#4] f#4@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@2 [c#4,f#4]!2, f#3@3 [f#3,a3]@3 [f#3,a3]@2, a3@4 ~@2 c#4 ~@9", // F#5 F#m F#5 F#m
  AB: "[b3,e4]@2 [b3,e4]!2 [g#3,b3,e4] [b3,e4] e4@3 [b3,e4] [b3,e4]@2 [b3,e4]@2 [b3,e4]!2, e3@3 [e3,g#3]@3 [b2,e3,g#3]@2, g#3@4 ~@2 b3 ~@9", // E5 E E5 E
  AC: "[e4,a4]@2 [e4,a4]!2 [c#4,e4,a4] [e4,a4] g#4@2 g#4 [e4,g#4] [e4,g#4]@2 [e4,g#4]@2 [e4,g#4]!2, [a2,e3,a3]@3 [b2,e3,b3]@3 [b2,e3,b3]@2, c#4@4 ~@2 e4 ~@9", // A5 A A5 E A5 E5
  AD: "[e4,a4]@2 [e4,a4]!2 [c#4,e4,a4] [e4,a4] g#4@2 g#4 [e4,g#4] [e4,g#4]@2 ~@4, [a2,e3,a3]@3 [b2,e3,b3]@3 ~@2, c#4@4 ~@2 e4 ~@9", // A5 A A5 E A5 E5
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.6)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@22 A B C@2 A B C ~ A B C@2 A B@2 C@2 A B ~@3 A B C@2 A B C ~ A B C@2 A B@2 C ~@2 C@3 A ~@4 C A B C ~ A B C@2 A B C@2
  A B C ~
>`.pickRestart({
  A: "~@15 x", B: "~@3 x ~@11 x", C: "~@3 x ~@12",
})).gain(0.17)

// drums · snare
const snare = s("sd").struct(`<
  ~@6 A@13 ~@2 A@7 B A@7 C D A@3 ~ E A@7 F A@7 C D A D A@4 ~@3 G A@3 H A@7 I A@3 J ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x ~@2 x!2 ~@3", C: "~@4 x ~@4 x ~@2 x ~@3", D: "~@4 x ~@7 x ~ x!2", E: "~@12 x!2 ~@2",
  F: "~@4 x ~@3 x ~ x!5 ~", G: "~@8 x ~@2 x!2 ~ x!2", H: "~@4 x ~@3 x ~@2 x!2 ~ x!2", I: "~ x ~@2 x ~@2 x ~ x ~ x!5",
  J: "~ x!2 ~",
})).gain(0.45)

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

// drums · clap
const clap = s("cp").struct("<~@29 A ~ A ~ A ~ A ~ A@2 ~ A ~@10 A ~ A ~ A ~ A ~ A@2 ~ A ~ A ~@22>".pickRestart({
  A: "~@3 x",
})).gain(0.4)

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

// drums · open hat
const open_hat = s("oh").struct("<~@28 A ~@40 A ~@3 A ~@7 B ~@5>".pickRestart({
  A: "~@13 x!2 ~", B: "~ x",
})).gain(0.23)

// drums · crash
const crash = s("cr").struct(`<
  ~@21 A ~@3 A ~@3 A ~@3 A ~@4 A ~@2 A ~ A ~@3 A ~@3 A ~@3 A ~@4 A ~ A ~ A ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@4
>`.pickRestart({
  A: "x",
})).gain(0.28)

stack(
  bass, distortion_guitar, pad_warm, string_ensemble_1, rock_organ, rock_organ_soft, acoustic_guitar_steel, kick,
  kick_soft, snare, snare_soft, clap, hihat, open_hat, crash
)

More by Roxette