Strudelify

Pauvre Martin

Brassens Georges

KeyE♭ majorTempo160 bpm
0:00/0:00
// Pauvre Martin — Brassens Georges
// 160 bpm, 6/8, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/3)

// 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 · electric guitar jazz · "Guitare"
const electric_guitar_jazz = note(`<
  A B C D@2 E F G H G@2 I J K L@4 M@2 N@2 O P Q P Q R@8 M@2 N@2 O P Q P Q R@8 M@2 N@2 O P Q P S@8 A T C U@2 V W X W X@2
  Y Z AA AB@3 AC AD AE AF AG
>`.pickRestart({
  A: "eb4@3 eb4@2 eb4@3 [ab3,c4,f4]@7 ~, [g3,c4]@7 ~@9", B: "g4@3 g4@2 g4@3 c4@4 ~ c4@3, [b3,d4]@7 ~ [eb3,g3]@7 ~",
  C: "eb4@3 eb4@2 eb4@3 f4@4 ~ f4@3, [g3,c4]@7 ~ [ab3,c4]@7 ~", // C5 Ab
  D: "[g4@3 g4@2 g4@3 [eb3,g3,c4]@23 ~, [b3,d4]@7 ~@25]/2", E: "[b3,d4,g4]@7 ~@6 [eb4,g4]@3, ~ c4",
  F: "~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3, b3@8 bb3@7 ~", G: "~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3, b3@7 ~ c4@7 ~",
  H: "~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3, b3@7 ~ bb3@7 ~", I: "~@5 [eb4,g4]@3 ~@5 [c4,eb4,f4]@3, bb3@7 ~ ab3@7 ~",
  J: "~@5 [c4,d4,f4]@3 ~@5 [bb3,c4,eb4]@3, ab3@7 ~ g3@7 ~", K: "~@5 [bb3,c4,eb4]@3 ~@5 [c4,f4]@3, g3@7 ~ ab3@7 ~",
  L: "[~@5 [c4,f4]@3 [f3,g3,d4]@31 ~@9 eb4@3 eb4@2 eb4@3 [ab3,c4,f4]@7 ~, f3@7 ~ b3@56, ~@48 [g3,c4]@7 ~@9]/4", // F5 G7 Fm C5
  M: "[g4@3 g4@2 g4@3 c4@4 ~ c4@3 eb4@3 eb4@2 eb4@3 f4@4 ~ f4@3, b3, d4@7 ~ [eb3,g3]@7 ~ [g3,c4]@7 ~ [ab3,c4]@7 ~]/2", // Eb C5 Ab
  N: "[g4@3 g4@2 g4@3 [eb3,g3,c4]@23 ~, b3, d4@7 ~@25]/2", O: "[d4,g4]@7 ~@6 [eb4,g4]@3, b3, ~ c4",
  P: "~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3, b3, ~@8 bb3@7 ~", Q: "~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3, b3, ~@8 c4@7 ~",
  R: "[~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3 ~@5 [c4,eb4,f4]@3 ~@5 [c4,d4,f4]@3 ~@5 [bb3,c4,eb4]@3 ~@5 [bb3,c4,eb4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 [f3,g3,d4]@31 ~@9 eb4@3 eb4@2 eb4@3 [ab3,c4,f4]@7 ~, b3@9 b3@7, ~@8 c4@7 ~ bb3@7 ~ ab3@7 ~ ab3@7 ~ g3@7 ~ g3@7 ~ ab3@7 ~ f3@7 ~@41 [g3,c4]@7 ~@9]/8", // Eb F7 Dm7 Cm7 F5 G7 Fm C5
  S: "[~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3 ~@5 [eb4,g4]@3 ~@5 [c4,eb4,f4]@3 ~@5 [c4,d4,f4]@3 ~@5 [bb3,c4,eb4]@3 ~@5 [bb3,c4,eb4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 [f3,g3,d4]@31 ~@9, b3, ~@8 c4@7 ~@9 c4@7 ~ bb3@7 ~ ab3@7 ~ ab3@7 ~ g3@7 ~ g3@7 ~ ab3@7 ~ f3@7 ~@41]/8", // Eb F7 Dm7 Cm7 F5 G7
  T: "g4@3 g4@2 g4@3 c4@4 ~ c4@3, d4@7 ~ [eb3,g3]@7 ~", U: "[g4@3 g4@2 g4@3 [eb3,g3,c4]@23 ~, d4@7 ~@25]/2",
  V: "[g3,db4,e4,a4]@7 ~@6 [f4,a4]@3, ~@8 d4@7 ~", W: "~@5 [f4,a4]@3 ~@5 [f4,a4]@3, db4@7 ~ c4@7 ~",
  X: "~@5 [f4,a4]@3 ~@5 [f4,a4]@3, db4@7 ~ d4@7 ~", Y: "~@5 [f4,a4]@3 ~@5 [d4,f4,g4]@3, c4@7 ~ bb3@7 ~",
  Z: "~@5 [d4,e4,g4]@3 ~@5 [c4,d4,f4]@3, bb3@7 ~ a3@7 ~", AA: "~@5 [c4,d4,f4]@3 ~@5 [d4,g4]@3, a3@7 ~ bb3@7 ~",
  AB: "[~@5 [d4,g4]@3 [g3,a3,db4,e4]@31 ~@9, g3@7 ~@41]/3", AC: "f4@3 f4@2 f4@3 [bb3,d4,g4]@7 ~, [a3,d4]@7 ~@9",
  AD: "a4@3 a4@2 a4@3 d4@4 ~ d4@3, [db4,e4]@7 ~ [f3,a3]@7 ~", AE: "f4@3 f4@2 f4@3 [bb3,d4]@7 ~, [a3,d4]@7 ~@9",
  AF: "[db4,e4]@7 ~ [f3,a3,d4]@4 ~@4", AG: "[db4,e4,g4,a4] ~ [f4,a4,d5] ~",
})).s("gm_electric_guitar_jazz").gain(0.1).pan(1)

