Strudelify

It's Alright (Baby's Coming Back)

Eurythmics

KeyD♭ majorTempo96 bpm
0:00/0:00
// It's Alright (Baby's Coming Back) — Eurythmics
// 96 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note(`<
  ~@2 A B C D A B C D A B C D A B C D E@8 A B C D A B C D E@8 A B C D E@16 A B C D A B C D A B C D A B C D A B C D A B C
  F@2
>`.pickRestart({
  A: "[db4,f4,ab4]", B: "[b3,eb4,ab4]", C: "[db4,gb4,bb4]", D: "[b3,e4]@3 [db4,f4]@5, ab4", E: "[bb3,eb4,gb4]/2",
  F: "[[b3,e4]@3 [db4,f4]@11 ~@2, ab4@7 ~]/2", // E5 Db
})).s("gm_synth_strings_2").gain(0.25).pan(0.4)

// bass · synth bass 1 · "SYN BASS 1"
const bass = note("<A@18 B@8 A@8 B@8 A@4 B@16 A@23 C@2>".pickRestart({
  A: "db2 ~ db2!2 db3@2 db2!2 ~ db2!3 db3@2 ~@2", B: "eb2 ~ eb2!2 eb3@2 eb2!2 ~ eb2!3 eb3@2 ~@2",
  C: "[db2 ~ db2!2 db3@2 db2 db2@21 ~@4]/2",
})).s("gm_synth_bass_1").gain(0.38)

// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~@2 A B C D A B C D A B C D A B C D E@8 A B C D A B C F E@8 A B C G H@2 I@2 E@2 J@2 H@2 I@2 K@2 L@2 M N O P A Q C R@2
  S T S@5 U S T S@4 V@2
>`.pickRestart({
  A: "db3@5 ~ db3@6 db3@3 ~", B: "b2@5 ~ b2@6 b2@4", C: "gb3@6 gb3@5 ~ gb3@3 ~", D: "e3 b2@2 db3@3 db3@2",
  E: "[~ bb3 eb4 ab4 ~ gb4 ~ eb4@2 eb4 gb4 ab4 ~ bb4 db5 eb5@2 bb3 eb4 ab4 ~ gb4 ~ eb4@2 gb4 ab4 eb4 gb4 db5 bb4 ~]/2",
  F: "ab3 b3!3 ~@2 db3@6 db3@4, e3 b2@2 ~@5, ~@2 eb4@4 db4 ~",
  G: "e3@2 b2@4 ~@2 bb2 ab2 gb2 f2 gb2 f2 eb2 db2, ~@3 db3@3 db3@2",
  H: "[~ bb3 eb4 ab4 ~ gb4 ~ eb4@2 eb4 gb4 ab4 ~ bb4 db5 eb5@2 bb3 eb4 ab4 ~ gb4 ~ eb4@2 gb4 ab4 eb4 gb4 db5 bb4 ~, eb2 ~@7]/2",
  I: "[~ bb3 eb4 ab4 ~ gb4 ~ eb4@2 eb4 gb4 ab4 ~ bb4 db5 eb5@2 bb3 eb4 ab4 ~ gb4 ~ eb3 gb3 [f3,gb4] ab4 eb4 gb4 db5 bb4 ~, ~@11 bb2 ~ db3@2 ~, ~@23 eb4@2 ~@7]/2", // Gbmaj7
  J: "[~ bb3 eb4 ab4 ~ gb4 ~ eb4@2 eb4 gb4 ab4 ~ bb4 db5 eb5@2 bb3 eb4 ab4 ~ gb4 ~@2 bb2 [ab2,gb4] [gb2,ab4] [f2,eb4] [gb2,gb4] [f2,db5] [eb2,bb4] db2, ~@23 eb4@2 ~@7]/2", // Ab7 Gbsus2 F7 Gb Db Eb5
  K: "[~ bb3 eb4 ab4 ~ gb4 ~ eb4@2 eb4 gb4 ab4 ~ bb4 db5 ~@2 bb3 eb4 ab4 ~ gb4 ~ eb4@2 gb4 ab4 eb4 gb4 db5 bb4 ~, eb6@8 ~@7 eb5@2 ~@15, ~@2 eb6 ~]/2",
  L: "[~ bb3 eb4 ab4 ~ gb4 ~ eb4@2 eb4 gb4 ab4 ~ bb4 db5 ~@2 bb3 eb4 ab4 ~ gb4 ~@2 bb2 [ab2,gb4] [gb2,ab4] [f2,eb4] [gb2,gb4] [f2,db5] [eb2,bb4] db2, eb6@8 ~@7 eb5@2 ~@6 eb4@2 ~@7, ~@8 eb6@5 ~@3]/2", // Ab7 Gbsus2 F7 Gb Db Eb5
  M: "db3@5 db3@6 ~ db3@4", N: "db3@6 db3@6 db3@3 ~", O: "gb3@11 ~ gb3@3 ~",
  P: "e3@2 b2@3 ~ ab3 ~ b3!3 db4@5, ~@3 db3@3 ~@2", Q: "db3@5 ~ db3@6 db3@4",
  R: "[e3@2 b2@4 db3 ~@2 ab3 gb3 db4@2 gb3 db4 db4@4 ~ db4!2 b3 db4@6 ~ b3 ab3]/2",
  S: "db4 db4@2 b3 db4!2 b3 db4@6 ~ b3 ab3", T: "db4 db4@2 b3 db4!2 b3 db4@5 ~@2 b3 ab3",
  U: "~@4 db4!2 b3 db4@6 ~ b3 ab3", V: "[db4 db4@2 b3 db4!2 b3 db4@18 ~@7]/2",
})).s("gm_epiano1").gain(0.38)

