Strudelify

Le carnaval des animaux

Saint-Saens

KeyG majorTempo62 bpm
0:00/0:00
// Le carnaval des animaux — Saint-Saens
// 62 bpm, 6/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2180726; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 28 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(62/6)

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

// chords · piano
const piano = note("<A B C D E B F G H I J K L M N O P E Q R S T U V W X Y Z>".pickRestart({
  A: "b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4, g2 d3 g3 d3 g2 b2 g2 b2 g3 b2 g2 b2",
  B: "b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4, g2 b2 g3 b2 g2 b2 g2 b2 g3 b2 g2 b2",
  C: "c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4, g2 e3 a3 e3 g2 e3 g2 e3 a3 e3 g2 c3",
  D: "c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4, g2 e3 a3 e3 g2 e3 g2 d3 b3 d3 g2 d3",
  E: "b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4, g2 d3 g3 d3 g2 b2 g2 d3 g3 d3 g2 b2",
  F: "c#4 e4 c#5 a#4 c#4 e4 c#5 a#4 c#4 e4 c#5 a#4 c#4 e4 c#5 a#4 c#4 e4 c#5 a#4 c#4 e4 c#5 a#4, f#2 e3 a#3 e3 f#2 e3 f#2 e3 g3 e3 f#2 e3",
  G: "b3 d4 b4 f#4 b3 d4 b4 f#4 b3 d4 b4 f#4 a#3 d4 a#4 f#4 a#3 d4 a#4 f#4 a#3 d4 a#4 f#4, f#2 d3 f#3 d3 f#2 d3 f#2 c#3 f#3 c#3 f#2 c#3",
  H: "d4 f#4 b4 f#4 d4 f#4 b4 f#4 d4 f#4 b4 f#4 d4 f#4 b4 f#4 d4 f#4 b4 f#4 d4 f#4 b4 f#4, b2 f#3 b3 f#3 b2 f#3 b2 f#3 b3 f#3 b2 f#3",
  I: "d4 g4 d5 b4 d4 g4 d5 b4 d4 g4 d5 b4 c#4 e4 c#5 g4 c#4 e4 c#5 g4 c#4 e4 c#5 g4, g2 d3 b3 d3 g2 d3 a#2 e3 a#3 e3 a2 e3",
  J: "c4 d4 c5 g4 c4 d4 c5 g4 c4 d4 c5 g4 c4 d4 c5 f#4 c4 d4 c5 f#4 c4 d4 c5 f#4, f#2 b2 a3 b2 f#2 g2 d2 b2 a3 b2 d2 b2",
  K: "b3 f4 c5 a4 c4 f4 c5 a4 c4 f4 c5 a4 b3 d4 b4 f4 b3 f4 b4 f4 b3 d4 b4 f4, f#2 a2 a3 a2 f#2 a2 e2 b2 g#3 b2 f#2 b2",
  L: "a#3 c4 a#4 f4 a#3 c4 a#4 f4 a#3 c4 a#4 f4 a#3 c4 a#4 e4 a#3 c4 a#4 e4 a#3 c4 a#4 e4, f2 a2 f3 a2 f2 a2 e2 a2 g3 a2 e2 a2",
  M: "a3 e4 a4 e4 a3 e4 a4 e4 a3 b3 a4 d4 a3 c4 a4 e4 a3 c4 a4 e4 a3 c4 a4 e4, f2 a2 f3 a2 f2 a2 e2 a2 e3 a2 e2 a2",
  N: "a3 d4 a4 f#4 a3 d4 a4 f#4 a3 d4 a4 f#4 a3 c4 a4 e4 a3 c4 a4 e4 a3 c4 a4 e4, d2 f#2 d3 f#2 d2 f#2 e2 f#2 g3 f#2 e2 f#2",
  O: "a3 b3 a4 d4 a3 b3 a4 d4 a3 c4 a4 d4 a3 c#4 a4 e4 a3 c#4 a4 e4 a3 c#4 a4 e4, f2 a2 f3 a2 f2 a2 e2 a2 g3 a2 e2 a2",
  P: "a3 d4 a4 f4 b3 d4 a4 f#4 c4 d4 a4 f#4 c4 d4 a4 f#4 c4 d4 b4 f#4 c4 d4 c5 f#4, d2 a2 d3 a2 d2 a2 c3 c2 b2 b1 a2 a1",
  Q: "c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4, f#2 e3 a3 e3 f#2 e3 f#2 e3 a3 e3 f#2 e3",
  R: "c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 f#4 c5 a4 c4 g4 c5 a4 c4 e4 c5 a4, f#2 e3 a3 e3 f#2 e3 f#2 d3 a3 d3 f#2 d3",
  S: "b3 d4 b4 f4 b3 d4 b4 f4 b3 d4 b4 a4 d4 g#4 d5 b4 d4 g#4 d5 b4 d4 g#4 d5 a4, g2 b2 g3 b2 f2 b2 e2 b2 g#3 b2 e2 b2",
  T: "c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4 c4 e4 c5 a4, a2 e3 a3 e3 a2 e3 a2 f#3 a3 f#3 a2 f#3",
  U: "b3 d4 b4 g4 b3 d4 b4 g4 b3 d4 b4 g4 [e2,e3,a3,c4,g4]@11 ~, g2 b2 g3 b2 g2 b2 ~@6", // Am7
  V: "[d2,b3] [d3,e4] c5 a4 d4 g4 d5 b4 g4 b4 g5 d5 ~@12, ~ g3 b3 g3 d4 b3 ~@6", // G Dsus2
  W: "b3 e4 b4 g4 e4 g4 e5 b4 g4 b4 g5 e5 [d4,a4,c5]@2 ~@10, [d2,d3] ~@5", // D7 D
  X: "e5 g5 e6 b5 d5 g5 d6 b5 d5 e5 b5 g5 [b4,e5] e5 b5 g5 b4 e5 b5 g5 e5 g5 e6 b5, ~@2 b5 e5 b5 d5 ~ b4 d5 b4!2 e4", // E5
  Y: "~ g5 d6 b5 b4 e5 b5 g5 b4 d5 b5 g5 e4 g4 e5 b4 d4 g4 d5 g4 b3 d4 b4 g4, d5 d4 e4 b3 d4 b3!2 e3 b3 d3 g3 d3",
  Z: "[g2,b3] ~@11", // G
})).s("gm_piano").gain(0.2)

stack(piano)

More by Saint-Saens