Strudelify

Mes emmerdes

Charles Aznavour

KeyE♭ majorTempo120 bpm
0:00/0:00
// Mes emmerdes — Charles Aznavour
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 synth choir (copy of ch 1 vibraphone)
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 K L M N O@5 D E F G H I J K L M N O@5 P Q@2 R S T@2 U V E F G W I J K L M N X Y@4 D E F G H I J K
  L M N O@5 P Q@2 R S T@2 U V E F G W I J K L M N X Z AA AB@2 AC@2 AD AE AF AG
>`.pickRestart({
  A: "[eb2,bb3,eb4,g4,bb4]@6 [eb2,bb3,eb4,g4,bb4]@2 ~@3 bb2 eb3@3 ~", // Eb
  B: "[d3,b3,f4,g4,b4]@6 [d3,b3,f4,g4,b4]@2 ~@3 d3 g2@3 ~", // G7
  C: "[ab2,c4,eb4,ab4,c5]@3 [g2,bb3,eb4,bb4]@3 [f2,ab3,eb4,ab4]@2", D: "[eb2,eb3,g3,eb4,g4]@5 ~@3",
  E: "[eb2,g4] [g3,bb3] eb2 [g3,bb3,g4]", F: "d2 [g3,b3] g2 [g3,b3,f4]", G: "c2 [g3,c4] c3 [g3,c4,eb4]",
  H: "bb2@4 [eb3,g3]@4 eb2@4 [f2,c4,eb4,ab4]@3 g2", I: "[ab2,c5] [c4,eb4] ab2 [c4,eb4,c5]",
  J: "g2 [c4,e4] c2 [c4,e4,c5]", K: "f2 [c4,f4] g2 [c4,e4,bb4]", L: "ab2 [c4,f4,c5] f2 ~",
  M: "[ab2,c5] [eb4,ab4] ab2 [eb4,ab4,eb5]", N: "g2 [f4,b4] g2 [f4,g4,c5]",
  O: "[c2@4 [g4,c5]@4 c3@4 ~@4 b2@4 [ab3,eb4]@4 b1@3 g4 ab4@3 ~ bb1@2 bb2@4 bb2@2 ~@3 c5 bb4@3 ~@3 bb2@4 bb2@2 ~@3 bb4 ab4@3 ~ ab2@6 g2@6 f2@4, eb5@8 ~@4 [g4,c5]@4 ~@15 bb4@9 ~@7 ab4@9 ~@7 g4@9 ~@8, ~@7 f4@5 ~@8 bb1@4 ~@4 bb1@4 ~@8]/5", // C5 Ab5 C5
  P: "[eb2,g3]@3 ~@5", Q: "[[ab2,b4] [eb4,gb4,b4] ab2 [eb4,gb4] db2 [b3,f4] [ab2,b3,db4] db2, ~@3 b4@3 ~@2]/2",
  R: "[gb2,bb4] [bb3,db4,bb4] gb2 [bb3,db4,gb4]", S: "g2 [bb3,db4,eb4] eb2 ~",
  T: "[[f2,c5] [eb4,a4,c5] a2 [eb4,f4] c3 [a3,eb4] [eb4,f4]@2, ~@3 c5@2 ~ f2 ~]/2", // F5 Adim Ebsus2 Adim Ebsus2
  U: "[f3,eb4,a4]@3 [f3,eb4,a4]@2 [f3,eb4,a4]@3 [f2,c4,eb4]@3 [f2,c4,eb4]@2 [f2,c4,eb4]@3", // F7
  V: "[bb2,ab3,d4,f4,bb4] ~@3", W: "bb2@4 [eb3,g3]@4 eb2@4 [f2,db4,eb4,ab4]@3 g2", X: "c2 [g4,c5] c3 [g4,c5], eb5 ~",
  Y: "[b2@4 [ab3,eb4]@4 b1@4 ~@4 bb1@2 bb2@4 bb2@2 bb1@7 ~@3 bb2@4 bb2@2 ~@3 bb4 ab4@3 ~ ab2@6 g2@6 f2@4, ~@15 [g4,bb4]@9 ~@7 [f4,ab4]@9 bb1@7 [eb4,g4]@9 ~@8]/4", // Ab5 Gm Fm Eb
  Z: "b2 [ab4,eb5] b1 [ab4,eb5]", AA: "b2 [ab4,eb5] b1 [ab4,eb5,f5]",
  AB: "[~ [bb3,eb4,g4,bb4,c5,eb5]@2 ~ [bb3,eb4,g4,bb4,c5,eb5]@2 ~@2 [bb3,eb4,g4,bb4,c5,eb5]@3 [bb3,eb4,g4,bb4,c5,eb5] ~@4, [bb1,bb2]@7 ~]/2", // Cm7 Bb
  AC: "[~ [ab3,d4,f4,ab4,c5,d5]@2 ~ [ab3,d4,f4,ab4,c5,d5]@2 ~@2 [bb3,d4,f4,ab4,c5,d5]@3 [bb3,d4,f4,ab4,c5,d5] ~@4, [bb1,bb2]@7 ~]/2", // Dm7b5 Bb7 Bb
  AD: "~ [eb4,g4,bb4]@2 ~ [eb4,g4,bb4]@2 eb2@2, eb2@3 ~", // Eb
  AE: "[ab2,eb4,ab4,c5]@3 [ab2,eb4,ab4,c5] ~ [ab2,eb4,ab4,c5]@3", AF: "[eb2,eb4,g4,bb4]@2 ~@3 [bb2,bb3] [c3,c4]@2",
  AG: "[eb2,eb3] ~@3", // Eb
})).s("gm_piano").gain(0.36)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A B C D E F G H I J K L@5 A B C D E F G H I J K L@5 M N@2 O P Q@2 R S B C D T F G H I J K U V@4 A B C D E F G H I
  J K L@5 M N@2 O P Q@2 R S B C D T F G H I J K U W X Y Z AA AB AC AD AE AF
>`.pickRestart({
  A: "[eb3,g3,eb4,g4]@5 ~@3", B: "g4 [g3,bb3] ~ [g3,bb3,g4]", C: "~ [g3,b3] ~ [g3,b3,f4]", D: "~ [g3,c4] ~ [g3,c4,eb4]",
  E: "~ [eb3,g3] ~ [c4,eb4,ab4]", F: "c5 [c4,eb4] ~ [c4,eb4,c5]", G: "~ [c4,e4] ~ [c4,e4,c5]",
  H: "~ [c4,f4] ~ [c4,e4,bb4]", I: "~ [c4,f4,c5] ~@2", J: "c5 [eb4,ab4] ~ [eb4,ab4,eb5]", K: "~ [f4,b4] ~ [f4,g4,c5]",
  L: "[~@4 [g4,c5]@4 ~@12 [ab3,eb4]@4 ~@3 g4 ab4@3 bb4@9 ~@3 c5 bb4@3 ab4@9 ~@3 bb4 ab4@3 g4@9 ~@8, eb5@2 ~ [g4,c5] ~@16, ~@7 f4@5 ~@28]/5", // C5 Ab5 C5
  M: "[eb2,g3]@3 ~@5", N: "[[ab2,b4] [eb4,gb4,b4] ab2 [eb4,gb4] db2 [b3,f4] [ab2,b3,db4] db2, ~@3 b4@3 ~@2]/2",
  O: "[gb2,bb4] [bb3,db4,bb4] gb2 [bb3,db4,gb4]", P: "g2 [bb3,db4,eb4] eb2 ~",
  Q: "[[f2,c5] [eb4,a4,c5] a2 [eb4,f4] c3 [a3,eb4] [eb4,f4]@2, ~@3 c5@2 ~ f2 ~]/2", // F5 Adim Ebsus2 Adim Ebsus2
  R: "[f3,eb4,a4]@3 [f3,eb4,a4]@2 [f3,eb4,a4]@3 [f2,c4,eb4]@3 [f2,c4,eb4]@2 [f2,c4,eb4]@3", S: "[d4,f4,bb4] ~@3",
  T: "~ [eb3,g3] ~ [db4,eb4,ab4]", U: "~ [g4,c5] ~ [g4,c5], eb5 ~",
  V: "[~@4 [ab3,eb4]@4 ~@7 [g4,bb4]@9 ~@7 [f4,ab4]@9 ~@3 bb4 ab4@3 [eb4,g4]@9 ~@8]/4", W: "~ [ab4,eb5] ~ [ab4,eb5]",
  X: "~ [ab4,eb5] ~ [ab4,eb5,f5]", Y: "~ [bb4,c5,eb5]@2 ~ [bb4,c5,eb5]@2 ~@2", Z: "[bb4,c5,eb5]@3 [bb4,c5,eb5] ~@4",
  AA: "~ [ab4,c5,d5]@2 ~ [ab4,c5,d5]@2 ~@2", AB: "[ab4,c5,d5]@3 [ab4,c5,d5] ~@4",
  AC: "~ [eb4,g4,bb4]@2 ~ [eb4,g4,bb4]@2 ~@2", AD: "[eb4,ab4,c5]@3 [eb4,ab4,c5] ~ [eb4,ab4,c5]@3",
  AE: "[eb4,g4,bb4]@2 ~@3 bb3 c4@2", AF: "eb3 ~@3",
})).s("gm_string_ensemble_1").gain(0.26).pan(0.3)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@3 A B C D E F G H I F J D K L M N A B C D E F G H I F J D K L M N ~@8 O B C D E F G H I F J D K L M N A B C D E F G
  H I F J D K L M N ~@8 O B C D E F G H I F J D K@2 P@2 Q@2 R S T U
