Strudelify

Le mecreant

Brassens Georges

KeyD majorTempo120 bpm
0:00/0:00
// Le mecreant — Brassens Georges
// 120 bpm, 2/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 202 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/2)

// 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 B D B C B D E@2 F@2 G H@3 E@2 I@2 J H@3 E@2 F@2 G H@3 E@2 I@2 J H@3 K@8 L@8 K@8 L@8 M@5 N@7 O@7 P@2 N@7 Q@5 R@2
  S@2 T U V@2 R@2 W@2 X U V@2 R@2 S@2 T U V@2 R@2 W@2 X U Y@8 Z@8 AA@8 Z@8 AA@8 Z@8 AB@4 ~@14
>`.pickRestart({
  A: "a3 b3 c#4 d4", B: "[a3,d4,f#4] ~ [a3,d4,f#4] ~", C: "[a3,d4,f#4] ~@3", D: "[a3,d4,f#4] ~@2 d4",
  E: "[a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2, f#3@4 ~@8 a4@15 ~@5]/2", // D
  F: "[d5 c#5 b4@2 [b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2, [d4,g4]@4 ~@8 a4@15 ~@5]/2", // E5 C#dim G5
  G: "d5 b4 a4@2 [c#4,f#4]@2 e4@2, [d4,f#4] ~@3", // F#5 D
  H: "[[b3,d4] g4 [b3,d4,f#4] ~ [g3,c#4] ~ [g3,a3,d4] ~ [f#3,a3] ~ [f#3,a3] d4, ~@12 e4@11 ~@5 d4@15 ~@5]/3", // Bm Gdim Gsus2 F#m
  I: "[d5 c#5 b4@2 [g#3,d4,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2, [d4,g4]@4 ~@8 a4@15 ~@5]/2", // E7 C#dim G5
  J: "d5 b4 a4@2 [a3,c#4,f#4]@2 e4@2, [d4,f#4] ~@3", // F#m D
  K: "[~ a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~@2 [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4, ~@2 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@11 ~@5 d4@15 ~@3]/8", // D E5 C#dim F#5 Bm Gdim Gsus2 F#m …
  L: "[~ a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [g#3,d4,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [a3,c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~@2 [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4, ~@2 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@11 ~@5 d4@15 ~@3]/8", // D E7 C#dim F#m Bm Gdim Gsus2 F#m …
  M: "[~@3 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [c#4,f#4], ~@6 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@6]/5", // D E5 C#dim F#5 G5 D
  N: "[~ e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~@2 [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [g#3,d4,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4], ~@18 e4@11 ~@5 d4@15 ~@5 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@14]/7", // Bm Gdim Gsus2 F#m D E7 C#dim G5
  O: "[~ d5@2 d5 b4 a4@2 [a3,c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~@2 [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [b3,e4], ~@6 [d4,f#4]@4 ~@24 e4@11 ~@5 d4@15 ~@5 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@6]/7", // F#m Bm Gdim Gsus2 F#m D E5 D …
  P: "[~@3 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [c#4,f#4], ~@2 a4@15 ~@5 [d4,f#4]@4 ~@6]/2", // C#dim F#5 D
  Q: "[~ d5@2 d5 b4 a4@2 [a3,c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~@2 [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 ~ a3 d4 f#4@2, ~@6 [d4,f#4]@4 ~@24 e4@11 ~@5 d4@15 ~@7 f#3@4 ~@4]/5", // F#m Bm Gdim Gsus2 F#m D
  R: "[[f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2, ~@4 a4@15 ~@5 [d4,g4]@4 ~@4]/2", // D G5
  S: "[[b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2, ~@4 a4@15 ~@5 [d4,f#4]@4 ~@4]/2", // E5 C#dim D
  T: "[c#4,f#4] e4 [b3,d4] g4", U: "[b3,d4,f#4] ~ [g3,c#4] ~, ~@4 e4@11 ~",
  V: "[[g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2, ~@4 d4@15 ~@5 f#3@4 ~@4]/2", // Gsus2 F#m
  W: "[[g#3,d4,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2, ~@4 a4@15 ~@5 [d4,f#4]@4 ~@4]/2", // E7 C#dim D
  X: "[a3,c#4,f#4] e4 [b3,d4] g4", // F#m Bm
  Y: "[[g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 ~ a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~, ~@4 d4@15 ~@7 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@10]/8", // Gsus2 F#m D E5 C#dim F#5 Bm Gdim …
  Z: "[~ [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [g#3,d4,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [a3,c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~, ~@6 d4@15 ~@5 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@10]/8", // Gsus2 F#m D E7 C#dim F#m Bm Gdim …
  AA: "[~ [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~, ~@6 d4@15 ~@5 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@10]/8", // Gsus2 F#m D E5 C#dim F#5 Bm Gdim …
  AB: "[~ [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@9, ~@6 d4@15 ~@5 f#3@4 ~@8 a4@15 ~@11]/4", // Gsus2 F#m D
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)

// chords · electric guitar jazz · "Guitare" · soft notes
const electric_guitar_jazz_2 = note("<~@187 A@5 B@8 C@2>".pickRestart({
  A: "[~ [d4,f#4]@2 b4@2 d5 c#5 b4@2 [b3,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~, ~@10 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@10]/5", // D E5 C#dim F#5 Bm Gdim G5 D
  B: "[~ [g3,a3,d4]@2 ~@2 [f#3,a3]@2 ~@2 [f#3,a3]@2 d4@2 a3 d4 f#4@2 [f#3,a3,d4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 b4@2 d5 c#5 b4@2 [g#3,d4,e4]@2 ~@2 [c#4,g4]@2 ~@2 [c#4,g4]@2 d5@2 d5 b4 a4@2 [a3,c#4,f#4]@2 e4@2 [b3,d4]@2 g4@2 [b3,d4,f#4]@2 ~@2 [g3,c#4]@2 ~, ~@6 d4@15 ~@5 f#3@4 ~@8 a4@15 ~@5 [d4,g4]@4 ~@8 a4@15 ~@5 [d4,f#4]@4 ~@24 e4@10]/8", // Gsus2 F#m D E7 C#dim F#m Bm Gdim …
  C: "[~ [g3,a3,d4]@2 [f#3,a3,d4]@7 ~@6]/2", // Gsus2 D
})).s("gm_electric_guitar_jazz").gain(0.08).pan(1)

// bass · fretless bass · "Contrebasse"
const bass = note(`<
  A@8 B@4 C@4 D@4 E@4 B@4 C@4 D@4 E@4 F@8 G@8 H@8 G@8 I@2 J@2 K@2 L M N@2 J@2 K@2 L O P@2 J@2 K@2 L M N@2 J@2 K@2 L O
  Q@3 R@2 S@4 T@2 R@2 U@4 V@2 R@2 S@4 T@2 R@2 U@4 W@8 X@8 Y@8 X@8 Z@8 X@8 AA@3 ~@14
