Strudelify
Run To You cover art

Reckless

Run To You

Bryan Adams

KeyF♯ minorTempo128 bpm
0:00/0:00
// Run To You — Bryan Adams
// 128 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 188 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@7 A B C B C B C B C B C B C B C B C B C B C B C B C ~@7 A B C B C B C B D B C B C B C B C B C B C B C B C B C B C B
  C B C B C B C B C B C B C B C B C B D B C B C B C B C B C B C B C B C ~@3 A B C B C ~@3 A B C B E ~@8 B C B C B C B C
  B C B F B C B C B C B C B C B C B C B C ~@7 G B C B C B C B C B C B C B C B C ~@8
>`.pickRestart({
  A: "~@15 f#1", B: "e1@2 f#1 ~ f#1@3 ~ e1@2 f#1@2 f#1@3 f#1, ~@7 f#1@3 ~@6",
  C: "e1@2 f#1 ~ f#1@3 f#1 g#1@2 a1@2 g#1@2 f#1!2", D: "f#1 ~@7", E: "e1@2 f#1 ~ f#1@3 f#1 ~@8", F: "c#1 ~@7",
  G: "~@7 f#1 g#1@2 a1@2 g#1@2 f#1!2",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · piano · "A.PIANO 3"
const piano = note(`<
  ~@48 A B A B A B A B A B A B A B A B ~@24 A B A B A B A B A B A B A B A B C D C D A B A B ~@28 A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A E@8 ~
