Strudelify
Dangerous (7" version) cover art

1988 · Look Sharp!

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: 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 AC AD AE@3 AF@3 AG AH@2 AI AJ@4 AK AL
  AM@2 AN@2 AO AP@2 AQ AR@2 AS AT@2 K AU AG AV AW AX AG AY AL Q AZ@2 BA@3 BB BC BD BE BF BG@3 BH@3 BI@3 BJ BK@3 BL@3 BM
  BN BO BP BQ BR@2 BS@3 BT BU BV@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: "~ [g2,c3,e3]@20 ~ f2@10, ~@21 [a2,c3]@11", AD: "~ d3@10 [f2,a2,c3]@5, ~ [g2,b2]@21 ~@10",
  AE: "[~@2 e3@31 ~ f2@15 ~ e3@46, ~ c3@46 ~@49, ~ g2@32 a2@16 [g2,c3]@47]/3", // C5
  AF: "[~@2 f2@14 ~@2 [c3,e3]@15 [b2,d3]@63, ~ [a2,c3]@14 ~@3 g2@77 ~]/3", AG: "~ [g2,c3,e3]@31",
  AH: "[~ [f2,a2,c3]@8 [g2,c3,e3]@23]/2", AI: "~ [f2,a2,c3]@13 ~@2 [c3,e3]@16, ~@16 g2@13 ~@3",
  AJ: "[[g2,b2,d3]@65 [f2,a2,c3]@30 [g2,c3,e3]@33]/4", AK: "~ [a2,c3]@31, f2@31 ~", AL: "[g2,c3,e3]",
  AM: "[~ [f2,a2,c3]@28 ~@3 e3@16 [g2,b2,d3]@16, ~@31 [a2,c3]@17 ~@16]/2", AN: "[~ [a2,c3]@62 ~, f2@63 ~]/2",
  AO: "[g2,c3,e3]@19 ~ [f2,a2]@12, ~@19 c3@13", // C F
  AP: "[[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
  AQ: "[g2,b2,d3]@24 ~ a2@7, ~@12 [f2,c3]@3 ~", // G F5
  AR: "[[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
  AS: "~ [a2,d3,f3]@20 [f2,a2,c3]@11", AT: "[g2,b2,d3]@31 ~", AU: "~ b2@31, [g2,d3]",
  AV: "~ f2@31, a2@31 ~, ~ c3@28 ~@3", AW: "[c3,e3], g2@7 ~", AX: "[g2,b2,d3]", AY: "[f2,a2,c3]",
  AZ: "[[g2,c3,e3]@31 ~ a2@29 ~@3, ~@31 [f2,c3]@30 ~@3]/2", // C F5
  BA: "[[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
  BB: "[c3,e3]@21 ~@3 [f2,c3]@8, g2@17 ~@6 a2@8 ~", BC: "[g2,b2,d3]@20 ~ c3@11, ~@10 a2@5 ~, ~@21 f2@8 ~@3",
  BD: "[a2,d3,f3]@19 ~ [f2,a2]@11 ~, ~@19 c3@12 ~", BE: "[g2,b2,d3]@25 [f2,a2,c3]@6 ~",
  BF: "[g2,c3,e3]@19 ~ [f2,a2,c3]@12", // C F
  BG: "[[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
  BH: "[[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
  BI: "[[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
  BJ: "[d3,f3]@20 ~ [f2,a2]@10 [g2,d3], a2@17 ~@3 c3@11 ~", // Dm F G5
  BK: "[[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
  BL: "[[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
  BM: "[g2,b2,d3]@24 [f2,a2,c3]@7 ~", BN: "[c3,e3]@23 ~ [f2,a2,c3]@8, g2@5 ~@3", BO: "[g2,b2,d3]@25 [f2,a2,c3]@7",
  BP: "[g2,c3,e3]@20 ~ f2@11, ~@5 [a2,c3]@3", BQ: "~ [g2,b2]@23 [f2,a2,c3]@8, d3@3 ~",
  BR: "[[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
  BS: "[[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
  BT: "[g2,b2,d3]@20 [f2,a2,c3]@11 ~", BU: "[g2,c3,e3]@19 ~ [a2,c3]@12, ~@19 f2@11 ~@2",
  BV: "[[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 J K ~@2 E L ~@11 M N ~@17 O 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: "e4@16 ~@4 c4 ~@3 c4@5 ~@3",
  K: "d4@9 ~@23", L: "d4@13 ~@19", M: "~@8 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@3 g3@2 ~@2 g3@3", N: "~ a2@4 g2@9 ~@18",
  O: "e4@14 ~@6 c4@2 ~@2 c4@5 ~@3",
})).s("gm_epiano2").gain(0.64)

