Strudelify

Ne Partez Pas Sans Moi

Celine Dion

KeyF majorTempo69 bpm
0:00/0:00
// Ne Partez Pas Sans Moi — Celine Dion
// 69 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 5 epiano1 (copy of ch 3 piano)
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(69/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 · piano
const piano = note(`<
  ~ A B C D E F G H I J@2 K L M N O P Q R S T U V W X Y Z AA AB AC AD AE@2 AF AG AH AI AJ@2 AK AL AM@5 AN AO AP@2 AQ@3
>`.pickRestart({
  A: "c5@2 a4@6 ~@6 f2 ~, [f2,g4]@13 [c4,f4,a4]@2 ~, ~@2 c5@13 ~, ~@8 [f4,a4]@3 c4 c3@3 ~, ~@10 f3@5 ~", // Fsus2 F
  B: "g4@2 g4@2 e4 ~@2 c3, c2@14 c4 ~, e4@8 ~@4 [e4,g4]@3 ~, c4@2 ~@11 d4@2 ~", // Em
  C: "d4@2 ~@6 f4@3 db4@2 [f4,bb4]@2 ~, c4@7 bb3@3 ~@6, [bb2,f4,bb4]@5 ~ bb2@8 ~@2, ~ bb3 bb2 ~@5, ~@3 d4@2 [d4,f4,ab4,bb4]@2 ~@9", // Bb5 Bb7
  D: "[f4,a4]@3 ~ [e4,g4]@4 ~@7 c4, ~ c2@3, ~@8 g4@5 e4@2 ~, ~@11 c4@3 c3@2", // F Em
  E: "[f4,a4]@4 c4@2 ~@8 [f2,f4,a4] ~, f2@13 c4@3, c4@2 ~@2 [f4,a4]@4 c3@7 ~, ~@6 f3@6 f3@3 ~, ~@7 c4@3 [c4,f4,a4]@4 ~@2", // F
  F: "c4@2 ~ c4 [d4,g4] ~@3 c4@3 ~ c2 [d2,c4,d4,gb4,a4]@3, c2@3 ~, [e4,g4]@5 [e4,g4]@3 [e4,g4]@5 ~@3, ~@2 c3@4 c3@4 ~ c4@2 ~@3", // G5 D7 Em
  G: "[g4,bb4]@2 [d4,g4,bb4]@2 [d4,g4,bb4] ~@2 g2, g2@11 d4@2 [d4,g4,bb4]@3, d4 ~@4 d3@3, ~@6 g2 ~", // Gm
  H: "[gb4,a4]@4 a4@4 ~@3 d4 [d2,d3,d4,gb4,a4] [c2,c3,d4,gb4,a4]@3, d2@3 ~", // Gbm D D7
  I: "d4 ~@2 bb3 e4 c4 ~ c3, bb2@6 ~@2 [c3,bb4]@7 ~, [f4,bb4]@4 [d4,f4,bb4]@4 g4@5 [e4,g4]@2 ~, ~ bb3@2 ~@3 c2@2", // C7 Bb5 Bb Em
  J: "[[f4,a4]@4 a4@4 ~@2 f3 ~@3 f3 ~ c4@2 ~@6 [c4,eb4,f4,ab4]@4 ~@2 f2@2, f2@15 f2@15 ~@2, c4@2 ~@2 f4@8 [f4,a4]@3 ~ [eb4,f4,ab4]@3 f3@4 ~@9, ~@4 c4@2 ~@2 [g4,c5]@7 ~@3 c4@3 [c4,eb4,f4,ab4]@3 ~@4 [c4,eb4,f4,ab4]@4, ~@9 a4@3 ~ c4@2 c3@7 c3@9 ~]/2", // F Fm7 F Fm7 C5 Fm7
  K: "c4@2 ~@6 c4@2 ~@4 c3 ~, c2, e4@6 c3@4 c3 c4@2 [c4,e4,g4]@2 ~, g4@4 d4@11 ~, ~ c3 [c4,g4]@2 [e4,g4]@2 c3 ~", // C C5 Em
  L: "c4@2 c4@2 ~@4 c5 ~@2 [a4,c5] ~@2 [f3,f4]@2, f2, [f4,a4]@4 [c4,f4,a4]@3 c3@9, ~@6 f3@2 g4@5 g4@3, ~@9 [a4,c5] f3@2 [a4,c5]@4", // Am F Am
  M: "[g4,c5]@4 ~@3 c4 [d4,g4] ~@5 c3@2, c3@9 [e4,g4]@2 [e4,g4]@2 ~ c4 ~, e4 ~@3 [e4,g4]@5 d4@4 d4@2 ~, ~@6 c2@9 ~, ~@5 c3!2 ~", // C5 G5 Em
  N: "[d4,f4,bb4]@4 f4@2 ~@2 [db4,f4,bb4]@3 ~@3 db4 ~, bb2@8 bb2@7 ~, ~@4 d4@7 db4@2 [f4,bb4]@2 ~, ~ bb4 ~@2, ~@6 bb3@4 ~@2 bb3@3 ~", // Bb Bbm Bb5
  O: "[c4,f4,a4]@2 c4 ~ c4@2 c4@2 g4@3 ~@3 c3@2, f2@11 ~ c3@2 ~@2, ~ c2@3, ~@4 e4@7 ~@2 c4@2 ~, ~ g4 ~@2", // F
  P: "c4@2 c4@2 c4@2 ~@2 c3@2 [f4,a4,c5] ~ g4 ~ [f3,f4]@2, f2, [f4,a4]@2 [f4,a4]@3 ~ c5@2, ~@6 f3@5 ~ [f3,f4]@2 ~@2, ~@7 c4@4 ~@2 a4@3", // F
  Q: "e4!2 ~@2 c4 ~@2 c3, c5@15 ~, c3@5 c3@2 ~, g4@4 [c4,e4,g4]@4 [e4,g4]@4 c2@3 ~, ~@6 c2@5 c4@2 [c4,e4,g4]@2 ~", // C Em C
  R: "[d4,bb4]@4 ~ d4 [d4,bb4] ~ [bb3,db4,bb4]@4 db4 [bb3,db4,bb4]@2 ~, [bb2,f4]@6 f4@2 f4@7 ~, ~@4 bb3@3 bb2@8 ~", // Gm Bbm Bb5
  S: "c4@2 c4@2 c4@2 c4@2 [c3,c4,d4,g4]@3 ~ c3@2 c3@2, [f2,f4,a4] c2@3, ~@4 e4@7 [c4,e4,g4]@4 ~, ~@4 g4@4 ~@6 c4 ~", // Csus2 F C
  T: "c4!2 ~@2 c4 ~@2 f3, f2@11 c4@2 [c4,f4,a4]@2 ~, [f4,a4]@4 [c4,f4,a4]@4 [f4,a4]@4 f2@3 ~, ~@3 f3@4 ~, ~@10 c3@5 ~", // F
  U: "[f4,g4,bb4]@4 [d4,f4,g4,bb4]@3 ~ e4@4 [c4,e4,g4,bb4]@3 ~, g2@15 ~, d4@2 ~@6 [c2,d4]@7 ~, ~@4 c4 ~@3", // Gm7 C7 Csus2
  V: "[f4,a4]@4 [f4,a4]@4 c4@2 ~@5 c4, f2, c4 ~ c4 ~ [f4,a4]@2 c3@2, ~@5 f3@2 f3, ~@11 c4@2 [c4,f4,a4]@3", // F
  W: "[e4,g4]@4 ~@4 [c4,g4]@3 ~@3 c3@2, c3@10 ~ c4@2 c4@3, c4 ~@3 e4@7 [e4,g4]@5, ~@4 [c4,g4]@4 d4@7 ~, ~@3 c2@3 c2@2", // Em C5 Em C5
  X: "f4 ~@3 db4 ~@2 bb2, [bb2,bb4]@5 [f4,bb4]@2 bb3@3 bb3@4 bb4 ~, d4 ~ d4@2 bb3@2 bb2@5 db4@4 ~, ~@3 f4@2 d4@10 ~, ~@8 [f4,bb4]@4 bb2 f4@3", // Bb Bb5
  Y: "c4@2 c4@2 c4@2 c4@2 ~@3 c4@2 [f4,a4]@2 ~, [f2,f4,a4]@4 ~ c3 ~@2, ~ c2@3, ~@2 [e4,g4]@2 [e4,g4,bb4]@3 ~", // F Em Edim
  Z: "[f4,a4]@4 ~@4 c4@2 ~@4 f2 ~, f2@11 c4@2 [c4,f4,a4]@2 ~, ~@2 [c4,f4,a4]@2 [f4,a4]@2 f2 ~, ~@6 f3@9 ~, ~@10 c3@5 ~", // F
  AA: "c4 ~@4 c3 ~ d3, c2@11 ~ [d2,c4,d4,gb4,a4]@4, [e4,g4] [c4,e4,g4]!2 ~, ~ c3@2 c3@2 ~@3", // D7 Em C
  AB: "d4 ~ d4@2 d4@2 ~@2 [d4,g4,bb4]@2 g3 ~@3 [g2,bb4]@2, g2@7 ~, [g4,bb4]@4 [g4,bb4]@4 ~@3 d4@2 [d4,g4]@3, ~@6 d3@5 ~ d3@4", // Gm G5
  AC: "d4@2 d4@2 ~@4 d4@2 d4@2 [d4,gb4] [c3,c4,e4,g4]@3, d2@13 c2 ~@2, a4 ~, ~ d3@2 d3@2 ~@3, ~ gb4 [gb4,a4] ~", // D C Gbm
  AD: "d4 ~ d4@2 ~@2 bb3@2 ~@2 c4@2 ~@2 c4@2, bb2@8 [c3,bb4]@7 ~, [f4,bb4] [d4,f4,bb4] [e4,g4] [c2,e4,g4]", // C7 Bb5 Bb Em C
  AE: "[[f4,a4]@4 ~@3 c4 [c4,f4,a4]@2 f3 ~@9 [c4,eb4,f4,ab4]@4 [c4,eb4,f4,ab4]@4 ~@2 f2@2, f2@7 f2@8 ~, ~@4 [c4,f4,a4]@4 ~@3 c4@2 [c4,f4,a4]@3 [c4,eb4,f4,ab4]@4 ~@8 [c4,eb4,f4,ab4]@4, ~@3 f3@2 ~ c3@2 ~ f3@2 ~@5]/2", // F Fm7 F Fm7
  AF: "c4 ~@11 [c4,e4,g4]@2 c3@2, [c2,f4], g4 [c4,e4,g4]!2 ~, ~ c3@2 c3@2 c3@2 ~", // C F5 C
  AG: "c4!3 ~@4 f3, f2, [f4,a4]!2 [c4,f4,a4]!2, ~@3 f3@4 ~, ~@5 c3@3", // F
  AH: "c4 ~ c4@2 ~@8 [c4,e4,g4]@2 c3@2, c2@15 ~, [e4,g4] [c4,e4,g4]!2 ~, ~@3 c3@2 c3@2 ~", // C Em C
  AI: "d4@2 d4@2 f4@2 ~@2 db4@2 db4@2 [db4,f4]@2 [db4,bb4] ~, bb2@6 bb2@9 ~, [f4,bb4]@4 d4@11 ~, ~@2 bb4@2 bb4@3 ~, ~@4 f4@2 ~ f4", // Db Gb Bb5
  AJ: "[c4@2 c4@2 [e4,g4]@4 ~@4 [c4,e4,g4]@2 ~@2 [f4,a4]@4 c4@2 c4@2 c4@2 ~@4 f2 ~, [f2,f4,a4]@14 ~@2 f2@13 [c4,f4,a4]@2 ~, ~@4 c2@27 ~, ~@4 c4@2 ~@2 [c4,e4,g4]@4 ~@4 c4@2 ~@2 [f4,a4]@4 [f4,a4]@3 c4 c3@3 ~, ~@10 c3@4 c3@12 f3@5 ~]/2", // Em C F C F
  AK: "[e4,g4]@2 ~@4 [c4,e4,g4] c3, c2@15 ~, c4 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 ~@2, ~@3 c3@2 c3@2 ~", // Em C
  AL: "d4!2 ~@2 db4!4, bb2@6 bb2@9 ~, [f4,bb4]@4 d4@11 ~, ~ [f4,bb4]!3", // Bb5
  AM: "[c4@2 c4@2 [c4,e4,g4]@2 c3@2 b3@2 b3@2 [b3,d4,g4]@2 ~@2 c4@2 c4@2 ~@10 c3@2 c4@2 c4@2 ~@2 c3@2 c4@2 ~@3 [c4,g4] c3@2 [f4,a4]@4 ~@4 c4@2 ~@2 f2 ~@3 c4@2 c4@2 ~@4 c4@2 ~@4 c3@2, c2@8 g2@7 ~ c2@27 c4@2 ~@3 f2@10 c3@6 [e4,g4]@4 [c4,e4,g4]@2 c3@2 [e4,g4]@2 c3 c4 c3 [c4,e4,g4]@2 ~, [e4,g4]@4 ~@4 [d4,g4]@4 ~@2 c3@8 c3@4 c3@4 ~@2 c3@6 ~@4 c3@2 c2@15 c4@2 c4@3 c2@15 ~, ~@16 [e4,g4]@4 [c4,e4,g4]@4 [c4,e4,g4]@4 [c4,e4,g4]@4 [e4,g4]@4 [c4,e4,g4]@4 [e4,g4]@5 e4@2 ~ c4@2 ~@2 [c4,f4,a4]@4 [f4,a4]@5 [f4,a4]@18 ~, ~@54 f3@7 ~ f2@17 ~]/5", // C G C5 F Em C Em C …
  AN: "d4!2 [d4,f4,bb4] bb2 db4!2 [db4,f4,bb4] bb2, bb2@3 ~ bb2@3 ~, [f4,bb4] ~ [f4,bb4] ~", // Bb Bbm Bb5
  AO: "c4@2 c4@2 [c4,f4,a4]@2 [c4,f4] ~ d4@2 b3@2 [b3,d4,f4,g4]@2 g2@2, f2@3 f2 g2@3 ~, [f4,a4] ~ [f4,g4] ~, ~@8 b3 ~@7", // F F5 G7 F Fsus2
  AP: "[c4@2 c4@2 [c4,e4,g4]@4 [c4,e4,g4]@3 c4 ~@4 c4@2 c4@2 [f4,a4]@3 ~ [db3,db4,f4,ab4]@3 ~ [eb2,eb3,eb4,g4,bb4]@3 ~, c2@16 [f4,a4]@4 c4@3 db2@4 ~@5, [e4,g4]@4 ~@8 c3@2 c3@13 ~@5, ~@13 [e4,g4]@14 ~@5, ~@13 c4@2 ~ f2@11 ~@5]/2", // C F Db Eb F Em
  AQ: "[[f4,a4]@4 c4@2 ~@6 [c4,f4,g4]@2 [f3,c4,a4] ~ [f3,c4,f4,a4]@17 ~@15, f2@5 [f2,c3]@6 ~@5, c4 ~ a4@5 ~@17, ~@4 f4@3 c4 c3@2 f3@4 ~@34, ~@6 f3@3 f4@2 c3@4 ~@33]/3", // F Csus4 F F5
})).s("gm_piano").gain(0.3).pan(0.7)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A B C D E F G H I J K L M N O P Q ~ R S T U V W ~ X Y Z AA AB AC Y AD ~ AE ~ AF AE AG AH AI ~@2 AJ E T AK AL AM AN
  AO ~@2
>`.pickRestart({
  A: "~@4 f3@2 f3@4 ~@5 c4", B: "~@5 c3@2 ~, ~ c4@6 ~, ~@4 d4@9 ~@3, ~@3 c3@2 e4 ~@2, ~@2 g4 ~",
  C: "~@4 bb3@3 f4 [db4,bb4]@2 bb3 ~@3 bb2 ~, ~@12 bb3@3 ~, ~@13 db4@2 ~", // Gb
  D: "c4@2 c4 ~ c4@2 ~@4 c3@2 ~ g4@2 ~, f2@15 ~, ~@6 c4@5 ~ c3@2 ~@2, ~@8 bb4@7 ~, ~@8 e4@5 ~@3", E: "~ c4 ~@6",
  F: "~@7 c4 ~@2 c3@3 ~@3, ~@4 c4@3 ~@9, ~@5 d4@8 ~@3", G: "~@2 d4@2 ~@2 g3@5 ~ a2@4",
  H: "d4!2 ~@3 d3 ~@2, ~ d3@2 d3@2 ~@3, ~ [d4,gb4] [d4,gb4,a4] ~", I: "~@2 d4@2 ~@3 d4 ~@3 e4@2 c4@2 ~, ~@3 bb2 ~@4",
  J: "~@2 c4@2 ~@2 f3@4 ~ [c3,f3]@4 ~, ~@6 c4@7 ~@3", K: "~@7 f3@3 f3@6", L: "~@2 c4@2 ~@4 a4@7 ~",
  M: "~@8 a4 ~@3 f3@2 ~@2", N: "~@2 e4@2 ~@4 c4@5 [e4,f4,g4]@2 ~", O: "~@6 f4@2 ~@2 bb3 ~@2 db4 ~@2, ~@4 ab4@7 ~@5",
  P: "~@8 [c4,d4]@2 c3 [e4,g4]@4 ~, ~@11 c4@2 ~@3", Q: "~@13 g4@3", R: "~@5 bb4 ~@6 bb4 ~@3", S: "~@6 c3@2 ~@2 c3 ~@5",
  T: "~@15 d4", U: "~@2 d4@2 ~@2 d4 ~@3 c4@2 ~@2 c4 ~, ~@2 [g4,bb4] ~", V: "~ c4 ~ c4 ~@4", W: "~ c4 ~@3 c3@2 ~",
  X: "~@15 c4, ~@6 c3!2, ~@13 c4@2 ~", Y: "c4@2 c4@2 ~@11 c4", Z: "~@2 c4@2 ~@7 c4 e4 ~@2 d4",
  AA: "~@6 d4@2 ~@7 d4, ~@4 f4@7 ~@5", AB: "~@4 d4@2 d4@2 ~@2 d3@2 a4 ~@3", AC: "~@7 d4 c4 ~@3 c4@2 ~@2",
  AD: "~@3 f3@2 f3@3", AE: "~@3 c4 ~@4", AF: "~@3 f4 ~@4", AG: "~@2 c4@2 ~@11 c4", AH: "~@2 c4@2 ~@10 d4 ~",
  AI: "~@7 f4 ~@8", AJ: "~@15 c4", AK: "~@4 ab4@3 f4 ~@6 db4 ~", AL: "~@5 d4 ~@2", AM: "~@6 c3@4 c3@2 ~@3 c4",
  AN: "~@8 a4@3 ~@5", AO: "~@2 c4@2 ~@5 c4@3 ~@2 [f4,g4] ~",
})).s("gm_piano").gain(0.12).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@13 A B C@2 D E F@2 G H I J K@2 I L@2 M N@3 O P@2 Q@2 G R S T U@2 V R W X Y Z AA@2 ~
>`.pickRestart({
  A: "[f2,f3,c4,f4,a4]@15 ~", B: "[e2,e3,g4], [c4,e4]@7 ~",
  C: "[[d2,d3,d4]@7 ~ [db2,db3,db4]@6 ~@2 a4@4 [e4,g4]@11 ~, f4@5 ~@3, bb4@14 ~@2 [c3,c4]@15 ~, ~@16 c2@13 ~@3]/2", // D Db Em C
  D: "[f3,c4,f4,a4]", E: "[e2,e3,c4,e4,g4]@15 ~",
  F: "[[d2,d3,d4]@7 ~ [db3,db4]@6 ~@2 a4@4 [e4,g4]@10 ~@2, f4@19 ~@13, bb4@14 ~@2 c2@11 ~@5, ~@4 db2@4 [c3,c4]@7 ~]/2", // D Db Em C
  G: "[f2,f3,a3,c4,f4]@15 ~", H: "[g2,d4]@8 c4@4 c4@3 ~, g3@15 ~, bb3@13 ~@3, ~ [c2,e4]", I: "[a3,f4]", J: "[g3,e4]",
  K: "[d4@2 db4@2 ~ [e3,g3]@3, f3@5 ~@3, ~ c4]/2", L: "[[g3,e4]@11 ~ gb3@4 ~@4 bb3@9 ~@3, ~@3 d4@5, ~@8 g3@7 ~]/2",
  M: "[gb3,a3,d4]@15 ~", N: "[[bb3,d4,f4]@8 [g3,e4]@8 a3@14 ~@2 ab3@13 ~@3, ~@8 c4@39 ~, ~@8 eb4 ~@7 f4@28 ~@4]/3",
  O: "~@4 [c2,c3]@3 ~, [c4,e4], g3@7 ~", P: "[[f2,f3,a3] [e2,e3,g3], c4@31 ~, f4@7 ~ e4@7 ~]/2",
  Q: "[[d2,d3,bb3,d4]@7 ~ [db2,db3,db4]@7 ~ a3@3 ~ [g3,e4]@10 ~@2, f4@19 ~@13, ~ c4, ~@16 [c2,c3]@13 ~@3]/2", // Gm Db C
  R: "[e2,e3,g3,c4]@15 ~, e4@13 ~@3", S: "[d2,d3,bb3,d4]@7 ~ [db2,db3,bb3,db4]@7 ~, f4@15 ~",
  T: "[c2,c3,c4,e4] [g2,b3,d4], g3@15 ~", U: "[[c3,g3,c4,e4]@31 ~, c2@29 ~@3]/2", V: "[f2,f3,a3,c4,f4]",
  W: "[d2,d3,bb3,d4]@7 ~ [db2,db3,bb3,db4]@6 ~@2, f4", X: "[c2,c3,a3]@8 [g2,g3,b3,d4]@7 ~, f4@7 ~, c4@3 ~@5",
  Y: "[g3,c4,e4], [c2,c3]@7 ~", Z: "[f2,f3,a3,c4]@7 ~ [db2,db3,ab3,db4]@3 ~ [eb3,bb3,eb4]@3 ~, f4",
  AA: "[[f2,f3,c4]@23 ~@9, a3@21 ~@11]/2", // F5
})).s("gm_string_ensemble_2").gain(0.36)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@15 A B C D E ~@2 F ~@3 G ~@9 H I ~@12 J K@2 ~>".pickRestart({
  A: "~@7 gb2 ~@8", B: "~@15 [b2,f4]", C: "f2", D: "~@15 [f2,bb4]", E: "ab4 ~@15", F: "~ c3", G: "a3 ~@3", H: "~@15 d4",
  I: "~@4 bb3@3 ~", J: "~@12 eb2@3 ~", K: "[f4@23 ~@9]/2",
})).s("gm_string_ensemble_2").gain(0.12)

// drums · claves
const claves = s("clave:2").struct("<[x!4] ~@53>").gain(1.61)

stack(piano, piano_soft, string_ensemble_2, string_ensemble_2_soft, claves)

More by Celine Dion