Strudelify

Cupidon s'en fout

Brassens Georges

KeyA minorTempo160 bpm
0:00/0:00
// Cupidon s'en fout — Brassens Georges
// 160 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 184 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): m‚lodie.
setcpm(160/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 · acoustic guitar nylon · "Alto"
const acoustic_guitar_nylon = note(`<
  A B C D E B C F G@4 H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S@2 B C F T@2 H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S@2 B C F T@2
  H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S@2 B C F T@2 H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S@2 B C F T@2 H@2 I@2 J K L@2 M@2
  N@2 O P Q@2 R S@2 B C F T@2 H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S@2 B C F T@2 H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S@2 B C
  F E B C F U@2
>`.pickRestart({
  A: "~@2 a4 b4 c5@2 b4@2, [c4,e4]", B: "c5 [c4,f4,a4] b4 [b3,d4,g4]", C: "e4@2 c4 d4 e4@2 [g3,c4]@2, ~ g3 ~@2",
  D: "d4 [f3,g3,d4] e4 [f3,g3,d4]", E: "a4@2 a4 b4 c5@2 [c4,e4,a4]@2, ~ [c4,e4] ~@2",
  F: "d4 [f#3,a3,d4] e4 [g#3,b3,e4]", // D E
  G: "[~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] [a3,c4] [b3,d4], a4@13 ~@3]/4", // C Am Bm
  H: "[[a3,c4,e4]!2 e4 [a3,c4] ~ a3 c4 [a3,c4,e4], ~@3 e4@2 ~@3]/2", // Am
  I: "[f4 [a3,c4] ~ [a3,c4] ~ [a3,c4]!2 [b3,d4], ~ e4@4 ~@3]/2", J: "[g3,c4,e4]!2 g4 [g3,c4,f4]",
  K: "~ [g3,c4] c4 [g3,c4,e4], e4 ~", // C5 C
  L: "[~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 ~@3 c4, d4@10 ~@2 b3@3 ~, ~@7 [f#3,a3]]/2", // F#m
  M: "[d4 [g#3,b3,d4] d4 [g#3,b3] ~ g#3 b3 [g#3,b3,d4], ~@3 d4@2 ~@3]/2", // G#dim G#m G#dim
  N: "[g4 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3] e4 [g#3,b3,e4], ~ d4@4 ~@3]/2", O: "a4 [c4,e4,a4] b4 [c4,e4,c5]",
  P: "b4@4 ~ a4@5 ~@2 [b3,d4]@4, ~@4 [b3,d4]@4 ~@3 g4@5", // Bm
  Q: "[~ [g3,c4] ~ [g3,c4] ~ [g3,c4] c4 [g3,c4,e4], e4@5 ~@3]/2", R: "d4 [f3,a#3,d4] f4 [a#3,d4,f4]",
  S: "[e4@2 [b3,d4,g#4]@2 g#4@2 [b3,d4]@2 ~@2 a4 b4 c5@2 [c4,e4,a4]@2, ~@3 a4@2 [c4,e4] ~@2]/2", // G#dim Bm Am C
  T: "[~ [c4,e4] ~ [c4,e4] ~ [a3,c4]!2 [b3,d4], a4@5 ~@3]/2", U: "[[c4,e4,a4]@5 ~@3]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.4).pan(0.9)

// bass · acoustic bass · "Basso"
const bass = note(`<
  A B C D E B C D F@3 G F@3 H C@2 I J K@4 F L C M N O F B C D F@5 H C@2 I J K@4 F L C M N O F B C D F@5 H C@2 I J K@4 F
  L C M N O F B C D F@5 H C@2 I J K@4 F L C M N O F B C D F@5 H C@2 I J K@4 F L C M N O F B C D F@5 H C@2 I J K@4 F L C
  M N O F B C D F@5 H C@2 I J K@4 F L C M N O F B C D F B C D P@2
>`.pickRestart({
  A: "a2", B: "f2 ~ g2 ~", C: "c3 ~ g2 ~", D: "a2 ~ b2 e2", E: "a2 ~ a2 ~", F: "a2 ~ e2 ~", G: "a2 e2 f#2 g#2",
  H: "a2 ~ a2 b2", I: "d3 ~ a2 ~", J: "d3 ~ d3 ~", K: "b2 ~ e2 ~", L: "g2 ~ g2 a2", M: "c3 ~ g2 a2", N: "a#2 ~ f2 ~",
  O: "e2 ~ e2 ~", P: "[a2@5 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.4).pan(0)

stack(acoustic_guitar_nylon, bass)

More by Brassens Georges