Strudelify

Embrasse-les tous

Brassens Georges

KeyG majorTempo140 bpm
0:00/0:00
// Embrasse-les tous — Brassens Georges
// 140 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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@4 B@2 C@2 B D E F B@2 C@2 B D G H I J K L M@2 N O P Q R S T U V W I X Y L Z@2 AA AB AC AD AE AF AG AH AI AJ B@2 C@2
  B D E F B@2 C@2 B D G H I J K L M@2 N O P Q R S T U V W I X Y L Z@2 AA AB AC AD AE AF AG AH AK AL AM AD AE AN AG AO AP
  AQ
>`.pickRestart({
  A: "[~@4 [g3,b3] [g3,b3]@4 [g3,b3] ~ [g3,b3]@4 [g3,b3] ~@4 [g3,b3] [g3,b3]@4 [g3,b3] ~ [g3,b3]@4 [g3,b3], e3@31 ~]/2", // G
  B: "b3@4 g3 [b2,e3]@4 b3 ~ [b2,g3]@4 e3", C: "c4@4 g3 [c3,e3]@4 c4 ~ [c3,g3]@4 e3",
  D: "a3@4 c4 [d#3,f#3,b3]@4 a3 ~ [a2,d#3,g3]@4 f#3", E: "e3@4 ~@4 d3@3 ~@2 e3@3, ~@5 [g2,b2]@5 ~ [g2,b2]@5",
  F: "d3@4 ~ [e2,g2,c3]@4 ~@2 [d#2,f#2,b2]@4 ~", G: "e3@4 ~ [g2,b2]@4 ~@4 d3@3, ~@11 [g2,b2]@5",
  H: "c3@4 ~ [a2,c3,d3]@4 e3 ~ [a2,c3,f#3]@4 ~", I: "g3@4 ~ [b2,d3,g3]@4 ~@2 [b2,d3,g3]@4 ~",
  J: "g3@4 ~ [e3,g3,a3]@4 ~@2 [e3,g3,b3]@4 ~", K: "f#3@4 f#3 [b2,d3,f#3]@4 e3 ~ [b2,d3]@4 e3",
  L: "f#3@4 ~ [b2,d3]@4 ~@2 [b2,d3]@4 ~", M: "g3@4 e3 [g2,c3,e3]@4 e3 ~ [g2,c3,e3]@4 ~",
  N: "g3@4 d3 [g2,b2,d3]@4 c3 ~ [g2,b2]@4 c3", O: "d3@4 ~ [g2,b2]@4 ~@2 [g2,b2]@4 ~",
  P: "c3@4 b2 [c2,e2,a2]@4 c3 ~ [c2,e2,b2]@4 a2", Q: "c3@4 b2 [d2,f#2,a2]@4 ~@2 [d2,f#2]@4 ~",
  R: "d3@4 c3 [g2,b2]@4 d3 ~ [g2,c3]@4 b2", S: "d3@4 c3 [g2,b2]@4 ~@2 [g2,b2]@4 ~",
  T: "e3@4 d3 [f#2,a#2,c#3]@4 e3 ~ [f#2,a#2,d3]@4 c#3", // F# F#aug
  U: "e3@4 d3 [f#2,a#2,c#3]@4 ~@3 e3@2 f#3@2, ~@11 [f#2,a#2]@4 ~, ~@11 f#3@2 ~@3", // F#
  V: "~@5 [f#2,b2]@4 ~@4 f3@3, d3@10 ~ [b2,d3,e3]@4 ~", W: "f#3@4 ~ [c3,d3]@4 ~@2 [c3,d3]@4 ~",
  X: "g3@4 ~ [b2,e3,a3]@4 ~@2 [b2,e3,b3]@4 ~", Y: "f#3@4 f#3 [b2,f#3]@4 d3 ~ b2@4 d3",
  Z: "g3@4 e3 [c3,e3]@4 e3 ~ [c3,e3]@4 ~", AA: "g3@4 g3 [c3,e3,a3]@4 a3 ~ [c3,e3,a#3]@4 a#3",
  AB: "~@5 [d#3,f#3]@4 ~@2 [d#3,f#3]@4 ~, b3@5 ~@3", AC: "e3@4 b3 [d3,g#3,b3]@4 b3 ~ [d3,e3]@4 b3",
  AD: "b3@4 a3 [b2,d3,g#3]@4 ~@2 [b2,d3]@4 ~", AE: "c4@4 d4 [e3,a3,e4]@4 d4 ~ [e3,a3,c4]@4 b3",
  AF: "a3@4 g3 [b2,d#3,f#3]@4 ~@2 [b2,d#3]@4 ~", AG: "e3@4 g3 [g2,b2,e3]@4 g3 ~ [g2,b2,e3]@4 g3",
  AH: "b3@4 ~ [c#3,e3]@4 ~@3 b3@2 a3@2, ~@11 [c#3,e3]@4 ~, ~@11 a3@2 ~@3", // C#m
  AI: "g3@4 ~ [a2,c3,e3]@4 ~@2 [a2,c3,f#3]@4 ~", AJ: "~@5 [b2,d3]@4 ~@2 [a2,d#3,f#3]@4 ~, g3@5 ~@3",
  AK: "g3@4 ~ [c3,e3]@4 ~@2 [c3,e3,a3]@4 ~", AL: "~@5 [d#3,f#3]@4 ~@2 [d#3,f#3]@4 ~, b3@15 ~",
  AM: "e3@4 b3 [d3,e3,g#3]@4 b3 ~ [e3,g#3,d4]@4 c4", AN: "a3@4 g3 [a2,d#3,f#3]@4 ~@2 [a2,d#3]@4 ~",
  AO: "b3@4 ~ [c#3,e3,g3]@4 ~@3 b3@2 a3@2, ~@11 [c#3,e3]@4 ~, ~@11 a3@2 ~@3", // C#dim C#m
  AP: "g3@4 ~ [g2,c3,e3]@4 ~@2 [a2,c3,f#3]@4 ~", AQ: "[b2,d3,g3]@4 ~ [b3,d4,g4]@4 ~@7",
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)

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

stack(electric_guitar_jazz, bass)

More by Brassens Georges