Strudelify

Tonton Nestor (La Noce de Jeannette)

Brassens Georges

KeyF majorTempo110 bpm
0:00/0:00
// Tonton Nestor (La Noce de Jeannette) — Brassens Georges
// 110 bpm, 2/4, key F 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(110/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// 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 C D E F G H I J K L M N O P Q B C D E F G H I J K L M N O P Q B C D E F G H I J K L M N O P R S T U V W X Y Z AA
  AB AC AD AE AF AG AH S T U V W X Y Z AA AB AC AD AE AF AG AH S T U V W X Y Z AA AB AC AD AE AF AG AI
>`.pickRestart({
  A: "~ [c3,f3,a3] ~ [c3,f3,a3]", B: "f4@3 f4@2 f4@3 f4@4 [a3,c4,f4]@4, ~@3 [a3,c4]@4 ~@9",
  C: "f4 [a3,c4,f4] ~ [a3,c4], ~ f4", D: "f4@3 ~@2 f4@3 a4@4 [f3,a3]@4, ~@3 [a3,c4,e4]@4 ~@9",
  E: "~ [e3,ab3] ~ [e3,ab3], db4@15 ~", F: "d4@3 d4@2 d4@3 d4@4 [f3,a3,d4]@4, ~@3 [f3,a3]@4 ~@9",
  G: "d4 [f3,a3,d4] ~ [f3,a3], ~ d4", H: "d4@3 ~@2 d4@3 f4@4 [f3,a3,d4]@4, ~@3 [f3,a3]@4 ~@9",
  I: "a3 [db3,e3] ~ [db3,e3], ~@4 a3@11 ~", J: "bb3@3 bb3@2 bb3@3 d4@4 [f3,bb3,f4]@4, ~@3 [d3,f3]@4 ~@9",
  K: "a3@2 [db3,e3,a3]@2 a3@2 ~ a3, ~@3 [db3,e3]", L: "d4 [f3,a3] d4 [f3,a3,e4]", M: "~ [g3,d4] ~ [g3,d4], f4@15 ~",
  N: "f4@3 ~@2 e4@3 ~@4 [g3,b3]@4, ~@3 [g3,b3,d4]@4 ~ f4@8", O: "f4@3 ~@2 e4@3 ~@4 [b3,d4]@4, ~@3 [g3,b3,d4]@4 ~ f4@8",
  P: "[bb3,e4,g4] ~@3", Q: "~ ab3 c4 e4 ab4 e4 c4 ab3", R: "[a3,c4,f4]@4 ~@4 [g3,bb3,db4,eb4]@7 ~",
  S: "ab4@3 ab4@2 ab4@3 ab4@4 [c4,eb4,ab4]@4, ~@3 [c4,eb4]@4 ~@9", T: "ab4 [c4,eb4,ab4] ~ [c4,eb4], ~ ab4",
  U: "ab4@3 ~@2 ab4@3 c5@4 [ab3,c4]@4, ~@3 [c4,eb4,g4]@4 ~@9", V: "~ [ab3,b3] ~ [ab3,b3], e4@15 ~",
  W: "f4@3 f4@2 f4@3 f4@4 [ab3,c4,f4]@4, ~@3 [ab3,c4]@4 ~@9", X: "f4 [ab3,c4,f4] ~ [ab3,c4], ~ f4",
  Y: "f4@3 ~@2 f4@3 ab4@4 [ab3,c4,f4]@4, ~@3 [ab3,c4]@4 ~@9", Z: "~ [e3,g3] ~ [e3,g3], c4@15 ~",
  AA: "db4@3 db4@2 db4@3 f4@4 [ab3,db4,ab4]@4, ~@3 [f3,ab3]@4 ~@9", AB: "c4@2 [e3,g3,c4]@2 c4@2 ~ c4, ~@3 [e3,g3]",
  AC: "f4 [ab3,c4] f4 [c4,eb4,g4]", AD: "~ [bb3,d4] ~ [bb3,d4], ab4@15 ~",
  AE: "ab4@3 ~@2 g4@3 ~@4 [bb3,d4]@4, ~@3 [bb3,d4,f4]@4 ~ ab4@8", // Bb
  AF: "ab4@3 ~@2 g4@3 ~@4 [d4,f4]@4, ~@3 [bb3,d4,f4]@4 ~ ab4@8", AG: "[db4,g4,bb4] ~@3", AH: "~ b3 eb4 g4 b4 g4 eb4 b3",
  AI: "~@8 [ab3,c4,eb4,ab4]@7 ~", // Ab
})).s("gm_electric_guitar_jazz").gain(0.41).pan(1)

// bass · contrabass · "Contrebasse"
const bass = note(`<
  A@6 B C D@2 E F G F H I J@2 K ~ A@2 B C D@2 E F G F H I J@2 K ~ A@2 B C D@2 E F G F H I J@2 K L M@2 N O A@2 P Q R S T
  U V W X ~ M@2 N O A@2 P Q R S T U V W X ~ M@2 N O A@2 P Q R S T U V W X Y
>`.pickRestart({
  A: "f3@7 ~ c3@7 ~", B: "f3@7 ~ a2@4 c3@4", C: "db3@7 ~ ab2@4 db3@4", D: "d3@7 ~ a2@7 ~", E: "d3@7 ~ c3@4 bb2@4",
  F: "a2@7 ~ e2@4 a2@4", G: "bb2@7 ~ f2@4 d2@4", H: "d3@7 ~ c3@7 ~", I: "b2@7 ~ g2@4 b2@4", J: "d3@7 ~ g2@7 ~",
  K: "c3 ~@3", L: "f3@4 ~@4 eb3@7 ~", M: "ab3@7 ~ eb3@7 ~", N: "ab3@7 ~ c3@4 eb3@4", O: "e3@7 ~ b2@4 e3@4",
  P: "f3@7 ~ ab3@7 ~", Q: "g3@7 ~ g2@4 c3@4", R: "db3@7 ~ ab2@4 f2@4", S: "g2@7 ~ c3@4 bb2@4", T: "ab2@7 ~ f2@4 eb2@4",
  U: "d2@7 ~ f2@7 ~", V: "bb2@7 ~ f2@7 ~", W: "bb2@7 ~ f2@4 bb1@4", X: "eb2 ~@3", Y: "~@8 ab2@7 ~",
})).s("gm_contrabass").gain(0.41).pan(0)

stack(electric_guitar_jazz, bass)

More by Brassens Georges