// chords · flute
const flute = note("<~@18 A B C ~ D E F ~@9 G H I ~ G J ~@14 K L M ~ D@2 F ~@26>".pickRestart({
  A: "~@6 [eb4,gb4]!3 [eb4,gb4]@2 [db4,f4]@2 [eb4,gb4]@2 ~", // Ebm Db Ebm
  B: "~@6 [eb4,bb4]!2 [ab4,eb5]@2 [ab4,eb5] [gb4,db5]@2 [eb4,bb4]@2 ~", // Eb5 Ab5 Gb5 Eb5
  C: "~@6 [eb4,gb4] [eb4,gb4]@2 [gb4,bb4]@2 [eb4,gb4]@5", // Ebm Gb Ebm
  D: "~@3 [eb4,bb4] [bb4,db5] [bb4,db5]@2 [ab4,c5]@2 [bb4,db5]@2 [gb4,bb4]@2 ~@3", // Eb5 Bbm Ab Bbm Gb
  E: "~@3 [eb4,gb4] [bb4,db5]@2 [bb4,db5] [ab4,c5]@2 [bb4,db5]@2 [gb4,bb4]@2 ~@3", // Ebm Bbm Ab Bbm Gb
  F: "~@3 [gb4,c5] [ab4,db5]@2 [gb4,c5]@2 [ab4,db5]@2 [gb4,c5] [bb4,eb5]@4 ~", // Gbdim Db5 Gbdim Db5 Gbdim Eb5
  G: "~@3 [db4,f4] [eb4,gb4]@2 [db4,f4] [eb4,gb4]@2 [eb4,gb4]@2 [gb4,bb4]@2 ~@3", // Db Ebm Db Ebm Gb
  H: "~@3 [db4,gb4] [eb4,gb4]@2 [db4,gb4] [eb4,gb4]@2 [gb4,bb4]@2 [eb4,ab4]@2 ~@3", // Gb5 Ebm Gb5 Ebm Gb Ab5
  I: "~@3 [db4,f4] [eb4,gb4]@2 [db4,f4] [eb4,gb4]@2 [eb4,gb4]@2 [gb4,bb4]@5", // Db Ebm Db Ebm Gb
  J: "~@3 [db4,f4] [eb4,gb4]@2 [db4,f4] [eb4,gb4]@2 [gb4,bb4]@2 [eb4,gb4]@4 ~", // Db Ebm Db Ebm Gb Ebm
  K: "~@3 [db4,ab4] [eb4,bb4]@2 [eb4,bb4] [db4,ab4] [eb4,bb4] [eb4,bb4]@2 [db4,ab4]@2 [eb4,bb4] ~@2", // Db5 Eb5 Db5 Eb5 Db5 Eb5
  L: "~@3 [db4,ab4] [eb4,bb4]@2 [eb4,bb4]!2 [ab4,db5]@2 [ab4,db5] [gb4,c5]@2 [eb4,bb4,c5] ~@2", // Db5 Eb5 Db5 Gbdim Cm7
  M: "~@3 [db4,ab4] [eb4,bb4]@2 [db4,ab4] [eb4,bb4]@2 [gb4,db5]@2 [eb4,bb4]@5", // Db5 Eb5 Db5 Eb5 Gb5 Eb5
})).s("gm_flute").gain(0.28)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@46 A@3 B C@2 D@2 ~@33>".pickRestart({
  A: "[bb5@13 gb5 f5 gb5@2 ~ f5 ~@2 f5 ~ f5@2 gb5 f5 gb5 eb5 f5 gb5@10 ~ eb6@5 ~ eb6]/3",
  B: "~ bb5 gb6 gb6@2 f6@2 eb6@2 f6 gb6 bb5@4 ~", C: "[~@5 f5@2 f5 f5@2 ~@2 f5@3 eb5@7 ~@3 bb5 gb6 f6 gb6 f6 gb6 ~]/2",
  D: "[gb6@7 ~ gb6 f6 gb6 db6@3 bb5 bb5@2 ab5 ab5@2 g5@2 f5!2 f5@2 f5!2 f5@4]/2",
})).s("gm_electric_guitar_jazz").gain(0.38)

