Strudelify

Les Quatre Bacheliers

Brassens Georges

KeyA majorTempo99 bpm
0:00/0:00
// Les Quatre Bacheliers — Brassens Georges
// 99 bpm, 6/8, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 160 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 25.
setcpm(99/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(`<
  ~@16 A B C D A E@2 F G H I J K L@2 M A B C D A E@2 F G H I J K L@2 M A B C D A E@2 F G H I J K L@2 M A B C D A E@2 F G
  H I J K L@2 M A B C D A E@2 N A B C D A E@2 F G H I J K L@2 M A B C D A E@2 F G H I J K L@2 M A B C D A E@2 F G H I J
  K L@2 M A B C D A E@2 F G H I J K L@2 M A B C D A E@2 N
>`.pickRestart({
  A: "[c#3,a3]@7 ~ [d3,b3]@4 [e3,c#4]@7 ~ [a3,f#4]@4", // F#m G C#m D
  B: "e4@4 d4@4 [f#3,a3,c#4]@4 [d3,f#3]@7 ~ [d3,f#3]@4, [f#3,a3]@7 ~@5 b3@11 ~", // F#m D F#m
  C: "[f#3,a3]@7 ~ [f#3,a3]@4 [f#3,a3,c#4]@7 ~ [f#3,a3]@4, d4@11 ~@13", // F#m
  D: "[f#3,a3]@7 ~ [f#3,a3]@4 [d3,e3,g#3,b3]@7 ~ [d3,e3,g#3]@4, c#4@11 ~@13", // F#m E7
  E: "[e4@4 d4@4 [f#3,a3,c#4]@4 [d3,f#3]@7 ~ [d3,f#3]@4 [d3,f#3]@7 ~ [d3,f#3,c#4]@4 [d3,e3,a3]@7 ~ [d3,e3,b3]@4, [f#3,a3]@7 ~@5 b3@19 ~@17]/2", // F#m D Dmaj7 Dsus2 E7 F#m
  F: "[c#3,e3,a3]@7 ~@5 [b3,d4,f4,g4]@7 ~@5", G: "c4@7 ~ d4@4 [g3,e4]@7 ~ [c4,a4]@4",
  H: "g4@4 f4@4 [a3,c4,e4]@4 [f3,a3]@7 ~ [f3,a3]@4, [a3,c4]@7 ~@5 d4@11 ~", // Am F Am
  I: "[a3,c4]@7 ~ [a3,c4]@4 [a3,c4,e4]@7 ~ [a3,c4]@4, f4@11 ~@13", // Am
  J: "[a3,c4]@7 ~ [a3,c4]@4 [f3,g3,b3,d4]@7 ~ [f3,g3,b3]@4, e4@11 ~@13", // Am G7
  K: "[e3,c4]@7 ~ [f3,d4]@4 [g3,e4]@7 ~ [c4,a4]@4", // C Dm C F
  L: "[g4@4 f4@4 [a3,c4,e4]@4 [f3,a3]@7 ~ [f3,a3]@4 [f3,a3]@7 ~ [f3,a3,e4]@4 [f3,g3,c4]@7 ~ [f3,g3,d4]@4, [a3,c4]@7 ~@5 d4@19 ~@17]/2", // Am F Fmaj7 Fsus2 G7 Am
  M: "[e3,g3,c4]@7 ~@5 [g#3,b3,d4,e4]@7 ~@5", N: "[c#3,e3,a3]@7 ~@5 [c#4,e4,a4]@7 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.41).pan(0.7)

// bass · acoustic bass · "Contrebasse"
const bass = note(`<
  ~@16 A B C D A B E F G H I J G H K L A B C D A B E F G H I J G H K L A B C D A B E F G H I J G H K L A B C D A B E F G
  H I J G H K L A B C D A B E M A B C D A B E F G H I J G H K L A B C D A B E F G H I J G H K L A B C D A B E F G H I J
  G H K L A B C D A B E F G H I J G H K L A B C D A B E M
>`.pickRestart({
  A: "a2@11 ~ a2@11 ~", B: "f#2@11 ~ b1@11 ~", C: "d2@11 ~ f#2@11 ~", D: "b2@11 ~ e2@4 f#2@4 g#2@4",
  E: "f#2@11 ~ e2@11 ~", F: "a2@7 ~@5 g2@4 f2@4 d2@4", G: "c2@11 ~ c2@11 ~", H: "a2@11 ~ d2@11 ~", I: "f2@11 ~ a2@11 ~",
  J: "d2@11 ~ g1@4 a1@4 b1@4", K: "a2@11 ~ g2@11 ~", L: "c3@7 ~@5 e2@4 f#2@4 g#2@4", M: "c#3@7 ~@5 [a1,a2]@7 ~@5",
})).s("gm_acoustic_bass").gain(0.68).pan(0.2)

// chords · electric guitar jazz
const electric_guitar_jazz_2 = note("<A B C D A E@2 F G H I J K L@2 M ~@144>".pickRestart({
  A: "[c#3,a3]@7 ~ [d3,b3]@4 [e3,c#4]@7 ~ [a3,f#4]@4", // F#m G C#m D
  B: "e4@4 d4@4 [f#3,a3,c#4]@4 [d3,f#3]@7 ~ [d3,f#3]@4, [f#3,a3]@7 ~@5 b3@11 ~", // F#m D F#m
  C: "[f#3,a3]@7 ~ [f#3,a3]@4 [f#3,a3,c#4]@7 ~ [f#3,a3]@4, d4@11 ~@13", // F#m
  D: "[f#3,a3]@7 ~ [f#3,a3]@4 [d3,e3,g#3,b3]@7 ~ [d3,e3,g#3]@4, c#4@11 ~@13", // F#m E7
  E: "[e4@4 d4@4 [f#3,a3,c#4]@4 [d3,f#3]@7 ~ [d3,f#3]@4 [d3,f#3]@7 ~ [d3,f#3,c#4]@4 [d3,e3,a3]@7 ~ [d3,e3,b3]@4, [f#3,a3]@7 ~@5 b3@19 ~@17]/2", // F#m D Dmaj7 Dsus2 E7 F#m
  F: "[c#3,e3,a3]@7 ~@5 [b3,d4,f4,g4]@7 ~@5", G: "c4@7 ~ d4@4 [g3,e4]@7 ~ [c4,a4]@4",
  H: "g4@4 f4@4 [a3,c4,e4]@4 [f3,a3]@7 ~ [f3,a3]@4, [a3,c4]@7 ~@5 d4@11 ~", // Am F Am
  I: "[a3,c4]@7 ~ [a3,c4]@4 [a3,c4,e4]@7 ~ [a3,c4]@4, f4@11 ~@13", // Am
  J: "[a3,c4]@7 ~ [a3,c4]@4 [f3,g3,b3,d4]@7 ~ [f3,g3,b3]@4, e4@11 ~@13", // Am G7
  K: "[e3,c4]@7 ~ [f3,d4]@4 [g3,e4]@7 ~ [c4,a4]@4", // C Dm C F
  L: "[g4@4 f4@4 [a3,c4,e4]@4 [f3,a3]@7 ~ [f3,a3]@4 [f3,a3]@7 ~ [f3,a3,e4]@4 [f3,g3,c4]@7 ~ [f3,g3,d4]@4, [a3,c4]@7 ~@5 d4@19 ~@17]/2", // Am F Fmaj7 Fsus2 G7 Am
  M: "[e3,g3,c4]@7 ~@5 [g#3,b3,d4,e4]@7 ~@5", // C E7
})).s("gm_electric_guitar_jazz").gain(0.21)

// bass · orchestral harp
const bass_2 = note("<A B C D A B E F G H I J G H K L ~@144>".pickRestart({
  A: "a2@11 ~ a2@11 ~", B: "f#2@11 ~ b1@11 ~", C: "d2@11 ~ f#2@11 ~", D: "b2@11 ~ e2@4 f#2@4 g#2@4",
  E: "f#2@11 ~ e2@11 ~", F: "a2@7 ~@5 g2@4 f2@4 d2@4", G: "c2@11 ~ c2@11 ~", H: "a2@11 ~ d2@11 ~", I: "f2@11 ~ a2@11 ~",
  J: "d2@11 ~ g1@4 a1@4 b1@4", K: "a2@11 ~ g2@11 ~", L: "c3@7 ~@5 e2@4 f#2@4 g#2@4",
})).s("gm_electric_bass_finger").gain(0.17)

stack(electric_guitar_jazz, bass, electric_guitar_jazz_2, bass_2)

More by Brassens Georges