Strudelify

The Secret Marriage

Sting

KeyF♯ majorTempo92 bpm
0:00/0:00
// The Secret Marriage — Sting
// 92 bpm, 3/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 4, 4/4 at bar 5, 3/4 at bar 8, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 44 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/3)

// 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 · acoustic bass · "Sec.Marri"
const bass = note("<A@2 B C D E@3 F@5 G@4 H I J@4 K L@2 M@2 N@2 O P Q R S@3 H I T U V W@2>".pickRestart({
  A: "[~@8 c#3@23 ~ c#3@15 ~]/2", B: "d#3@2 d3", C: "c#3 d#3 d3", D: "a#2",
  E: "[a2@16 a#2@7 a2@8 ~ g#2@20 ~@4 a#1@8 d#2@8]/3",
  F: "[d2@8 c#2@7 ~ c2@24 c#3@23 ~ c#3@16 d#3@15 d3@9 c#3@8 d#3@8]/5",
  G: "[d3@8 a#2@22 ~@2 a2@15 a#2@8 ~ a2@8 g#2@19 ~@5 a#1@8]/4", H: "d#2 d2 c#2", I: "c2",
  J: "[~@16 c3@16 f#2@8 c3@21 ~@4 b2@21 ~@6 b1@4]/4", K: "a#1 d#2 d2", L: "[c#2@4 c2@13 ~@7]/2",
  M: "[~@8 c#2@23 d#2@17]/2", N: "[f2@4 f#2@4 a#1@7 ~ d2@8]/2", O: "c#2@13 ~@3 d#2@8", P: "d2 a#1@2", Q: "a1@7 ~",
  R: "~ c3@2", S: "[f#2@8 c3@21 ~@4 b1@21 ~@6 b1@4 a#1@8]/3", T: "c#2", U: "c2@11 ~", V: "~ b1@23",
  W: "[~@2 a#1@35 ~@11]/2",
})).s("gm_acoustic_bass").gain(0.11)

// other · piano
const piano = note(`<
  ~@2 A B C D@2 E F@2 ~@2 G H@2 I@2 J K ~@2 L@2 M N@2 O@2 P@2 Q R S ~@2 T@2 J U V W X ~@2
>`.pickRestart({
  A: "d#3@2 d3", B: "c#3 d#3 d3", C: "a#2", D: "[a2@16 a#2@7 a2@8 ~ g#2@16]/2", E: "~ a#1 d#2",
  F: "[d2@8 c#2@7 ~ c2@24 ~@8]/2", G: "d3 c#3 d#3", H: "[d3@4 a#2@11 ~ a2@8]/2", I: "[a#2@8 a2@8 g#2@19 ~@5 a#1@8]/2",
  J: "d#2 d2 c#2", K: "~ c2@23", L: "[~@17 b2@21 ~@6 b1@4]/2", M: "a#1 d#2 d2", N: "[c#2@4 c2@13 ~@7]/2",
  O: "[~ c#2@3 d#2@2]/2", P: "[f2@4 f#2@4 a#1@7 ~ d3@8]/2", Q: "c#3@13 ~@4 d#3@7", R: "d3 a#2@2", S: "a1@7 ~",
  T: "[~@9 b2@21 ~@6 b1@4 a#1@8]/2", U: "c2", V: "c#2", W: "~ c2@22 ~", X: "~ b1@23",
})).s("gm_piano").gain(0.11).pan(0.3)

