Strudelify

Le temps ne fait rien a l'affaire

Brassens Georges

KeyA majorTempo130 bpm
0:00/0:00
// Le temps ne fait rien a l'affaire — Brassens Georges
// 130 bpm, 6/8, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "AcGuitr3" acoustic guitar nylon (copy of ch 1 "AcGuitr1" acoustic guitar nylon)
// note: Full arrangement: all 136 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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.

// bass · acoustic bass · "Basse2"
const bass = note(`<
  ~ A B A B C D B C@2 D E F C D B C@2 D B C@3 G@2 D@2 H I C@4 J@2 K@6 I L C@7 M G@4 C@2 K@2 N@2 G@2 C J K I C@3 A B C D
  B C@2 D E F C D B C@2 D B C@3 G@2 D@2 H I C@4 J@2 K@6 I L C@7 M G@4 C@2 K@2 N@2 G@2 C J K I C O
>`.pickRestart({
  A: "a2 g2", B: "f2 e2", C: "a1 e2", D: "g2 d3", E: "f2 g2", F: "c2 e2", G: "d2 a2", H: "c2 d2", I: "e2 b2",
  J: "f#2 c#3", K: "b1 f#2", L: "e2 c3", M: "a1 f2", N: "c#2 g#2", O: "a1 ~",
})).s("gm_acoustic_bass").gain(0.2)

