Strudelify

Run to Me

Bee Gees

KeyA majorTempo92 bpm
0:00/0:00
// Run to Me — Bee Gees
// 92 bpm, 4/4, key A 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(92/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 · pad halo · "harm1"
const pad_halo = note(`<
  ~@18 A ~ A ~ A ~@15 A ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~@6
>`.pickRestart({
  A: "a4@5 ~ a4@2 a4@7 ~", B: "b4@3 ~ d5@11 ~", C: "c#5@3 ~ [a4,e5]@3 ~ [a4,e5]@3 ~ [a4,e5]@3 ~", D: "a4@7 ~@9",
})).s("gm_pad_halo").gain(0.39).pan(0.8)

// other · pad halo · "harm1" · soft notes · A5
const pad_halo_soft = note(`<
  ~@82
  [a4@5 ~ a4@2 a4@7 ~]
  ~
  [b4@3 ~ d5@11 ~]
  [c#5@3 ~ [a4,e5]@3 ~ [a4,e5]@3 ~ [a4,e5]@3 ~]
  [a4@7 ~@9]
>`).s("gm_pad_halo").gain(0.09).pan(0.8)

// other · pad halo · "harm2"
const pad_halo_2 = note(`<
  ~@18 A ~ A ~ A ~@15 A ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~ A ~ B C D ~ A ~@6
>`.pickRestart({
  A: "a3@5 ~ a3@2 a3@7 ~", B: "b3@3 ~ d4@11 ~", C: "c#4@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~", D: "a3@7 ~@9",
})).s("gm_pad_halo").gain(0.39).pan(0.3)

// other · pad halo · "harm2" · soft notes · A5
const pad_halo_soft_2 = note(`<
  ~@82
  [a3@5 ~ a3@2 a3@7 ~]
  ~
  [b3@3 ~ d4@11 ~]
  [c#4@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~]
  [a3@7 ~@9]
>`).s("gm_pad_halo").gain(0.09).pan(0.3)

// bass · electric bass pick · "bass"
const bass = note(`<
  A B C D E F A B C D E F G@2 C D E F H I J K L M N O A B C D E F G@2 C D E F H I J K L M N O H I J K L M N O H I J K L
  M N O H I J K L M N O H I J K L M N O H I J P Q ~@4
>`.pickRestart({
  A: "a1", B: "g1", C: "f#1", D: "d1", E: "b1", F: "e1", G: "a1/2", H: "a1@4 f#1@3 ~ e1@4 f#1@2 a1@2",
  I: "c#2 ~ c#2@2 b1@3 ~ g#1@2 g#1@2 g#2@2 c#3@2", J: "d3@4 b2@3 ~ a2@2 a2@2 b2@2 d2@2",
  K: "d2 ~ d2@2 f2 ~ f2@2 a2@2 a2@2 c3@2 d3@2", L: "a2@2 a2@2 f#2@3 ~ g1@2 e2@2 f#2@2 g2@2",
  M: "f#2@2 a#1@2 c#2 ~ f1@2 f#1@2 c#2@2 a#2@2 c#3@2", N: "d3@4 c3@3 ~ a2@2 b1@2 a1@2 f1@2",
  O: "e1 ~ e1@2 g#1 ~ g#1@2 b1@2 b1@2 c#2@2 e2@2", P: "~@4 f2 ~@3 a2@2 ~@6", Q: "a2 ~@7",
})).s("gm_electric_bass_pick").gain(0.36)

// bass · electric bass pick · "bass" · soft notes
const bass_soft = note(`<
  ~@81
  [d2 ~ d2@2 ~@2 f2@2 ~@2 a2@2 c3@2 d3@2]
  [~@2 a2@2 f#2@3 ~ g1@2 e2@2 f#2@2 g2@2]
  [f#2@2 a#1@2 c#2 ~ f1@2 f#1@2 c#2@2 a#2@2 c#3@2]
  [d3@4 c3@3 ~ a2@2 b1@2 a1@2 f1@2]
  [e1 ~ e1@2 g#1 ~ g#1@2 b1@2 b1@2 c#2@2 e2@2]
  ~
>`).s("gm_electric_bass_pick").gain(0.12)

