Strudelify
They Dance Alone (Gueca Solo) cover art

1987 · ...Nothing Like The Sun

They Dance Alone (Gueca Solo)

Sting

KeyA majorTempo65 bpm
0:00/0:00
// They Dance Alone (Gueca Solo) — Sting
// 65 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/2 at bar 87) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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.

// other · soprano sax · "SOPRAN SAX"
const soprano_sax = note(`<
  ~@2 A@3 B@2 ~ C@2 D E F G@2 H I J@2 ~@12 K D E F G@2 H I J@2 ~@9 L M N ~ L M N ~@8 K D E F G@2 H I J@2 ~@9 L M ~@17
>`.pickRestart({
  A: "[~@8 e4@25 a4 b4@6 b4@4 ~@4]/3", B: "[a4 e4 b4@6 a4 e4 c#5@22]/2",
  C: "[e5 a5 e5@4 e5@5 e5 a5 ~@7 e4 a4 b4@6 b4@4, ~@13 e5@11 ~@8]/2", D: "e4 f#4 b4@2 c#5@6 f#4@6", E: "e4 f#4 a4 b4",
  F: "f#5 a4 c#5 e4", G: "[~@2 e4 a4 c#5@4 a4@4 e4 c#4 ~@2 e4@4 g4@4 b4@4 e4@4, ~@7 c#5@2 ~@7]/2", H: "d#4 f#4 a4 b4",
  I: "e4 g#4 b4 e5", J: "[e5 g5 e5@2 b5@4 ~@4 e5 a5 c#5@4 ~@14]/2", K: "~@4 e4 a4 b4@6 b4@4", L: "b4 f#5",
  M: "a5 c#5 d5@2", N: "b5 f#5",
})).s("gm_soprano_sax").gain(0.4)

// other · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead = note("<~@31 A B C D E F G H I@4 J@2 K@2 L ~ M N O P M N Q P ~@26 M N O ~@16 R>".pickRestart({
  A: "a4 c#5 e4 a4", B: "f#4 a4 c#5 a4", C: "g#4 b4 c#5!2", D: "b4 f#4!2 b4", E: "~@3 b4", F: "g#4 b4 ~@6",
  G: "f#4 a4 b4 d#5 f#4 a4 b4 d#5", H: "g#4 b4 d5 e5 g#4 b4 e5@2", I: "f#4 a4", J: "g4 d5", K: "e4 d5", L: "d5!2",
  M: "a4@2 f#4@2 f#4 a4 d5@2", N: "c#5 g#5", O: "b5 d#5 e5@2", P: "c#6 g#5", Q: "b5 e5 e5@2",
  R: "~@3 f#4 a4 c#5 [f#4,a4,c#5]@2", // F#m
})).s("gm_lead_8_bass_lead").gain(0.41)

// chords · piano · "A.PIANO 1"
const piano = note("<~@57 A@4 B@3 C ~@21 D E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2>".pickRestart({
  A: "[e4,a4]!4", B: "[e4,a4]!3 [f#2,d4,f#4,b4]", C: "[e4,a4]!3 [a2,e4,a4,c#5]", D: "[f#4,b4,d5]!2 [f#4,a4,c#5]!2",
  E: "[e4,g#4,c#5]!2", F: "[f#4,a4,d5]!2", G: "[f#4,b4,d5]!2", H: "[f#4,a4,c#5]!2",
})).s("gm_piano").gain(0.36)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@5 B C D E F G H I J K L M N@4 O@2 P Q@3 B C D R F G H I J K L M N@4 O@2 P Q@3 S T S T S T S T U@8 F G H I J K L M
  N@4 O@2 P Q@3 S T S V W@4 X@2 Y@2 W@4 X@2 Y@2
>`.pickRestart({
  A: "[a3,e4]/5", B: "a3 b3", C: "c#4 d4", D: "[a3,e4] [b3,e4]", E: "c#4 [d4,e4]", F: "~ c#3", G: "f#2",
  H: "[d#3,d#4,f#4]", I: "c#4 b3, [e3,e4]", J: "[a2,a4]", K: "[f#2,c#4,a4]", L: "~ f#4 [d#4,f#4] a3, d#3",
  M: "[e3,b3,e4]", N: "[a3@3 [a3,e4]@13]/4", O: "e4 a3", P: "e4 [d4,f4,b4]", Q: "[e4 [d4,f4,b4]@5]/3",
  R: "[c#4,e4] [d4,e4]", S: "[e4,a4] [e4,a4,c#5] [d4,a4,c#5] [d4,a4]", T: "d4 [c#4,e4]", U: "[a4,e5]/4",
  V: "[d4,e4,a4] [c#4,e4,a4]", W: "[e4,a4]/4", X: "[d4,e4,a4]/2", Y: "[e4,a4]/2",
})).s("gm_string_ensemble_1").gain(0.31)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@13 A B C ~@19 A B C ~@31 A B C ~@31>".pickRestart({
  A: "[c#3,e4]", B: "e4", C: "~@3 [d#4,f#4]",
})).s("gm_string_ensemble_1").gain(0.2)

// other · pan flute
const pan_flute = note(`<
  ~@4 A B@4 C D E@2 F G H I@8 J@7 C D E@2 F G H I@8 K@8 L@4 M N O P M N O C D E@2 F G H I@8 Q@7 ~@16