// other · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~@47 [~ gb5 ~ gb5@2 ~ db5 ~@9] ~@2 [~@10 f5!2 ~@4] ~@36>")
  .s("gm_electric_guitar_jazz").gain(0.22)

// bass · baritone sax · "BARITONSAX"
const bass_2 = note(`<
  ~@4 A@2 B C@3 D ~@15 E F@3 G H@3 I ~@7 E J@3 ~@4 K ~ K ~@17 L@3 M L@3 M L@3 M L@3 N@2
>`.pickRestart({
  A: "db3/2", B: "~@8 db2@2 ~@2 eb2@3 ~", C: "[f2@3 ~ gb2@3 ~ ab2@3 ~ bb2 ~ db3@30 ~ e3 eb3 ~]/3", D: "db3 ~@7",
  E: "~@4 db2 ~ eb2 ~", F: "[f2@2 ~@2 gb2@2 ~@2 ab2 ~@3 bb2@2 db3@30 ~ e3 eb3 ~]/3", G: "db3@3 ~@5 db2@2 ~@2 eb2@2 ~@2",
  H: "[f2@2 ~@2 gb2@2 ~@2 ab2@2 ~@2 bb2 ~ db3@30 ~ gb3 f3 ~]/3", I: "eb3 ~@15",
  J: "[f2@2 ~@2 gb2@2 ~@2 ab2 ~@3 bb2@2 db3@30 ~@4]/3", K: "~@9 eb2 f2 eb2 gb2!2 f2 eb2", L: "db2@15 ~",
  M: "e2@2 eb2@3 ~ db2@3 ~ b1!2 db2!2 b1@2", N: "[e2@2 eb2@3 ~ db2@22 ~@4]/2",
})).s("gm_baritone_sax").gain(0.31).pan(0.4)

// chords · trumpet
const trumpet = note(`<
  ~@4 A@2 B C@3 D ~@11 E F ~@2 B G@3 H I@3 ~@4 E F ~@2 B J@3 ~@4 K ~ K ~ L ~ L ~ L ~ L ~@9 M N@2 O M N@2 O M N@2 O M N@2
  P@2
>`.pickRestart({
  A: "db5/2", B: "~@8 db4@2 ~@2 eb4@3 ~", C: "[f4@3 ~ gb4@3 ~ ab4@3 ~ bb4 ~ db5@30 ~ e5 eb5 ~]/3", D: "db5 ~@7",
  E: "~@12 [gb4,bb4] gb4 [ab4,db5] [bb4,eb5]", F: "~@12 [gb4,bb4]!2 [ab4,db5] [bb4,eb5]",
  G: "[f4@2 ~@2 gb4@2 ~@2 ab4@2 ~@2 bb4@2 db5@30 ~ e5 eb5 ~]/3", H: "db5 ~@3 db4 ~ eb4 ~",
  I: "[f4@3 ~ gb4@2 ~@2 ab4@2 ~@2 bb4@2 db5@30 ~ gb5 f5 ~]/3", J: "[f4 ~ gb4 ~ ab4 ~ bb4 db5@15 ~@2]/3",
  K: "~@9 [bb4,eb5] [c5,f5] [bb4,eb5] [db5,gb5]!2 [c5,f5] ~", // Eb5 F5 Eb5 Gb5 F5
  L: "~@8 [db5,gb5]!2 [c5,f5] [bb4,eb5] [db5,gb5]!2 [c5,f5] ~", M: "[ab4,db5]@15 ~", N: "[bb4,db5]@15 ~",
  O: "[ab4,e5]@2 [b4,eb5] ~@3 [ab4,db5]@4 b4!2 db5!2 b4 ~", P: "[[ab4,e5]@2 [b4,eb5] ~@3 [ab4,db5]@22 ~@4]/2",
})).s("gm_trumpet").gain(0.27).pan(0.9)

