Strudelify

arabesque

Debussy

KeyE majorTempo120 bpm
0:00/0:00
// arabesque — Debussy
// 120 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 94, 4/4 at bar 94) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5917951; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// other · cello · "Violoncelle"
const cello = note(`<
  A B C D E F G F G H I J K L M@2 A B N O D P Q R S T U V W X Y@2 Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AM
  AN AQ AR AS AT AG AH AI AU AK AL AV AW AX AY AZ BA BB@2 A B C D E F G F G H I J K L M@2 A B A B C BC BD BE@5 BF BG BF
  BH BI BJ BK@2
>`.pickRestart({
  A: "c#4 b3", B: "a3 g#3", C: "f#3 e3", D: "d#3 c#3", E: "b2", F: "e2 b2 e3 g#3 b3 g#3 e3 b2",
  G: "e2 c#3 e3 g#3 c#4 g#3 e3 c#3", H: "f#2 c#3 e3 f#3 a3 f#3 e3 c#3", I: "g#2 c#3 e3 g#3 b3 g#3 e3 c#3",
  J: "a2 e3 f#3 a3 c#4 a3 f#3 e3", K: "a#2 e3 g#3 c#4 c#3 f#3 a#3 e4", L: "e3 a#3 c#4 g#4 f#3 c#4 e4 a#4",
  M: "a#3 e4 g#4 c#5 c#4 f#4 a#4 e5", N: "g3 g#3", O: "g3 e3", P: "c3 c#3", Q: "c3 b2", R: "b2!2", S: "b2 e2",
  T: "~@2 e3 g3 a3 b3 a3 e3 g3 a3 b3 a3", U: "g3", V: "~@3 a3 b3 c#4 b3 a3 b3 c#4 b3 a3", W: "c#4 d#4", X: "d#4 e4",
  Y: "[a4@5 f#4 g#4 a4]/2", Z: "[a4@5 ~ f#3@2]/2", AA: "b2 f#3 a3 b3", AB: "d#4 f#4 g#4 a4", AC: "e2", AD: "~ e4",
  AE: "b3 c#4 d4@4 e3@2", AF: "f#3 b2@3", AG: "e2 [g#3,d4]@3", AH: "a2 [e3,a3]@3", AI: "b3 c#4 d4@6", AJ: "f#3 b2@2 a2",
  AK: "g#2 f#2@2 b2", AL: "e2@2 e2 e3", AM: "~ f#2@2 e2", AN: "~ a2@2 d3", AO: "~ b2 f#3 e3",
  AP: "a2@2 e3@2 f#4 e4 d4 c#4", AQ: "~@2 b2 ~ f#3@4", AR: "~@2 d3 ~ f#3@4", AS: "e3@2 f#3 g#3", AT: "a3 b2",
  AU: "f#3@2 b2 a2", AV: "e2 f2@2 g2", AW: "a2 b2@2 a2", AX: "g2 f2 e2 d2", AY: "g2", AZ: "e4 f4", BA: "g4 f4",
  BB: "[e4@15 d#4]/2", BC: "d3 c#3", BD: "b2 a2", BE: "[g#2@4 f#2@16 b2@8 b2@8 e2 b2 e3 g#3]/5",
  BF: "b3 g#3 e3 b2 e2 c#3 e3 g#3", BG: "c#4 g#3 e3 c#3 e2 b2 e3 g#3", BH: "c#4 g#3 e3 c#3 e2@2 b2@2",
  BI: "e3 g#3 e3 b3", BJ: "e4 g#4 e3 b3", BK: "[e4 g#4 [e4,b4] [e4,b4]@2 [e4,b4] e2 ~]/2",
})).s("gm_cello").gain(0.3)