// bass · acoustic bass · "Ac. bass"
const bass = note(`<
  ~ A B C B D E F G H I J K L M N O@2 P Q@2 R S T S U V W@2 X Y Z AA@3 AB AC@2 AD AE B AF AG S AH AI AJ S AK AL AM AN@2
  AO AP AQ AR AS@2 AT@2 AU AV AW AX AY AZ BA BB BC BD@2 BE BF BG BH BI BJ BK BL BM BN BO BP@2 BQ BR BS BT BU BV BW BX BY
  BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW ~@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: "g2@7 ~@13 f2@7 ~@5", F: "c2@7 ~@13 f2@6 ~@6", G: "g2@7 ~@13 f2@5 ~@7", H: "~ c2@8 ~@15 c2@3 ~@5",
  I: "f2@8 ~@8 c2@7 ~@9", J: "c2@3 ~@9 c2@2 ~@2", K: "f2@3 ~@5 c2@4 ~@4", L: "g2@5 ~@11", M: "~@24 g2@7 ~",
  N: "~ c2@6 ~@25", O: "[f2@8 ~@8 c2@8 ~@7 c2@7 ~@26]/2", P: "~ f2@6 ~@10 c2@6 ~@9", Q: "[~ g2@8 ~@19 g2@9 ~@27]/2",
  R: "f2@9 ~@23", S: "c2@7 ~@25", T: "f2@3 ~@9 f2@2 ~@2", U: "~ f2@6 ~@25", V: "a2@8 ~@8 g2@9 ~@7",
  W: "[f2@20 ~@5 f2@2 ~ f2@12 ~@24]/2", X: "~ c2@7 ~@13 f2@5 ~@6", Y: "g2@9 ~@11 f2@5 ~@7", Z: "d2@7 ~@13 f2@6 ~@6",
  AA: "[g2@13 ~@11 f2@5 ~@2 c2@10 ~@11 f2@8 ~@3 g2@15 ~@6 f2@6 ~@6]/3", AB: "d2@12 ~@8 f2@7 ~@5",
  AC: "[g2@13 ~@10 f2@5 ~@3 c2@9 ~@12 f2@5 ~@7]/2", AD: "g2@7 ~@13 f2@6 ~@6", AE: "c2@6 ~@14 f2@5 ~@7",
  AF: "c2@4 ~@4 c2@4 ~@16 c2@3 ~", AG: "f2@9 ~@7 c2@7 ~@9", AH: "~ f2@8 ~@8 c2@6 ~@9", AI: "g2@9 ~@23",
  AJ: "~ g2@17 ~@14", AK: "~ f2@8 ~@7 c2@8 ~@8", AL: "c2 ~@3", AM: "~ f2@8 ~@7 c2@7 ~@9",
  AN: "[~ g2@11 ~@17 g2@12 ~@23]/2", AO: "~ f2@17 ~@14", AP: "c2@12 ~@12 c2@5 ~@3", AQ: "f2@18 ~@6 f2@5 ~@3",
  AR: "c2@13 ~@19", AS: "[f2@17 ~@7 f2@7 a2@17 g2@16]/2", AT: "[f2@16 ~@8 f2 ~@3 f2@13 ~@15 f2@8]/2",
  AU: "c2@7 ~@3 f2@4 ~@2", AV: "g2@15 ~@5 f2@12", AW: "d2@17 ~@3 f2@8 ~@4", AX: "g2@19 ~@5 f2@8",
  AY: "c2@13 ~@7 f2@9 ~@3", AZ: "g2@16 ~@4 f2@11 ~", BA: "d2@19 ~ f2@10 ~@2", BB: "g2@9 ~@7", BC: "g2@3 ~@5 g2@3 ~@5",
  BD: "[c2@9 ~@7 c2@7 ~@8 g2@8 ~@9 g2@7 ~@9]/2", BE: "c2@4 ~@4 c2@3 ~@5", BF: "f2@8 ~@9 f2@7 ~@8",
  BG: "c2@8 ~@8 c2@7 ~@9", BH: "g2@7 ~@9 g2@7 ~@9", BI: "c2@7 ~@10 c2@7 ~@8", BJ: "~ f2@8 ~@8 f2@7 ~@8",
  BK: "~ c2@8 ~@8 c2@6 ~@9", BL: "~ f2@5 ~@11 f2@5 ~@10", BM: "~ c2@7 ~@24", BN: "~ f2@8 ~@23", BO: "a2@9 ~@8 g2@9 ~@6",
  BP: "[f2@11 ~@14 f2@2 ~@2 f2@6 ~@29]/2", BQ: "c2@11 ~@9 f2@7 ~@5", BR: "g2@9 ~@11 f2@8 ~@4",
  BS: "~ d2@10 ~@9 f2@9 ~@3", BT: "g2@10 ~@14 f2@5 ~@3", BU: "c2@9 ~@11 f2@8 ~@4", BV: "g2@10 ~@10 f2@9 ~@3",
  BW: "~ d2@11 ~@8 f2@8 ~@4", BX: "g2@14 ~@11 f2@7", BY: "~ c2@7 ~@12 f2@7 ~@5", BZ: "g2@11 ~@9 f2@9 ~@3",
  CA: "d2@10 ~@11 f2@8 ~@3", CB: "~ g2@14 ~@6 f2 ~@3 f2@6 ~", CC: "c2@8 ~@12 f2@7 ~@5", CD: "g2@10 ~@11 f2@11",
  CE: "~ d2@8 ~@12 f2@7 ~@4", CF: "~ g2@15 ~@8 f2@6 ~@2", CG: "~ c2@8 ~@16 f2@5 ~@2", CH: "~ g2@13 ~@11 f2@5 ~@2",
  CI: "~ c2@7 ~@17 f2@5 ~@2", CJ: "~@2 g2@13 ~@10 f2@7", CK: "~@2 c2@7 ~@16 f2@6 ~", CL: "~ g2@15 ~@9 f2@7",
  CM: "~@2 c2@7 ~@16 f2@5 ~@2", CN: "~@2 g2@16 ~@7 f2@7", CO: "~ c2@8 ~@12 f2@7 ~@4", CP: "~@2 g2@11 ~@8 f2@9 ~@2",
  CQ: "~ c2@4 ~@6 f2@3 ~@2", CR: "~ g2@13 ~@7 f2@8 ~@3", CS: "~@2 c2@11 ~@8 f2@9 ~@2", CT: "~@2 g2@14 ~@5 f2@11",
  CU: "~ c2@6 ~@4 f2@4 ~", CV: "~ g2@16 ~@5 f2@10", CW: "~@2 c2@7 ~@23",
})).s("gm_acoustic_bass").gain(0.64)

// bass · synth bass 2 · "Syn. bass"
const bass_2 = note(`<
  ~ A B C D E D F G H ~@19 I J K D C L M N O P Q R S ~@17 T ~ U V W X Y Z AA AB ~@16 AC AD AE AF AG AH AI AJ AK AH AL AM
  AN AO AP AQ AN AM AR AS AT AU AV AW@2 AX AY AZ BA BB BC ~@5
>`.pickRestart({
  A: "c2@3 ~@5 c2@3 ~@9 f2@2 ~@2 f2@4 ~@4", B: "g2@4 ~@4 g2@4 ~@8 f2@2 ~@2 f2@3 ~@5",
  C: "c2@3 ~@5 c2@4 ~@8 f2@2 ~@2 f2@4 ~@4", D: "g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@4 ~@4",
  E: "c2@2 ~@2 c2@2 ~@4 f2 ~ f2@2 ~@2", F: "c2@4 ~@4 c2@5 ~@7 f2@2 ~@2 f2@4 ~@4",
  G: "g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@3 ~@5", H: "~ c2@4 ~@3 c2@4 ~@20", I: "c2@4 ~@4 c2@4 ~@8 f2@2 ~@2 f2@5 ~@3",
  J: "g2@4 ~@4 g2@6 ~@6 f2@2 ~@3 f2@6 ~", K: "~ d2@3 ~@4 d2@5 ~@7 f2@2 ~@2 f2@4 ~@4",
  L: "g2@4 ~@4 g2@6 ~@6 f2@2 ~@2 f2@5 ~@3", M: "d2@4 ~@4 d2@4 ~@8 f2@2 ~@2 f2@3 ~@5", N: "~ g2@4 ~@3 g2@8 ~@16",
  O: "c2@6 ~@14 f2@2 ~@2 f2@3 ~@5", P: "g2@2 ~@2 g2@2 ~@4 f2 ~ f2@2 ~@2", Q: "c2@3 ~@5 c2@5 ~@7 f2@2 ~@2 f2@3 ~@5",
  R: "g2@2 ~@2 g2@3 ~@3 f2 ~ f2@2 ~@2", S: "c2 ~ c2 ~@5", T: "~@24 c2@2 ~@3 c2@2 ~",
  U: "~ c2@3 ~@4 c2@4 ~@9 f2@2 ~ f2@5 ~@3", V: "~ g2@4 ~@4 g2@5 ~@6 f2@2 ~@2 f2@8",
  W: "d2@4 ~@4 d2@5 ~@7 f2@2 ~@3 f2@4 ~@3", X: "~ g2@4 ~@4 g2@6 ~@5 f2@2 ~@2 f2@5 ~@3",
  Y: "c2@4 ~@4 c2@5 ~@8 f2@2 ~ f2@5 ~@3", Z: "g2@4 ~@4 g2@6 ~@7 f2@2 ~@2 f2@7",
  AA: "~ d2@4 ~@3 d2@5 ~@8 f2@2 ~@2 f2@4 ~@3", AB: "~ g2@5 ~@3 g2@8 ~@8 g2@4 ~@3",
  AC: "~@2 c2@5 ~@2 c2@4 ~@8 f2@2 ~@2 f2@4 ~@3", AD: "~ g2@5 ~@3 g2@6 ~@5 f2@2 ~@3 f2@7",
  AE: "~ d2@4 ~@4 d2@7 ~@5 f2@2 ~@2 f2@5 ~@2", AF: "~ g2@5 ~@3 g2@7 ~@5 f2@2 ~@3 f2@6",
  AG: "~ c2@5 ~@3 c2@6 ~@6 f2@2 ~@2 f2@5 ~@2", AH: "~ g2@5 ~@3 g2@6 ~@6 f2@2 ~@2 f2@7",
  AI: "~ d2@5 ~@4 d2@6 ~@6 f2@2 ~ f2@5 ~@2", AJ: "~ g2@5 ~@4 g2@6 ~@6 f2@2 ~@2 f2@5 ~",
  AK: "~ c2@5 ~@4 c2@5 ~@7 f2@2 ~ f2@4 ~@3", AL: "~ d2@5 ~@3 d2@7 ~@6 f2@2 ~@2 f2@5 ~",
  AM: "~@2 g2@5 ~@3 g2@6 ~@6 f2@2 ~@2 f2@6", AN: "~@2 c2@5 ~@3 c2@5 ~@7 f2@2 ~@2 f2@4 ~@2",
  AO: "~@2 g2@4 ~@4 g2@6 ~@6 f2@2 ~@2 f2@5 ~", AP: "~@2 d2@4 ~@4 d2@5 ~@7 f2@2 ~@2 f2@3 ~@3",
  AQ: "~@2 g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@6", AR: "~@2 c2@5 ~@4 c2@6 ~@6 f2@2 ~@2 f2@5",
  AS: "~@3 g2@4 ~@4 g2@5 ~@7 f2@2 ~@2 f2@5", AT: "~@3 c2@4 ~@4 c2@5 ~@6 f2@2 ~@3 f2@4 ~",
  AU: "~@3 g2@5 ~@2 g2@6 ~@7 f2@2 ~@2 f2@5", AV: "~@3 c2@4 ~@4 c2@6 ~@6 f2@2 ~@2 f2@5",
  AW: "[~@3 g2@5 ~@3 g2@6 ~@6 f2@2 ~@2 f2@8 c2@5 ~@4 c2@5 ~@6 f2@2 ~@2 f2@4 ~]/2",
  AX: "~@3 g2@4 ~@4 g2@6 ~@6 f2@2 ~@2 f2@5", AY: "~@3 c2@4 ~@4 c2@5 ~@7 f2@2 ~@2 f2@4 ~",
  AZ: "~@3 g2@4 ~@3 g2@4 ~@9 f2@2 ~@2 f2@5", BA: "~@3 c2@3 ~@5 c2@4 ~@8 f2@2 ~@2 f2@4 ~",
  BB: "~@3 g2@4 ~@4 g2@6 ~@6 f2@2 ~@2 f2@4 ~", BC: "~@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 I H J ~@16 K@2 ~@14 L@4 M@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: "d4@2 e4 ~ e4 ~ e4 ~ e4@2 d4@2 c4@3 ~", J: "e4@4 g4@3 e4@4 d4@4 c4@8 ~@9",
  K: "[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@6 ~@6]/2",
  L: "[~ 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
  M: "[[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@12 D A E F E G A@5 E H D A I A@7 I@2 J I A D A J A@3 D A@3 J D@2 A@2 D J@3 I@2 D I@2 D I@13 ~@2
>`.pickRestart({
  A: "x!2", B: "~ x ~@6 x ~@7", C: "x ~@8 x ~@6", D: "~ x ~@14 x ~@15", E: "x ~@15 x ~@14 x", F: "~ x",
  G: "~@15 x ~@16", H: "~@17 x ~@14", 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 H A I G H A@5 J A@7 K L F G F A@2 F M A F G A@3 F L G A F
  A@2 F L N L G L@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: "~@7 x ~@16 x ~@7", I: "~@8 x ~@15 x ~ x ~ x!2 ~@2",
  J: "~@9 x ~@15 x ~@3 x ~ x", K: "~@9 x ~@15 x ~ x!2 ~ x ~", L: "~@9 x ~@15 x ~@6", M: "~@8 x ~@16 x ~ x ~ x!2 ~",
  N: "~@9 x ~@15 x ~ x ~ x!2 ~",
})).gain(0.64)

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

// … 7 more lines

More by Roxette