>`.pickRestart({
  A: "f#3@2 [f#4,a4,c#5] f#3!2 [f#4,a4,c#5] f#3@2 [a3,a4,c#5,e5] f#3!2 [a3,a4,c#5,e5] f#3!2 [f#3,a3,a4,c#5,e5] ~", // F#m A F#m7
  B: "e3@2 [e4,g#4,b4] e3!2 [e4,g#4,b4] e3@2 [f#4,b4,d#5] f#3!2 [f#4,b4,c#5] f#3!2 [f#3,f#4,b4,d#5] ~", // E B F#sus4 B
  C: "f#3@2 [f#4,a4,c#5] f#3!2 [f#4,a4,c#5] f#3@2 [a4,c#5,e5] f#3!2 [a4,c#5,e5] f#3!2 [f#3,a4,c#5,e5] ~", // F#m A F#m7
  D: "f#3@2 [e4,g#4,b4] f#3!2 [e4,g#4,b4] f#3@2 [f#4,b4,d#5] f#3!2 [f#4,b4,c#5] f#3!2 [f#3,f#4,b4,d#5] ~", // E B F#sus4 B
  E: "[e3@2 [e4,g#4,b4] e3!2 [e4,g#4,b4] e3@2 [f#4,b4,d#5] f#3!2 [f#4,b4,c#5] f#3!2 [f#4,b4,d#5]@114, ~@14 f#3 ~@113]/8", // E B F#sus4 B
})).s("gm_piano").gain(0.5)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@44 A B C D ~@8 E F E F E F E F ~@20 A B C D ~@8 E F E F E F E F ~@32 A B C D ~@8 E F E F E F E F ~@8 E F E F E F E F
  ~@16
>`.pickRestart({
  A: "~@2 [d5,f#5,a5] ~ [f#5,a5]@2 d5 ~ [f#5,a5]@2 d5 [d5,f#5,a5] ~ d5 [d5,f#5,a5]@2, ~@4 d5 ~@3 d5 ~@7", // D F#m D
  B: "~@2 [d5,f#5,a5] ~ [f#5,a5]@2 d5 ~ [d5,f#5,a5] ~ d5 [d5,f#5,a5] ~ d5 [d5,f#5,a5]@2, ~@4 d5 ~@11", // D F#m D
  C: "~@2 [e5,g#5,b5] ~ [e5,g#5,b5]@2 e5 ~ [e5,g#5,b5] ~ e5 [e5,g#5,b5] ~ e5 [e5,g#5,b5] ~", // E
  D: "~@2 [c#5,e5,g#5] ~ [c#5,e5]@2 c#5 ~ [c#5,e5,g#5] ~ c#5 [c#5,e5,g#5] ~ c#5 [c#5,e5,g#5]@2, ~@4 g#5 ~@11", // C#m
  E: "~ g#6 ~@2 g#6 ~@2 g#6 ~@2 g#6 ~@2 g#6 ~@2", F: "g#6 ~@2 g#6 ~@2 g#6 ~@2 g#6 ~@2 g#6 ~@2 g#6",
})).s("gm_rock_organ").gain(0.43).pan(0.3)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<[f#3!16]!48 ~@16 [f#3!16]!24 ~@16 [f#3!16]!15 [f#3!8 ~@8] [f#3!16]!20 ~@48>")
  .s("gm_synth_brass_1").gain(0.45)

// chords · tenor sax · F#5
const tenor_sax = note(`<
  [[c#4,f#4]@3 ~ [c#4,f#4] ~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@2 [c#4,f#4] ~]!48
  ~@16
  [[c#4,f#4]@3 ~ [c#4,f#4] ~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@2 [c#4,f#4] ~]!24
  ~@32
  [[c#4,f#4]@3 ~ [c#4,f#4] ~@2 [c#4,f#4] ~@3 [c#4,f#4] ~@2 [c#4,f#4] ~]!20
  ~@48
>`).s("gm_tenor_sax").gain(0.36)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@16 A B C D A E F G A B C D A E F G A B C D A E F G A B C D H@2 I J K L K L K L K L K L K L K L K L ~@8 A B C D A E F
  G A B C D H@2 I J K L K L K L K L K L K L K L K L K L K L K L K L ~@24 H@2 I J K L K L K L K L K L K L K L K L K L K L
  K L K L K L K L K L K L K L K L K L K L ~@8
>`.pickRestart({
  A: "[a3,c#4,f#4]", B: "[a3,c#4,e4]@15 ~", C: "[a3,b3,d#4]", D: "[f#3,g#3,c#4]@15 ~", E: "[b3,c#4,e4]@15 ~",
  F: "[g#3,b3,d#4]", G: "[f#3,a3,c#4]@15 ~", H: "[[d4,f#4,a4]@31 ~]/2", I: "[e4,g#4,b4]", J: "[c#4,e4,g#4]@15 ~",
  K: "[f#4,a4,c#5]@8 [a4,c#5,e5]@7 ~", L: "[e4,g#4,b4]@7 ~ [g#4,b4,d#5]@7 ~",
})).s("gm_string_ensemble_2").gain(0.53)

// drums · rim
const rim = s("rim").struct("<~@139 x ~@48>").gain(0.64)

// drums · clap
const clap = s("cp").struct("<~@8 A@24 ~@12 A@3 ~ A@39 ~ A@16 ~@4 A@31 ~ A@40 ~@8>".pickRestart({
  A: "~ x ~ x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@8 C D C D A B A E A B A B A B A B A B A B A B A F A B A B A B A
  B A B A B A B A B A B A B A B A E A B A B A B A B A B A B A B A F ~@4 A B A B G@4 A B A F G@8 A B A B A B A B A B A E
  A B A B A B A B A B A B A B A F G@8 A B A B A B A F A B A B A B A F ~@8
>`.pickRestart({
  A: "x ~@3 x ~@3 x ~@2 x!2 ~@3", B: "x ~@3 x ~@6 x!2 ~@3", C: "x!2", D: "x", E: "~@4 x ~ x!10", F: "x ~@3 x ~ x!10",
  G: "~@4 x ~@6 x!2 ~@3",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@7 A B C B C B C B C B C B C B C B C B C B C B C B C ~@7 A B C B C B C B D B C B C B C B C B C B C B C B C B C B C B
  C B C B C B C B C B C B C B C B C B D B C B C B C B C B C B C B C B C ~@3 A B C B C ~@3 A B C B E ~@8 B C B C B C B C
  B C B ~ B C B C B C B C B C B C B C B C ~@7 F B C B C B C B C B C B C B C B C ~@8
>`.pickRestart({
  A: "~@15 x", B: "~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x", C: "~@2 x ~ x ~@2 x!2 ~@3 x ~ x!2", D: "x",
  E: "~@2 x ~ x ~@2 x ~@8", F: "~@7 x!2 ~@3 x ~ x!2",
})).gain(0.56)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@12 A B A C A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A@5 B A B A@5 B A@11 B A B A B A B A B A C A B A B A B A B A
  B A B A B A B A@7 B A B A B A B A B A B A B A B A B ~@8
>`.pickRestart({
  A: "x!4", B: "x!2 ~@2", C: "x",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@5 A ~ A ~@5 A ~@11 A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@8
>`.pickRestart({
  A: "~@5 x ~@2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@12 A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@8
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@48 A ~@39 A ~@15 A ~@35 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@11
>`.pickRestart({
  A: "x",
})).gain(0.56)

// drums · shaker
const shaker = s("sh").struct("<~@8 A@24 ~@12 A@3 B A@39 B A@51 B A@39 C ~@8>".pickRestart({
  A: "x!16", B: "x", C: "x!15 ~",
})).gain(0.8)

// drums · triangle
const triangle = s("triangles:30").struct("<~@48 [x ~ x!2 ~@4]!16 ~@24 [x ~ x!2 ~@4]!24 ~@28 [x ~ x!2 ~@4]!40 ~@8>")
  .gain(5.57)

stack(
  bass, piano, rock_organ, synth_brass_1, tenor_sax, string_ensemble_2, rim, clap, snare, hihat, hihat_soft, mid_tom,
  open_hat, crash, shaker, triangle
)

More by Bryan Adams