// chords · piano
const piano_2 = note(`<
  A@2 B@2 C@3 D E F G@2 H@2 I J K L M@2 N O P Q@2 R S@2 T@2 U V W X Y@2 Z AA AB AC AD AE@3
>`.pickRestart({
  A: "[~@3 f#4 [c#4,f#4] [c#4,f#4,b4] [c#4,f#4] [f#4,a#4] [c#4,f#4] [c#4,f#4,b4]!2 [c#4,f#4,a#4], ~@16 a#4@12 ~@4 a#4@11 ~@5, ~@24 b4@7 ~@17]/2", // F#5 F#sus4 F#5 F# F#5 F#sus4 F#
  B: "[~@4 [d#4,f#4]@3 ~ [d#4,f#4]@3 ~ [f#4,a#4]@4 f#4@3 f#4@4 ~@5 a#4@4 f#4@4 b4@3 ~@5 [f#4,a#4]@4, ~ b4 a#4 b4 a#4 b4, ~@11 d#4@5 ~@7 f#4@4 ~@12 f#4@4 ~@5]/2", // D#m F#
  C: "[~@4 c#5@4 c#5@4 [g#4,c#5]@4 [g#4,c#5]@4 c#5@8 [g#4,c#5]@4 c#5@4 [f#4,c#5]@3 c#5@4 ~ c#5@3 c#5@4 c#5@7 ~@2 [d#4,f#4]@4 [d#4,f#4]@4 [d#4,g#4]@4, ~@3 f#4@4 ~ f#4@12 f#4@16 ~@3 f#4@7 ~@26, ~@32 g#4@8 ~@3 g#4@3 ~ g#4@11 ~@14]/3", // C#5 F#5 D#m G#5
  D: "d#4@4 [d#4,f#4]@4 ~@3 [d4,g#4]@5 ~@4 [f4,a#4]@4, g#4@11 ~@5 [f#4,b4]@8, ~@4 [d#4,f#4]@3 ~@5", // D#m Ddim A#5 B5 D#m
  E: "a#4 [a#4,f#5] f#4 [f#4,a#4] ~ [d#4,f#4], f5@8 b4@7 ~@9", // D#m F# D#m
  F: "d#4@4 [d#4,g#4]@4 d#4@3 ~ [d#4,f#4]@4 ~@4 [c#4,f#4,a#4]@4, f#4 g#4 ~", // G#5 D#m F#
  G: "[[c#4,f#4]@4 [c#4,f#4,b4]@4 [c#4,f#4,b4]@4 [c#4,f#4,a#4]@3 ~ [c#4,f#4]@4 [c#4,f#4,b4]@4 [c#4,f#4,b4]@4 [c#4,f#4,a#4]@4 ~@4 [d#4,f#4]@4 [d#4,f#4]@4 [d#4,f#4,a#4]@4, a#4@3 ~ a#4@3 ~@3 b4@2]/2", // F#5 F#sus4 F# F#5 F#sus4 F# D#m
  H: "[f#4@4 [f#4,b4]@4 [f#4,b4]@4 [f#4,a#4]@4 f#4@4 [f#4,b4]@4 [f#4,b4]@3 ~ [f#4,a#4]@5 ~@3 [f#4,c#5]@4 [f#4,c#5]@4 [g#4,c#5]@3 ~, a#4@11 ~@5 a#4@11 ~@21]/2", // B5 F# B5 F# F#5 C#5
  I: "[g#4,c#5] c#5 ~ c#5!2 [f#4,c#5], ~@2 g#4", J: "[f#4,c#5]@4 [g#4,c#5]@4 [g#4,c#5]@3 ~ [f#4,c#5]@4 ~@4 f#4@4",
  K: "d#4@4 [d#4,g#4]@4 d#4@4 [d#4,f#4]@4 [d#4,f#4]@4 g#4@3 ~, f#4@2 g#4@3 ~", // G#5 D#m
  L: "~@5 a#4@3 a#4@4 ~ f#5@3 ~ b4@4 a#4@2 ~, ~ [f#4,b4]@16 ~@7, ~@5 f4@12 ~@7, ~ f5 ~, ~@3 a#4 f#4 ~", // B5
  M: "[~@2 [d#4,f#4] ~ d#4@2 [d#4,g#4]@2 g#4@2 f#4@4 ~@8 d#4@2, ~@4 f#4@4 d#4 ~@15]/2", // D#m G#5
  N: "c4@4 [c4,a4]@4 c4@3 ~ d#4@4 a4@4 [c4,d#4]@4, d#4@4 a4@4 c4 ~@3", O: "~ d#4@14 ~@5 g#4@4",
  P: "g#4@4 [d4,g#4]@4 [d4,g#4]@4 [d#4,g#4]@3 ~@5 [d#4,f#4]@4, d#4 ~@2", // Ddim G#5 D#m
  Q: "[~@4 [d4,g#4]@3 ~@5 [f4,a#4]@4 a#4@4 ~@4 f#4@4 a#4@2 ~@6 f#4@4 d#4@4 [d#4,g#4]@4, [d#4,f#4]@7 ~ [f#4,b4]@8 f5@8 b4@3 ~@21, ~@20 f#5@5 ~@23, ~@21 a#4@5 ~@14 f#4@8]/2", // Ddim A#5 G#5 D#m B5
  R: "g#4@4 f#4@5 ~@15, d#4 ~@11",
  S: "[~@12 [f#4,a#4]@4 ~ f#4@3 [c#4,f#4,b4]@4 [c#4,f#4]@4 [c#4,f#4,a#4]@4 ~@4 [d#4,b4]@6 ~@3 a#4@3, ~@16 a#4@12 ~@4 [d#4,a#4]@6 ~@6 [d#4,f#4]@3 ~, ~@16 c#4@4 ~@4 b4@9 f#4@10 ~@5]/2", // F# F#sus4 F#5 F# G#m D#5 D#m
  T: "[f#4@4 [f#4,b4]@4 ~@4 a#4@4 ~@12 a#4@3 ~ f4@4 [f4,b4]@4 [f4,b4]@3 ~ a#4@4, a#4@8 [f#4,b4]@8 c#5@15 ~ a#4@9 ~@7]/2", // B5 Fdim B5
  U: "[e4,a#4]@3 ~ [e4,b4]@8 [f#4,a#4]@3 ~ f#4@4 [f#4,b4]@4, ~@2 a#4", // Edim E5 F# B5
  V: "f#4@4 [f#4,a#4]@5 ~@3 [f#4,c#5]@4 [f#4,c#5]@4 [g#4,c#5]@4, b4@7 ~@17", W: "c#5@17 ~@7",
  X: "~@3 d#4 c4 [c4,a4], ~@2 d#4", // F
  Y: "[c4@3 ~ d#4@4 a4@4 [c4,d#4]@5 d#4@14 ~@5 g#4@4 g#4@4 [d4,g#4]@4, a4@4 c4 ~@15 d#4@4]/2", // Cm Ddim
  Z: "[d4,g#4]@4 [d#4,g#4]@3 ~@5 [d#4,f#4]@4 ~@4 [d4,g#4]@3 ~, ~@16 [d#4,f#4]@7 ~", // Ddim G#5 D#m Ddim D#m
  AA: "~@2 [f4,a#4]@2 a#4@2 ~@2 f#4@2 a#4 ~, [f#4,b4]@8 f5@8 b4@3 ~@5, ~@12 f#5@5 ~@7, ~@13 a#4@5 ~@6", // A#5 B5
  AB: "~ f#4 d#4 [d#4,g#4] g#4 f#4, ~@4 f#4@4 d#4 ~@3", // G#5
  AC: "~@4 f#4@4 f#4@4 [f#4,a4]@4 [f#4,a4]@3 ~ [f#4,a4]@3 ~, ~@8 a#4@9 ~@7", // F#m
  AD: "~@2 d#4@2 d#4@2 [d#4,g#4]@2 [d#4,g#4] ~@3, ~@4 a4@5 ~@3", AE: "[~@8 g#4@11 ~@3 f#4@35 ~@15]/3",
})).s("gm_piano").gain(0.11).pan(0.6)

