Strudelify

Ma mère l'oye (ballet)

Maurice Ravel

KeyC majorTempo56 bpm
0:00/0:00
// Ma mère l'oye (ballet) — Maurice Ravel
// 56 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5083946; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 58 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(56/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.

// chords · piano
const piano = note("<A B@3 C D E F G H I@4 J K L M N O P@2 Q@8 R@4 S@3 T@7 U V@8 W@2 X@2 ~>".pickRestart({
  A: "~@5 c4, [c2,e3,c4]@5 ~, ~@8 b3@15 ~, ~@2 d4@3 ~, ~@32 [e2,g3]@15 ~", // C Em
  B: "[[d2,f3,a3,e4]@15 ~ [e2,g3,b3,d4]@15 ~ g4@16 [g2,b3,g4]@16 [a2,c4]@15 ~@9 g4@8 e4@16 ~@16 [g2,b3]@16, ~@32 [f2,a3,c4]@32 f4@23 ~@25 [a3,e4]@32, ~@24 f3@15 ~ g3@32, ~@80 [b2,d4]@15 ~ [c3,a4]@48]/3", // Dm Em7 G Am G F A5 Bm …
  C: "~@4 e4 [c4,e4], a2@23 ~, [c4,e4,b4]@32 g3@15 ~, ~@16 a4@23 ~@9", // C Cmaj7
  D: "~@32 g3@15 ~, [e2,b3]@23 ~, [f#3,d4]@2 ~, ~@8 e4@15 ~", // E5 D
  E: "[a2,b4]@15 ~ b2@15 ~@9 g4@8, e4@23 ~, c4@30 ~@2 [c3,b3]@15 ~, ~@16 a4@23 ~@9", // Asus2 Cmaj7
  F: "e5@15 ~@17 [b3,g4]@15 ~, d3@23 ~, [a3,f4]@5 ~@3, ~@8 d5@15 ~", // Em Dm
  G: "[c4,f5]@15 ~ d4@15 ~@9 a4@8, [d3,f4]@23 ~, a4@5 ~, ~@16 c5@23 ~@9, ~@32 e4@15 ~", // F5 Dm
  H: "g4@15 ~@17 c4@15 ~, [a2,e4]@23 ~, b3@5 ~@3, ~@8 a4@15 ~", // A5
  I: "[a3@8 b3@8 c4@15 ~ d4@8 e4@8 ~@8 [g4,b4]@8 [a4,c5]@15 ~ [b4,d5]@8 [c5,e5]@8 [e5,g5]@15 ~@33 e3@15 ~ f4@15 ~@9 f3@8, d3@46 ~@2 g3@61 ~@35 [f2,a3]@46 ~@2, [f4,a4]@19 ~@5 g5@23 ~@9 g5@16 ~@24, f5@15 ~ c5@23 ~ a4@15 ~@73 g4@31 ~@17 c4@15 ~, ~@48 f4@15 ~@97 d3@23 ~@9]/4", // G Am Bm C Em F
  J: "[d3,g3,b3]@15 ~ a3@15 ~ c4@15 ~, f2@23 ~, ~@8 c3@15 ~", // G
  K: "[g3,e4]@15 ~ f3@15 ~@9 f4@8, [f2,a3]@23 ~, ~@16 d4@23 ~@9, ~@32 c3@15 ~", // C F
  L: "[d3,b3,g4]@15 ~ a4@15 ~ c5@15 ~, f2@23 ~, ~@8 [c3,a3]@15 ~", // G F
  M: "[g4,e5]@15 ~@25 f5@8, [f2,c3]@23 ~, a4@30 ~@2 c4@15 ~, ~@8 f4@15 ~, ~@16 d5@23 ~@9", // C F5
  N: "[d3,b3,b4,e5,g5]@15 ~ a5@15 ~@9 f5@8, f2@23 ~, ~@8 [c3,a3,a4]@15 ~, ~@16 d5@23 ~@9, ~@32 c6@15 ~", // Em7 F
  O: "[e2,b2,g3,e5,g5,b5,e6]!2 [g2,d3,b3,d5,f5,a5,d6]", // Em G7
  P: "[~@43 g5@5, [e2,b2,g3,b5,e6]@23 e5@9, g5@13 b4@11, e5@17 g4@31, ~@17 e4@79]/2", // Em
  Q: "[~@45 d6@5 d6@9 ~@43 d6@9 ~@43 d6@8 ~@46 a5@6 ~@46 a5@6 ~@3 f#5@3 ~@13 c#5@15 ~@3 d5@3 ~@6 c#5@6 ~ g#5@16 ~@26 a5@8 ~ g#5@14, ~@7 [e5,e6]@17 ~ e6@18 g5 b5@15 e6@3 e6@14 [e5,a5] f5 a5 c6@6 b5@9 [d5,c6] f5 a5 c6@14 ~ e5@16 [b4,e6] d5 f#5 b5@14 e4 g#4 b4 e5@14 c#4@18 [f#4,a5] a4 c#5@32 a4@37 d5 f#5 a5 b5@12 g#5@6 f#5@11 [g#4,g#5]@19 c#5@4 d5@12 ~@17 [c#5,b5]@18 d5 f#5@15 ~@15, ~@8 g5@19 a5@33 g5@51 c#5@51 e6@12 g#6@9 e5@31 f#5@18 b4 c#5@7 e5@26 ~@2 d5@32 [a4,f#5]@17 ~@35 b4@17 ~@15, ~@25 e5@17 e5@17 e5@6 f#6@46 e6@3 c#6@49 ~ e5@4 f#6@16 g#5@31 c#5@16 [g#4,g#5]@18 f#5 c#5@16 ~ c#5@10 e5@40 ~ [e5,b5]@18 e5@33 [e5,b5]@15, ~@26 f5@34 ~ b5@10 g6@40 ~@2 g#5@50 g#4@22 b5@6 c#6@6 [b4,e6] d5 f#5 a5 b5@2 d6@12 ~ d5@33 b4@17 a4@18 b4@17 b4@16 ~@20 g#5@33 ~@14]/8", // E A5 D7 E5 F#m G# C#7 D …
  R: "[~@28 a5@9 ~@43 a5@9 ~@43 a5@8 b4 d5 g5 ~@15 a4 c5 ~ f5@5 f5@9 a4 ~@7 a5@9, ~@2 [c#5,b5]@19 d5 f#5@15 ~@2 d#5@9 d#6@6 [f#4,e5] a4 c#5@7 f#5@8 [d#4,g#5] f#4 a4 c#5@14 ~@3 d#5@32 d#4 f#4 a4 c#5@14 [g4,b5]@18 [f4,e5] a4 c5@15 [d4,g5] [a4,d5] f5@15, ~@3 e5@34 ~ b4@51 ~ b4@16 [f#4,b5] a4 c#5 f#5@32 ~ d5@10 d6@40, ~@4 g#5@33 ~@6 c#6@46 b5@3 g#5@49 ~@2 g5@3 c6@46, ~@20 b4@17 [g#4,b5]@52 g#4@52 b4@51]/4", // C#7 F#7 G#5 G Fmaj7 G5 D5 B5 …
  S: "[~@43 a5@9 ~@3 g4@14 ~@26 a5@8 ~@18 [e3,b3,e4]@17 [d3,c4,f4]@6, g3@19 g4@15 [d3,f4] [a3,a4] [f4,d5]@15 ~@2 d5@16 [e3,g4,b5]@2 b3@15 [d3,f4] [f3,a4] [a3,d5] d4@14 [g3,d4]@34 ~@7, b5@2 [b4,g5]@50 b4@20 e4@31 b4@17 ~ b4@23, b4 d5@16 [e3,g4,b5] [b3,e5]@34 [g3,b5]@2 g5@50 g4@34 ~@6, ~ d4@51 ~ b3 d4@16 [g3,e5]@34 ~@8 a3@26 ~@6]/3", // E5 Dm7 Dm A Dm Em Dm F …
  T: "[~@2 [d4,a4]@9 e4@8 ~ f4@8 [e3,b3,g4]@17 ~@9 a4@9 ~@9 c5@9 ~@27 f5@8 ~@10 a5@10 ~@32 d6@11 ~@40 [b4,b5]@8 ~@32 [a2,e3,c4,e4,a4,c5]@16 ~@40 [e4,e5]@8 [f2,c3,a3,c4,a4,c5]@13, ~@11 [g3,b3,b4]@17 b4@34 ~@3 d4@16 ~@2 b3@16 [d3,f4]@18 [g2,d3,g4,b4,g5]@20 [b2,e5]@19 c6 [a2,d5]@21 ~@65 [g2,d3,b3,g4,b4,d5,g5]@32 ~@61, ~@46 [d3,a3,f4]@17 [g3,g4,b4]@18 [e3,g4,d5]@18 e5 [f3,a4]@17 ~@19 [e2,b4,b5]@22 [f3,f5]@20 ~@158, ~@47 c4@16 ~ b3@17 ~ [g3,b4]@19 [a3,c5]@16 ~ [b3,d5]@18 ~@2 [g3,g5]@29 ~@28 [c5,c6]@23 ~@9 [a4,c5]@32 ~@32 [f4,f5]@23 ~@22, ~@84 e4@18 d4@15 ~@39 [d2,a4]@22 ~ [c2,g2,e3,d5,e5,g5,d6]@32 [e2,b2,g3,d5,g5]@15 ~ [f2,c3,a3,e5,a5]@48 [d2,a2,f3,g4,a4,c5,g5]@32 [e2,b2,g3,g4,b4]@16 ~@13]/7", // D5 Em B Am E F G Dm …
  U: "~@5 [g2,d3,b3,d4,g4,b4]@16 ~ [a2,e3,b3,e4,g4]@17 ~@6 f2@2 f1, ~@13 [a3,e4]@3, ~@39 f1@4 f1@4 ~, ~@41 f2@4 ~@3", // G Em A5
  V: "[~@85 f2@2 a4@16 ~@24 [f4,a4,d5,f5]@8 ~@16 [f5,a5]@16 [g3,c5,f5,a5,c6]@16 a4@16 ~@24 [f4,a4,d5,f5]@8 ~@16 [f5,a5]@16 [g3,c5,f5,a5,c6]@16 [c5,e5,g5,c6,e6,g6]@8 ~@4 a4@4 [g4,a4]@8 ~@8 g5@8 ~@4 [e6,f6]@4 [c5,e5,g5,c6,e6,g6]@8 ~@4 a4@4 [g4,a4]@8 ~@8 g5@8 ~@4 [e6,f6]@4 [c5,e5,g5,c6,e6,g6]@8 [f6,f#6,g6], ~ f2@4 f2@4 f2@4 f2@4 f2@4 f2@2 f1@2 f2@2 f1@2 f2@2 [f1,f4]@2 f2@2 f1@2 f2@2 [b3,e4,g4]@32 f1@2 f2@2 f1@2 f2@2 f1@2 f2@4 ~@18 [f4,a4,d5]@24 ~@8 [g4,b4,e5,g5]@48 ~@16 [f4,a4,d5]@24 ~@8 [g4,b4,e5,g5]@48 ~@8 [f6,f#6,g6]@17 [a4,a#4] [b4,c5,c#5] [d5,d#5] [e5,f5]@12 [f4,a4,c5,g5,g#5] [a5,a#5] [b5,c6,c#6] [d6,d#6]@5 ~@8 [f6,f#6,g6]@17 [a4,a#4] [b4,c5,c#5] [d5,d#5] [e5,f5]@12 [f4,a4,c5,g5,g#5] [a5,a#5] [b5,c6,c#6] [d6,d#6]@5 ~@9, ~@3 f1@4 a3@76 f1@4 ~@32 g3@16 ~@80 g3@16 ~@58 [f5,g5,g#5,a5,a#5] [b4,c5,c#5,d5,d#5,e5] a#4@4 [c4,d4]@32 ~@10 [f5,g5,g#5,a5,a#5] [b4,c5,c#5,d5,d#5,e5] a#4@4 [c4,d4]@32 ~@9, ~@7 [c4,d4]@32 f1@2 f2@2 f1@2 f2@2 f1@2 f2@2 f1@2 f2@2 [c4,d4]@32 [e4,c5,e5]@48 ~@48 [e4,c5,e5]@48 ~@57 [b5,c6,c#6,d6,d#6,e6]@7 f4@8 [g4,g#4]@24 ~@10 f#5@38 ~@9, ~@7 f1@4 f1@4 f1@4 f1@4 g3@32 [f1,f4,a4]@2 f2@2 f1@2 f2@2 f1@2 f2@2 f1@2 f2@2 [g3,f4,a4,c5]@16 ~@16 [c4,d4]@32 ~@16 [c4,a4,d5]@32 ~@16 [c4,d4]@32 ~@16 [c4,a4,d5]@32 ~@10 f#5@38 ~@9 [b5,c6,c#6,d6,d#6,e6]@7 f4@8 [g4,g#4]@24 ~@9]/8", // Dm F Dm F C Gsus2 Fmaj7 C …
  W: "[~@3 a4@4 [g4,a4]@8 ~@8 g5@8 ~@4 [e6,f6]@4 g5@7 ~@18 [c5,e5,g5]@2 [c5,e5,g5]@2 ~@14 [e6,f6,f#6,g6]@12 [c5,e5,g5]@2, [b5,c6,c#6,d6,d#6,e6]@16 [a4,a#4] [b4,c5,c#5] [d5,d#5] [e5,f5]@12 [f4,a4,c5,g5,g#5] [a5,a#5] [b5,c6,c#6] [d6,d#6]@5 [c6,e6,g6]@9 [c6,c#6,d6]@3 [a#6,b6,c7]@17 [c5,e5,g5]@7 [g4,g#4] [a4,a#4,b4] [c5,c#5,d5] [d#5,e5,f5,f#5] [g5,g#5,a5] [a#5,b5,c6] [c#6,d6,d#6]@14 ~, ~ f#5@38 ~@7 g5@3 [d#6,e6,f6]@3 [c#7,d7,d#7]@43 ~, ~ [g#5,a5,a#5]@6 f4@8 [g4,g#4]@24 [c5,e5]@11 [g#6,a6]@4 g7@41 ~, ~ [f5,g5] [b4,c5,c#5,d5,d#5,e5] a#4@4 [c4,d4]@32 ~@8 [g#5,a5,a#5,b5]@3 [f#6,g6]@3 [e7,f7,f#7]@42 ~]/2", // Gsus2 Fmaj7 C A#maj7 D#maj7 Fmaj7 F A#maj7 …
  X: "[[c5,e5,g5]@2 g5@8 ~@24 [c5,e5,g5]@2 [c5,e5,g5]@3 [c5,e5,g5]@48 ~@9, ~@2 [c5,e5]@11 [d6,d#6,e6]@2 [g#6,a6,a#6] [b6,c7,c#7] [d7,d#7,e7] [f7,f#7,g7]@69 ~@9, ~@10 g5@4 [f6,f#6,g6]@73 ~@9, ~@11 [g#5,a5,a#5]@76 ~@9, ~@4 [b5,c6,c#6]@25 ~@3]/2", // C
})).s("gm_piano").gain(0.1)

// chords · piano
const piano_2 = note("<~@47 A@8 B@3>".pickRestart({
  A: "[~@181 f2@2 [c1,c2]@30 ~@2 [g1,g2]@16 [c1,c2]@32 [g1,g2]@16 [c1,c2]@32 [g1,g2]@16 [c1,c2]@14 ~ [g1,g2]@14 [c1,c2]@14 [g1,g2]@14, ~@47 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 c3@48 c3@48 ~@201, ~@49 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 ~@203, ~@87 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 ~@201]/8", // C G C G C G C G …
  B: "[~@2 [c1,c2]@16 [g1,g2]@20 ~ [c1,c2]@64 ~@41]/3", // C G C
})).s("gm_piano").gain(0.35)

// chords · piano · soft notes
const piano_soft = note("<~@46 A@3 ~@9>".pickRestart({
  A: "[~@93 f2@4 ~@47, ~@13 c3@16 c3@16 ~@3, ~@39 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 f1@4 ~@49, ~@41 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 ~@51]/3",
})).s("gm_piano").gain(0.2)

stack(piano, piano_2, piano_soft)

More by Maurice Ravel