Strudelify
Sweet Dreams cover art

Het gevoel van de 80’s

Sweet Dreams

Eurythmics

KeyC minorTempo126 bpm
0:00/0:00
// Sweet Dreams — Eurythmics
// 126 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · pad sweep · ""Greatest Hits.""
const pad_sweep = note("<~@12 A@2 ~@38 A@2 ~@98>".pickRestart({
  A: "[~ [g3,c4,eb4,g4]@7]/2", // Cm
})).s("gm_pad_sweep").gain(0.41)

// chords · pad sweep · ""Greatest Hits."" · soft notes
const pad_sweep_soft = note("<~@34 A@2 ~@116>".pickRestart({
  A: "[~@2 [g3,c4,eb4,g4]@13 ~]/2", // Cm
})).s("gm_pad_sweep").gain(0.26)

// chords · piano
const piano = note("<~@54 A B A B A B A C ~@22 A B A B A B A C ~@60>".pickRestart({
  A: "[g2,c3,g3,c4]", B: "[bb2,eb3,bb3,eb4]", C: "[bb2,eb3,bb3,eb4]@4 [bb2,eb3,bb3,eb4]@3 ~@9",
})).s("gm_piano").gain(0.41)

// other · lead 1 square
const lead_1_square = note(`<
  A B A B A B A B C D E F C D A B A B A B A B A B A B A B A B C D E F C D A B A B A B A B A B A B C D E F C D ~@8 A B A
  B A B A B A B A B A B A B C D E F C D ~@8 A B A B A B A B A B A B A B A B C D E F C D A B A B A B ~@8 A B A B A B G B
  A B A B A B G H I ~@7
>`.pickRestart({
  A: "[c2,c3] ~ [c3,c4]!2 [eb3,eb4]!2 [c3,c4]!2", // C Eb C
  B: "[ab2,ab3]@2 [ab2,ab3]@2 [ab2,ab3]@2 [c3,c4] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [c3,c4] ~", // Ab C G C
  C: "ab2@2 ab3 ab2@2 ab3 ab2 ab3", D: "g2@2 g3 g2@2 g3 g2 g3", E: "c3@2 c3!4 c3@2", F: "f2@2 f3 f2@2 f3 f2 f3",
  G: "[c2,c3] ~ [c3,c4]!2 eb3!2 [c3,c4]!2", H: "[ab2,ab3]@2 ~@4 [c3,c4] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [c3,c4] ~",
  I: "c3 ~ [c3,c4] ~ [eb3,eb4] ~ [c3,c4] ~", // C Eb C
})).s("gm_lead_1_square").gain(0.26).pan(0.3)

// other · lead 1 square · soft notes
const lead_1_square_soft = note("<~@143 A B C D C D C E C>".pickRestart({
  A: "~ [ab2,ab3]!2 ~@5", B: "c2 ~@2 [c3,c4] ~ [eb3,eb4] ~ [c3,c4]",
  C: "[ab2,ab3]@2 [ab2,ab3]@2 [ab2,ab3]@2 [c3,c4] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [c3,c4] ~", // Ab C G C
  D: "[c2,c3] ~ [c3,c4]!2 [eb3,eb4]!2 [c3,c4]!2", E: "[c2,c3] ~ [c3,c4]!2 eb3!2 [c3,c4]!2",
})).s("gm_lead_1_square").gain(0.1).pan(0.3)

// bass · synth bass 1
const bass = note(`<
  A B A B A B A B C D E F C D A B A B A B A B A B A B A B A B C D E F C D A B A B A B A B A B A B C D E F C D ~@8 G B A
  B A B A B A B A B A B A B C D E F C D ~@8 G B A B A B A B A B A B A B A B C D E F C D A B A B A B ~@8 A B A B A B A B
  A B A B A B A B A ~@7
>`.pickRestart({
  A: "[c2,c3] c3!3 eb3!2 c3!2", B: "ab2@2 ab2@2 ab2@2 c3@2 g2@2 g2@2 g2@2 c3 ~", C: "ab2@2 ab3 ab2@2 ab3 ab2 ab3",
  D: "g2@2 g3 g2@2 g3 g2 g3", E: "c3@2 c3!4 c3@2", F: "f2@2 f3 f2@2 f3 f2 f3",
  G: "[c2,c3] c3!2 ~ eb3!2 c3!2, ~@3 c3@3 ~@2", // C
})).s("gm_synth_bass_1").gain(0.41).pan(0.7)

// bass · synth bass 1 · soft notes · C
const bass_soft = note(`<
  ~@145
  [ab2@2 ab2@2 ab2@2 c3@2 g2@2 g2@2 g2@2 c3 ~]
  [[c2,c3] c3!3 eb3!2 c3!2]
  [ab2@2 ab2@2 ab2@2 c3@2 g2@2 g2@2 g2@2 c3 ~]
  [[c2,c3] c3!3 eb3!2 c3!2]
  [ab2@2 ab2@2 ab2@2 c3@2 g2@2 g2@2 g2@2 c3 ~]
  [[c2,c3] c3!3 eb3!2 c3!2]
  [ab2@2 ab2@2 ab2@2 c3@2 g2@2 g2@2 g2@2 c3 ~]
>`).s("gm_synth_bass_1").gain(0.2).pan(0.7)

// drums · kick
const kick = s("bd").struct("<A@8 B@6 A@16 B@6 A@12 B@6 A@7 C A@8 B@14 A@7 C A@54 ~@6>".pickRestart({
  A: "x!4", B: "x!2", C: "x!2 ~@2",
})).gain(0.41)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@146 [x!4]!6>").gain(0.15)

// drums · snare
const snare = s("sd").struct("<~@8 A@6 ~@16 A@6 ~@12 A@6 ~@4 A@3 B A@22 ~@4 A@3 B A@28 ~@8 A@18 ~@6>".pickRestart({
  A: "~ x ~ x", B: "x!2 ~@2",
})).gain(0.41)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@146 [~ x ~ x]!6>").gain(0.15)

// drums · clap
const clap = s("cp").struct("<~@8 A@6 ~@16 A@6 ~@12 A@6 ~@4 A@3 B A@22 ~@4 A@3 B A@28 ~@8 A@18 ~@6>".pickRestart({
  A: "~ x ~ x", B: "x!2 ~@2",
})).gain(0.41)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@146 [~ x ~ x]!6>").gain(0.15)

// drums · hihat
const hihat = s("hh").struct("<~@54 [x!16]!7 ~@23 [x!16]!7 ~@61>").gain(0.41)

// drums · triangle
const triangle = s("triangles:30").struct(`<
  ~@56 A B A B A ~@25 A B A B A ~@24 C ~ C ~@11 C ~ C ~ C ~@3 C ~ C ~ C ~@10
>`.pickRestart({
  A: "~@8 x!4 ~ x ~@2", B: "~@8 x!4 ~ x!2 ~", C: "~@5 x!3",
})).gain(3.57)

// drums · triangle · soft notes
const triangle_soft = s("triangles:30").struct("<~@145 [~@5 x!3] ~ [~@5 x!3] ~ [~@5 x!3] ~@2>").gain(1.78)

stack(
  pad_sweep, pad_sweep_soft, piano, lead_1_square, lead_1_square_soft, bass, bass_soft, kick, kick_soft, snare,
  snare_soft, clap, clap_soft, hihat, triangle, triangle_soft
)

More by Eurythmics