Strudelify
Dangerous (7" version) cover art

1988 · Look Sharp! 30th Anniversary Edition

Dangerous (7" version)

Roxette

KeyC majorTempo116 bpm
0:00/0:00
// Dangerous (7" version) — Roxette
// 116 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 121 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. 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, A@4 for four bars: edit a riff to change every repeat.

// chords · drawbar organ · "Hammond"
const drawbar_organ = note(`<
  ~ A B C@2 D E@2 F G H@2 I J@2 K L@2 M N@2 O P Q P Q R S@2 T U V W X Y Z W AA AB X AC AD@3 AE@3 AF AG@2 AH AI@4 Q AJ
  AK@2 S@2 A AL@2 AM AN@2 AO AP@2 K AP AF Q AQ AP AF AR G Q AS@2 AT@3 AU AV AW AX A AY@3 AZ@3 BA@3 BB BC@3 BD@3 BE BF BG
  A BH BI@2 BJ@3 BK A BL@3
>`.pickRestart({
  A: "[g2,c3,e3]@5 [f2,a2,c3]@3", B: "[g2,b2,d3]@21 [f2,a2,c3]@11",
  C: "[~ e3@19 [f2,a2,c3]@11 ~ [b2,d3]@20 ~ f2@11, [g2,c3]@19 ~@12 g2@20 ~ [a2,c3]@11 ~]/2", // F Bm C5 Am
  D: "~ e3@23 [f2,a2,c3]@8, [g2,c3]@23 ~@9", // F C5
  E: "[[g2,b2,d3]@21 [f2,a2,c3]@10 ~ e3@20 [f2,a2,c3]@12, ~@31 [g2,c3]@20 ~@13]/2", F: "[g2,b2,d3]@5 [f2,a2,c3]@3",
  G: "[g2,c3]@29 ~@3, e3", H: "[[f2,a2,c3]@15 ~ [g2,e3]@48, ~@15 c3@47 ~@2]/2",
  I: "~ [f2,c3]@15 [g2,c3,e3]@16, a2@15 ~@17", J: "[~ [b2,d3]@63, g2@31 ~]/2", K: "~ [c3,e3]@31, g2@15 ~",
  L: "[[f2,a2,c3]@15 ~@2 e3@47, ~@8 [g2,c3]@23 ~]/2", M: "~ [f2,a2]@16 [g2,c3,e3]@15, c3@7 ~@9",
  N: "[~ [b2,d3]@63, g2]/2", O: "~ [f2,a2,c3]@15", P: "~ e3@31, [g2,c3]", Q: "~ [f2,a2,c3]@31",
  R: "~ a2@15 ~ [b2,d3]@15, c3@17 ~@15, ~ e3@12 ~@3 g2@16", S: "[~ [f2,a2,c3]@63]/2",
  T: "~ [g2,e3]@20 [f2,a2,c3]@11, c3@19 ~@13", U: "~@2 [g2,d3]@19 ~ [f2,a2]@7 ~@3, ~ b2@20 c3@11",
  V: "~ d3@20 [f2,a2,c3]@11, [f2,a2]@9 ~@7", W: "~ [b2,d3]@25 [f2,a2,c3]@6, g2@3 ~", X: "~ [g2,c3,e3]@20 [f2,a2,c3]@11",
  Y: "~ [b2,d3]@21 [f2,a2,c3]@10, g2@11 ~@5", Z: "~ [a2,d3]@22 ~@2 [f2,a2,c3]@7",
  AA: "~ [g2,e3]@24 [f2,a2,c3]@7, c3@21 ~@11", AB: "~ [g2,b2,d3]@21 [f2,a2,c3]@10",
  AC: "~ d3@10 [f2,a2,c3]@5, ~ [g2,b2]@21 ~@10", // F G
  AD: "[~@2 e3@31 ~ f2@15 ~ e3@46, ~ c3@46 ~@49, ~ g2@32 a2@16 [g2,c3]@47]/3", // C5
  AE: "[~@2 f2@14 ~@2 [c3,e3]@15 [b2,d3]@63, ~ [a2,c3]@14 ~@3 g2@77 ~]/3", AF: "~ [g2,c3,e3]@31",
  AG: "[~ [f2,a2,c3]@8 [g2,c3,e3]@23]/2", AH: "~ [f2,a2,c3]@13 ~@2 [c3,e3]@16, ~@16 g2@13 ~@3",
  AI: "[[g2,b2,d3]@65 [f2,a2,c3]@30 [g2,c3,e3]@33]/4", AJ: "[g2,c3,e3]",
  AK: "[~ [f2,a2,c3]@28 ~@3 e3@16 [g2,b2,d3]@16, ~@31 [a2,c3]@17 ~@16]/2", // F G Am
  AL: "[[g2,b2,d3]@20 [f2,a2]@9 ~@4 d3@19 ~ [f2,c3]@11, ~@20 c3@11 a2@19 ~@2 a2@12, ~@32 f3@19 ~@13]/2", // G F F5
  AM: "[g2,b2,d3]@24 ~ a2@7, ~@12 [f2,c3]@3 ~", // G F5
  AN: "[[g2,c3,e3]@20 [f2,a2,c3]@11 ~ [b2,d3]@21 [a2,c3]@11, ~@31 g2@22 f2@8 ~@3]/2", // C F Bm Am
  AO: "~ [a2,d3,f3]@20 [f2,a2,c3]@11", AP: "[g2,b2,d3]@31 ~", AQ: "[c3,e3], g2@7 ~", AR: "[f2,a2,c3]",
  AS: "[[g2,c3,e3]@31 ~ a2@29 ~@3, ~@31 [f2,c3]@30 ~@3]/2", // C F5
  AT: "[[a2,c3,e3]@16 [g2,b2,d3]@15 ~ a2@21 ~@3 [f2,a2,c3]@2 ~@2 [f2,a2,c3]@35 ~, ~@31 [f2,c3]@22 ~@43]/3", // Am G F F5
  AU: "[c3,e3]@21 ~@3 [f2,c3]@8, g2@17 ~@6 a2@8 ~", AV: "[g2,b2,d3]@20 ~ c3@11, ~@10 a2@5 ~, ~@21 f2@8 ~@3",
  AW: "[a2,d3,f3]@19 ~ [f2,a2]@11 ~, ~@19 c3@12 ~", AX: "[g2,b2,d3]@25 [f2,a2,c3]@6 ~",
  AY: "[[g2,b2,d3]@20 [a2,c3]@11 ~ [d3,f3]@19 [f2,a2,c3]@12 ~ [g2,b2]@24 [f2,a2,c3]@6 ~@2, ~@20 f2@10 ~ a2@18 ~@14 d3@25 ~@8]/3", // G Am Dm F G F
  AZ: "[[g2,c3,e3]@19 [f2,a2,c3]@12 [g2,b2,d3]@20 ~ c3@11 ~ [a2,f3]@20 [f2,a2,c3]@12, ~@51 a2@10 ~@2 d3@21 ~@12, ~@52 f2@9 ~@35]/3", // C F G Dm F
  BA: "[[g2,b2,d3]@23 ~ f2@6 ~ [c3,e3]@20 ~ a2@11 ~ [g2,d3]@19 ~ [f2,c3]@12, ~@23 [a2,c3]@8 g2@17 ~@3 [f2,c3]@12 b2@20 a2@10 ~@3]/3", // G C G5 F5 Am F5
  BB: "[d3,f3]@20 ~ [f2,a2]@10 [g2,d3], a2@17 ~@3 c3@11 ~", // Dm F G5
  BC: "[[g2,b2,d3]@24 [f2,a2,c3]@6 ~@2 [c3,e3]@21 ~@2 [f2,a2,c3]@8 [g2,b2,d3]@25 ~ c3@5 ~@2, ~@31 g2@20 ~@37 [f2,a2]@7 ~]/3", // G F C F G F
  BD: "[[g2,c3,e3]@22 ~@2 [f2,a2,c3]@7 ~ [b2,d3]@24 [f2,a2]@7 ~ e3@23 ~ [a2,c3]@8, ~@31 g2@24 ~ c3@5 ~@2 g2@21 ~@3 f2@7 ~@2, ~@64 c3@21 ~@11]/3", // C F Bm F Am
  BE: "[g2,b2,d3]@24 [f2,a2,c3]@7 ~", BF: "[c3,e3]@23 ~ [f2,a2,c3]@8, g2@5 ~@3", BG: "[g2,b2,d3]@25 [f2,a2,c3]@7",
  BH: "~ [g2,b2]@23 [f2,a2,c3]@8, d3@3 ~", // G F
  BI: "[[g2,e3]@20 [f2,a2,c3]@11 ~ g2@19 ~ f2@11 ~, c3@17 ~@14 [b2,d3]@20 [a2,c3]@11 ~@2]/2", // C F Bm Am
  BJ: "[[g2,c3,e3]@19 [f2,a2,c3]@12 ~ [g2,b2]@19 ~ [a2,c3]@11 [g2,c3,e3]@20 ~ [f2,a2,c3]@12, ~@31 d3@20 f2@11 ~@34]/3", // C F G Am C F
  BK: "[g2,b2,d3]@20 [f2,a2,c3]@11 ~", // G F
  BL: "[[g2,b2,d3]@19 ~ [a2,c3]@10 ~@2 [c3,e3]@36 ~@28, ~@19 f2@11 ~ g2@37 ~@28]/3", // G Am C
})).s("gm_drawbar_organ").gain(0.35)

// other · epiano2 · "Back-up"
const epiano2 = note(`<
  ~@22 A B ~@5 C D ~@2 E F ~@12 G ~ G ~@4 H I ~@5 E F ~@2 E J ~@11 K L ~@17 E F ~@22
>`.pickRestart({
  A: "~@4 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3@2", B: "a3 g3@3 ~@4", C: "e4@14 ~@6 c4@2 ~@3 c4@4 ~@3", D: "~ d4@8 ~@23",
  E: "e4@15 ~@5 c4@2 ~@2 c4@5 ~@3", F: "d4@5 ~@11", G: "~@4 g4@2 ~@2 g4@2 ~@2 g4 ~@3 g4@8 ~@8",
  H: "~@9 g3@2 ~@2 g3 ~@3 g3 ~@2 g3@2 ~@3 g3 ~@2 g3@4", I: "a3@4 ~ g3@9 ~@18", J: "d4@13 ~@19",
  K: "~@8 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@3 g3@2 ~@2 g3@3", L: "~ a2@4 g2@9 ~@18",
})).s("gm_epiano2").gain(0.64)

// bass · acoustic bass · "Ac. bass"
const bass = note(`<
  ~ A B C B D B C B E F G H I J K L@2 M N@2 O K P K Q R S@2 T B U V@3 W X@2 B A B Y F K Z I AA K F K M AB@2 AC AD AE AF
  AG@2 AH@2 AI AJ AK AL AI AJ AM AN AO AP@2 AQ AR AQ AO AQ AS AT AU AV Q R AW@2 AX B AY AZ BA BB W BC C BD AY BE C BF BG
  BH BI BJ BI BK BI BL BM BN BO BP BQ BR BS BT BU BV BW ~@3
>`.pickRestart({
  A: "c2@3 ~@7 f2@2 ~@4", B: "g2@4 ~@6 f2@3 ~@3", C: "c2@4 ~@6 f2@3 ~@3", D: "c2@5 ~@15 f2@6 ~@6",
  E: "~ c2@8 ~@15 c2@3 ~@5", F: "f2@8 ~@8 c2@7 ~@9", G: "c2@3 ~@9 c2@2 ~@2", H: "f2@3 ~@5 c2@4 ~@4", I: "g2@5 ~@11",
  J: "~@24 g2@7 ~", K: "c2@7 ~@25", L: "[f2@8 ~@8 c2@8 ~@7 c2@7 ~@26]/2", M: "~ f2@6 ~@10 c2@6 ~@9",
  N: "[~ g2@8 ~@19 g2@9 ~@27]/2", O: "f2@9 ~@23", P: "f2@3 ~@9 f2@2 ~@2", Q: "~ f2@6 ~@25", R: "a2@8 ~@8 g2@9 ~@7",
  S: "[f2@20 ~@5 f2@2 ~ f2@12 ~@24]/2", T: "~ c2@7 ~@13 f2@5 ~@6", U: "d2@7 ~@13 f2@6 ~@6",
  V: "[g2@13 ~@11 f2@5 ~@2 c2@10 ~@11 f2@8 ~@3 g2@15 ~@6 f2@6 ~@6]/3", W: "d2@12 ~@8 f2@7 ~@5",
  X: "[g2@13 ~@11 f2@5 ~@2 c2@10 ~@11 f2@5 ~@7]/2", Y: "c2@4 ~@4 c2@4 ~@16 c2@3 ~", Z: "~ f2@8 ~@8 c2@6 ~@9",
  AA: "~ g2@17 ~@14", AB: "[~ g2@11 ~@17 g2@12 ~@23]/2", AC: "~ f2@17 ~@14", AD: "c2@12 ~@12 c2@5 ~@3",
  AE: "f2@18 ~@6 f2@5 ~@3", AF: "c2@13 ~@19", AG: "[f2@17 ~@7 f2@7 a2@17 g2@16]/2",
  AH: "[f2@16 ~@8 f2 ~@3 f2@13 ~@15 f2@8]/2", AI: "c2@7 ~@3 f2@4 ~@2", AJ: "g2@15 ~@5 f2@12", AK: "d2@17 ~@3 f2@8 ~@4",
  AL: "g2@19 ~@5 f2@8", AM: "d2@19 ~ f2@10 ~@2", AN: "g2@9 ~@7", AO: "g2@3 ~@5 g2@3 ~@5",
  AP: "[c2@9 ~@7 c2@7 ~@8 g2@8 ~@9 g2@7 ~@9]/2", AQ: "c2@4 ~@4 c2@3 ~@5", AR: "f2@8 ~@9 f2@7 ~@8",
  AS: "~ f2@8 ~@8 f2@7 ~@8", AT: "~ c2@8 ~@8 c2@6 ~@9", AU: "~ f2@5 ~@11 f2@5 ~@10", AV: "~ c2@6 ~@25",
  AW: "[f2@11 ~@14 f2@2 ~@2 f2@6 ~@29]/2", AX: "c2@11 ~@9 f2@7 ~@5", AY: "~ d2@10 ~@9 f2@9 ~@3",
  AZ: "g2@10 ~@14 f2@5 ~@3", BA: "c2@9 ~@11 f2@8 ~@4", BB: "g2@9 ~@11 f2@8 ~@4", BC: "g2@14 ~@11 f2@7",
  BD: "g2@10 ~@10 f2@9 ~@3", BE: "~ g2@14 ~@6 f2 ~@3 f2@6 ~", BF: "g2@10 ~@11 f2@11", BG: "~ d2@8 ~@12 f2@7 ~@4",
  BH: "~ g2@15 ~@8 f2@6 ~@2", BI: "~ c2@8 ~@16 f2@5 ~@2", BJ: "~ g2@13 ~@11 f2@5 ~@2", BK: "~@2 g2@13 ~@10 f2@7",
  BL: "~ g2@15 ~@9 f2@7", BM: "~@2 c2@7 ~@16 f2@6 ~", BN: "~@2 g2@16 ~@7 f2@7", BO: "~ c2@8 ~@12 f2@7 ~@4",
  BP: "~@2 g2@11 ~@8 f2@9 ~@2", BQ: "~ c2@4 ~@6 f2@3 ~@2", BR: "~ g2@13 ~@7 f2@8 ~@3", BS: "~@2 c2@11 ~@8 f2@9 ~@2",
  BT: "~@2 g2@14 ~@5 f2@11", BU: "~ c2@6 ~@4 f2@4 ~", BV: "~ g2@16 ~@5 f2@10", BW: "~@2 c2@7 ~@23",
})).s("gm_acoustic_bass").gain(0.64)

// bass · synth bass 2 · "Syn. bass"
const bass_2 = note(`<
  ~ A B C B C B C B D ~@19 C E F B C B G H I B C B J ~@17 K ~ L M N O L P Q R ~@16 S P T P U P T V W P X Y W V Z AA W Y
  AB AC AD AC AE AC AF AC AE AG AH AI AJ ~@5
>`.pickRestart({
  A: "c2@3 ~@5 c2@3 ~@9 f2@2 ~@2 f2@4 ~@4", B: "g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@4 ~@4",
  C: "c2@3 ~@5 c2@4 ~@8 f2@2 ~@2 f2@4 ~@4", D: "~ c2@4 ~@3 c2@4 ~@20", E: "g2@4 ~@4 g2@6 ~@6 f2@2 ~@3 f2@6 ~",
  F: "~ d2@3 ~@4 d2@5 ~@7 f2@2 ~@2 f2@4 ~@4", G: "d2@4 ~@4 d2@4 ~@8 f2@2 ~@2 f2@3 ~@5", H: "~ g2@4 ~@3 g2@8 ~@16",
  I: "c2@6 ~@14 f2@2 ~@2 f2@3 ~@5", J: "c2 ~ c2 ~@5", K: "~@24 c2@2 ~@3 c2@2 ~",
  L: "~ c2@3 ~@4 c2@4 ~@9 f2@2 ~ f2@5 ~@3", M: "~ g2@4 ~@4 g2@5 ~@6 f2@2 ~@2 f2@8",
  N: "d2@4 ~@4 d2@5 ~@7 f2@2 ~@3 f2@4 ~@3", O: "~ g2@4 ~@4 g2@6 ~@5 f2@2 ~@2 f2@5 ~@3",
  P: "~ g2@5 ~@3 g2@6 ~@6 f2@2 ~@2 f2@7", Q: "~ d2@4 ~@3 d2@5 ~@8 f2@2 ~@2 f2@4 ~@3", R: "~ g2@5 ~@3 g2@8 ~@8 g2@4 ~@3",
  S: "~@2 c2@5 ~@2 c2@4 ~@8 f2@2 ~@2 f2@4 ~@3", T: "~ d2@4 ~@4 d2@7 ~@5 f2@2 ~@2 f2@5 ~@2",
  U: "~ c2@5 ~@3 c2@6 ~@6 f2@2 ~@2 f2@5 ~@2", V: "~ g2@5 ~@4 g2@6 ~@6 f2@2 ~@2 f2@5 ~",
  W: "~@2 c2@5 ~@3 c2@5 ~@7 f2@2 ~@2 f2@4 ~@2", X: "~ d2@5 ~@3 d2@7 ~@6 f2@2 ~@2 f2@5 ~",
  Y: "~@2 g2@5 ~@3 g2@6 ~@6 f2@2 ~@2 f2@6", Z: "~@2 d2@4 ~@4 d2@5 ~@7 f2@2 ~@2 f2@3 ~@3",
  AA: "~@2 g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@6", AB: "~@2 c2@5 ~@4 c2@6 ~@6 f2@2 ~@2 f2@5",
  AC: "~@3 g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@5", AD: "~@3 c2@4 ~@4 c2@5 ~@6 f2@2 ~@3 f2@4 ~",
  AE: "~@3 c2@4 ~@4 c2@6 ~@6 f2@2 ~@2 f2@5", AF: "~@3 c2@5 ~@4 c2@5 ~@6 f2@2 ~@2 f2@4 ~",
  AG: "~@3 g2@4 ~@3 g2@4 ~@9 f2@2 ~@2 f2@5", AH: "~@3 c2@3 ~@5 c2@4 ~@8 f2@2 ~@2 f2@4 ~",
  AI: "~@3 g2@4 ~@4 g2@6 ~@6 f2@2 ~@2 f2@4 ~", AJ: "~@4 c2@3 ~@4 c2@4 ~@8 f2@2 ~@2 f2@3 ~@2",
})).s("gm_synth_bass_2").gain(0.64)

// bass · synth bass 2 · "Syn. bass" · soft notes
const bass_soft = note(`<
  ~@116
  [~@4 g2@3 ~@4 g2@4 ~@8 f2@2 ~@2 f2@3 ~@2]
  [~@4 c2@3 ~@5 c2@3 ~@8 f2@2 ~@2 f2@2 ~@3]
  [~@3 g2@3 ~@5 g2@3 ~@10 f2 ~@2 f2@3 ~@2]
  [~@3 c2@4 ~@25]
  ~
>`).s("gm_synth_bass_2").gain(0.4)

// other · electric guitar clean · "Clean guitar"
const electric_guitar_clean = note("<~@5 A B C@2 ~@30 C@2 ~@28 D E F G H E H I ~@16 J@2 ~@14 K@4 L@2 ~@6>".pickRestart({
  A: "e4@2 ~@2 e4@3 ~ e4@3 ~ e4@3 ~ e4@4 d4@4 c4@4 d4@4", B: "~@4 d4@3 ~ d4@4 c4@4 e4@9 d4@3 c4@4",
  C: "[d4@4 e4@2 ~@2 e4@3 ~ e4@3 ~ e4@4 d4@4 c4@4 d4@8 c4@4 e4@8 d4@4 c4@5 ~@7]/2",
  D: "~ d4@2 ~ d4@2 ~@2 d4@2 ~@2 d4@8 c4@4 d4@4 c4@4", E: "d4@4 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@4 d4@4 c4@7 ~",
  F: "~ c4@3 d4@2 ~@2 d4@2 ~@2 d4@8 c4@3 d4@5 c4@4", G: "d4@4 e4@2 ~@3 e4@3 d4@2 ~@2 e4@4 d4@4 c4@6 ~@2",
  H: "c4@2 d4 ~ d4 ~ d4@4 c4@2 d4@2 c4@2", I: "e4@4 g4@3 e4@4 d4@4 c4@8 ~@9",
  J: "[e4@2 ~@2 e4@2 ~@2 e4@2 ~@3 e4 ~@3 e4@3 d4@4 c4@4 ~ d4@7 c4@4 e4@8 d4@4 c4@5 ~@7]/2",
  K: "[~ c4@2 ~@2 c4 ~@2 e4@4 f4@8 e4@8 d4@12 ~@4 d4@2 ~@2 d4@3 e4@4 ~ f4@7 [c4,e4]@5 ~@4 [c4,e4]@4 f4@8 e4@8 d4@12 ~@4 d4@2 ~@2 d4@4 c4@2 ~@2 c4@4 ~@4, e4 ~ e4 ~ c4@6 ~@54]/4", // C
  L: "[[c4,e4]@3 ~ e4@2 f4@4 e4@4 d4@6 ~@12, ~@7 c4@5 ~@52]/2", // C
})).s("gm_electric_guitar_clean").gain(0.54)

// other · electric guitar clean · "Clean guitar" · soft notes
const electric_guitar_clean_2 = note("<~@114 A@3 B@2 C ~>".pickRestart({
  A: "[~@12 d4@2 ~@2 d4@3 e4@4 ~ f4@7 ~ c4@5 ~@2 [c4,e4]@4 ~ f4@8 e4@9 d4@12 ~@3 d4@2 ~@2 d4@4 c4@2 ~@2 c4@5 ~@3, ~@31 e4@5 ~@60]/3", // C
  B: "[[c4,e4]@3 ~ [c4,e4]@2 f4@4 e4@4 d4@6 ~@2 d4 ~ d4@2 e4@2 f4@4]/2", C: "[c4,e4] ~@3",
})).s("gm_electric_guitar_clean").gain(0.27)

// chords · acoustic guitar nylon · "Ac. guitar"
const acoustic_guitar_nylon = note("<~@13 A@2 ~@4 A@2 ~@24 A@2 ~@74>".pickRestart({
  A: "[~@9 [g4,b4]@4 ~@3 b4@4 c5@8 ~ d5@8 c5@7 b4@12 g4@6 ~@2, ~@16 g4@9 ~@39]/2", // G
})).s("gm_acoustic_guitar_nylon").gain(0.64)

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

// drums · clap
const clap = s("cp").struct("<~@4 A ~@22 B ~@10 A ~@20 B ~@9 C@8 ~@6 B ~@25 C@7 ~@5>".pickRestart({
  A: "~@5 x!2 ~", B: "~@6 x!2", C: "~@2 x!2 ~@2 x ~",
})).gain(0.64)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@116 [~@2 x!2 ~@2 x ~]!3 ~@2>").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@3 B A@3 B A@11 C A@7 D A@7 D A B A E A@11 C A F A@2 G A@2 D A@7 H A@7 I J@3 F A@3 K A@14 J L J A J@16 ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~@4 x ~@7 x ~ x!2", D: "~@4 x ~@7 x!4", E: "~@2 x ~@2 x!3",
  F: "~@8 x ~@16 x ~@6", G: "~@9 x ~@14 x ~@7", H: "~@9 x ~@15 x ~@3 x ~ x", I: "~@9 x ~@15 x ~ x!2 ~ x ~",
  J: "~@9 x ~@15 x ~@6", K: "~@8 x ~@16 x ~ x ~ x!2 ~", L: "~@9 x ~@15 x ~ x ~ x!2 ~",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!118 ~@2>").gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@68 [~@3 x] ~@52>").gain(0.64)

stack(
  drawbar_organ, epiano2, bass, bass_2, bass_soft, electric_guitar_clean, electric_guitar_clean_2,
  acoustic_guitar_nylon, kick, clap, clap_soft, snare, hihat, crash
)

More by Roxette