// chords · trumpet · soft notes
const trumpet_soft = note("<~@22 A ~@15 A ~@11 B ~ B ~ B ~ B ~ B ~ B ~@26>".pickRestart({
  A: "~@13 bb4 ~@2", B: "~@15 [bb4,eb5]",
})).s("gm_trumpet").gain(0.18).pan(0.9)

// chords · trombone
const trombone = note(`<
  ~@4 A@2 B C@3 D ~@11 E@2 ~@2 F G@3 H I@3 ~@4 E@2 ~@2 F J@3 ~@4 K ~ K ~ L ~ L ~ L ~ L ~@9 M N O P M N O P M N O P M N O
  Q@2
>`.pickRestart({
  A: "db4/2", B: "~@8 db3@2 ~@2 eb3@3 ~", C: "[f3@3 ~ gb3@3 ~ ab3@2 ~@2 bb3 ~ db4@30 ~ e4 eb4 ~]/3", D: "db4@3 ~@13",
  E: "~@12 [bb3,eb4]!2 [db4,f4] [eb4,gb4]", F: "~@4 db3 ~ eb3 ~",
  G: "[f3@3 ~ gb3@3 ~ ab3@2 ~@2 bb3@2 db4@30 ~ e4 eb4 ~]/3", H: "db4 ~@3 db3 ~ eb3 ~",
  I: "[f3@3 ~ gb3@2 ~@2 ab3@2 ~@2 bb3@2 db4@29 ~@2 gb4 f4 ~]/3", J: "[f3@3 ~ gb3@3 ~ ab3@2 ~@2 bb3@2 db4@30 ~@4]/3",
  K: "~@9 [eb4,gb4] [f4,ab4] [eb4,gb4] [gb4,bb4]!2 [f4,ab4] [eb4,gb4]", // Ebm Fm Ebm Gb Fm Ebm
  L: "~@8 [gb4,bb4]!2 [f4,ab4] [eb4,gb4] [gb4,bb4]!2 [f4,ab4] [eb4,gb4]", M: "[db4,f4]@15 ~", N: "[b3,eb4,gb4]@15 ~",
  O: "[db4,gb4]@15 ~", P: "e4@2 [eb4,gb4] ~@3 [db4,f4]@4 b3!2 db4!2 b3@2", Q: "[e4@2 [eb4,gb4] ~@3 [db4,f4]@17 ~@9]/2",
})).s("gm_trombone").gain(0.31).pan(0.2)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@2 A@3 B A@3 B A@3 B A@3 B C D C D C D C D A@3 B A@3 B C D C D C D C D A@3 B C D C D C D C D C D C D C D C D ~@4 A@3
  B A@3 B A@3 B A@3 B A@3 E@2
>`.pickRestart({
  A: "db4!2 bb3 ~ db4 ~ bb3 db4 ~ db4 bb3 ~ db4!2 bb3 ~", B: "db4!2 bb3 ~ db4 ~ bb3 [eb4,e4] ~ eb4 ~ db4@2 ~@3",
  C: "~ eb4 ~@2 eb4 ~ db4 eb4 ~ db4 ~ eb4 ~ eb4 db4 bb3", D: "~ eb4 db4 bb3 eb4 ~@2 eb4 ~ db4 ~ eb4 ~ eb4 ~@2",
  E: "[db4!2 bb3 ~ db4 ~ bb3 [eb4,e4] ~ eb4 ~ db4@17 ~@4]/2", // Emaj7
})).s("gm_electric_guitar_muted").gain(0.31).pan(0.3)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@18 A B A B A B A B ~@8 A B A B A B A B ~@4 A B A B A B A B A B A B A B A B ~@25
>`.pickRestart({
  A: "~@2 db4 bb3 ~@12", B: "~@6 db4 ~@9",
})).s("gm_electric_guitar_muted").gain(0.22).pan(0.3)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@62
  [db5@2 f6@2 ab5 eb6@2 ab5 f6@2 ab5 eb6@2 ab5 f6@2]
  [b4@2 f6@2 ab5 eb6@2 ab5 f6@2 ab5 eb6@2 ab5 f6@2]
  [bb4@2 f6@2 ab5 eb6@2 ab5 f6 eb6 db6 bb5 ab5 gb5 f5 gb5]
  [f6 eb6 db6 bb5 ab5 gb5 f5 gb5 db5 eb5 f5 gb5 ab5 bb5 db6 eb6]
  [f6 ~@7]
  ~@20