>`.pickRestart({
  A: "eb2@5 ~@3", B: "eb2 ~ eb2 ~", C: "d2 ~ g2 ~", D: "c2 ~ c3 ~", E: "bb2@4 ~@4 eb2@4 f2@3 g2", F: "ab2 ~ ab2 ~",
  G: "g2 ~ c2 ~", H: "f2 ~ g2 ~", I: "ab2 ~ f2 ~", J: "g2 ~ g2 ~", K: "b2 ~ b1 ~", L: "bb1 bb2@2 bb2 bb1@4",
  M: "~ bb2@2 bb2 bb1@4", N: "ab2@3 g2@3 f2@2", O: "[bb2,ab3] ~@3",
  P: "[~ [bb3,eb4,g4]@2 ~ [bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4]@3 [bb3,eb4,g4] ~@4, [bb1,bb2]@7 ~]/2", // Eb Bb
  Q: "[~ [ab3,d4,f4]@2 ~ [ab3,d4,f4]@2 ~@2 [bb3,d4,f4]@3 [bb3,d4,f4] ~@4, [bb1,bb2]@7 ~]/2", R: "eb2@3 eb2",
  S: "ab2@3 ab2 ~ ab2@3", T: "eb2@2 ~@3 bb2 c3@2", U: "eb2 ~@3",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.8)

stack(piano, string_ensemble_1, string_ensemble_1_2)

More by Charles Aznavour