// chords · acoustic guitar nylon · "guitar"
const acoustic_guitar_nylon = note(`<
  A B C D E F A B C D E F G@2 C H I J K L M N O P Q R A B C D E F G@2 C H I J K L M N O P Q R K L M N O P Q R K L M N O
  P Q R K L M N O P Q R K L M N O P Q R K L M N ~@5
>`.pickRestart({
  A: "a2", B: "g2@3 g2", C: "f#2", D: "d2@7 d2", E: "b2 ~", F: "e2 ~", G: "[a2@7 a2]/2", H: "d2@3 d2", I: "b2",
  J: "e2@7 e2", K: "[a3,c#4,e4]@3 [a3,c#4,e4]@5", L: "[g#3,c#4,e4]", M: "[d4,f#4,a4]", N: "[a3,d4,f4]",
  O: "[a3,c#4,e4]@3 [a3,c#4,e4] [c#4,e4,a4]@4", P: "[c#4,e4,a#4] [g#3,b3,f4] [a#3,c#4,e4]@2", Q: "[a3,b3,d4,f4]",
  R: "[b3,c#4,e4,g#4]", // C#m7
})).s("gm_acoustic_guitar_nylon").gain(0.29).pan(0.7)

// chords · acoustic guitar nylon · "guitar" · soft notes · A A#dim Fdim A#dim Bm7b5 C#m7
const acoustic_guitar_nylon_2 = note(`<
  ~@82
  [[a3,c#4,e4]@3 [a3,c#4,e4] [c#4,e4,a4]@4]
  [[c#4,e4,a#4] [g#3,b3,f4] [a#3,c#4,e4]@2]
  [[a3,b3,d4,f4]]
  [[b3,c#4,e4,g#4]]
  ~
>`).s("gm_acoustic_guitar_nylon").gain(0.12).pan(0.7)