// bass · fretless bass · "Contrebasse"
const bass = note(`<
  A B C D E F G@5 H I J K L M A B C N O F G@5 H I J K L M A B C N O F G@5 H I J K L M A B C N O F G@5 H I J K L M A B C
  N P Q R@5 S T U V W X Y Z AA AB AC
>`.pickRestart({
  A: "c3@7 ~ d3@7 ~", B: "g2@7 ~ c3@7 ~", C: "bb2@7 ~ ab2@7 ~", D: "g2@7 ~ [c2,c3]@4 ~@4", E: "[bb1,bb2] ~ [ab1,ab2] ~",
  F: "[g1,g2]@7 ~ [c2,c3]@4 ~@4", G: "g2 ~ c3 ~", H: "c3@4 ~@4 f2@7 ~", I: "bb2@7 ~ eb2@7 ~", J: "c2@7 ~ f2@7 ~",
  K: "ab2@7 ~ g2@7 ~", L: "g2@7 ~ a2@7 ~", M: "b2@7 ~ c3@4 ~@4", N: "g2@7 ~ [c2,c3]@7 ~",
  O: "[bb1,bb2]@7 ~ [ab1,ab2]@7 ~", P: "[b1,b2]@7 ~ [bb1,bb2]@7 ~", Q: "[a1,a2]@7 ~ [d2,d3]@4 ~@4", R: "a2 ~ d3 ~",
  S: "d3@4 ~@4 g2@7 ~", T: "c3@7 ~ f2@7 ~", U: "d2@7 ~ g2@7 ~", V: "bb2@7 ~ g2@7 ~", W: "a2@7 ~ b2@7 ~",
  X: "db3@7 ~ d3@7 ~", Y: "d3@7 ~ e3@7 ~", Z: "a2@7 ~ d3@7 ~", AA: "c3@7 ~ bb2@7 ~", AB: "a2@7 ~ d3@4 ~@4",
  AC: "a2 ~ d2 ~",
})).s("gm_fretless_bass").gain(0.18).pan(0)

stack(electric_guitar_jazz, bass)

More by Brassens Georges