Strudelify

Partenaire Particulier

Partenaire Particulier

KeyA majorTempo140 bpm
0:00/0:00
// Partenaire Particulier — Partenaire Particulier
// 140 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5875054; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 · piano
const piano = note(`<
  A B C D E F E F E F E G H I J K L M N O N M P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK@2 H I J K L M N O N
  M P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK@2 AL@2 AM@2 AL@2 AM@2 AN AO AP AQ AR AS AT AU AV AW AX AY AZ
  BA BB BC BD BE AB AC AD AE AF AG AH AI AJ AK@2
>`.pickRestart({
  A: "~ f#2 a2 c#3 ~ d3 f#3 a3, [f#4,f#5] ~ [d4,d5] ~", B: "~ e2 g#2 b2 ~ c#3 e3 g#3, [e4,e5] ~ [c#4,c#5] ~",
  C: "[f#4,a4,c#5,f#5]@2 [f#2,f#3]!2 [d4,f#4,a4,d5]@2 [d2,d3]@2", // F#m F# D
  D: "[e4,g#4,b4,e5]@2 [e2,e3]!2 [c#4,e4,g#4,c#5]@2 [c#2,c#3]@2", // E C#m C#
  E: "f#3@2 ~ f#3 d3@2 ~ d3, ~ [f#4,a4,c#5,f#5] ~ [d4,f#4,a4,d5]", // F#m D
  F: "e3@2 ~ e3 c#3@2 ~ c#3, ~ [e4,g#4,b4,e5] ~ [c#4,e4,g#4,c#5]", G: "e3@2 ~ e3 ~@2 c#5@2, ~ [e4,g#4,b4,e5] c#3@2",
  H: "[f#3,f#5]@2 f#5 [f#3,f#5] [d3,d5]@2 f#5 [d3,d5]", I: "e5 e5@2 e3 ~ c#5 b4 [c#3,c#5], e3@2 ~ c#5@2 ~@3, ~@2 c#3 ~",
  J: "[f#3,f#5,a5]@2 [f#5,a5] [f#3,f#5,a5] [d3,d5,f#5]@2 [d5,f#5,a5] [d3,d5,f#5], c#4@15 ~", // F#m D
  K: "[e5,g#5] [e5,g#5]@2 e3 ~ [c#5,e5] [b4,d5] [c#3,c#5,e5], [e3,b3]@2 ~ [c#5,e5]@2 ~@3, ~@2 [c#3,g#3] ~", // E C#m Bm C#m E5 C#m C#5
  L: "f#3@2 ~ f#3 d3@2 ~ d3, ~ [f#4,a4,c#5] ~ [f#4,a4,d5]", M: "e3@2 ~ e3 c#3@2 ~ c#3, ~ [g#4,b4,e5] ~ [e4,g#4,c#5]",
  N: "f#3@2 ~ f#3 d3@2 ~ d3, ~ [a4,c#5,f#5] ~ [b4,d5,f#5]", O: "e3@2 ~ e3 c#3@2 ~ c#3, ~ [b4,e5,g#5] ~ [g#4,c#5,e5]",
  P: "f#3@2 ~ f#3 d3@2 ~ d3, ~ [a4,c#5,f#5] ~ [d5,f#5,a5]", // F#m D
  Q: "g#4 [b4,e5,g#5] a4 [e3,b4,f#5,a5] c#4 b3 a3 [g#3,e4], e3@2 ~@2 [c#5,e5,g#5]@3 ~", // E Esus4 C#m
  R: "[a3,d4] [g#3,c#5] [f#3,f#4] [e3,c#5] a4 [c#3,c#5] [b2,a4] [a2,f#4], d3@8 d3@7 ~", // D5 C#5 F# C#m C# B7 D
  S: "[g#3,e4] [f#3,e5] g#4 [d3,e5] [c#3,b4] [b2,e5] [a2,b4] [g#2,g#4], e3@4 e3@11 ~", // C#m F#7 Dsus2 C#7 E5 Asus2 G#
  T: "a2 e3 a3 e3 c#4@2 ~ [g#4,b4], [e4,a4,c#5]@3 [e4,a4,c#5]@4 ~, ~@3 a3", // G#m A
  U: "f#2 c#3 f#3 c#3 a3@2 ~ e4, [c#4,f#4,a4]@3 [c#4,f#4,a4]@4 ~, ~@3 f#3", // F#m
  V: "d4 c#5 [a3,f#4] [a3,c#5] a4 c#5 a4 f#4, d3 ~ d3 a3", W: "e4 e5 [b3,g#4] [b3,e5] b4 e5 b4 g#4, e3 ~ e3 b3",
  X: "[e4,a4,c#5]@2 [b4,c#5]@2 [a4,c#5]@3 [a4,b4], a3@15 ~", // A Bsus2 A Asus2
  Y: "[f#4,a4,b4] [f#4,a4]@2 [f#4,a4] [f#4,a4]@2 [c#4,a4]!2, f#3@15 ~", // B7 F#m
  Z: "b2 f#3 [b3,d4,f#4,b4] [f#3,d4] ~ b3 f#3 b2, [d4,f#4,b4]@2 ~ [f#4,b4]@3 ~@2, ~@2 d4 [c#4,f#4,a4]", // Bm D Bm B5 F#m
  AA: "e2@2 b2@2 e3@2 b2@2 ~@3 g#3 ~ e3 ~@2, [e4,g#4]@15 ~, b3@8 b3@7 ~", // E
  AB: "[c#4,e4,g#4,c#5]@3 ~@3 [c#2,c#3]@2, [c#2,c#3]@11 ~@5, ~@3 [c#4,e4,g#4,c#5]@4 ~", // C#m C# C#m
  AC: "[c#4,f#4,a4,c#5]@3 ~@3 [f#2,f#3]@2, [f#2,f#3]@11 ~@5, ~@3 [c#4,f#4,a4,c#5]@4 ~", // F#m F# F#m
  AD: "[d4,f#4,a4,d5]@3 ~@3 [d2,d3]@2, [d2,d3]@11 ~@5, ~@3 [d4,f#4,a4,d5]@4 ~", // D
  AE: "[e4,g#4,b4,e5]@3 ~@3 [e2,e3]@2, [e2,e3]@11 ~@5, ~@3 [e4,g#4,b4,e5]@4 ~", // E
  AF: "c#6 g#5 e5 c#6 g#5 e5 c#6 e5, [c#4,e4,g#4,c#5]@3 [c#4,e4,g#4,c#5]@3 c#3@2", // C#m
  AG: "c#6 a5 f#5 c#6 a5 f#5 c#6 f#5, [c#4,f#4,a4,c#5]@3 [c#4,f#4,a4,c#5]@3 f#3@2", // F#m
  AH: "d6 a5 f#5 d6 a5 f#5 d6 f#5, [d4,f#4,a4,d5]@3 [d4,f#4,a4,d5]@3 d3@2", // D
  AI: "e6 b5 g#5 e6 b5 g#5 e6 g#5, [e4,g#4,b4,e5]@3 [e4,g#4,b4,e5]@3 [e3,g#3]@2", // E
  AJ: "~ e6 ~@2 [e2,e3,e5,g#5,b5,e6]@2 [e2,e3,b4,e5,g#5,c#6]@2, e5 ~@3, ~ [g#5,b5]@3 ~@12", // E C#m7 G#m
  AK: "[[d2,d3,d5,f#5,a5,d6]@15 ~]/2", // D
  AL: "[[c#5,f#5]@2 f#4@2 f#5@2 f#4 ~@2 [d5,f#5]@2 f#4 f#5!2 e5 f#5, [f#3,a3]@7 f#5@2 ~@7, ~@16 [d3,a3]@15 ~]/2", // F#5 D F#m D5
  AM: "[[g#4,e5]@2 e4@2 e5@2 e4 ~@2 e5@2 c#5 a5!2 f#5 e5, [g#3,b3]@7 e5@2 ~@7, ~@16 [a3,c#4]@15 ~]/2", // C#m G#m A
  AN: "[d4,f#4,a4,d5]@15 ~", AO: "[e4,g#4,b4,e5]@15 ~", AP: "[a4,c#5,e5,a5]@15 ~", AQ: "[f#4,a4,c#5,f#5]@15 ~",
  AR: "d3@3 f#3 a3@4, [d4,f#4,a4,d5]@15 ~", AS: "e3@3 g#3 b3@4, [e4,g#4,b4,e5]@15 ~",
  AT: "a3 a3@3 a3@4, [a4,c#5,e5,a5]@15 ~", AU: "f#3 f#3@3 f#3@4, [f#4,a4,c#5,f#5]@15 ~",
  AV: "a3 g#3 f#3 e3 ~ c#3 b2 a2, [d4,f#4,a4,d5]@15 ~, d3@8 d3@7 ~", // D
  AW: "g#3 f#3 ~ d3 c#3 b2 a2 g#2, [e4,g#4,b4,e5]@15 ~, e3@4 e3@11 ~", // E
  AX: "a2 e3 a3 e3 c#4@2 ~ [a4,c#5], [e4,a4,c#5]@3 [e4,a4,c#5]@4 ~, ~@3 a3", // A
  AY: "f#2 c#3 f#3 c#3 a3@2 ~ e4, [f#4,a4,c#5]@3 [f#4,a4,c#5]@4 ~, ~@3 f#3", // F#m
  AZ: "d3@2 a3!2 d3@2 a3@2, [d4,f#4,a4,d5]@15 ~", BA: "e3@2 b3!2 e3@2 b3@2, [e4,g#4,b4,e5]@15 ~",
  BB: "[e4,a4,c#5]@2 [b4,c#5]@2 [a4,c#5]@3 [a4,c#5], a3@15 ~", // A Bsus2 A
  BC: "[f#4,a4,b4,d5] [f#4,a4,c#5]@2 [f#4,a4,c#5] [f#4,a4,c#5]@2 [c#4,a4]!2, f#3@15 ~", // Bm7 F#m
  BD: "[d4,f#4,b4]@2 [d4,f#4,b4] [b1,b2,d4,f#4,b4]@3 [b2,c#4,f#4,a4]@2, [b1,b2]@3 ~@5", // Bm F#m B
  BE: "[e2,e3]@4 [e2,e3]@4 [e3,g#3,b4,e5] ~@2 [e3,g#3,g#4,b4] ~ [e3,g#3,e4,g#4] ~@2, [b3,e4,g#4] ~", // E
})).s("gm_piano").gain(0.3)

stack(piano)