Strudelify

Fading Like a Flower (live Brussels 22 10 2001)

Roxette

KeyC majorTempo102 bpm
0:00/0:00
// Fading Like a Flower (live Brussels 22 10 2001) — Roxette
// 102 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "strings1" named as a string part, played on string ensemble 1 (its piano patch is not one); ch 1 "bass" named as a bass, played on electric bass finger (its piano patch is not one); ch 3 "guitar" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 11 "synth strings" named as a string part, played on synth strings 1 (its piano patch is not one); ch 12 "trumpets" named as a brass, played on trumpet (its piano patch is not one); ch 13 "horns" named as a brass, played on brass section (its piano patch is not one)
// note: Full arrangement: all 98 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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 · string ensemble 1 · "strings1"
const string_ensemble_1 = note(`<
  ~@4 A B A C ~@8 D E D E F G H@2 I J I K I J I K ~@4 L M N ~ D E D E F G H@2 I J I K I J I O P Q R Q P S T Q ~@4 I J I
  K I J I U V J V K V J I W X@4 A B A C A B A C Y@2
>`.pickRestart({
  A: "[e3,a3,e4]@5 ~ [c3,f3,c4]@5 ~", B: "[d3,g3,d4]@19 ~@5", C: "[d3,g3,d4]@10 ~@2 [c3,f3,c4]@5 ~ [d3,g3,d4]@5 ~",
  D: "[f3,g3]@7 ~@2 [e3,g3]@7 ~@2 [e3,g3]@5 ~", E: "[e3,a3,d4]@7 ~@2 [e3,a3,c4]@13 ~@2",
  F: "[d3,g3,b3]@7 ~@2 [d3,g3,b3]@13 ~@2", G: "[d3,g3]@7 ~@2 [d3,g3]@13 ~@2",
  H: "[[d3,b3]@7 ~@2 d3@12 [b3,d4]@13 ~@14, ~@9 b3@10 ~@29]/2", I: "[e3,a3]@5 ~ [c3,f3]@5 ~",
  J: "[d3,g3]@5 ~ [d3,g3]@5 ~", K: "[d3,g3]@10 ~@2 [c3,f3]@5 ~ [d3,g3]@5 ~", L: "[a4,a5]@5 ~ [g4,g5]@5 ~",
  M: "[f#4,f#5]@5 ~ [f4,f5]@5 ~", N: "[e4,e5] ~@3", O: "[d3,g3]@10 ~@2 [c3,f3,c4]@5 ~ [d3,g3,d4]@5 ~",
  P: "[c4,e4,g4]@19 ~@5", Q: "[g3,b3,d4]@11 ~ [a3,d4,f4]@10 ~@2", R: "[a3,c4,e4]@11 ~",
  S: "[g3,b3,d4]@7 ~@5 [a3,d4,f4]@10 ~@2", T: "[a3,c4,e4]@23 ~", U: "[d3,g3]@10 ~@2 [c3,c4]@5 ~ d3@5 ~",
  V: "[e3,g3]@5 ~ [c3,f3]@5 ~", W: "[d3,g3]@5 ~@7",
  X: "[[a4,a5]@5 ~ [g4,g5]@5 ~ [f#4,f#5]@5 ~ [f4,f5]@5 ~, a2@43 ~@5]/2", Y: "a2/2",
})).s("gm_string_ensemble_1").gain(0.41)

