Strudelify

Le Vieux Leon

Brassens Georges

KeyD majorTempo240 bpm
0:00/0:00
// Le Vieux Leon — Brassens Georges
// 240 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 268 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(240/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 E@2 F@2 G H I J K L@7 M@3 N O P Q R S@2 T@8 U N O P V W@4 X@8 G Y I J Z AA@3 X@8 G Y AB J AC AD@7 M@3 N O P Q
  R S@2 T@8 U N O P V W@4 X@8 G Y I J Z AA@3 X@8 G Y AB J AC AD@7 M@3 N O P Q R S@2 T@8 U N O P V W@4 X@8 G Y I J Z AA@3
  X@8 G Y AB J AC AD@7 M@3 N O P Q R S@2 T@8 U N O P V W@4 X@8 G Y I J Z AA@3 X@8 G Y AB J AE@3 AF
>`.pickRestart({
  A: "a#3@4 ~ f#4@4 ~@2 e4@4 ~", B: "d4@9 ~@2 d4@4 ~, b3@15 ~", C: "e4@4 ~ a4@4 ~@2 g4@4 ~, c#4@15 ~",
  D: "f#4@9 ~@2 f#4@4 ~, d4@15 ~", E: "[b4@9 ~@12 b3@4 ~@2 [d#4,b4]@4 ~, d#4@15 ~ d#4@9 ~@7, ~@11 b4@10 ~@11]/2",
  F: "[[e4,g4]@25 ~@7]/2", G: "e4@4 ~ [a3,c#4,a4]@4 ~@2 [a3,c#4,g4]@4 ~",
  H: "~@5 [a3,d4]@4 ~@2 [a3,d4,f#4]@4 ~, f#4@5 ~@3", I: "d4@4 ~ [b3,d4,g4]@4 ~@2 [b3,d4,f#4]@4 ~",
  J: "~@5 [g3,c4]@4 ~@2 [g3,c4]@4 ~, e4@15 ~", K: "~@5 [f#3,a#3]@4 ~@2 [f#3,a#3]@5, f#4@5 ~@3",
  L: "[~@5 [e3,g#3]@4 ~@2 [e3,f#3]@4 ~ [d3,f#3,b3]@4 ~@12 b3@4 ~ d4@4 ~@2 e4@4 ~@6 [b3,d4]@4 ~@2 [b3,d4]@4 ~ b3@4 ~ [b3,d4]@4 ~@2 [b3,d4,f#4]@4 ~@6 [b3,d4]@4 ~@2 [b3,d4]@4 ~ g4@4 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,b4]@4 ~, ~@11 a#3@101, ~@48 f#4@15 ~@17 b4@15 ~@17]/7", // E Esus2 Bm A C#m7
  M: "[~@5 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~@6 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~@6 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~, a4@7 ~]/3", // D
  N: "c5@4 ~ [c4,e4,a4]@4 ~@2 [c4,e4,c5]@4 ~", O: "~@5 [b3,d#4]@4 ~@2 [b3,d#4]@4 ~, b4@15 ~",
  P: "g4@4 ~ [b3,e4]@4 ~@2 [b3,e4,g4]@4 ~", Q: "~@5 [f#3,b3]@4 ~@2 [f#3,b3,d4]@4 ~, f#4@5 ~@3",
  R: "~@5 [b3,d4]@4 ~@2 [g3,b3,d4]@4 ~, g3@5 ~@3", // Bm G
  S: "[~@5 [f3,g#3]@4 ~@2 [f3,g#3]@4 ~@6 [f3,g#3]@4 ~@2 [f3,g#3]@4 ~, c#4]/2", // Fm
  T: "[~@5 a#3@6 f#3@4 ~ b3@4 ~ [b3,d4]@4 ~@2 [b3,d4,e4]@4 ~@6 [b3,d4]@4 ~@2 [b3,d4]@4 ~ b3@4 ~ [b3,d4]@4 ~@2 [b3,d4,f#4]@4 ~@6 [d4,g4]@4 ~@2 [d4,g4]@4 ~ g4@4 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,b4]@4 ~@6 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~@6 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~, ~@5 f#3@4 ~@2 a#3@117, ~@32 f#4@15 ~@17 b4@15 ~@17 a4@32]/8", // Bm E7 Bm G5 A C#m7 D
  U: "~@5 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~", V: "~@5 [b3,d4]@4 ~@2 [b3,d4]@4 ~, f#4@15 ~",
  W: "[c#4@4 ~ [e3,f#3]@4 ~@2 [e3,c#4]@4 ~@6 [d3,f#3]@4 ~@2 [d3,f#3]@4 ~@6 [d3,f#3]@4 ~@2 [d3,f#3]@4 ~@6 [d3,f#3]@4 ~@2 [d3,f#3]@4 ~, ~@11 a#3@53, ~@4 b3@9 ~@3]/4", // Esus2 C#m D
  X: "[a#3@5 [c#4,f#4]@4 ~@2 [c#4,e4]@4 ~@6 [f#3,b3]@4 ~@2 [f#3,b3]@4 ~ e4@4 ~ [a3,c#4,a4]@4 ~@2 [a3,c#4,g4]@4 ~@6 [a3,d4]@4 ~@2 [a3,d4]@4 ~@6 [d#4,f#4]@4 ~@2 [d#4,f#4]@4 ~@6 [d#4,f#4]@4 ~@2 [d#4,f#4,b4]@4 ~@6 [b3,e4]@4 ~@2 [b3,e4]@4 ~@6 [b3,e4]@4 ~@2 [b3,e4]@4 ~, ~@5 a#3@6 a#3@117, ~@16 d4@15 ~@17 f#4@15 ~ b4@15 ~ b3@10 ~@6 g4@31 ~]/8", // F#5 C#m B5 A A7 D5 D#m B …
  Y: "~@5 [a3,d4]@4 ~@2 [a3,d4]@4 ~, f#4@15 ~", Z: "f#4@4 ~ [g3,c4,e4]@4 ~@2 [g3,c4,d4]@4 ~",
  AA: "[~@5 a#3@6 a#3@10 a#3@6 a#3@10 a#3@6 [e3,a#3]@5, c#4@3 ~, ~@5 e3@4 ~@2 e3@4 ~@6 e3@4 ~@2 e3@4 ~@6 e3@4 ~@7]/3", // Edim
  AB: "b4@4 ~ [b3,d4,f#4]@4 ~@2 [b3,d4,b4]@4 ~", AC: "~@5 a#3@6 [a#3,c#4]@5, f#4@15 ~, ~@5 c#4@4 ~@7",
  AD: "[~@5 [e3,f#3,g#3]@4 ~@2 [e3,f#3]@4 ~@6 [d3,f#3]@4 ~@7 b3@4 ~ d4@4 ~@2 e4@4 ~@6 [b3,d4]@4 ~@2 [b3,d4]@4 ~ b3@4 ~ [b3,d4]@4 ~@2 [b3,d4,f#4]@4 ~@6 [b3,d4]@4 ~@2 [b3,d4]@4 ~ g4@4 ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,b4]@4 ~, a#3@11 a#3@101, ~@16 b3@10 ~@22 f#4@15 ~@17 b4@15 ~@17]/7", // E Esus2 D Bm A C#m7
  AE: "[~@5 a#3@6 c#4@4 ~@6 [c#4,e4]@4 ~@2 [c#4,e4,a#4]@4 ~ [d4,f#4,b4]@4 ~@7 [e4,f#4]@4 ~, f#4@15 ~ g#4@10 ~@22, ~@5 c#4@4 ~@2 a#3@36 ~]/3", // C#m A#dim Bm Esus2
  AF: "[b3,d4,f#4,b4] ~@3", // Bm
})).s("gm_electric_guitar_jazz").gain(0.41).pan(1)

// bass · contrabass · "Contrebasse"
const bass = note(`<
  A B C D E B F@2 G H I J K L M ~ N@2 I G H O P G N Q N I K@2 R@2 N@2 I G H G P G N Q N R N R N R N G H S T U Q G H I J
  I R K R@2 N G H S T U Q G H I J R V N ~ N@2 I G H O P G N Q N I K@2 R@2 N@2 I G H G P G N Q N R N R N R N G H S T U Q
  G H I J I R K R@2 N G H S T U Q G H I J R V N ~ N@2 I G H O P G N Q N I K@2 R@2 N@2 I G H G P G N Q N R N R N R N G H
  S T U Q G H I J I R K R@2 N G H S T U Q G H I J R V N ~ N@2 I G H O P G N Q N I K@2 R@2 N@2 I G H G P G N Q N R N R N
  R N G H S T U Q G H I J I R K R@2 N G H S T U Q G H I J R V W N
>`.pickRestart({
  A: "[f#2,f#3]@15 ~", B: "[b1,b2]@15 ~", C: "[a2,a3]@15 ~", D: "[d2,d3]@15 ~", E: "[b2,b3]@15 ~",
  F: "[[e2,e3]@25 ~@7]/2", G: "a2 ~@3", H: "d3 ~@3", I: "g2 ~@3", J: "c3 ~@3", K: "c#3 ~@3", L: "f#2@4 ~@7 f#2@4 ~",
  M: "b1 ~@3", N: "b2 ~@3", O: "a2@4 ~@7 a2@4 ~", P: "d2 ~@3", Q: "e2 ~@3", R: "f#2 ~@3", S: "d#3 ~@3",
  T: "d#3@4 ~@7 d#3@4 ~", U: "e3 ~@3", V: "c#3@4 ~@7 f#2@4 ~", W: "b2@4 ~@7 f#2@4 ~",
})).s("gm_contrabass").gain(0.41).pan(0)

stack(electric_guitar_jazz, bass)

More by Brassens Georges