Strudelify

Le Temps passe

Brassens Georges

KeyA majorTempo250 bpm
0:00/0:00
// Le Temps passe — Brassens Georges
// 250 bpm, 2/2, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/2 at bar 1, 3/4 at bar 35, 2/2 at bar 54, 3/4 at bar 88, ...) are rendered on a constant 2/2 grid of one bar per cycle
// note: Full arrangement: all 164 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(250/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@4 B C D@2 E F G@2 H I J@2 K@2 L@2 B C D@2 E F M@2 H I J@2 N O@2 P Q R S T@3 U V W@7 X@4 Y@3 Z AA@3 AB AC@3 AD AE@2
  AF@2 AG@3 Z AA@3 AB AH@3 AD AE@2 AI@8 AJ AK AL AM AN@4 AO AP AQ@6 AR@2 AS AT AU AV@2 AW AX@2 AY AZ BA BB BC@2 BD@3 AT
  AU AV@2 AW BE@3 AZ BA BB BF@7 BG@6 BH BI BJ@2 BK@2 BL@2 BM@4
>`.pickRestart({
  A: "~@4 [c#3,e3,a3]@3 ~@5 [c#3,e3,a3]@3 ~", B: "~@4 [g#3,b3,d4]@3 ~ d4@3 ~ [g#3,b3,e4]@3 ~",
  C: "d4@3 ~ [g#3,b3,e4]@3 ~ d4@3 ~ [g#3,b3,e4]@3 ~", // E
  D: "[~@4 [a3,c#4]@3 ~ a3@3 ~ a3@3 ~@5 [e3,a3]@3 ~@5 [e3,a3]@3 ~, f#4@7 ~@5 c#4@15 ~@5]/2", // A A5
  E: "~@4 [f#3,a3,c4]@3 ~ c4@3 ~ [f#3,a3,d4]@3 ~", F: "c4@3 ~ [f#3,a3,d4]@3 ~ f#4@3 ~ [f#3,a3,e4]@3 ~",
  G: "[~@4 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~, b3@23 ~@9]/2", // G5
  H: "~@4 [e3,g3,a#3]@3 ~ a#3@3 ~ [e3,g3,c4]@3 ~", I: "a#3@3 ~ [e3,g3,c4]@3 ~ d4@3 ~ [e3,g3,e4]@3 ~",
  J: "[~@4 [f3,a3]@3 ~ f3@3 ~ a3@8 [f3,a3]@3 ~ b3@3 ~ [f3,a3,b3]@3 ~, d4@7 ~@5 f3@3 ~@17]/2", // F Bm7b5
  K: "[~@4 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [a3,c4,f4]@3 ~ g4@3 ~ [a3,c4,f4]@3 ~, e4@19 ~@13]/2", // G#m F
  L: "[~@4 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~, e4@27 ~@5]/2", // G#m
  M: "[~@4 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~, b3@27 ~@5]/2", // G5
  N: "~@4 [g#3,b3]@3 ~@5 [g#3,b3,e4]@3 ~, e4@11 ~@5", // G#m E
  O: "[~@3 [a3,c4]@2 g4@5 ~@3 [a3,c4]@3 ~@4 g#3 ~ b3@4 e4 b3@4 g#3, f4@7 ~@4 f4@8 ~@13, ~@8 [e3,e4]@5 ~@3]/2", // Am E
  P: "~@5 f#3 a3@4 d4 ~ a3@4, ~ d3@10 ~@5", Q: "f#3 ~@4 a3 ~ c4@4 f4 c4@4, ~ c3@10 ~@5",
  R: "~ a3 ~@4 g#3 ~ b3@4 e4 b3@3, ~ b2@5 ~@2", S: "~ g#3 ~ e4@5 ~@2 c4 e4@3 c4@2, ~@8 e3@5 ~@3, ~@9 a3@5 ~@2",
  T: "[~ e4@2 ~@7 [f#3,a3]@4 c4@5 ~@8 e3@4 c4@5 ~@8 a3@4, ~@3 d4@10 ~@7 a3@10 ~@7 d4@10 ~, ~@9 d3@5 ~@12 [a2,c3]@5 ~@11 d3@5 ~, ~@43 f#3@5]/3", // F#m Am
  U: "~@5 e4@5 ~@2 c4 ~ e4@2, ~@11 e3@5, ~@3 a3", V: "c4@3 e4@3 ~@7 a3@3, ~@3 d4@5, ~@3 [d3,f#3]",
  W: "[~ c4@5 ~@8 f3@4 g3@5 ~@6 [g2,c3]@5 [g2,b2]@5 ~ e4@5 ~@2 c4 e4@3 c4@3 e4@3 ~@7 a3@4 e4@3 d4@2 c4@5 ~@2 [e3,a3]@4 c4@5 ~@8 a3@4 ~@6 e4@5, ~@7 a3@10 ~@40 d4@10 ~@23 d4@10 ~@12, ~@12 a2@5 ~@46 f#3@5 ~@44, ~@13 c3@5 ~@5 e3@10 ~@13 [e3,a3]@5 ~@11 d3@5 ~@12 c3@5 ~@12 [d3,f#3]@5 ~@11]/7", // C5 G A5 D
  X: "[~@2 c4 e4@3 c4@3 e4@2 ~@7 [f#3,a3]@4 c4@5 ~@7 [a2,c3]@5 g3@5 ~@5 [c#3,e3]@3 ~@5 [c#3,e3]@3 ~@4, e3@5 ~@12 d3@5 ~@6 f3@10 ~@7 a3@15 ~@4, ~ a3@5 ~@5 d4@10 ~@43]/4", // F#m Am C#m
  Y: "~ [c#3,e3,a3]@3 ~@5 [c#3,e3,a3]@3 ~@4", Z: "~ [g#3,b3,d4]@3 ~ d4@3 ~ [g#3,b3,e4]@3 ~ d4@3",
  AA: "[~ [g#3,b3,e4]@3 ~ d4@3 ~ [g#3,b3,e4]@3 ~@5 [a3,c#4]@3 ~ a3@3 ~ a3@3 ~@5 [e3,a3]@3 ~@5 [e3,a3]@3 ~@4, ~@13 f#4@7 ~@5 c#4@15 ~@8]/3", // E A A5
  AB: "~ [f#3,a3,c4]@3 ~ c4@3 ~ [f#3,a3,d4]@3 ~ c4@3", // F#dim D
  AC: "[~ [f#3,a3,d4]@3 ~ f#4@3 ~ [f#3,a3,e4]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@4, ~@13 b3@23 ~@12]/3", // D F#m7 G5
  AD: "~ [e3,g3,a#3]@3 ~ a#3@3 ~ [e3,g3,c4]@3 ~ a#3@3", // Edim C
  AE: "[~ [e3,g3,c4]@3 ~ d4@3 ~ [e3,g3,e4]@3 ~@5 [f3,a3]@3 ~ f3@3 ~ a3@7, ~@13 d4@7 ~@5 f3@3 ~@4]/2", // C Em F
  AF: "[~ [f3,a3]@3 ~ b3@3 ~ [f3,a3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@4, ~@13 e4@19]/2", // F Bm7b5 G#m
  AG: "[~ [a3,c4,f4]@3 ~ g4@3 ~ [a3,c4,f4]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@4, ~@13 e4@27 ~@8]/3", // F G#m
  AH: "[~ [f#3,a3,d4]@3 ~ f#4@3 ~ [f#3,a3,e4]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@4, ~@13 b3@27 ~@8]/3", // D F#m7 G5
  AI: "[~ [f3,a3]@3 ~ b3@3 ~ [f3,a3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3,e4]@3 ~@3 [a3,c4]@3 g4@5 ~@3 [a3,c4]@3 ~@4 g#3 b3@4 e4 ~ b3@4 g#3 ~@4 f#3 ~ a3@4 d4 a3@4 ~ f#3 ~@4 a3 ~ c4@4 f4 c4@4 a3 ~@5 g#3 b3@4 e4 ~ b3@4 g#3 e4@5 ~@2 c4 ~ e4@2 c4@3 e4@3, ~@13 e4@11 ~@5 f4@7 ~@3 f4@8 ~@71 a3@5 ~@5, ~@45 [e3,e4]@10 ~@6 d3@10 ~@7 c3@10 ~@7 b2@10 ~@12 e3@5 ~@6]/8", // F Bm7b5 G#m E Am E
  AJ: "~@7 a3@4 c4@5, d4@5 ~@3, ~@6 [d3,f#3]@5 ~@5", AK: "~@2 e3 c4, ~ a3@10 ~@5, ~@6 a2@5 ~@5, ~@7 c3@5 ~@4",
  AL: "~@8 [f#3,a3]@5 ~@3, ~ d4@10 ~@5, ~@7 d3@5 ~@4", AM: "~@2 e4@5 ~@2 c4 e4@3 c4@3, ~@8 [e3,a3]@5 ~@3",
  AN: "[e4@3 ~@7 a3@4 c4@5 ~@7 [c3,f3]@4 g3@5 ~@7 [g2,c3]@5 [g2,b2]@5 ~ e4@5 ~@2 c4 e4@3, ~@3 d4@10 ~@46 a3@5, ~@8 d3@5 ~@12 a2@5 ~@34, ~@9 f#3@5 ~@5 a3@10 ~@7 e3@10 ~@12 e3@5 ~]/4", // F5 C5 G
  AO: "c4@3 e4@2 ~@7 [f#3,a3]@4, ~@5 d4@10 ~, ~@11 d3@5", AP: "e4@3 d4@3 c4@5 ~@2 a3@3, ~@3 [c3,e3]",
  AQ: "[~ c4@5 ~@8 a3@4 ~@5 e4@5 ~@2 c4 ~ e4@2 c4@3 e4@3 ~@7 a3@4 c4@5 ~@7 c3@5 g3@5 ~@4 [c#3,e3]@3 ~@5 [c#3,e3]@3 ~@5 [c#3,e3,a3]@3, ~@7 d4@10 ~@23 d4@10 ~@46, ~@12 d3@5 ~@12 e3@5 ~@12 [d3,f#3]@5 ~@6 f3@10 ~@6 a3@15 ~@8, ~@13 f#3@5 ~@12 a3@5 ~@27 a2@5 ~@29]/6", // C#m A D
  AR: "~@5 [c#3,e3,a3]@3 ~@5 [c#3,e3,a3]@3", AS: "~@5 [c#3,e3,a3]@3 ~@5 [g#3,b3,d4]@3",
  AT: "~ d4@3 ~ [g#3,b3,e4]@3 ~ d4@3 ~ [g#3,b3,e4]@3", AU: "~ d4@3 ~ [g#3,b3,e4]@3 ~@5 [a3,c#4]@3, ~@9 f#4@7",
  AV: "[~ a3@3 ~ a3@3 ~@5 [e3,a3]@3 ~@5 [e3,a3]@3 ~@5 [f#3,a3,c4]@3, ~@5 c#4@15 ~@12]/2", // A5 F#dim
  AW: "~ c4@3 ~ [f#3,a3,d4]@3 ~ c4@3 ~ [f#3,a3,d4]@3", // D
  AX: "[~ f#4@3 ~ [f#3,a3,e4]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3, ~@9 b3@23]/2", // F#m7 G5
  AY: "~@5 [d3,g3]@3 ~@5 [e3,g3,a#3]@3", AZ: "~ a#3@3 ~ [e3,g3,c4]@3 ~ a#3@3 ~ [e3,g3,c4]@3",
  BA: "~ d4@3 ~ [e3,g3,e4]@3 ~@5 [f3,a3]@3, ~@9 d4@7", BB: "~ f3@3 ~ a3@8 [f3,a3]@3, ~@5 f3@3 ~@8",
  BC: "[~ b3@3 ~ [f3,a3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [a3,c4,f4]@3, ~@9 e4@19 ~@4]/2", // Bm7b5 G#m F
  BD: "[~ g4@3 ~ [a3,c4,f4]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3,d4]@3, ~@3 e4@9 ~@4]/3", // F G#m G#dim
  BE: "[~ f#4@3 ~ [f#3,a3,e4]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [d3,g3]@3 ~@5 [e3,g3,a#3]@3, ~@3 b3@9 ~@4]/3", // F#m7 G5 Edim
  BF: "[~ b3@3 ~ [f3,a3,b3]@3 ~@5 [g#3,b3]@3 ~@5 [g#3,b3,e4]@3 ~@4 [a3,c4]@3 g4@5 ~@3 [a3,c4]@2 ~@4 g#3 ~ b3@4 e4 b3@4 ~ g#3 ~@4 f#3 ~ a3@4 d4 a3@4 f#3 ~@5 a3 c4@4 f4 ~ c4@4 a3 ~@4 g#3 ~ b3@4 e4 b3@4 ~ g#3 e4@4, ~@9 e4@11 ~@5 f4@7 ~@4 f4@8 ~@68, ~@41 [e3,e4]@10 ~@7 d3@10 ~@7 c3@10 ~@6 b2@10 ~@11]/7", // Bm7b5 G#m E Am E
  BG: "[~@3 c4 e4@3 c4@3 e4@3 ~@7 a3@4 c4@5 ~@7 [c3,e3]@4 c4@5 ~@8 a3@4 ~@6 e4@5 ~@2 c4 e4@3 c4@3 e4@2 ~@7 [f#3,a3]@4 c4@5 ~, ~@2 [e3,a3]@5 ~@6 d4@10 ~@23 d4@10 ~@23 d4@10 ~@7, ~@18 d3@5 ~@12 a2@5 ~@12 [d3,f#3]@5 ~@11 e3@5 ~@12 d3@5 ~@6, ~@19 f#3@5 ~@5 a3@10 ~@30 a3@5 ~@22]/6", // C F#m A5 D
  BH: "~@7 f3@4 g3@5, a3@5 ~@3, ~@6 [a2,c3]@5 ~@5", BI: "~@6 [g2,c3]@5 ~ [g2,b2]@4, ~ e3@10 ~@5",
  BJ: "[~ e4@5 ~@2 c4 ~ e4@2 c4@3 e4@3 ~@7 a3@4 e4@3, ~@7 e3@5 ~@12 [d3,f#3]@5 ~@3, ~@8 a3@5 ~@5 d4@10 ~@4]/2", // D
  BK: "[d4@3 c4@5 ~@2 a3@4 c4@5 ~@7 [f#3,a3]@5 ~, ~@8 c3@5 ~@12 d3@5 ~@2, ~@9 e3@5 ~@5 d4@10 ~@3]/2", // F#m
  BL: "[~@4 e4@5 ~@2 c4 e4@3 c4@3 e4@3 ~@7 a3@4, ~@10 [e3,a3]@5 ~@6 d4@10 ~, ~@26 d3@5 ~, ~@27 f#3@5]/2", // A5
  BM: "[c4@5 ~@7 c3@5 ~@11 [b2,d3]@5 ~@11 [c#4,e4,a4]@10 ~@10, ~@5 f3@15 ~@2 g3@15 ~@2 a3@15 ~@10, ~@11 a2@5 ~@48]/4", // Bm A
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)

// bass · fretless bass
const bass = note(`<
  A@3 B C@2 A B D@2 E F G@2 H I C I J@2 C@2 A B D@2 E F G@2 H I C I K L M N O@2 P@2 Q R S T@2 U V W X Y Z AA AB@3 AC AD
  AB@2 AE AF AG@2 AH AI AJ@2 AK AL AK AM@2 AD AB@2 AE AF AG@2 AH AI AJ@2 AK AL AN@6 AO AP AQ AR@5 AS AT AU AV AW AX AY
  AZ@3 BA BB AZ@2 BC BD BE@2 BF BG BH@2 BI BJ BI BK@2 BB AZ@2 BC BD BE@2 BF BG BH@2 BI BJ BL W BM BN BO BP@6 BQ BR BS
  BT@5 BU@4
