Strudelify

Histoire de faussaire

Brassens Georges

KeyD majorTempo130 bpm
0:00/0:00
// Histoire de faussaire — Brassens Georges
// 130 bpm, 2/2, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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@2 D E F@2 G H I@2 J K L@8 M@2 G H I@2 J K N@8 M@2 G H I@2 J K N@8 M@2 G H I@2 J K N@8 M@2 G H I@2 J K N@8 O@2
  P@6 Q@8 R@8 S T U V W@2 X Y Z@2
>`.pickRestart({
  A: "[b2,b3]@3 ~ [b2,d3,g3]@3 b3 g3@3 b3 [b2,d3,g3]@3 b3", B: "~@4 [g3,a#3]@3 ~@4 a#3 [d3,g3,a3]@3 a#3, d4@11 ~@5",
  C: "[f#4@3 ~ [a#3,c#4,f#4]@3 ~ f#4@3 ~ [f#3,a#3,e4]@2 ~@6 [f#3,b3]@3 ~@5 [d3,f#3]@3 ~, ~@14 d4@13 ~@5]/2", // F# F#7 B5 D
  D: "d4@3 ~ [g#3,b3,d4]@3 d4 d4@3 d4 [g#3,b3,d4]@3 d4", E: "d4@3 d4 [g#3,b3,d4]@3 e4 d4@3 c#4 [e3,g3,b3]@3 c#4",
  F: "[~@4 [f#3,a3]@3 ~@5 [f#3,a3]@3 ~@5 [f#2,a2]@3 ~ [g2,b2]@3 ~ [g2,a2,c#3]@3 ~, [d3,d4]@19 ~@13]/2", // F#m G A7 D
  G: "f#3@3 ~ [a2,d3,f#3]@3 f#3 f#3@3 f#3 [a2,d3,f#3]@3 f#3", H: "~@4 [a2,d3]@3 ~@4 f#3 [a2,d3,g3]@3 a3, f#3@11 ~@5",
  I: "[f#3@3 ~ [a#2,c#3,e3]@3 ~ e3@3 ~ [a#2,c#3,d#3]@2 ~@6 [a#2,c#3]@3 ~@5 [a#2,c#3]@3 ~, ~@14 e3@13 ~@5]/2", // A#dim D#7 A#m
  J: "d3@3 ~ [f#2,b2,d3]@3 d3 d3@3 d3 [f#2,b2,d3]@3 d3", K: "~@4 [f#2,b2]@3 ~@4 d3 [f#2,b2,e3]@3 f#3, d3@11 ~@5",
  L: "[d3@3 ~ [f#2,a2,c3]@3 ~ c3@3 ~ [d2,f#2,b2]@2 ~@6 [f#2,a2]@3 ~@5 [f#2,a2]@3 ~ b2@3 ~ [d2,g2]@3 b2 g2@3 b2 [d2,g2]@3 b2 ~@4 [g2,a#2]@3 ~@4 a#2 [d2,g2,a2]@3 a#2 f#3@3 ~ [a#2,c#3,f#3]@3 ~ f#3@3 ~ [f#2,a#2,e3]@2 ~@6 [f#2,b2]@3 ~@5 [f#2,b2]@2 b2@2 d3@3 ~ [g#2,b2,d3]@3 ~ d3@3 d3 [g#2,b2,d3]@3 d3 d3@3 d3 [g#2,b2,d3]@3 e3 d3@3 c#3 [g2,a2,b2]@3 c#3, ~@7 c3@57, ~@48 d3@11 ~@19 d3@16 ~@34]/8", // F#dim Bm F#m G5 Gm Dsus4 F# F#7 …
  M: "[[f#2,a2]@3 ~ [f#2,a2]@3 ~@5 [f#2,a2]@3 ~@5 [f#2,a2]@3 ~ [g2,b2]@3 ~ [g2,a2,c#3]@3 ~, d3@19 ~@13]/2", // F#m G A7
  N: "[d3@3 ~ [f#2,a2,c3]@3 ~@5 [d2,f#2,b2]@2 ~@6 [f#2,a2]@3 ~@5 [f#2,a2]@3 ~ b2@3 ~ [d2,g2]@3 b2 g2@3 b2 [d2,g2]@3 b2 ~@4 [g2,a#2]@3 ~@4 a#2 [d2,g2,a2]@3 a#2 f#3@3 ~ [a#2,c#3,f#3]@3 ~ f#3@3 ~ [f#2,a#2,e3]@2 ~@6 [f#2,b2]@3 ~@5 [f#2,b2]@2 b2@2 d3@3 ~ [g#2,b2,d3]@3 ~ d3@3 d3 [g#2,b2,d3]@3 d3 d3@3 d3 [g#2,b2,d3]@3 e3 d3@3 c#3 [g2,a2,b2]@3 c#3, ~@4 c3@3 c3@57, ~@48 d3@11 ~@19 d3@16 ~@34]/8", // F#dim Bm F#m G5 Gm Dsus4 F# F#7 …
  O: "[[f#2,a2]@3 ~ [f#2,a2]@3 ~@5 [f#2,a2]@3 ~@5 [f#2,a2,d3]@3 ~ [g2,a#2,e3]@3 ~ [g2,a#2,e3]@3 ~, d3@19 ~@13]/2", // F#m D Edim
  P: "[a3@3 ~ [f3,a3]@3 a3 a3@3 a3 [f3,a3]@3 a3 ~@4 f3@3 ~@4 a3 a#3@3 c4 a3@3 ~ [c#3,e3,g3]@3 ~ g3@3 ~ [a2,c#3,f#3]@2 ~@6 [a2,c#3]@3 ~@5 [a2,c#3]@3 ~ f3@3 ~ [a2,d3,f3]@3 f3 f3@3 f3 [a2,d3,f3]@3 f3 ~@4 [a2,d3]@3 ~@4 f3 [a2,d3,g3]@3 a3, ~ c3@2 c3@2 c3@19, ~@16 a3@11 ~@19 g3@13 ~@21 f3@11 ~@5]/6", // F C#dim F#m A Dm D5 Dsus4
  Q: "[f3@3 ~ [a2,d#3]@3 ~ d#3@3 ~ [f2,a2,d3]@2 ~@6 [f2,a2]@3 ~@5 [f2,a2]@3 ~ d3@3 ~ [f2,a2,a#2]@3 d3 a#2@3 d3 [f2,a2,a#2]@3 d3 ~@4 [a#2,c#3]@3 ~@4 c#3 [f2,a#2]@3 c#3 a3@3 ~ [c#3,e3,a3]@3 ~ a3@3 ~ [a2,c#3,g3]@2 ~@6 [a2,d3]@3 ~@5 [a2,d3]@3 ~ f3@3 ~ [b2,d3,f3]@3 f3 f3@3 f3 [b2,d3,f3]@3 f3 f3@3 f3 [b2,d3,f3]@3 g3 f3@3 e3 [b2,c3,d3]@3 e3, ~ c3@14 c3@16 ~, ~@7 d#3@57, ~@48 f3@11 ~@19 f3@13 ~@37]/8", // Adim Dm F A#maj7 A#m A#5 A A7 …
  R: "[[a2,c3]@4 a2@3 ~@5 a2@3 ~@5 a2@3 ~ a2@3 ~ [g2,a2,c#3]@3 ~ f#3@3 ~ [a2,d3,f#3]@3 f#3 f#3@3 f#3 [a2,d3,f#3]@3 f#3 ~@4 [a2,d3]@3 ~@4 f#3 [a2,d3,g3]@3 a3 f#3@3 ~ [a#2,c#3,e3]@3 ~ e3@3 ~ [a#2,c#3]@2 ~@6 [a#2,c#3]@3 ~@5 [a#2,c#3]@3 ~ d3@3 ~ [f#2,b2,d3]@3 d3 d3@3 d3 [f#2,b2,d3]@3 d3 ~@4 [f#2,b2]@3 ~@4 d3 [f#2,b2,e3]@3 f#3, f3@19 ~@29 f#3@11 ~@19 e3@13 ~@21 d3@11 ~@5, ~ c3@31]/8", // Am A7 D D5 Dsus4 A#dim A#m Bm …
  S: "d3@3 ~ [f#2,a2]@3 ~@5 [d2,f#2,b2]@3 ~", T: "~@4 [f#2,a2]@3 ~@5 [f#2,a2]@3 ~",
  U: "b2@3 ~ [d2,g2]@3 b2 g2@3 b2 [d2,g2]@3 b2", V: "~@4 [g2,a#2]@3 ~@4 a#2 [d2,g2,a2]@3 a#2, d3@11 ~@5",
  W: "[f#3@3 ~ [a#2,c#3,f#3]@3 ~ f#3@3 ~ [f#2,a#2,e3]@2 ~@6 [f#2,b2]@3 ~@5 [f#2,b2]@2 b2@2, ~@7 d3@8 ~]/2", // F# F#7 B5
  X: "d3@3 ~ [g#2,b2,d3]@3 ~ d3@3 d3 [g#2,b2,d3]@3 d3", Y: "d3@3 d3 [g#2,b2,d3]@3 e3 d3@3 c#3 [g2,a2,b2]@3 c#3",
  Z: "[[f#2,a2]@3 ~ [f#2,a2]@3 ~ b2@3 ~ [g2,b2]@3 ~ [f#2,a2]@7 ~@9, d3@23 ~@9]/2", // F#m G F#m
})).s("gm_electric_guitar_jazz").gain(0.41).pan(1)

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

stack(electric_guitar_jazz, bass)

More by Brassens Georges