// bass · electric bass finger · "bass"
const bass = note(`<
  ~@4 A B A C D E F G D E H I J K J K L@3 M N O N C N O N C D E F G D E H I J K J K L@3 M N O N C N O N C P Q R Q P Q R
  Q ~@4 N O N C N O N S T O T C T O N U V@4 A B A C A B A C W@2
>`.pickRestart({
  A: "a2@10 ~@2 f2@2 ~ f2@5 ~ f2@2 ~", B: "g2@5 ~ g2@4 g2 ~ g2@2 ~ g2@5 ~ g2@2 ~", C: "g2@7 ~@2 g2@2 ~ f2@5 ~ g2@5 ~",
  D: "a1@10 ~@2 c2@7 ~@2 c2@2 ~", E: "d2@10 ~@2 f1@7 ~@2 g1@2 ~", F: "a1@4 a2@4 ~ a2@5 ~ a2@5 ~ g1@2 ~",
  G: "a1@4 a2@4 ~ a2@5 ~ c2@7 ~@2", H: "a1@4 a2@4 ~ a2@8 ~ c2@2 ~ d2@2 ~", I: "a1@4 a2@4 ~ a2@5 ~ a1@2 ~ a2@5 ~",
  J: "c3@7 ~@2 c3@7 ~@2 c3@5 ~", K: "a2@7 ~@2 a2@7 ~@2 a2@5 ~", L: "g2@7 ~@2 g2@7 ~@2 g2@5 ~",
  M: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~", N: "a2@7 ~@2 a2@2 ~ f2@5 ~ f2@5 ~",
  O: "g2@7 ~@2 g2@2 ~ g2@5 ~ g2@5 ~", P: "c3", Q: "g2@12 d3@11 ~", R: "a2", S: "g2@10 ~@2 f2@5 ~ g2@5 ~",
  T: "c2@7 ~@2 c2@2 ~ f2@5 ~ f2@5 ~", U: "g2@2 ~ g2@5 ~ g2@2 ~@13", V: "[a2@43 ~@5]/2", W: "a1/2",
})).s("gm_electric_bass_finger").gain(0.41)

// other · electric guitar clean · "guitar"
const electric_guitar_clean = note(`<
  ~@2 A B C D C E ~@8 F G F G H I J@2 K L K M K L K M ~@8 F G F G H I J@2 K L K M K L K N O P Q P O P Q P A B A R K L K
  M K L K S T L T M T L K U V W V W C D C E C D C E X@2
>`.pickRestart({
  A: "~@3 d4@2 d#4 d4 ~ c4 c4@3 c4@2 ~ c4@3 a3@2 b3 a3@3", B: "~@3 d4@2 d#4 d4 ~ c4 c4@2 ~ c4@6 d4@5 ~",
  C: "~@3 d4@2 e4 d4 ~ c4 c4@3 c4@2 ~ c4@3 a3@2 b3 a3@3", D: "~@3 d4@2 e4 d4 ~ c4 c4@2 ~ c4@6 g3@5 ~",
  E: "~@3 d4@2 e4 d4 ~ c4 c4@2 ~ c4@6 d4@5 ~", F: "g3@7 ~@2 g3@7 ~@2 g3@5 ~", G: "[a3,d4]@7 ~@2 [a3,c4]@13 ~@2",
  H: "[g3,b3]@7 ~@2 [g3,b3]@13 ~@2", I: "g3@7 ~@2 g3@13 ~@2", J: "[b3@7 ~@2 b3@10 ~@2 [b3,d4]@13 ~@14]/2",
  K: "a3@5 ~ f3@5 ~", L: "g3@5 ~ g3@5 ~", M: "g3@10 ~@2 f3@5 ~ g3@5 ~", N: "g3@10 ~@2 [f3,c4]@5 ~ [g3,d4]@5 ~", O: "c4",
  P: "g3@12 d4@11 ~", Q: "a3", R: "~@3 d4@2 d#4 d4 ~ c4 c4@2 ~@13", S: "g3@10 ~@2 c4@5 ~@7", T: "g3@5 ~ f3@5 ~",
  U: "g3@5 ~@7", V: "[a4,a5]@5 ~ [g4,g5]@5 ~", W: "[f#4,f#5]@5 ~ [f4,f5]@5 ~", X: "a3/2",
})).s("gm_electric_guitar_clean").gain(0.45)