>`).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.9)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_2 = note(`<
  ~@62
  [db5@2 ab5@3 gb5@2 ~ f5@3 gb5@3 ab5@2]
  [b4@2 ab5@3 gb5@3 f5@3 gb5@3 ab5@2]
  [bb4@2 ab5@3 gb5@2 ~ ab5 gb5 f5 db5 c5 bb4 ab4 bb4]
  [ab5 gb5 f5 eb5 db5 eb5 f5 gb5 ab4 bb4 db5 eb5 f5 gb5 ab5 bb5]
  [db6 ~@7]
  ~@20
>`).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.1)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@17 A@2 B@2 C@2 D@2 ~@8 A@2 B@2 C@2 D@2 ~@4 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 ~@26
>`.pickRestart({
  A: "[~@8 [eb4,gb4,bb4,eb5]@5 ~@3, ~@15 bb3@7 ~@10]/2", B: "[~@4 [eb4,gb4,bb4]@3 ~, ~@15 eb5@13 ~@4, ~@8 bb3@5 ~@3]/2",
  C: "[~@2 [eb4,gb4,bb4,eb5] ~, ~@15 bb3@9 ~@8]/2", D: "[~@2 [bb3,eb4,gb4] ~, ~@15 [bb4,eb5]@9 ~@8]/2",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.3)

// other · woodblock
const woodblock = note("<~@2 A@8 ~@16 A@8 ~@8 A@4 ~@24 A@15 B ~>".pickRestart({
  A: "~@2 f5!2 ~ f5!2 ~ f5!3 ~@5", B: "~@2 f5!2 ~ f5!2 ~@9",
})).s("gm_woodblock").gain(0.12)

// other · woodblock · soft notes
const woodblock_soft = note("<~@2 A@8 ~@16 A@8 ~@8 A@4 ~@24 A@15 ~@2>".pickRestart({
  A: "~@11 f5 ~@4",
})).s("gm_woodblock").gain(0.07)

// drums · kick
const kick = s("bd").struct("<~@2 A@24 B C D E F G F H A@8 B C I G A@16 ~@7 J A@15 K ~>".pickRestart({
  A: "x!2", B: "x ~@6 x ~@2 x ~@3 x ~", C: "x ~@6 x ~@2 x ~@5", D: "x ~@6 x!2 ~@7", E: "x!2 ~@2 x ~@3",
  F: "x ~@3 x!2 ~@2", G: "~@2 x ~@3 x ~ x ~@2 x ~@4", H: "x!2 ~@3 x ~@2", I: "x ~@5 x ~@3 x ~@4 x", J: "~@11 x ~@4",
  K: "x ~@2 x ~@4",
})).gain(0.44)

// drums · rim
const rim = s("rim").struct("<~@2 A@8 ~@16 A@8 ~@8 A@4 ~@19 B ~@4 A@15 C ~>".pickRestart({
  A: "~@2 x!2 ~ x!2 ~ x!2 ~@6", B: "~@2 x ~ x ~@2 x ~ x ~@2 x ~@3", C: "~@2 x!2 ~ x!2 ~@9",
})).gain(0.22)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@2 A@8 ~@16 A@8 ~@8 A@4 ~@24 A@15 ~@2>".pickRestart({
  A: "~@10 x!2 ~@4",
})).gain(0.16)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B@16 C D C D C D C E B@3 F B@3 G C D C D C D C E B@2 H F C D C D C D C E C D C D C D C I ~@7 J B@7 F B@3 K B@2 F L
  ~
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@4 x ~@2 x ~@3", D: "~@4 x ~@5 x!3 ~@3", E: "~@4 x ~@5 x!3 ~ x!2",
  F: "~@4 x ~@7 x ~ x!2", G: "~@4 x ~@2 x ~@4 x ~ x!2", H: "~@3 x ~@8 x ~@3", I: "~@4 x ~@5 x!6",
  J: "~@6 x ~@2 x ~@2 x ~@2 x", K: "~@4 x ~@4 x ~@2 x ~ x!2", L: "~ x ~@2",
// … 59 more lines

More by Eurythmics