Strudelify

Corne d'Aurochs

Brassens Georges

KeyF majorTempo220 bpm
0:00/0:00
// Corne d'Aurochs — Brassens Georges
// 220 bpm, 2/2, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 197 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(220/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 · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D E@2 F@8 G@8 H I J K A B C L A B C L M@3 F@8 G@8 H I J K A B C L A B C L M@3 F@8 G@8 H I J K A B C L A B C L
  M@3 F@8 N@16 G@8 H I J K A B C L A B C L M@3 F@8 G@8 H I J K A B C L A B C L M@3 F@8 O@3 P@8 Q
>`.pickRestart({
  A: "c5@3 ~ c5@5 ~ c5@2 c5@3 ~", B: "c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~", C: "c5@3 ~ c5@11 ~",
  D: "c5@3 ~ bb4@5 ~ a4@2 g4@3 ~", E: "[~@4 [e5,g5,c6]@5 [e5,g5,c6]@5 ~ [e5,g5,c6]@5 [e4,g4,c5]@3 ~ c5@3 ~ c5@3 ~]/2",
  F: "[a4@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [d4,f4]@3 ~@5 [d4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@9 [c4,f4,c5]@7 ~ [b3,d4,g4]@7 ~ [bb3,e4,c5]@7 ~ [a3,c4,f4]@3 ~@9, ~@4 a3@31 ~ bb3@15 ~ a3@35 ~@41]/8", // F5 Dm F5 G C7 F
  G: "[~@8 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [d4,f4]@3 ~@5 [d4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@9 [c4,f4,c5]@7 ~ [b3,d4,g4]@7 ~ [bb3,e4,c5]@7 ~ [a3,c4,f4]@7 ~@5, ~@4 a3@31 ~ bb3@15 ~ a3@35 ~@41]/8", // F5 Dm F5 G C7 F
  H: "c6@3 ~ c6@5 ~ c6@2 c6@3 ~", I: "c6@3 ~ c6@3 ~ c6@3 ~ c6@3 ~", J: "c6@3 ~ c6@11 ~",
  K: "d6@3 ~ bb5@5 ~ a5@2 g5@3 ~", L: "d5@3 ~ bb4@5 ~ a4@2 g4@3 ~",
  M: "[~@4 [e5,g5,c6]@5 [e5,g5,c6]@5 ~ [e5,g5,c6]@5 c4@19 ~ c5@3 ~ c5@3 ~]/3", // C
  N: "[~@8 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [d4,f4]@3 ~@5 [d4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@9 [c4,f4,c5]@7 ~ [b3,d4,g4]@7 ~ [bb3,e4,c5]@7 ~ [a3,c4,f4]@3 ~@9, ~@4 a3@31 ~ bb3@15 ~ a3@35 ~@41]/8", // F5 Dm F5 G C7 F
  O: "[~@8 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [d4,f4]@3 ~@5, ~@4 a3@31 ~ bb3@12]/3", // F5 Dm
  P: "[[d4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@5 [c4,f4]@3 ~@9 [c4,f4,c5]@7 ~ [b3,d4,g4]@7 ~ [bb3,e4,c5]@7 ~ [a3,c4]@3 ~ [a3,c4]@3 ~@5 [a3,c4]@3 ~@5 [a3,c4]@3 ~@5 [a3,c4]@3 ~@5 [a3,c4]@3 ~@5 [a3,c4]@3 ~@9 [e4,bb4,c5]@3 ~, ~@4 a3@35 ~@29 f4@51 ~@9]/8", // Dm F5 G C7 Am C7
  Q: "~@4 [f4,a4,f5]@3 ~@9", // F
})).s("gm_acoustic_guitar_steel").gain(0.61).pan(1)

// bass · electric bass pick
const bass = note(`<
  A@4 B@2 C@8 D@8 E@8 F@4 G@3 C@8 D@8 E@8 F@4 G@3 C@8 D@8 E@8 F@4 G@3 C@8 H@8 C@8 D@8 E@8 F@4 G@3 C@8 D@8 E@8 F@4 G@3
  C@8 I@3 J@8 K
>`.pickRestart({
  A: "[~@4 [c3,g3,e4]@15 ~ [d3,bb3,f4]@15 ~ [eb3,bb3,gb4]@15 ~ [e3,c4,g4]@11 ~]/4", // C Bb Ebm C
  B: "[~@4 [c4,bb4]@5 [c4,bb4]@5 ~ [c4,bb4]@5 [c3,bb3]@3 ~@9]/2", // C7
  C: "[~@4 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 [d2,d3]@7 ~ [g2,f3]@7 ~ [c2,c3]@7 ~ [f2,f3]@3 ~@9, ~@4 c3@31 ~ d3@15 ~ c3@35 ~@41]/8", // D G7 C F
  D: "[~@4 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 [d2,d3]@7 ~ [g2,f3]@7 ~ [c2,c3]@7 ~ [f2,f3]@7 ~@5, ~@4 c3@31 ~ d3@15 ~ c3@35 ~@41]/8", // D G7 C F
  E: "[~@4 [c3,g3,e4]@15 ~ [d3,bb3,f4]@15 ~ [eb3,bb3,gb4]@15 ~ [e3,c4,g4]@15 ~ [c3,g3,e4]@15 ~ [d3,bb3,f4]@15 ~ [eb3,bb3,gb4]@15 ~ [e3,bb3,g4]@12]/8", // C Bb Ebm C Bb Ebm Edim
  F: "[~@4 [a3,d4,f4]@15 ~ [a3,eb4,gb4]@15 ~ [bb3,e4,g4]@15 ~ g3@5 ~ a3@2 bb3@3 ~, ~@52 c3@11 ~]/4", // Dm Ebdim Edim
  G: "[~@4 [c4,bb4]@5 [c4,bb4]@5 ~ [c4,bb4]@5 [g2,bb2,e3]@15 ~ [g3,bb3,e4]@3 ~@9]/3", // C7 Edim
  H: "[~@4 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 [d2,d3]@7 ~ [g2,f3]@7 ~ [c2,c3]@7 ~ [f2,f3]@3 ~@9, ~@4 c3@31 ~ d3@15 ~ c3@35 ~@41]/8", // D G7 C F
  I: "[~@4 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 f2@3 ~, ~@4 c3@31 ~ d3@12]/3",
  J: "[~@4 f2@3 ~@5 f2@3 ~@5 f2@3 ~@5 c2@3 ~@5 f2@3 ~@5 [d2,d3]@7 ~ [g2,f3]@7 ~ [c2,c3]@7 ~ f3@7 ~ e3@7 ~ d3@7 ~ e3@7 ~ f3@7 ~ e3@7 ~ d3@3 ~@5 c3@3 ~, ~@4 c3@35 ~@29 f2@51 ~@9]/8", // D G7 C
  K: "~@4 [f2,f3]@3 ~@9", // F
})).s("gm_electric_bass_pick").gain(0.38).pan(0)

stack(acoustic_guitar_steel, bass)

More by Brassens Georges