Strudelify

j'entends

Angèle

KeyD majorTempo75 bpm
0:00/0:00
// j'entends — Angèle
// 75 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5982383; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/4)

// 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.

// other · piano
const piano = note("<A ~ B ~@2 B ~@43 C D C E@2 F E ~@18>".pickRestart({
  A: "e5 g5 b5 g5 e5 d5 c#5 a4 a#4 c#5 e5 g5 f#5@4", B: "e5 g5 b5 g5 e5 d5 c#5 a4 a#4 c#5 e5 g5 f#5 c#5 a#4 f#4",
  C: "~@6 [b5,d6,f#6]@3 ~@7", D: "~@3 [a#4,c#5,e5,g5]@3 ~@5 [a#4,c#5,f#5]@4 ~", E: "f#5 ~@15", F: "e5 ~@7 e5 ~@7",
})).s("gm_piano").gain(0.3)

// chords · piano
const piano_2 = note(`<
  A B A C D A E ~ F@2 G H I@2 J K L M N O N P Q R S T U V W@2 X Y@3 Z AA L M N O AB AC AD AE AB AF AB AG AH AI AJ AK AL
  AM AN AM AD AE AB AF AB AO AP AQ AR AS AR AT AU AV AW AX AY AZ
>`.pickRestart({
  A: "[g3,b3,e4] [a#3,c#4,e4]", B: "e5 g5 b5 g5 e5 d5 c#5 a4 a#4 c#5 e5 g5 f#5@4, [g3,b3,e4] [a#3,c#4,e4]",
  C: "b4 d5 f#5 f#4 b4 f#4 ~@3 b4 d5 d4 f#4 ~ b3@2, [f#3,b3]@7 f#4@2 ~@4 b4@3, d4@3 d4 b3@3 ~", // B5
  D: "b4 d5 f#5 f#4 b4 d5 ~@3 b4 d5 d4 f#4 ~ [f#3,b3,d4]@2, [f#3,b3]@7 f#4@2 ~@4 b4@3, d4@3 d4 b3@3 ~", // Bm B5
  E: "b4 d5 f#5 f#4 b4 d5 ~ f#4 b3@8, [f#3,b3] ~, d4@3 d4 ~@4", F: "[b2,d4,f#4,b4]@15 ~",
  G: "[c#4,a#4,c#5,g5] [a#3,a#4,c#5,e5,f#5]", H: "b3@4 b2@11 ~, [b4,d5,f#5]@15 ~", I: "b3@4 b2@11 ~, [f#4,b4,d5]@15 ~",
  J: "[c#4,a#4,c#5,e5,g5] [a#3,a#4,c#5,e5,f#5]", K: "[b3,b4,d5,f#5]@15 ~", L: "[d3,a3,d4,f#4] [b2,b3,d4,f#4]",
  M: "[g2,g3,b3,d4]@2 [d3,a3,d4,f#4] [b2,b3,d4,f#4]", N: "[e2,g3,b3,e4] [g2,g3,b3,d4]",
  O: "[a2,a3,c#4,g4]@2 [d3,a3,d4,f#4] [b2,b3,d4,f#4]", P: "[a3,c#4,g4]!2, a2@15 ~",
  Q: "[a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@2 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@2, d3 b2", // D Bm
  R: "[b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 [d3,a3,d4,f#4]@4 [b2,b3,d4,f#4]@4, g2 ~", // G D Bm
  S: "[e2,g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3] [e2,e4] [g2,b3,d4,g4]@3 [b3,d4,g4]@2 ~@2 g2, ~@5 e2@2 ~@6 g2@2 ~, ~@7 [b3,d4,g4]", // Em G E G
  T: "[a2,a3,c#4,a4]@3 [a3,c#4,a4]@2 ~@2 a2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2, ~@5 a2@2 ~ d3@4 b2@4, ~@3 [a3,c#4,a4] ~@4", // A D Bm A
  U: "[e2,g3,b3,e4]@3 [g3,b3,e4]@2 ~@2 e2 [g2,b3,d4,g4]@3 [b3,d4,g4]@2 ~@2 g2, ~@5 e2@2 ~@6 g2@2 ~, ~@3 [g3,b3,e4] ~@3 [b3,d4,g4]", // Em G Em G
  V: "[a3,c#4,a4]@3 [a3,c#4,a4]@3 [a3,c#4,a4]@3 [a3,c#4,a4]@3 [a3,c#4,a4]@2 a2@2, a2@13 ~@3", // A
  W: "[b3,d4,f#4]@3 [b3,d4,f#4]@5 [b3,d4,f#4]@3 [b3,d4,f#4]@5, b1@15 ~", // Bm
  X: "[a#3,c#4,e4,g4]@3 [a#3,c#4,e4,g4]@5 [a#3,c#4,e4,f#4]@3 ~@3 a#2@2, c#2@4 a#2@3 ~, ~@11 [a#3,c#4,e4,f#4]@5", // A#dim F#7
  Y: "[b1,b3,d4,f#4]@3 [b1,b3,d4,f#4]@5 [b1,b3,d4,f#4]@3 [b1,b3,d4,f#4]@5", // Bm
  Z: "[a#3,c#4,e4,g4]@3 [a#3,c#4,e4,g4]@5 [a#3,c#4,e4,f#4]@3 [a#3,c#4,e4,f#4]@5, c#2 a#2", // A#dim F#7
  AA: "[b3,d4,f#4]@3 [b3,d4,f#4]@5 [b3,d4,f#4]@3 ~@3 c#3@2, [b1,b2]@4 [b1,b2]@3 ~, ~@11 [b3,d4,f#4]@5", // Bm B Bm
  AB: "[e2,g3,b3,e4]@3 [g3,b3,e4]@2 ~@2 e2 [g2,g3,b3,d4]@3 [g3,b3,d4]@2 ~@2 g2, ~@5 e2@2 ~@6 g2@2 ~, ~@3 [g3,b3,e4] ~@3 [g3,b3,d4]", // Em G Em G
  AC: "[a2,a3,c#4,g4] [a1,a3,c#4,g4]", // A7
  AD: "[d3,a3,d4,f#4]@3 [a3,d4,f#4]@2 ~@2 d3 [b2,b3,d4,f#4]@3 [b3,d4,f#4]@2 ~@2 b2, ~@5 d3@2 ~@6 b2@2 ~, ~@3 [a3,d4,f#4] ~@3 [b3,d4,f#4]", // D Bm D Bm
  AE: "[g2,g3,b3,d4]@3 [g3,b3,d4]@2 ~@2 g2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [b2,b3,d4,f#4]@2 [b2,b3,d4,f#4]@2, ~@5 g2@2 ~@9, ~@3 [g3,b3,d4] ~@4", // G D Bm G
  AF: "[a2,a3,c#4,e4]@3 [a3,c#4,e4]@2 ~@2 a2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [b2,b3,d4,f#4]@2 [b2,b3,d4,f#4]@2, ~@5 a2@2 ~@9, ~@3 [a3,c#4,e4] ~@4", // A D Bm A
  AG: "[a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@2 a2@2, a2@11 ~@5", // A
  AH: "[b3,d4,f#4]@3 [b4,d5,f#5]@8 ~@5, b2@15 ~", // Bm
  AI: "[b3,d4,f#4]@3 [b4,d5,f#5]@3 [b4,d5,f#5]@3 ~@5 [b1,b2]@2, [b1,b2]@11 ~@5", // Bm B
  AJ: "[a#3,c#4,g4]@3 [a#3,c#4,e4,g4]@3 [c#2,c#3] ~@4 [a#3,c#4,f#4]@3 [f#1,f#2]@2, [c#2,c#3]@3 ~ [f#1,f#2]@3 ~", // Gdim A#dim C# F# C# F#
  AK: "[b3,d4,f#4]@3 [b4,d5,f#5]@3 [b4,d5,f#5]@3 [b4,d5,f#5]@3 [b3,d4,f#4]@2 b1@2, [b1,b2]@11 ~@5", // Bm B
  AL: "[b2,b3,d4,f#4] ~@15", AM: "[b1,b2,b3,d4,f#4] ~@15", AN: "[c#2,c#3,a#3,c#4,e4,g4] ~@7 [f#2,a#3,c#4,e4,f#4] ~@7",
  AO: "[a2,a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2 ~ a2 [a3,c#4,e4]@2, ~@8 a2@3 ~ [a3,c#4,e4]@2 ~@2", // A
  AP: "[d3,a3,d4,f#4]@3 [a3,d4,f#4]@2 ~@2 a2 [b2,b3,d4,f#4]@3 [b3,d4,f#4]@2 ~@2 b2, ~@5 d3@2 ~@6 b2@2 ~, ~@3 [a3,d4,f#4] ~@3 [b3,d4,f#4]", // D Bm D Bm
  AQ: "[g2,g3,b3,d4]@3 [g3,b3,d4]@2 ~@2 c#3 d3@2 ~ a2 b2@2 ~ f#2, ~@5 g2@2 ~@9, ~@3 [g3,b3,d4] ~ [a3,d4,f#4] ~ [b3,d4,f#4]", // G D Bm
  AR: "[g2,g3,b3,d4]@3 [g3,b3,d4]@2 ~@2 f#2 [e2,g3,b3,e4]@3 [g3,b3,e4]@2 ~@2 g2, ~@5 g2@2 ~@6 e2@2 ~, ~@3 [g3,b3,d4] ~@3 [g3,b3,e4]", // G Em G Em
  AS: "[a2,a3,c#4,e4]@3 [a3,c#4,e4]@2 ~@2 c#3 d3@2 ~ a2 b2@2 ~ f#2, ~@5 a2@2 ~@9, ~@3 [a3,c#4,e4] ~ [a3,d4,f#4] ~ [b3,d4,f#4]", // A D Bm
  AT: "[a1,a2,a3,c#4,e4] [a2,a3] [a1,a2,c#4,e4] [a2,a3]", // A
  AU: "[d4,a4,d5,f#5]@3 [a4,d5,f#5]@2 ~ [a4,d5,f#5]@2 [b3,b4,d5,f#5]@3 [b4,d5,f#5]@2 ~@2 b3, ~@5 d4@2 ~@6 b3@2 ~, ~@7 [b4,d5,f#5]", // D Bm
  AV: "[g3,g4,b4,d5]@3 [g4,b4,d5]@2 ~ [g4,b4,d5]@2 [d4,a4,d5,f#5]@4 [b3,b4,d5,f#5]@4, ~@5 g3@2 ~@9", // G D Bm
  AW: "[e3,g4,b4,e5]@3 [g4,b4,e5]@2 ~@2 e3 [g3,g4,b4,d5]@3 [g4,b4,d5]@2 ~ [g4,b4,d5]@2, ~@5 e3@2 ~@6 g3@3, ~@3 [g4,b4,e5] ~@4", // Em G Em
  AX: "[a3,a4,c#5,e5]@3 [a4,c#5,e5]@2 ~@2 a3 [d4,a4,d5,f#5]@2 [d4,a4,d5,f#5]@2 [b3,b4,d5,f#5]@2 [b3,b4,d5,f#5]@2, ~@5 a3@2 ~@9, ~@3 [a4,c#5,e5] ~@4", // A D Bm A
  AY: "[g3,g4,b4,d5]@3 [g4,b4,d5]@2 ~@2 f#3 [e3,g4,b4,e5]@3 [g4,b4,e5]@2 ~@2 e3, ~@5 g3@2 ~@6 e3@2 ~, ~@3 [g4,b4,d5] ~@3 [g4,b4,e5]", // G Em G Em
  AZ: "a3@4 a2@11 ~, [a4,c#5,e5]@15 ~", // A
})).s("gm_piano").gain(0.27)

stack(piano, piano_2)