>`.pickRestart({
  A: "[a2@4 b2@4 c#3@4 d3@7 ~ a2@7 ~ d3@4]/2",
  B: "[a2@4 b2@4 c#3@4 d3@7 ~ a2@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4]/4",
  C: "[a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@4]/4",
  D: "[a1@4 b1@4 c#2@4 d2@7 ~ a1@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4]/4",
  E: "[a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ a2@7 ~ a2@7 ~ d3@4]/4",
  F: "[a2@4 b2@4 c#3@4 d3@2 d3@7 ~ a2@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@2]/8",
  G: "[~@2 a1@4 b1@4 c#2@4 d2@7 ~ a1@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ a2@7 ~ a2@7 ~ d3@2]/8",
  H: "[~@2 a2@4 b2@4 c#3@4 d3@7 ~ a2@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@2]/8",
  I: "[~@2 a2@4 b2@4 c#3@4 d3@4 d3@7 ~ a2@6]/2", J: "[~@2 d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@6]/2",
  K: "[~@2 a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@6]/2", L: "~@2 b1@7 ~ g2@6", M: "~@2 e2@7 ~ a1@6",
  N: "[~@2 d2@4 a1@4 b1@4 c#2@4 d2@7 ~ a1@6]/2", O: "~@2 a2@7 ~ a2@6", P: "[~@2 d3@4 a2@4 b2@4 c#3@4 d3@7 ~ a2@6]/2",
  Q: "[~@2 d3@4 a2@4 b2@4 c#3@4 d3@2 d3@7 ~ a2@7 ~ d2@7 ~ d2@4]/3", R: "[f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4]/2",
  S: "[c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@4 a1@4 b1@4]/4", T: "[c#2@4 d2@7 ~ a1@7 ~ d2@7 ~ d2@4]/2",
  U: "[c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ a2@7 ~ a2@7 ~ d3@4 a2@4 b2@4]/4", V: "[c#3@4 d3@7 ~ a2@7 ~ d2@7 ~ d2@4]/2",
  W: "[c#3@4 d3@2 d3@7 ~ a2@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@4 a1@4 b1@2]/8",
  X: "[~@2 c#2@4 d2@7 ~ a1@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ a2@7 ~ a2@7 ~ d3@4 a2@4 b2@2]/8",
  Y: "[~@2 c#3@4 d3@7 ~ a2@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@4 a1@4 b1@2]/8",
  Z: "[~@2 c#3@4 d3@4 ~@4 a2@7 ~ d2@7 ~ d2@4 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@4 a1@4 b1@2]/8",
  AA: "[~@2 c#3@4 d3@7 ~ a2@7 ~ d2@7 ~ d2@4 ~@14]/3",
})).s("gm_fretless_bass").gain(0.18).pan(0)

// bass · fretless bass · "Contrebasse" · soft notes
const bass_soft = note("<~@169 A ~@17 B@8 C@7>".pickRestart({
  A: "~@10 d3@3 ~@3",
  B: "[~@2 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ e2@7 ~ a1@7 ~ d2@4 a1@4 b1@4 c#2@4 d2@7 ~ a1@7 ~ d2@7 ~ d2@2]/8",
  C: "[~@2 f#2@4 g2@7 ~ e2@7 ~ a2@4 a1@4 b1@4 c#2@4 d2@7 ~ f#2@7 ~ b1@7 ~ g2@7 ~ a2@7 ~ a2@7 ~ d2@14 ~@12]/7",
})).s("gm_fretless_bass").gain(0.08).pan(0)

stack(electric_guitar_jazz, electric_guitar_jazz_2, bass, bass_soft)

More by Brassens Georges