Strudelify
KeyC majorTempo120 bpm
0:00/0:00
// MARSEILLES HYMN — Claude Joseph Rouget de Lisle
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2, 3/4 at bar 29) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5144877; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 29 bars on a 16-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 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 C D E F G H I J K L M N O P Q R S T@3 U V W X Y Z>".pickRestart({
  A: "e4!2 g4!2", B: "d5@3 c5 e4!3 d4", C: "f4@2 d5@4 f4 d4", D: "e5@4 ~@2 e4 g4", E: "c5@2 c5@2 c5@2 d5 c5",
  F: "c5 b4 b4@2 ~@2 b4 c5", G: "d5@2 d5@2 d5@2 e5 d5", H: "a4 ~", I: "e5@2 c5 g4 e5@2 c5 g4", J: "e4@4 ~ e4!3",
  K: "b4@2 d5 b4", L: "e4!2 ~ [g4,a#4]", M: "f4@2 f4!2 g4@2 g4 a4", N: "b4@4 ~@3 b4", O: "c5@3 c5 b4 c5 d5 c5",
  P: "b4@4 ~@2 c5 b4", Q: "a4!4", R: "g4 g4@2 ~", S: "b4", T: "b4 ~", U: "e4@3 e4", V: "c5", W: "d5@2 e5 f5",
  X: "b4@6 ~ f5", Y: "e5@4 e5 c5 d5 b4", Z: "e4@3 ~",
})).s("gm_piano").gain(0.3)

// other · piano
const piano_2 = note("<~ A B C D E F G D H I J K L M N O B P Q O B O R S T P U V>".pickRestart({
  A: "c3!2 g2!2", B: "c3@2 c3!2", C: "f3@2 g3 g2", D: "c3 ~", E: "c3!3 d3", F: "g2!2 ~@2", G: "f3!3 g3", H: "c3 ~ c3 ~",
  I: "g2@4 ~ c3@3", J: "f3 g2", K: "c3!2 ~@2", L: "[c3,g3] c3!3", M: "g2@4 ~@3 g2", N: "c3!2", O: "g2 ~", P: "g2@3 ~",
  Q: "g3@2 g3!2", R: "c3@3 c3", S: "c3", T: "d3@2 e3 f3", U: "c3@2 c3 g2", V: "c3@3 ~",
})).s("gm_piano").gain(0.3)

stack(piano, piano_2)