// chords · acoustic guitar nylon · "AcGuitr1"
const acoustic_guitar_nylon = note(`<
  ~ A@5 B C A@2 B D E A B C A@2 B F A G@2 H@2 B@2 I J G@4 K@2 L@6 J M G@7 N O@3 H G@2 L@2 P@2 O H G K L J Q A@5 B C A@2
  B D E A B C A@2 B F A G@2 H@2 B@2 I J G@4 K@2 L@6 J M G@7 N O@3 H G@2 L@2 P@2 O H G K L J R S
>`.pickRestart({
  A: "~@2 [a2,c3,e3,a3,e4] ~@2 [c3,e3,a3,c4,e4]", B: "~@2 [g2,d3,g3,b3,d4] ~@2 [b2,d3,g3,b3,d4]",
  C: "~@2 [f2,a3,c4,f4] ~@2 [g#3,b3,e4]", D: "~@2 [f2,a3,c4,f4] ~@2 [b2,d3,g3,b3,d4]",
  E: "~@2 [c3,g3,c4,e4,g4] ~@2 [g#3,b3,e4]", F: "~@2 [f2,a3,c4,f4] ~@2 [g3,b3,e4]",
  G: "~@2 [a2,c#3,e3,a3,e4] ~@2 [c#3,e3,a3,c#4,e4]", H: "~@2 [d2,d3,f3,a3,a4] ~@2 [d3,f3,a3,f4,a4]",
  I: "~@2 [c3,g3,c4,e4,g4] ~@2 [d3,f3,a3,f4,a4]", J: "~@2 [e2,g#3,b3,e4] ~@2 [g#3,b3,e4]",
  K: "~@2 [f#2,a#3,c#4,f#4] ~@2 [a#3,c#4,f#4]", L: "~@2 [b2,f#3,b3,d4,f#4] ~@2 [d3,f#3,b3,d4,f#4]",
  M: "~@2 [e2,g#3,c4,e4] ~@2 [g#3,c4,e4]", N: "~@2 [a2,c#3,f3,a3,f4] ~@2 [c#3,f3,a3,c#4,f4]",
  O: "~@2 [d2,d3,f#3,a3,a4] ~@2 [d3,f#3,a3,f#4,a4]", P: "~@2 [c#3,g#3,c#4,f4,g#4] ~@2 [f3,g#3,c#4,f4,g#4]",
  Q: "~@2 [a2,c#3,e3,a3,e4] ~@2 [g#3,b3,e4]", R: "[a2,c#3,e3,a3,e4]@2 ~ [g#3,b3,e4]@2 ~",
  S: "[c#3,e3,a3,e4]@2 ~, a2@5 ~", // A
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0.3)

// other · acoustic guitar steel · "GuitarCh5"
const acoustic_guitar_steel = note(`<
  A B@2 C D ~@3 E F ~@2 G H ~@2 I J ~@2 K H ~ L@2 M@3 N ~@2 O P Q@2 R@3 ~ S T U@2 V@2 ~@2 O P W X Y Z AA AB AC AD AB AA
  AE@2 AA AF AC AG AH AI AJ@2 ~@6 AK F ~@2 AL H ~@2 AM@2 ~@2 K H ~ AN@2 AO@4 ~@2 AP P AQ@2 AR@3 ~ S T U@2 AS@2 ~@2 AP P
  W X AT@2 AA AB AU AV AB AA AE@2 AA AB AC AG AH AI AW@2
>`.pickRestart({
  A: "~@20 e4@3 ~", B: "[a4@6 ~ a4@4 g4@6 ~@2 g4@4 f4@6 ~@2 f4@4 ~ e4@6 ~@2 e4@4]/2",
  C: "a4@3 ~ b4@3 ~ a4@3 ~ g4@2 ~@2 a4@2 ~@2 g4@2 ~@2", D: "f4@3 ~ g4@2 ~@2 f4@4 e4@12",
  E: "~@3 c4 b3 a3, ~@9 a3@5 ~@10", F: "f3@3 ~@5", G: "~@8 e4@2 ~@2 e4@4 d4@4 c4@3 ~", H: "e4@13 ~@11",
  I: "~@8 a3@4 c4@4 b3@3 a3@5", J: "e4@11 ~", K: "~@9 e4@2 ~@2 e4@3 d4@4 c4@4",
  L: "[~@8 f4@2 ~@2 f4@3 ~@4 d4@3 ~ f4@16 ~@9, ~@16 e4@5 ~@27]/2",
  M: "[~@5 a4@2 ~ b4@2 ~@2 c5@2 ~@2 d5@2 ~ e5@2 ~@2 f5@27 ~@3 e5@2 ~ d5@2 ~@2 e5@2 ~@2 d5@2 ~ c5@2 ~@3]/3",
  N: "e5@5 ~@3", O: "~@13 c#4@11", P: "e4@23 ~", Q: "[~@13 d4@10 f#4@22 ~@3]/2",
  R: "[~@12 b4@4 ~@3 f#4@4 ~@13 f#4@11 ~@25, ~@16 d4@6 ~ b4@26 ~@23]/3", S: "~@13 b3@10 ~", T: "d4@23 ~",
  U: "[~@12 e4@10 ~ g#4@22 ~@3]/2", V: "[~@12 a4@2 ~@2 g#4@3 f#4@3 ~ e4@11 c#4@13 ~]/2", W: "~@13 c#4@10 ~", X: "e4",
  Y: "~@12 f#4@3 ~ e4@3 d4@3 ~@2", Z: "f#4@7 ~", AA: "~ a4@23", AB: "b4", AC: "~ c#5@23", AD: "~ d5@12 c#5@11",
  AE: "[~ g#4@38 ~@9]/2", AF: "~ b4@23", AG: "~ d5@23", AH: "~@2 [b3,d4] a4@2 [d4,f#4]", AI: "g#4@2 [e4,a4]@3 [e4,b4]",
  AJ: "[[a3,a4]@5 ~]/2", AK: "~@12 c4@4 ~@3 a3@5, ~@9 a3@5 ~@2 b3@5 ~@3", AL: "~@8 e4@2 ~@2 e4@3 d4@4 c4@3 ~@2",
  AM: "[~@8 a3@4 c4@4 b3@3 a3@4 e4@22 ~@3]/2", AN: "[~@8 f4@2 ~@2 f4@3 e4@4 d4@3 ~ f4@16 ~@9]/2",
  AO: "[~@5 a4@2 ~ b4@2 ~@2 c5@2 ~ d5@2 ~@2 e5@2 ~@2 f5@27 ~@3 e5@2 ~ d5@2 ~@2 e5@2 ~@2 d5@2 ~ c5@2 ~@2 e5@15 ~@10]/4",
  AP: "~@12 c#4@11 ~", AQ: "[~@12 d4@10 ~ f#4@22 ~@3]/2",
  AR: "[~@12 b4@3 d4@4 f#4@4 ~@13 f#4@11 ~@25, ~@23 b4@26 ~@23]/3",
  AS: "[~@12 a4@2 ~ g#4@3 f#4@3 ~@2 e4@11 c#4@13 ~]/2", AT: "[~@12 f#4@3 e4@3 ~ d4@3 ~ f#4@21 ~@4]/2", AU: "c#5",
  AV: "~ d5@11 c#5@12", AW: "[[a2,c#3,e3,e4]@2 ~ [g#3,b3,e4]@2 ~ [c#3,e3,a3,e4]@4 ~@2, a4@5 ~, a3@6 a2@5 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.37).pan(0.7)

// chords · string ensemble 2 · "SlwStrg6"
const string_ensemble_2 = note("<~@70 A@2 B C@3 D@4 E C@3 F@4 G@4 H@3 I ~@15 J@3 K@2 L@2 M ~@7 N@4 O@5 ~>".pickRestart({
  A: "[[a3,c4,e4]@11 ~@5]/2", B: "[a3,c4]", C: "[[b3,d4,g4]@21 ~@2 [c4,f4,a4]@12 [g#4,b4]@8 ~@29, ~@35 e4@27 ~@10]/3",
  D: "[[a3,c4,e4]@20 ~@6 g4@17 ~@4 [c4,f4,a4]@11 ~@2 g4@11 ~ c5@21 ~@3, ~@23 [b3,d4]@20 ~@16 [d4,b4]@9 ~@3 [e4,g4]@21 ~@4]/4", // Am F Bm G Em
  E: "[a3,c4,e4]", // Am
  F: "[[a3,c4,e4]@20 ~@6 g4@17 ~@4 [c4,f4,a4]@9 ~@3 [g4,b4]@10 ~@2 [a4,c5]@22 ~@3, ~@23 [b3,d4]@20 ~@53]/4", // Am F G Am Bm
  G: "[a5@12 b5@10 c#6@13 d6@12 e6@12 f6@36 ~]/4", H: "[d6@11 c6@12 b5@12 a5@12 g5@24 ~]/3", I: "e5@11 ~",
  J: "[~@23 a4@37 b4@12]/3", K: "[c#5@35 e5@13]/2", L: "[a5@3 b5]/2", M: "f#5",
  N: "[~@11 c#5@11 ~ f5@12 g#5@12 f#5@25 b5@23 ~]/4", O: "[~@11 a5@12 g#5@12 f#5@12 d5@22 ~@2 g#5@18 ~ b5@5 a5@24 ~]/5",
})).s("gm_string_ensemble_2").gain(0.21).pan(0.1)

// chords · string ensemble 2 · "SlwStrg6" · soft notes
const string_ensemble_2_soft = note("<~@72 A ~ B@2 ~@6 B@2 ~@2 C@2 ~@48>".pickRestart({
  A: "e4@23 ~", B: "[~@11 a4@8 ~@5, ~@21 c5@17 ~@10]/2", C: "[~@11 e4@34 ~@3]/2",
})).s("gm_string_ensemble_2").gain(0.07).pan(0.1)

// other · string ensemble 1 · "Cello 7"
const string_ensemble_1 = note("<~@87 A@3 B@6 ~@16 C@3 D@3 E@2 F@2 G H@3 I@2 F@2 G J K ~@3>".pickRestart({
  A: "[~@23 [a2,a3]@45 ~@4]/3", // A
  B: "[[d3,d4]@44 ~@4 f4@13 ~ g4@31 ~@3 e3@11 [d3,b3,d4]@11 ~ g#3@17 ~@8, ~@47 g3@46 ~@2 c4@13 ~@10 e3@20 ~@6, ~@118 e4@17 ~@9]/6", // D G
  C: "[a2@59 c#3@12 ~]/3", D: "e3/3", E: "[~@11 f#3@12 d3@11 c#3@13 ~]/2", F: "d3", G: "e3@7 ~",
  H: "[d3@10 ~ c#3@11 ~ d3@24 f#3@25]/3", I: "[g#3@3 ~]/2", J: "f#3@10 ~@2 e3@11 ~", K: "d3 ~",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.6)

// chords · string ensemble 2 · "Strings8"
const string_ensemble_2_2 = note(`<
  ~@70 A@2 B C@3 D@4 ~ C@3 E@4 F@4 G@3 H ~@15 I@3 J@2 K@2 L ~@7 M@4 N@5 ~
>`.pickRestart({
  A: "[[a2,c3,e3]@11 ~@5]/2", B: "[a2,c3]", C: "[[b2,d3,g3]@21 ~@2 [c3,f3,a3]@12 [g#3,b3]@8 ~@29, ~@35 e3@27 ~@10]/3",
  D: "[[a2,c3,e3]@20 ~@6 g3@17 ~@4 [c3,f3,a3]@11 ~@2 g3@11 ~ c4@21 ~@3, ~@23 [b2,d3]@20 ~@16 [d3,b3]@9 ~@3 [e3,g3]@21 ~@4]/4", // Am F Bm G Em
  E: "[[a2,c3,e3]@20 ~@6 g3@17 ~@4 [c3,f3,a3]@9 ~@3 [g3,b3]@10 ~@2 [a3,c4]@22 ~@3, ~@23 [b2,d3]@20 ~@53]/4", // Am F G Am Bm
  F: "[a4@12 b4@10 c#5@13 d5@12 e5@12 f5@36 ~]/4", G: "[d5@11 c5@12 b4@12 a4@12 g4@24 ~]/3", H: "e4@11 ~",
  I: "[~@23 a3@37 b3@12]/3", J: "[c#4@35 e4@13]/2", K: "[a4@3 b4]/2", L: "f#4",
  M: "[~@11 c#4@11 ~ f4@12 g#4@12 f#4@25 b4@23 ~]/4", N: "[~@11 a4@12 g#4@12 f#4@12 d4@22 ~@2 g#4@18 ~ b4@5 a4@24 ~]/5",
})).s("gm_string_ensemble_2").gain(0.23).pan(0.9)

// chords · string ensemble 2 · "Strings8" · soft notes
const string_ensemble_2_soft_2 = note("<~@72 A ~ B@2 ~@4 A ~ B@2 ~@2 C@2 ~@48>".pickRestart({
  A: "e3@23 ~", B: "[~@11 a3@8 ~@5, ~@21 c4@17 ~@10]/2", C: "[~@11 e3@34 ~@3]/2",
})).s("gm_string_ensemble_2").gain(0.08).pan(0.9)

stack(
  bass, acoustic_guitar_nylon, acoustic_guitar_steel, string_ensemble_2, string_ensemble_2_soft, string_ensemble_1,
  string_ensemble_2_2, string_ensemble_2_soft_2
)

More by Brassens Georges