>`.pickRestart({
  A: "a2@3 ~@5 e2@3 ~@5", B: "a2@3 ~@5 a2@3 ~@5", C: "e2@3 ~@5 e2@3 ~@5", D: "d2@3 ~@5 d2@3 ~@5",
  E: "g2@3 ~@5 d2@3 ~@5", F: "g2@3 ~@5 g2@3 ~@5", G: "c2@3 ~@5 c2@3 ~@5", H: "f2@3 ~@5 c2@3 ~@5",
  I: "f2@3 ~@5 f2@3 ~@5", J: "e2@3 ~@5 b1@3 ~@5", K: "e2@5 ~@6 e2@5", L: "~ d2@5 ~@6 d2@4", M: "~ c2@5 ~@6 c2@4",
  N: "~@2 b1@5 ~@3 e2@3 f#2@3", O: "[~ g#2 ~ a2@5 ~@6 e2@5 d2@5 ~@8]/2", P: "[~@4 c2@5 ~@6 e2@5 ~ d2@5 ~@6]/2",
  Q: "e2@5 a2@5 ~@6", R: "e2@5 ~ d2@5 ~@5", S: "~ e2@5 ~ f2@5 ~@4", T: "[~@2 g2@5 c3@5 ~ c3@5 b2@5 ~ a2@5 ~@3]/2",
  U: "~@3 e2@5 ~ d2@5 ~@2", V: "~@4 e2@5 e2@5 ~@2", W: "~@4 e2@5 ~ d2@5 ~", X: "~@5 e2@5 ~ a2@5", Y: "~@6 e2@5 d2@5",
  Z: "~@6 e2@5 ~ f2@4", AA: "~@7 e2@5 ~ a2@3", AB: "~@5 e2@3 ~@5 a2@3", AC: "~@5 a2@3 ~@5 e2@3",
  AD: "~@5 e2@3 ~@5 e2@3", AE: "~@5 a2@3 ~@5 d2@3", AF: "~@5 d2@3 ~@5 d2@3", AG: "~@5 d2@3 ~@5 g2@3",
  AH: "~@5 g2@3 ~@5 c2@3", AI: "~@5 c2@3 ~@5 c2@3", AJ: "~@5 c2@3 ~@5 f2@3", AK: "~@5 f2@3 ~@5 e2@3",
  AL: "~@5 e2@3 ~@5 f2@3", AM: "~@5 b1@3 ~@5 e2@3",
  AN: "[~@5 f2@3 ~@5 e2@5 ~@6 e2@5 d2@5 ~@6 d2@5 ~ c2@5 ~@6 c2@5 ~ b1@5 ~@3 e2@3 f#2@4 g#2 a2@5 ~@6 e2@5 ~]/6",
  AO: "d2@5 ~@11", AP: "~ c2@5 ~@6 e2@4", AQ: "~ d2@5 ~@6 e2@4",
  AR: "[~@2 a2@5 ~@6 e2@5 ~ d2@5 ~@6 e2@5 f2@5 ~@6 g2@5 ~ c3@5 ~ c3@5 b2@5 ~ a2@5 ~@6]/5", AS: "e2@5 d2@5 ~@6",
  AT: "e2@5 ~ e2@5 ~@5", AU: "~ e2@5 ~ d2@5 ~@4", AV: "~@2 e2@5 a2@5 ~@4", AW: "~@2 e2@5 ~ d2@5 ~@3",
  AX: "~@3 e2@5 ~ f2@5 ~@2", AY: "~@4 e2@5 a2@3 ~@4", AZ: "~ e2@3 ~@5 a2@3 ~@4", BA: "~ a2@3 ~@5 e2@3 ~@4",
  BB: "~ e2@3 ~@5 e2@3 ~@4", BC: "~ a2@3 ~@5 d2@3 ~@4", BD: "~ d2@3 ~@5 d2@3 ~@4", BE: "~ d2@3 ~@5 g2@3 ~@4",
  BF: "~ g2@3 ~@5 c2@3 ~@4", BG: "~ c2@3 ~@5 c2@3 ~@4", BH: "~ c2@3 ~@5 f2@3 ~@4", BI: "~ f2@3 ~@5 e2@3 ~@4",
  BJ: "~ e2@3 ~@5 f2@3 ~@4", BK: "~ b1@3 ~@5 e2@3 ~@4", BL: "~ f2@3 ~@5 e2@5 ~@2", BM: "~@5 d2@5 ~ c2@5",
  BN: "~@6 c2@5 b1@5", BO: "~@4 e2@2 f#2@4 ~ g#2 a2@4",
  BP: "[~@7 e2@5 ~ d2@5 ~@11 c2@5 ~@6 e2@5 ~ d2@5 ~@6 e2@5 ~ a2@5 ~@6 e2@5 d2@5 ~@6 e2@5 ~]/6", BQ: "f2@5 ~@6 g2@5",
  BR: "~ c3@5 c3@5 ~ b2@4", BS: "~ a2@5 ~@6 e2@4",
  BT: "[~@2 d2@5 ~@6 e2@5 ~ e2@5 ~@6 e2@5 d2@5 ~@6 e2@5 ~ a2@5 ~@6 e2@5 ~ d2@5 ~@6]/5",
  BU: "[e2@5 f2@15 ~@2 g2@15 ~@2 a2@15 ~@10]/4",
})).s("gm_fretless_bass").gain(0.18).pan(0)

stack(electric_guitar_jazz, bass)

More by Brassens Georges