Strudelify

Je rejoindrai ma belle

Brassens Georges

KeyD majorTempo200 bpm
0:00/0:00
// Je rejoindrai ma belle — Brassens Georges
// 200 bpm, 6/8, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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
const electric_guitar_jazz = note(`<
  A@4 B C D E F G H I B C D E J K L@2 M N O P Q@2 R S T N U V W@2 X@2 B C D E F G H I B C D E J K L@2 M N O P Q@2 R S T
  N U V W@2 X@2 B C D E F G H I B C D E J K L@2 M N O P Q@2 R S T N U V W@2 X@2 B C D E F G H I B C D E J K Y Z
>`.pickRestart({
  A: "[~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [b3,d4,f#4]@3, b3@59 ~@5]/4", // D Bm
  B: "b3@4 ~ [d3,f#3,b3]@3 c#4@4 ~ [d3,f#3,d4]@3", C: "~@5 [f3,g#3]@3 ~@5 [e3,f#3,b3]@3, c#4@3 ~",
  D: "d#4@4 ~ [f#3,a3,d#4]@3 e4@4 ~ [a3,d#4,f#4]@3", E: "~@5 [b3,e4]@3 ~@5 [b3,e4,b4]@3, g4@3 ~",
  F: "a4@4 ~ [c#4,e4,a4]@3 g4@4 ~ [c#4,e4,a4]@3", G: "f#4@4 ~ [a3,e4]@3 d4@4 ~ [a3,d4,f#4]@3",
  H: "g4@4 ~ [g3,b3,f#4]@3 d4@4 ~ [g3,b3,f#4]@3", I: "e4@4 ~ [f#3,a#3,d4]@3 c#4@4 ~ [f#3,a#3,f#4]@3",
  J: "a4@4 ~ [a3,c#4,g4]@3 f#4@4 ~ [g3,c#4,e4]@3", K: "~@5 [f#3,a3]@3 ~@5 [e3,a#3]@3, d4@7 ~ c#4@7 ~",
  L: "[~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [b3,d4,f#4]@3, b3@27 ~@5]/2", // D Bm
  M: "b4@4 ~ [b3,d#4,b4]@3 b4@4 ~ [b3,d#4,a4]@3", N: "~@5 [b3,d4]@3 ~@5 [b3,d4,e4]@3, g#4@3 ~",
  O: "a4@4 ~ [a3,c#4,a4]@3 a4@4 ~ [a3,c#4,g4]@3", P: "~@5 [f#3,a3]@3 ~@5 [f#3,a3,d4]@3, f#4@3 ~",
  Q: "[g4@4 ~ [b3,d4,g4]@3 ~@5 [b3,d4]@3 ~@5 [f#3,a#3,e4]@3 c#4@4 ~ [f#3,a#3,f#4]@3, ~@2 f#4@3 ~@3]/2", // G Bm F#7 F#
  R: "~@5 [f#3,b3]@3 ~@5 [d3,f#3,c#4]@3, d4@3 ~", S: "~@5 [d3,f#3]@3 ~@5 [b3,d4,f#4]@3, b3@11 ~@5",
  T: "b4@4 ~ [d#4,f#4,c#5]@3 b4@4 ~ [b3,d#4,a4]@3", U: "a4@4 ~ [c#4,e4,b4]@3 a4@4 ~ [c#4,e4,g4]@3",
  V: "~@5 [a3,d4]@3 ~@5 [a3,d4]@3, f#4@3 ~", // D5
  W: "[g4@4 ~ [b3,d4,b4]@3 ~@5 [b3,d4]@3 ~@5 [f#3,a#3,e4]@3 d4@4 ~ [e3,a#3,c#4]@3, ~@2 f#4@3 ~@3]/2", // Bm F#7 A#dim
  X: "[~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [d3,f#3]@3 ~@5 [b3,d4,f#4]@3, b3@23 ~@9]/2", Y: "[d3,f#3,b3] ~ [a#2,e3,f#3] ~",
  Z: "[b2,d3,f#3,b3] ~@3", // Bm
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)

// bass · fretless bass
const bass = note(`<
  A@5 B A C D E F G A B H I J K A@2 L M N O P B A@2 L Q N R P B A S A B A C D E F G A B H I J K A@2 L M N O P B A@2 L Q
  N R P B A S A B A C D E F G A B H I J K A@2 L M N O P B A@2 L Q N R P B A S A B A C D E F G A B H I J K T U
>`.pickRestart({
  A: "b2@7 ~ f#2@7 ~", B: "c#3@7 ~ f#2@7 ~", C: "g2@7 ~ e2@7 ~", D: "a2@7 ~ b2@4 ~ c#3@3", E: "d3@7 ~ a2@7 ~",
  F: "g2@7 ~ b2@7 ~", G: "c#3@7 ~ f#2@3 g#2@2 a#2@3", H: "b2@7 ~ b2@7 ~", I: "e3@7 ~ b2@7 ~", J: "e3@7 ~ a2@7 ~",
  K: "d3@7 ~ f#2@7 ~", L: "b2@7 ~ b2@3 c#3@2 d#3@3", M: "e3@7 ~ e2@4 ~ g#2@3", N: "a2@7 ~ a2@3 b2@2 c#3@3",
  O: "d3@7 ~ d2@4 ~ f#2@3", P: "g2@7 ~ g2@3 a2@2 b2@3", Q: "e3@7 ~ e2@7 ~", R: "d3@7 ~ d2@7 ~", S: "g2@7 ~ f#2@7 ~",
  T: "b2 ~ f#2 ~", U: "b1 ~@3",
})).s("gm_fretless_bass").gain(0.18).pan(0)

stack(electric_guitar_jazz, bass)

More by Brassens Georges