// chords · piano
const piano = note(`<
  A B C@2 D E F G H I J K L M N@2 A B O P Q R S T U V W X Y Z AA@2 AB@2 AC AD AE AF AG AH AI AJ AG AK AL AM AN AO AP AQ
  AR AS AT AU AV AW AX AJ AY AZ AL AM BA BB BC BD BE BF BG BH A B C@2 D E F G H I J K L M N@2 A B BI BJ BK BL BM BN BO
  BP BQ BR@5 BS BT BU@2
>`.pickRestart({
  A: "c#4 e4 a4 c#5 e5 f#5 g#5 d#5 b4 g#4 d#4 b3", B: "a3 c#4 f#4 a4 c#5 d#5 e5 b4 g#4 e4 b3 g#3",
  C: "[f#3 a3 ~ c#5 f#4 a4 e3 a3 ~ c#5 f#4 ~ d#3 a3 ~ c#5 f#4 a4 c#3 a3 ~ a5 a4 c#5, ~@2 c#4@4 f#5@3 ~@2 a4@4 ~@3 f#5@3 ~@3, ~@4 e4@2 ~ c#4@2 ~ e4@2]/2",
  D: "b2 f#3 a3 c#4 d#4 f#4 a4 c#5 d#5 c#5 [b4,g#5] [a4,f#5], ~@6 a5@13 ~@5", // E D
  E: "e2@3 e5 f#5 c#5 e5 b4 c#5 g#4 b4 f#4, ~@6 [g#3,b3,e4]@17 ~", // E
  F: "g#4@2 e4@2 g#4@2 d#4@11 ~ c#4@6, e2@6 [c#3,e3,g#3]@17 ~", // C#m
  G: "[e2,b3]@3 ~@3 g#4 ~ g#4 b4@3, ~@6 [g#3,b3]@17 ~, ~@6 e4@8 e4@9 ~", H: "e2@6 [e3,g#3,c#4]@17 ~",
  I: "~@6 [c#3,e3,f#3,a3]@6 [e3,f#3,a3,c#4]@11 ~, f#2@23 ~", J: "~@6 [c#3,e3,g#3,b3]@6 [e3,g#3,b3,c#4]@11 ~, g#2@23 ~",
  K: "a2@6 [c#3,e3,f#3]@6 [c#3,e3,f#3,a3]@11 ~, ~@6 a2@17 ~", // F#7 F#m7
  L: "~ [e3,g#3,a#3,c#4] ~ [g#3,a#3,c#4,e4], a#2@11 ~ c#3@11 ~", // A#m7b5
  M: "~ [a#3,c#4,e4,g#4] ~ [c#4,e4,g#4,a#4], e3@11 ~ f#3@11 ~", // A#m7b5
  N: "~ [e4,g#4,a#4,c#5] ~ [g#4,a#4,c#5,e5], a#3@11 ~ c#4@11 ~", // A#m7b5
  O: "g3 [c#4,g4] [d#4,a#4] [a#4,c#5] [d#4,a#4] [c#4,g4] g#3 [c#4,g#4] [e4,b4] [b4,c#5] [e4,b4] [c#4,g#4]", // C#dim D#5 A#m D#5 C#dim C#5 E5 Bsus2 …
  P: "g3 [c#4,g4] [d#4,a#4] [a#4,c#5] [d#4,a#4] [c#4,g4] e3 [a3,e4] [c#4,a4] [g#4,c#5] [c#4,a4] [a3,e4]", // C#dim D#5 A#m D#5 C#dim A5 F#m C#5 …
  Q: "d#3 [a3,d#4] [b3,f#4] [f#4,b4] [b3,f#4] [a3,d#4] c#3 [f#3,e4] [a3,f#4] [e4,c#5] [a3,f#4] [f#3,e4]", // Adim B5 Adim F#7 D C#m D F#7
  R: "c3 [f#3,d#4] [g#3,f#4] [d#4,g#4] [g#3,f#4] [f#3,d#4] c#3 [f#3,c#4] [a3,e4] [e4,a4] [a3,e4] [f#3,c#4]", // D#m G#7 G#5 G#7 D#m F#5 A5 F#5
  S: "c3 [f#3,d#4] [g#3,f#4] [d#4,g#4] [g#3,f#4] [f#3,d#4] b2 [f#3,b3] [a3,d4] [d4,a4] [a3,d4] [f#3,b3]", // D#m G#7 G#5 G#7 D#m B5 D5 B5
  T: "b2 [e3,d4] [g#3,e4] d4 g#3 e3 b2 [f#3,d4] [a3,f#4] d4 a3 f#3, ~ b4 ~ a4", // E7 C#m D
  U: "b2 [e3,e4] [g#3,g#4] d4 g#3 e3 e2 b2 e3 f#3 g#3 b3, ~@6 b4@6 [e4,g#4,d5]@11 ~", // E G# E7
  V: "a1@2 a2@2 e3@2 [a3,e4,g4]@17 ~", W: "~@6 g3@17 ~, e4@19 ~@5, ~@2 c#4@19 ~@3, ~@4 a3@19 ~",
  X: "d2@3 a2@3 [f#3,a3,d4,f#4]@17 ~", Y: "b1@3 b2@3 f#3@3 a3@3 [f#4,a4,c#5,d#5]@11 ~, ~ [b3,f#4,a4] b3 ~",
  Z: "g#1@3 g#2@3 e3@3 g#3@3 [b3,e4,g#4,b4,c#5]@11 ~, ~ [b3,c#4,e4,g#4] ~@2", // C#m7
  AA: "[f#1 f#2 c#3 e3 f#3 a3 c#4 e4 ~@2 g#4 f#4 ~@3 [f#4,a4]@3 [d#4,g#4,b4]@3 [c#4,a4,c#5]@3, c#5@7 ~@5, e5@23 ~@25, a4@9 a4@5 ~@10, f#4@16 f#4@6 ~@2 e4@11 ~@13]/2", // F#m G#m F#m
  AB: "[f#1 f#2 c#3 e3 f#3 a3 c#4 ~@3 g#4 f#4 ~@3 f#4 c#4 e4 g#4 d#4 f#4 a4 e4 g#4, c#5@7 ~@5, a4@9 a4@5 ~@10, f#4@8 f#4@3 ~@13, e4@14 e4@9 ~ e4@10 ~@2 f#3@11 ~]/2",
  AC: "b4 f#4 a4 c#5 g#4 b4 d#5 a4 c#5 e5 b4 d#5, b2 f#3 a3 b3",
  AD: "f#5 c#5 e5 g#5 d#5 f#5 a5 e5 g#5 b5 f#5 a5, d#4 f#4 a4 b4",
  AE: "e1 e2 b2 e3 g#3 b3 e4 g#4, [g#5,b5,f#6]@11 ~ e6@11 ~", AF: "~@12 e4@11 ~, e5@23 ~",
  AG: "[a3,e4,g#4,a4,c#5,e5] a3 g#3 [e3,g#3,d4,e4,f#4,b4], ~@6 [e4,f#4,a4,c#5]@11 ~@7", // Amaj7 E7 F#m7
  AH: "[f#3,c#4,f#4,a4] [d#4,f#4] ~ g#4, ~@6 [b2,a3]@17 ~", // F#m D#m B7
  AI: "[e2,b2,g#3,d4,f#4]@6 [e3,d4,f#4,g#4,b4,d5,f#5]@11 ~ [e4,e5]@6", // E7 E
  AJ: "[a2,e3,a3,c#4,f#4]@6 g#5@11 ~ f#5@6, ~@6 [e3,a3,c#4,e4,a4,c#5,e5]@17 ~", // F#m7 A
  AK: "[f#3,c#4,f#4,a4]@6 [b2,a3]@11 ~ [a2,d#3,d#4,f#4]@6, ~ [d#4,f#4] ~@2", // F#m B7 D#dim D#m
  AL: "[g#2,e3,g#3,b3]@6 [f#2,e3,a3,c#4]@11 ~ [b1,b2,a3,c#4,e4]@6", // E F#m7 A
  AM: "[a3,b3,e4] ~ e2 e3, [e2,b2]@11 ~@13, ~@6 g#3@11 ~@7", // Asus2 E5
  AN: "~@3 [d4,f#4,a4,c#5]@3 g#3 b3 d4 f#4 e4 d4, ~@6 f#2@11 ~ e2@6", // Dmaj7
  AO: "~@3 [c#4,e4,g#4,b4]@3 f#4 a4 c#5 e5 d5 c#5, ~@6 [a1,a2]@11 ~ [d2,d3]@6", // C#m7 A D
  AP: "b4@2 d5@2 f#5@2 [b1,b2,a5]@6 [b4,d5]@3 g#5@3 [g#4,d5,f#5]@3 e5@3, ~@2 [f#3,b3,d4,f#4] [e2,e3]", // B7 Bm G#m7b5 Bm E
  AQ: "[a4,c#5,f#5] e5 d5 c#5 [f#4,a4,d5] [e4,c#5] [d4,b4] [c#4,a4], [a1,a2] e3 ~@2", // F#m D C#m G F#m A
  AR: "d3 f#3 a3 c#4 b3 a3 ~@3 [e2,g#4,b4,d5,f#5]@3, ~@6 f#2@11 ~@7", // E7
  AS: "c#4 e4 g#4 b4 a4 g#4 ~@3 [d2,d3,f#4,a4,c#5,e5]@3, ~@6 [a1,a2]@11 ~@7", // Dmaj7 A
  AT: "~@6 [b1,b2]@6 [f#3,b3,d4,f#4,b4,d5,f#5,a5]@11 ~", AU: "~@6 [d2,d3]@6 [f#3,b3,d4,f#4,b4,d5,f#5,a5]@11 ~",
  AV: "[g#4,a4,c#5,e5] [e4,f#4,a4,c#5] [f#3,e4,f#4,a4,c#5] [g#3,d4,f4,g#4,b4], [e3,d4]@11 ~@13", // Amaj7 F#m7 G#dim E7
  AW: "[a3,c#4,e4,f#4,a4]@11 ~ [b2,a3,b3,d#4,f#4]@11 ~", // F#m7 B7
  AX: "[e2,b2,g#3,d4,f#4]@6 [g#3,d4,f#4,g#4,b4,d5,f#5]@11 ~ [e4,e5]@6", // E7 G#m7b5 E
  AY: "[b3,f#4] c#4 [e4,f#4,a4,c#5]@2 [e4,f#4,a4,c#5]@2 [d4,f4,g#4,b4]@2, [g#4,a4,c#5,e5]@6 d4@11 ~@7", // B5 F#m7 Ddim Amaj7
  AZ: "[e4,a4] g#4 [b2,a3] [a2,d#3], [f#3,c#4]@11 ~ [b3,d#4,f#4]@11 ~", // A5 B7 Adim F#5 B
  BA: "[e2,c3,g3,c4,e4]@6 [f2,c3,a3,c4,e4]@11 ~ [g2,f3,b3,d4]@6", // C Fmaj7 G7
  BB: "[a2,e3,a3,c4]@6 [b2,d3,f#3,g3,b3]@11 ~ [a2,e3,a3,c4]@6", // Am Gmaj7 Am
  BC: "[g2,d3,f3,b3] [f2,c3,f3,a3] [e2,c3,g3,c4] [d2,d3,a3,c4,f4]", // G7 F C Dm7
  BD: "g1 g2 d3 f3 g3 b3 d4 f4, [d4,f4,b4]@11 ~ [b4,d5]@11 ~, ~@4 f4@3 ~", // Bdim Bm
  BE: "~ a4!2 [a4,c5,d5], [e4,g4]@11 ~ f4@11 ~, ~@6 [c5,e5,g5]@11 ~@7", BF: "[g4,a#4,c5,e5]@11 ~ [f4,a4,f5]@11 ~",
  BG: "~@6 [c5,e5,g5]@11 ~@7, [e4,g4]@23 ~", BH: "~@6 [b4,c#5,e5,g#5,b5]@11 ~@4 d#4@3, g#4@5 ~",
  BI: "~ e4 a4 [c#5,e5] a4 e4 ~ d#4 g#4 [b4,d#5] g#4 d#4, c#4@11 ~ b3@11 ~", // C#m B
  BJ: "c#5 c#4 f#4 a4 f#4 c#4 b4 b3 e4 g#4 e4 b3, a3@11 ~ g#3@11 ~",
  BK: "~ a3 d4 [f#4,a4] d4 a3 ~ g#3 c#4 [e4,g#4] c#4 g#3, f#3@11 ~ e3@11 ~", // F#m E
  BL: "f#4 f#3 b3 d4 b3 f#3 e4 e3 a3 c#4 a3 e3, d3@11 ~ c#3@11 ~",
  BM: "d4 f3 g#3 b3 g#3 f3 c#4 c#3 f#3 a3 f#3 c#3, b2@11 ~ a2@11 ~",
  BN: "b3 b2 e3 g#3 e3 b2 f#2 c#3 e3 f#3 a3 b3, g#2@11 ~@13", BO: "c#4 e4 a4 b4 c#5 e5 a5 b5 c#6 e6 c#6 b5",
  BP: "a5 e5 c#5 b4 a4 e4 b1 b2 d#3 g#3 b3 d#4, ~@12 g#4@11 ~",
  BQ: "g#4 b4 d#5 g#5 b5 b4 b1 b2 d#3 a3 b3 d#4, ~@12 f#4@11 ~",
  BR: "[a4 b4 d#5 a5 b5 b4 [e2,e4]@3 [e4,g#4] ~ g#4 b4@3 ~@3 e2@3 g#4 e4 g#4 c#5@3 ~@3 [e2,e4]@3 [e4,g#4] ~ g#4 b4@3 ~@3 e2@3 g#4 e4 g#4 c#5@3 ~@4 b3 e3 ~ c#4 g#3, ~@18 [g#3,b3]@17 ~@7 [e3,g#3,c#4]@17 ~@7 [g#3,b3]@17 ~@7 [e3,g#3,c#4]@17 ~ e2@6 b2@6, ~@20 e4@15 ~@33 e4@15 ~@37]/5", // E G#m C#m G#m C#m
  BS: "~ e4 b3 ~ f#4 c#4 ~ b4 e4 ~ c#5 g#4, e3 g#3 e3 b3", BT: "~ e5 b4 ~ f#5 c#5 ~ b5 e5 ~ c#6 g#5, e4 g#4 e4 b4",
  BU: "[~@2 e6@2 b5@2 ~@2 f#6@2 c#6@2 [e5,b5,e6,g#6]@6 [e5,b5,e6,g#6]@11 ~ [e5,b5,e6,g#6]@6 [e2,e3,e4]@6 ~@6, e5 g#5 ~@6]/2", // E
})).s("gm_piano").gain(0.3)

stack(cello, piano)

More by Debussy