Strudelify

Mechante avec de jolis seins

Brassens Georges

KeyB♭ majorTempo160 bpm
0:00/0:00
// Mechante avec de jolis seins — Brassens Georges
// 160 bpm, 2/2, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
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 · "Guitare" · F F7 Bb
const acoustic_guitar_nylon = note(`<
  [bb4@3 ~ bb4@7 ~ g4@2 a4@2]
  [bb4@2 c5@2 d5@2 c5@2 bb4@2 g4@2 f4@3 ~]
  [d4@3 ~ [a3,c4,f4]@10 d4@2]
  [[eb3,a3,f4]@2 d4@2 [d3,f3,bb3]@11 ~]
  [bb3@3 ~@13]
  ~@120
>`).s("gm_acoustic_guitar_nylon").gain(0.29).pan(1)

// chords · electric guitar jazz · "Guitare"
const electric_guitar_jazz = note(`<
  ~@4 A@4 B@4 C@4 D@4 E@2 F@3 G@2 H I@4 B@4 C@4 D@4 E@2 F@3 G@2 H I@4 B@4 C@4 D@4 E@2 F@3 G@2 H I@4 B@4 C@4 D@4 E@2 F@3
  G@2 H I@4 B@4 C@4 D@4 E@2 F@3 J@4
>`.pickRestart({
  A: "[~@8 [bb2,d3]@3 ~ g3@3 [bb2,d3,a3]@2 bb3@3 ~@4 [a2,d3]@3 ~ f3@3 [a2,d3,g3]@2 a3@3 ~@4 [bb2,d3]@3 ~ g3@3 [bb2,d3,a3]@2 bb3@3 ~@4 [a2,d3]@3 ~@5, ~@4 bb3@7 ~@9 a3@7 ~@9 bb3@7 ~@9 a3@11 ~]/4", // Bb Bbmaj7 D5 Dsus4 Bb Bbmaj7 D5
  B: "[[a2,d3]@3 ~@5 [bb2,d3]@3 ~ g3@3 [e3,g3,c4]@2 bb3@3 ~@4 [a2,c3]@3 ~ f3@3 [d3,f3,bb3]@2 a3@3 ~@4 [bb2,d3]@3 ~ bb3@3 [c3,e3,a3]@2 g3@3 ~@4 [a2,c3]@3 ~@5, ~@4 bb3@7 ~@9 a3@7 ~@9 g3@7 ~@9 f3@7 ~@5]/4", // D5 Bb C Am Bb Am
  C: "[[a2,eb3,f3]@3 ~@5 [bb2,d3]@3 ~ f3@3 [a2,d3,g3]@2 f3@3 ~@4 [g2,bb2]@3 ~ bb2@3 [d2,g2,a2]@2 bb2@3 ~@4 [g2,c3]@3 ~ d3@3 [g2,c3,eb3]@2 d3@3 ~@4 [f2,a2]@3 ~@5, ~@4 f3@7 ~@9 d3@7 ~@9 eb3@7 ~@9 c3@7 ~@5]/4", // F7 Bb Dsus4 Gm Dsus4 C5 Cm F
  D: "[[c3,eb3,f3]@3 ~@5 [bb2,d3]@3 ~ f3@3 [a2,d3,g3]@2 f3@3 ~@4 [g2,bb2]@3 ~ c3@3 [gb2,a2,d3]@2 c3@3 ~@4 [d2,g2]@3 ~ a2@3 [c2,eb2,g2]@2 a2@3 ~@4 [d2,f2]@3 ~@5, ~@4 f3@7 ~@9 d3@7 ~@9 bb2@7 ~@9 bb2@7 ~@5]/4", // F7 Bb Dsus4 Gm D G5 Cm Dm
  E: "[[d2,f2,bb2]@2 bb2@2 [eb2,g2]@6 bb2@2 bb2@3 bb2@2 bb2@3 [eb2,g2]@7 ~@5, ~@4 bb2@5 ~@11 bb2@11 ~]/2", // Bb Eb
  F: "[bb2@3 ~ [eb2,gb2,bb2]@7 ~ bb2@3 bb2@2 bb2@3 [f2,bb2,d3]@7 ~ [gb2,a2]@6 c3@2 [g2,bb2]@11 ~, ~@28 d3@5 ~@15]/3", // Ebm Bb Gbm Gm
  G: "[[g2,bb2,d3]@3 ~@5 [a2,eb3]@3 ~ d3@3 [eb2,a2,f3]@2 d3@3 [d2,f2,bb2]@3 ~ c3@2 d3@2 [f2,a2,eb3]@2 c3@2, ~@4 f3@7 ~@21]/2", // Gm Adim F7 Bb F7
  H: "d3@2 eb3@2 [bb2,d3,f3]@3 ~ e3@2 f3@2 [a2,c3,ab3]@3 ~", // Bb Am
  I: "[bb3@3 ~@5 [bb2,d3]@3 ~ g3@3 [bb2,d3,a3]@2 bb3@3 ~@4 [a2,d3]@3 ~ f3@3 [a2,d3,g3]@2 a3@3 ~@4 [bb2,d3]@3 ~ g3@3 [bb2,d3,a3]@2 bb3@3 ~@4 [a2,d3]@3 ~@5, ~@4 bb3@7 ~@9 a3@7 ~@9 bb3@7 ~@9 a3@11 ~]/4", // Bb Bbmaj7 D5 Dsus4 Bb Bbmaj7 D5
  J: "[[g2,bb2,d3]@3 ~@5 [a2,eb3]@3 ~ d3@3 [eb2,a2,f3]@2 d3@3 bb2@3 ~ d3@2 f3@2 eb3@2 d3@2 eb3@2 ~ c3@2 [f2,bb2,d3]@14 ~@13, ~@4 f3@7 ~@9 [d2,f2]@7 ~ [g2,bb2]@8 ~@28]/4", // Gm Adim F7 Bb Dm Gm
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)

// bass · fretless bass · "Contrebasse"
const bass = note(`<
  A B C D E F E F G H G I J E K L M N O P Q R@2 S@2 T U V E F E F G H G I J E K L M N O P Q R@2 S@2 T U V E F E F G H G
  I J E K L M N O P Q R@2 S@2 T U V E F E F G H G I J E K L M N O P Q R@2 S@2 T U V E F E F G H G I J E K L M N O P Q
  R@2 S@2 T W@3
>`.pickRestart({
  A: "~@2 g3 bb3 d4 bb3 f3 bb3", B: "d4 bb3 e3 bb3 d4 bb3 d3 bb3", C: "d4@2 bb3@2 c3@2 f3@2 eb3@2 c3@2 a2@3 ~",
  D: "f2@3 ~ bb2@2 g3@2 f3@2 d3@2 bb2@3 ~", E: "~@4 g2@3 ~@5 g2@3 ~", F: "~@4 d2@3 ~@5 d2@3 ~",
  G: "~@4 g2@3 ~@5 c2@3 ~", H: "~@4 f2@3 ~@5 d2@3 ~", I: "~@4 f2@3 ~ eb3@3 ~ d3@3 ~", J: "c3@3 ~ bb2@3 ~@5 d2@3 ~",
  K: "~@4 c3@3 ~@5 g2@3 ~", L: "~@4 a2@3 ~ f2@3 ~ g2@3 ~", M: "a2@3 ~ bb2@3 ~@5 a2@3 ~", N: "~@4 g2@3 ~@5 d2@3 ~",
  O: "~@4 g2@3 ~@5 f2@3 ~", P: "~@4 bb2@3 ~@5 f2@3 ~", Q: "bb1@3 ~ eb2@7 ~@5", R: "~@4 eb2@7 ~@5",
  S: "[~@4 bb2@7 ~ d2@7 ~ g2@3 ~ bb2@3 ~ d3@3 ~]/2", T: "g2@3 ~ f2@3 ~ c3@3 ~ a2@3 ~",
  U: "f2@3 ~ bb2@3 ~ c3@2 d3@2 eb3@2 c3@2", V: "d3@2 eb3@2 f3@3 ~ e3@2 eb3@2 d3@3 ~",
  W: "[f2@3 ~ bb2@7 ~ eb2@8 ~ [bb1,bb2]@14 ~@13]/3", // Bb
})).s("gm_fretless_bass").gain(0.18).pan(0)

stack(acoustic_guitar_nylon, electric_guitar_jazz, bass)

More by Brassens Georges