Strudelify

L'Assassinat

Brassens Georges

KeyD majorTempo106 bpm
0:00/0:00
// L'Assassinat — Brassens Georges
// 106 bpm, 6/8, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 136 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(106/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 · acoustic guitar nylon · "Alto"
const acoustic_guitar_nylon = note(`<
  A B C D E F G@2 H I J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H I
  J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H I J@2 H K L M E F G@2 H
  I J@2 H K L M E F G@2 H I J@2 H K L N
>`.pickRestart({
  A: "[b4,f#5,b5] [a4,e5,a5]", B: "[f#4,c#5,f#5] [d4,a4,d5]", C: "[e4,b4,e5] [d4,a4,d5]",
  D: "[b3,d4,f#4,b4]@2 ~ b3 f#3 b3", E: "e4@2 e4 f#4@2 e4, [g3,b3] [a#3,c#4]", F: "[f#3,b3,d4]@3 f#4 e4 f#4, ~ [b3,d4]",
  G: "[g4@2 a4 [a3,d4,f#4]@5 ~ b4!3, [c#4,e4] ~@2 [d4,f#4]]/2", H: "a4@2 a4 f#4@2 d4, [d4,f#4] a3",
  I: "[g3,c4,e4]@3 f#4 e4 d4, ~@3 [g3,c4]@2 ~", J: "[d4@2 a3 f#3@5 ~ b4!3, ~@3 [d4,f#4]]/2",
  K: "[g3,c4,e4]@3 f#4 e4 d4, ~ [g3,c4]", L: "b3 a3", M: "b3@2 ~ b3 f#3 b3", N: "b3",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// bass · acoustic bass · "Basso"
const bass = note(`<
  A B C D E F G H I J K L I J M N E F G H I J K L I J M N E F G H I J K L I J M N E F G H I J K L I J M N E F G H I J K
  L I J M N E F G H I J K L I J M N E F G H I J K L I J M N E F G H I J K L I J M N E F G H I J K L I J M N E F G H I J
  K L I J M N E F G H I J K L I J M O
>`.pickRestart({
  A: "d4 c#4", B: "a3 f#3", C: "g3 f#3", D: "b2 ~@2", E: "e2 f#2", F: "b2!2", G: "a2 d3", H: "d3 b2", I: "d3!2",
  J: "c3!2", K: "[b2,d3,f#3]!2", L: "[b2,d3,f#3] b2", M: "[b2,d3,f#3] [f#2,c#3,f#3]", N: "[b2,d3,f#3] ~@2",
  O: "[b2,d3,f#3]", // Bm
})).s("gm_acoustic_bass").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A@3 B A B A ~ A B A ~ A B A B A B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A
  ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B
  A@2 B A B A ~ A B A ~ A B A@2 B@2
>`.pickRestart({
  A: "x!2", B: "x",
})).gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  A@3 B A B A ~ A B A ~ A B A B A B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A
  ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B A@2 B A B A ~ A B A ~ A B
  A@2 B A B A ~ A B A ~ A B A@2 B@2
>`.pickRestart({
  A: "x!2", B: "x",
})).gain(0.25)

stack(acoustic_guitar_nylon, bass, kick, hihat)

More by Brassens Georges