// other · piano · "backup"
const piano = note(`<
  ~@10 A@3 ~ A@3 ~@7 B@2 C@2 D@2 E@2 ~@2 F@2 G@3 ~@9 B@2 C@2 D@2 E@2 ~@12 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 H I H I ~ J
  ~@3 J ~@4
>`.pickRestart({
  A: "[~ f6@4 ~]/3", B: "[~@4 c5 ~ e5@2 ~ e5@2 ~ c5!2 ~ c5@2 ~ c5 e5@2 ~ d5@6 ~@20]/2",
  C: "[~@4 a4 ~ e5@2 ~ e5@2 ~ c5!2 ~ c5@2 ~ c5 e5@2 ~ d5@6 ~@20]/2",
  D: "[~@4 e5 ~ e5@2 ~ e5@2 ~ c5!2 ~ c5@2 ~ c5 e5@2 ~ d5@6 ~@20]/2",
  E: "[~@4 a4 ~ e5@2 ~ e5@2 ~ c5!2 ~ c5@2 ~ c5 e5@2 ~ d5@11 ~@15]/2", F: "~ a4 ~ a4",
  G: "[~@8 [e4,e5] ~@3, [a4,a5]@7 ~@5 [f#4,f#5]@7 ~@17, ~@6 [g4,g5]@7 ~@5 [f4,f5]@7 ~@11]/3", // E A F# G F
  H: "[a4,a5]@5 ~ [g4,g5]@5 ~", I: "[f#4,f#5]@5 ~ [f4,f5]@5 ~", J: "b3 ~@7",
})).s("gm_piano").gain(0.41)

// other · synth strings 1 · "synth strings"
const synth_strings_1 = note("<~@21 A ~ B C ~@5 D@2 ~@13 A ~ B C ~@7 E F@2 G@2 H@2 I@2 ~@33>".pickRestart({
  A: "g5 d5", B: "g5@11 ~ d5@11 ~", C: "c5@5 ~@19", D: "a3/2", E: "e4@5 g4 e4 a4",
  F: "[g4 b4 a4 c5 b4 e5 b4 a4@7 b4 c5]/2", G: "[c5@3 d5@3 b4@3 a4@2 ~ a4@3 b4@3 f4@3 e4@18 g4@3 e4@3 a4@3]/2",
  H: "[g4@3 b4@3 a4@3 c5@3 b4@3 e5@3 b4@3 a4@21 b4@3 c5@2 ~]/2",
  I: "[c5@3 d5@3 b4@3 a4@2 ~@2 a5@2 ~ d5@2 ~ f4@2 ~ a3@2 ~@24, ~@12 [a4,d6]@3 [b4,f5]@3 [e4,a4]@2 ~ d4@7 ~@20]/2", // D5 Bdim A5
})).s("gm_synth_strings_1").gain(0.41)

// other · trumpet · "trumpets"
const trumpet = note("<~@56 A ~@3 B ~@15 A ~@3 B ~@17>".pickRestart({
  A: "~ g4 c5 e5@5", B: "~@3 g4@3 c5@3 e5@14 ~",
})).s("gm_trumpet").gain(0.42)

// other · brass section · "horns"
const brass_section = note("<~@58 A ~@3 B@2 ~@14 A ~@3 B@2 ~@14>".pickRestart({
  A: "~@3 e3@2 ~ a3@3 c4@14 ~", B: "[~@3 e3@2 ~ a3@3 c4@39]/2",
})).s("gm_brass_section").gain(0.42)

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

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@7 A ~@7 B ~@7 C ~@7 D ~@7 B ~@7 C ~@7 D ~@7 C ~@3 C ~@7 C ~@11 A ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@23 x", B: "~@21 x!2 ~", C: "~@5 x", D: "~@22 x!2",
})).gain(0.51)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@7 B ~@15 B ~@7 B ~@15 B ~@31 A ~@3 A ~@3 A ~@2>".pickRestart({
  A: "~@21 x!2 ~", B: "~@19 x!2 ~@3",
})).gain(0.46)

// drums · open hat
const open_hat = s("oh").struct("<[x!4]!67 [x!2 ~ x] [x!4]!15 [x!2 ~@2] [x!4]!12 ~@2>").gain(0.26)

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A
  ~@7 A ~@3 A ~@3 A ~
>`.pickRestart({
  A: "x",
})).gain(0.31)

stack(
  string_ensemble_1, bass, electric_guitar_clean, piano, synth_strings_1, trumpet, brass_section, kick, rim, snare,
  low_tom, hihat, mid_tom, open_hat, crash
)

More by Roxette