>`.pickRestart({
  A: "~@12 e4 f#4 g#4 a4", B: "[a4@12 f#4@2 d4 e4@13 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 ~@4]/4", C: "[a3,e4] [c#4,e4]",
  D: "e4", E: "[b4@3 a4@3 g#4@2]/2", F: "~ c#4", G: "[e4,a4]", H: "b4@7 a4",
  I: "[a4@8 ~@4 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 a4 b4 e5 d5@13 b4@2 g4 a4@13 g#4 e4 b3 g#4@13 g#4 e4 b3 g#4, ~ g#4 ~@14]/8",
  J: "[~@8 b4@36 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 e4 f#4 b4 a4@13 f#4@2 d4 e4@17]/7",
  K: "[~@8 b4@36 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 e4 f#4 b4 a4@13 f#4@2 d4 e4]/8",
  L: "[~@12 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 e4 f#4 b4 ~ a3@8 b3@8, ~@47 a4@13 ~@4]/4", M: "c#4 d4", N: "[a3,e4] [b3,e4]",
  O: "e4 [d4,e4]", P: "a3 b3", Q: "[~@8 b4@36 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 e4 f#4 b4 a4@13 f#4@2 d4 e4@13 ~@4]/7",
})).s("gm_pan_flute").gain(0.41)

// other · pan flute · soft notes
const pan_flute_soft = note("<~@10 A ~@3 B ~@17 A ~@3 B ~@23 C ~@3 C ~ A ~@3 B ~@32>".pickRestart({
  A: "[c#4,f#4,a4]", B: "c#4", C: "c#4 ~",
})).s("gm_pan_flute").gain(0.26)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@4 A B C B D E F G H I J K H L@4 M@2 N O@2 P B Q B D E F G H I J K H L@4 M@2 N O@2 R S T S T S T S T D ~@2 U B Q B V
  E F G H I J K H L@4 M@2 N O@2 R S T S W X@2 Y Z AA AB AC AD X@2 Y Z AA AB AC AD
>`.pickRestart({
  A: "~@3 e2", B: "a2@3 f#2", C: "a2@11 a3 e2@4", D: "a2@3 ~", E: "a3@2 a3 a3@3 a3!2 a3@2 ~@2 a3@2 a3@2",
  F: "a3@2 a3@2 ~@2 a3!2 a3@4 a3@2 a3@2", G: "b2@2 b2@2 ~@2 b3@2 b3@4 b3@2 b2 b3", H: "e3 e3@2 e3 e3@2 e3!2",
  I: "a3@2 a3 a3@3 a3!2 a3@4 a3@2 a3!2", J: "a3@2 a3@4 a3!2 a3@4 a3@2 a3@2", K: "b2@2 b2@4 b3 b2 b3@7 b3", L: "f#2 a2",
  M: "g2 d3", N: "e2 d2", O: "[e2 d2@3]/2", P: "e2@3 f#2", Q: "a2@11 a3 f#2@4", R: "e2", S: "c#3 d3", T: "b2 f#2",
  U: "~@3 f#3", V: "a2", W: "b2@8 f#2@6 f#3 f3",
  X: "[e3 d3 c3 b2 a2 g2 f2 e2 d#2 d2 g#3@2 ~@4 c#3@6 g#3@2 g#3@4 c#3@4, ~@3 g#3@2 ~@3]/2", Y: "d3@6 a3@2 a3@7 d3",
  Z: "d3@6 a3@2 a3@7 b2", AA: "b2@6 f#3@2 f#3@7 b2", AB: "b2@3 f#3 f#3@3 e3", AC: "f#3@3 c#4 c#4@3 f#3",
  AD: "f#3@3 c#4 c#4@4",
})).s("gm_acoustic_bass").gain(0.46)

// drums · kick
const kick = s("bd").struct("<~ x!3 [~@3 x] [x ~@2 x ~@8 x ~@3]!82 [x ~@2 x!2 ~@3]!16>").gain(0.51)

// drums · rim
const rim = s("rim").struct("<~@4 [~@3 x] [~ x ~@2]!4 [~ x ~ x]!78 x!16>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~ A@8 ~@16 A@6 ~@16 A@10 ~@24 A@6 B@16>".pickRestart({
  A: "~@6 x ~ x!2 ~@6", B: "~ x ~ x",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<~@4 [~@12 x!4] [x!16]!97 [x!14 ~@2]>").gain(0.31)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@4 [~@12 x!4] [x!16]!52 ~@8 [x!16]!22 [~@2 x ~@4 x ~@3 x ~@3 x]!16>").gain(1.3)

stack(
  soprano_sax, lead_8_bass_lead, piano, string_ensemble_1, string_ensemble_1_soft, pan_flute, pan_flute_soft, bass,
  kick, rim, snare, hihat, cabasa
)

More by Sting