Strudelify

Les patriotes

Brassens Georges

KeyC majorTempo240 bpm
0:00/0:00
// Les patriotes — Brassens Georges
// 240 bpm, 2/2, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 171 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(240/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 · electric guitar jazz · "Guitare"
const electric_guitar_jazz = note(`<
  A B C D A B C D E F@2 G H@3 I J K L M N@2 O P A B C D E F@2 G H@3 I J K L M N@2 O P A B C D E F@2 G H@3 I J K L M N@2
  O P A B C D E F@2 G H@3 I J K L M N@2 O P A B C D E F@2 G H@3 I J K L M N@2 O P A B C D E F@2 G H@3 I J K L M N@2 O P
  A B C D E F@2 G H@3 I J K L M N@2 O P A B C D E F@2 G H@3 I J K L M N@2 O P A B C D A B Q
>`.pickRestart({
  A: "[d3,f3,g3,b3]@3 ~@5 [e3,g3,c4]@3 ~ [e3,g3,c4]@2 [e3,g3,c4]@2", // G7 C
  B: "[e3,g3,c4]@3 ~ [e3,g3,c4]@3 ~ [e3,g3,c4]@3 ~@5", // C
  C: "[d3,e3,g#3,b3]@3 ~@5 [c3,e3,a3]@3 ~ [c3,e3,a3]@2 [c3,e3,a3]@2", // E7 Am
  D: "[c3,e3,a3]@3 ~ [c3,e3,a3]@3 ~ [c3,e3,a3]@3 ~@5", E: "[d3,f3,g3,b3]@3 ~ b3@3 ~ c4@3 ~ [c3,e3,g3]@3 ~",
  F: "[g3@3 ~ [c3,e3,g3]@3 ~@5 [c3,e3]@3 ~@5 [c3,e3,c4]@3 ~ g#3@3 ~ [g#2,b2,e3]@3 ~, ~@8 g3@11 ~@13]/2", // C E
  G: "e3@3 ~ [g#2,b2,e3]@3 ~ d3@3 ~ [g#2,b2,d3]@3 ~", // E G#dim
  H: "[~@4 [g#2,b2,e3]@3 ~ a2@3 ~ b2@3 ~@5 b2@3 ~ a2@3 ~ b2@3 ~@5 a2@3 ~@5 [f3,g3]@3 ~, ~@8 e3@15 ~ e3@15 ~@9, ~@8 c3@8 c3@7 ~ c3@8 c3@7 ~ b2@7 ~]/3", // E Fsus2
  I: "c3@3 [g2,b2,d3]@2 g3@3 ~@4 [c3,g3]@3 ~, ~@8 e3@7 ~", J: "~@4 [b2,d3,f3,g3]@3 ~ c4@3 ~ [c3,e3,g3]@3 ~",
  K: "g3@3 ~ [c3,e3,g3]@3 ~@5 [c3,e3]@3 ~, ~@8 g3@7 ~", L: "c4@3 [e3,g3,d4]@2 c4@3 g#3@3 ~ [g#2,b2,e3]@3 ~",
  M: "g#2@3 ~ [g#2,b2,e3]@3 ~ d3@3 ~ [g#2,b2,d3]@3 ~", // E G#dim
  N: "[~@4 [g#2,b2,e3]@3 ~ a2@3 ~ b2@3 ~@5 b2@3 ~ a2@5 ~ b2@2, ~@8 e3@15 ~@9, ~@8 c3@8 c3@7 ~@9]/2", // E
  O: "c3@3 ~ d3@3 ~ e3@3 ~ f3@3 ~", P: "f#3@3 ~ g#3@3 ~ a3@3 ~@5", Q: "[d3,e3,g#3,b3]@3 ~@5 [c3,e3,a3]@3 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)

// bass · fretless bass · "Contrebasse"
const bass = note(`<
  A B C D A B C D E@2 F G H@2 I J K E F G L M N O A B C D P E F G H@2 I J K E F G L M N O A B C D P E F G H@2 I J K E F
  G L M N O A B C D P E F G H@2 I J K E F G L M N O A B C D P E F G H@2 I J K E F G L M N O A B C D P E F G H@2 I J K E
  F G L M N O A B C D P E F G H@2 I J K E F G L M N O A B C D P E F G H@2 I J K E F G L M N O A B C D Q B H
>`.pickRestart({
  A: "g2@3 ~@5 c3@3 ~ c3@2 c3@2", B: "c3@3 ~ c3@3 ~ c3@3 ~@5", C: "e2@3 ~@5 a2@3 ~ a2@2 a2@2",
  D: "a2@3 ~ a2@3 ~ a2@3 ~@5", E: "g2@3 ~@5 c3@3 ~@5", F: "g2@3 ~ c3@3 ~ b2@3 ~@5", G: "e2@3 ~@5 b2@3 ~@5",
  H: "e2@3 ~@5 a2@3 ~@5", I: "e2@3 ~@5 g2@3 ~@5", J: "g2@3 ~@5 c3@3 ~ g2@3 ~", K: "a2@3 ~ b2@3 ~ c3@3 ~@5",
  L: "b2@3 ~@5 a2@3 ~@5", M: "e2@3 ~@5 a2@5 ~ b2@2", N: "c3@3 ~ d3@3 ~ e3@3 ~ f3@3 ~", O: "f#3@3 ~ g#3@3 ~ a3@3 ~@5",
  P: "a2@3 ~@5 c3@3 ~@5", Q: "a2@3 ~@5 c3@3 ~ c3@2 c3@2",
})).s("gm_fretless_bass").gain(0.18).pan(0)

stack(electric_guitar_jazz, bass)

More by Brassens Georges