Strudelify

Le Mouton de Panurge

Brassens Georges

KeyD majorTempo180 bpm
0:00/0:00
// Le Mouton de Panurge — Brassens Georges
// 180 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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
const electric_guitar_jazz = note(`<
  A@2 B C D@2 E F G@4 H@2 I J K@2 L M N@2 B C D@2 E F G@4 H@2 I J K@2 L M N@2 B C D@2 E F G@4 H@2 I J K@2 L M N@2 B C
  D@2 E F G@4 H@2 I J K@2 L M N@2 B C D@2 E F G@4 H@2 I J K@2 L O
>`.pickRestart({
  A: "[b3@2 c#4@2 d4@3 ~ [f#3,b3,d4]@3 ~ b3@3 [f#3,b3,c#4]@2 d4@3 e4@3 ~ [g#3,b3]@3 ~@3 c#4@2, ~@12 e4@3 ~]/2", // Bm F#sus4 G#m
  B: "[f#3,a3,f#4]@2 e4@2 d4@3 ~ [d3,f#3,b3]@3 ~ c#4@2 [e3,f#3,a#3]@2", C: "~@8 [d3,f#3]@3 ~@3 a3@2, ~@2 b3@9 ~@5",
  D: "[[g3,a3,d4]@2 e4@2 f#4@3 ~ [a3,d4,f#4]@3 ~ d4@3 [a3,d4,e4]@2 f#4@3 g4@3 ~ [a3,c#4]@3 ~@3 e4@2, ~@12 g4@3 ~]/2", // Gsus2 D Asus4 A
  E: "[a3,c#4,a4]@2 g4@2 f#4@3 ~ [f#3,a3,d4]@3 ~ e4@2 [g3,a3]@2", F: "~@8 [a3,d4]@3 ~@5, ~@2 f#4@9 ~@5",
  G: "[[a3,c4,d4]@2 f#4@2 b4@3 ~ [b3,d4,b4]@3 ~ a4@3 [c#4,e4,g4]@2 a4@3 f#4@3 ~ [a3,d4]@3 ~@5 [b3,d#4]@2 a4@2 ~@4 [b3,e4]@2 b4@2 f#4@3 [b3,d4]@2 f#4@3 ~@4 [a#3,c#4]@3 ~@5, ~@28 b4@6 ~@2 g4@6 ~@10 e4@7 ~@5]/4", // D7 Bm C#dim D5 B E5 Bm A#m
  H: "[[c#4,e4,a4]@2 g4@2 ~@4 [b3,d4]@2 f#4@2 e4@3 [f#3,a#3,d4]@2 c#4@3 b3@3 ~ [d3,f#3,b3]@3 ~ b3@2 c#4@2, ~@2 f#4@3 ~@11]/2", // A Bm F#aug Bm
  I: "[d3,f#3,d4]@2 b3@2 ~@4 [g3,b3]@3 ~@3 g3@2, ~@4 d4@7 ~@5", J: "[e3,g3,a3]@3 ~@5 [a3,d4]@3 ~@5, ~@4 f#3@7 ~@5",
  K: "[[a3,d4,a4]@2 g4@2 ~@4 [b3,d4]@2 f#4@2 e4@3 [f#3,a#3,d4]@2 c#4@3 b3@3 ~ [d3,f#3,b3]@3 ~ b3@2 c#4@2, ~@2 f#4@3 ~@11]/2", // D5 Bm F#aug Bm
  L: "[d3,f#3,d4]@2 b3@2 ~@4 [d3,g3]@3 ~ g3@3 ~, ~@4 b3@7 ~@5", // D G5
  M: "[c#3,e3,a3]@3 ~ [d3,f#3]@3 ~ [d3,f#3]@3 ~@5, ~@4 b3@7 ~@5", // A D
  N: "[[d3,f#3,b3]@2 c#4@2 d4@3 ~ [f#3,b3,d4]@3 ~ b3@3 [f#3,b3,c#4]@2 d4@3 e4@3 ~ [g#3,b3]@3 ~@3 c#4@2, ~@12 e4@3 ~]/2", // Bm F#sus4 G#m
  O: "[c#3,e3,a3]@3 ~ [d3,f#3,b3]@7 ~@5", // A Bm
})).s("gm_electric_guitar_jazz").gain(0.41).pan(1)

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

stack(electric_guitar_jazz, bass)

More by Brassens Georges