// chords · acoustic guitar steel · "guitar"
const acoustic_guitar_steel = note(`<
  A B C D E F A B C D E F G@2 H I J K L M N O P Q R S A B C D E F G@2 H I J K L M N O P Q R S L M N O P Q R S L M N O P
  Q R S L M N O P Q R S L M N O P Q R S L M N T ~@5
>`.pickRestart({
  A: "~@7 a3, e4 e4@2 e4, ~ a3@2 a3@2 a3@2 ~, ~ c#4", B: "~@7 b3, b3@2 b3@3 b3@2 ~, ~ g3@2 g3@5, ~@3 d4",
  C: "~@7 f#4, f#3@3 f#3@3 f#3@2, ~ a3@7, ~ c#4@3, ~@5 f#4@2 ~",
  D: "~@7 a3, a3@7 ~, ~ d4@2 d4@3 d4@2, ~ f#4@3, ~@5 f#3@3",
  E: "~@7 d4, f#3@3 f#3, ~ b3@2 b3@2 b3@3, ~ f#4@3, ~@4 d4@3 ~", F: "~@7 g#3, b3@3 b3@3 b3@2, ~@2 g#3@3 g#3@2 ~, ~ e4",
  G: "[~@15 a3, c#4@5 c#4@2 c#4@4 c#4@5, ~ a3@2 a3@5 a3@2 a3@3 a3@2 ~, ~@2 e4@2 e4@2 e4@3 e4@5 e4@2]/2",
  H: "~@7 a3, c#4 c#4@2 c#4, ~ f#4@2 f#4@2 f#4@3, ~@4 a3@3 ~", I: "~@7 a3, f#3@3 f#3@3 f#3@2, ~ f#4 f#4@2, ~@5 a3@2 ~",
  J: "~@7 d4, b3@3 b3, ~ d4@4 d4@2 ~, ~ f#4@3, ~@3 f#3@5", K: "~@7 g#3, g#3@2 g#3@5 ~, ~ b3@2 b3@3 b3@2, ~@5 e4@3",
  L: "a3@3 a3, [c#4,e4]", M: "[g#3,c#4,e4]", N: "[d4,f#4,a4]", O: "[d4,f4,a4]@3 [a3,d4,f4]@5",
  P: "[a3,c#4,e4] [c#4,e4,a4]", Q: "[a#3,c#4,e4] [g#3,b3,f4] [c#4,e4,a#4]@2", R: "[b3,d4,f4,a4]@3 [b3,d4,f4,a4]@5",
  S: "e4@2 ~ g#4, [b3,c#4], g#4@3 ~, ~ e4", T: "[d4,f4,a4]@3 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.4)

// chords · acoustic guitar steel · "guitar" · soft notes · Dm A A#dim Fdim A#dim Bm7b5 Bsus2
const acoustic_guitar_steel_2 = note(`<
  ~@81
  [~@3 [a3,d4,f4]@5]
  [[a3,c#4,e4] [c#4,e4,a4]]
  [[a#3,c#4,e4] [g#3,b3,f4] [c#4,e4,a#4]@2]
  [[b3,d4,f4,a4]@3 [b3,d4,f4,a4]@5]
  [e4@2 ~ g#4, [b3,c#4], g#4@3 ~, ~ e4]
  ~
>`).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.4)

// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
  ~@18 A B C D A E F G ~@12 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 A E F G A B C D A E F G A B C D ~@5
>`.pickRestart({
  A: "[a3,c#4,e4]!2", B: "[c#4,e4,g#4]", C: "d4@5 ~@2 a3, [f#4,a4], ~@5 d4@3", D: "f4@2 ~ d4, a4, d4@3 ~, ~ f4",
  E: "[a#3,c#4,e4] [g#3,b3,f4] [c#4,e4,a#4]@2", F: "[b3,d4,f4,a4]@3 [b3,d4,f4,a4]@5", G: "[b3,c#4,e4,g#4]",
})).s("gm_string_ensemble_1").gain(0.33).pan(0.8)

// chords · string ensemble 1 · "strings" · soft notes · A A#dim Fdim A#dim Bm7b5 C#m7
const string_ensemble_1_soft = note(`<
  ~@82
  [[a3,c#4,e4]!2]
  [[a#3,c#4,e4] [g#3,b3,f4] [c#4,e4,a#4]@2]
  [[b3,d4,f4,a4]@3 [b3,d4,f4,a4]@5]
  [[b3,c#4,e4,g#4]]
  ~
>`).s("gm_string_ensemble_1").gain(0.13).pan(0.8)

// chords · epiano1 · "e. piano"
const epiano1 = note(`<
  A B C D E F A B C D E F G@2 H D E I J K L M N O P Q A B C D E F G@2 H D E I J K L M N O P Q J K L M N O P Q J K L M N
  O P Q J K L M N O P Q J K L M N O P Q J K L M ~@5
>`.pickRestart({
  A: "[e4,a4,c#5]", B: "b4", C: "~@3 a4, a4@3 ~, ~@3 c#5@5", D: "f#4", E: "[d4,f#4,b4]", F: "e4",
  G: "[~@15 a4, a4@6 a4@9 ~, ~@3 c#5@10 c#5@3, ~ e4]/2", H: "~ a4, f#4", I: "[e4,g#4,b4]", J: "[c#4,e4,a4]",
  K: "[g#3,c#4,e4]", L: "[d4,f#4,a4]", M: "[d4,f4,a4]", N: "[a3,c#4,e4] [c#4,e4,a4]",
  O: "[c#4,e4,a#4] [b3,f4,g#4] [c#4,e4,a#4]@2", P: "d4@3 d4, [b3,f4,a4]", Q: "[b3,c#4,e4,g#4]",
})).s("gm_epiano1").gain(0.39).pan(0)

// chords · epiano1 · "e. piano" · soft notes · A A#dim Fdim A#dim Bm7b5 C#m7
const epiano1_soft = note(`<
  ~@82
  [[a3,c#4,e4] [c#4,e4,a4]]
  [[c#4,e4,a#4] [b3,f4,g#4] [c#4,e4,a#4]@2]
  [d4@3 d4, [b3,f4,a4]]
  [[b3,c#4,e4,g#4]]
  ~
>`).s("gm_epiano1").gain(0.13).pan(0)

// chords · piano
const piano = note(`<
  ~@18 A B C D E F G H ~@12 A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G H A B C I J
  ~@4
>`.pickRestart({
  A: "~ e4, a3", B: "c#4", C: "[f#3,a3,d4] [a3,d4,f#4]", D: "[f3,a3,d4]@3 [f3,a3,d4]@5", E: "~ a3, e3",
  F: "e4 [c#4,g#4,c#5] [f#3,c#4,f#4]@2", G: "[a3,b3,d4,f4]@3 [a3,b3,d4,f4]@5", H: "[e3,g#3,b3,c#4]@3 [g#3,b3,c#4,e4]@5",
  I: "[f3,a3,d4]@3 ~@5", J: "e3",
})).s("gm_piano").gain(0.32).pan(0.2)

// chords · piano · soft notes · Dm C#5 F#5 Bm7b5 C#m7
const piano_soft = note(`<
  ~@81
  [~@3 [f3,a3,d4]@5]
  [~ a3]
  [e4 [c#4,g#4,c#5] [f#3,c#4,f#4]@2]
  [[a3,b3,d4,f4]@3 [a3,b3,d4,f4]@5]
  [[e3,g#3,b3,c#4]@3 [g#3,b3,c#4,e4]@5]
  ~
>`).s("gm_piano").gain(0.08).pan(0.2)

// chords · epiano1 · "e.piano2"
const epiano1_2 = note(`<
  ~@18 A B C D E F C G ~@12 A B C D E F C G A B C D E F C G A B C D E F C G A B C D E F C G A B C D E F C G A B C H ~@5
>`.pickRestart({
  A: "e5", B: "~@3 c#5, c#6, ~ g#5@2 g#5@5, ~ c#5@2 ~", C: "d5", D: "~@3 f5, a5 a5@3, ~ f5@5 ~@2, ~@3 d5@5", E: "a5",
  F: "e5 b5 ~ a#4, ~ c#6", G: "~@3 e5, b5, ~@3 b4@5", H: "~@3 d5@5, a5 a5@3, ~ f5@5 ~@2",
})).s("gm_epiano1").gain(0.22).pan(1)

// chords · epiano1 · "e.piano2" · soft notes
const epiano1_soft_2 = note("<~@81 [~@3 f5] a5 [e5 b5 ~ a#4, ~ c#6] d5 [~@3 e5, b5, ~@3 b4@5] ~>")
  .s("gm_epiano1").gain(0.07).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@10 A ~@4 B ~ C D E D E D E D ~@4 F ~@4 G ~ H ~ D E D E D I D E D E D I D E D J D E D E D K D J D E D E D E D E D I D
  I D E D I D@3 L ~@5
>`.pickRestart({
  A: "~@8 x ~ x!2 ~@2 x!2", B: "x ~@2 x ~@4", C: "~@14 x!2", D: "x ~@2 x!2 ~@3", E: "x ~@2 x!2 ~@2 x", F: "x",
  G: "~ x!2 ~ x!2 ~ x", H: "~@5 x ~ x", I: "x ~@2 x!3 ~ x", J: "x ~@5 x ~ x ~ x!2 ~@2 x!2", K: "x!6 ~ x", L: "x!2",
})).gain(0.22)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@79
// … 79 more lines

More by Bee Gees