// chords · piano · soft notes
const piano_soft = note(`<
  A B C D ~@2 E ~@4 F ~@2 G H I J K@2 L M ~@2 N O P ~ Q@2 ~@2 R S T@2 ~@2 U V W X Y@2
>`.pickRestart({
  A: "~@3 [c#4,a#4] ~@2", B: "~ c#4 ~@4", C: "~@4 b4@4 ~@12 b4@3 ~", D: "~@4 f#4@4 ~@4 f#4@3 ~@9", E: "~@2 f#4@3 ~@7",
  F: "~@3 b4 ~@2", G: "~@4 f#4@3 ~@4 g#4@4 ~@9", H: "~@5 d#4", I: "~@7 d4", J: "~@7 f#4",
  K: "[~@20 d#4@9 ~@15 [c4,f#4,a4]@4]/2", L: "[f#4,a4] [e4,f#4] ~ c4 f#4 [f#4,a4], ~ [e4,f#4] e4",
  M: "~ [c4,f#4,a4]@13 ~@6 d#4@4", N: "~@3 d#4 ~@2", O: "~@4 d#4@5 ~@15", P: "~@13 c#4@3 ~@8",
  Q: "[~@16 f4@12 f4@3 ~@13 e4@4]/2", R: "g#4@5 f#4@12 ~@7", S: "~@3 [c4,f#4,a4] [f#4,a4] [e4,f#4]",
  T: "[~@4 c4@4 f#4@4 [f#4,a4]@5 [c4,f#4,a4]@13 ~@6 d#4@4 ~@8, [e4,f#4]@4 e4@5 ~@15]/2", U: "~ d#4 ~@3 d#4",
  V: "~ a#4 ~@4", W: "~@4 a4@4 ~@12 [d#4,g#4]@3 ~", X: "~@4 [d#4,g#4]@4 ~ d#4@4 f4@4 f4@7, ~@13 d#4@11",
  Y: "[~ d4@15 ~@8]/2",
})).s("gm_piano").gain(0.06).pan(0.6)

stack(bass, piano, piano_2, piano_soft)

More by Sting