Strudelify

Narodil se Kristus Pán - 4 ruce na šíÅku

karlachova

KeyC majorTempo120 bpm
0:00/0:00
// Narodil se Kristus Pán - 4 ruce na šíÅku — karlachova
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5867105; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 15 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, 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 F G H I J K L M N H>".pickRestart({
  A: "[c4,c5]@2 [c4,c5] [d4,d5] [c4,e4,c5,e5]@2 [c4,d4,f#4,c5,d5,f#5]@2", // C D C D7
  B: "[b3,d4,g4,b4,d5,g5] [c4,e4,g4,c5,e5,g5] [b3,d4,g4,b4,d5,g5]@2", // G C G
  C: "[f#4,f#5] [g4,g5] [c4,a4,d5,f#5,a5]@2, [d4,d5] ~", D: "[b3,g4,b4,d5,g5]", E: "[g4,e5,g5]!2 [f4,d5,f5]!2",
  F: "[e4,c5,e5]!2 [d4,b4,d5]@2", G: "[c4,c5,e5] [a3,a4,f5] [c4,c5,e5] [b3,b4,d5]", H: "[c4,e4,g4,c5]",
  I: "[e4,c5,e5] [d4,b4,d5] [e4,c5,e5] [f4,d5,f5]", J: "[d4,b4,g5] [e4,g4,c5]",
  K: "[c4,e4,c5,e5] [b3,d4,b4,d5] [c4,e4,c5,e5] [d4,f4,d5,f5]", L: "[b3,g4,b4,g5] [c4,e4,c5]",
  M: "[f3,c4,f4,c5] [c4,a4,c5,a5]", N: "[b3,g4,b4,g5] [d4,f4,d5,f5] [c4,e4,c5,e5] [b3,d4,b4,d5]",
})).s("gm_piano").gain(0.3)

// chords · piano
const piano_2 = note("<A B C D E F G H I J I K L M N>".pickRestart({
  A: "c2@2 c2 b1 [a1,c3,e3,g3]@2 [f#1,c3,d3,a3]@2, [c3,e3,g3] ~", B: "[g1,b2,d3,g3] [g1,c3,e3,g3] [g1,b2,d3,g3]@2",
  C: "d2 c2, [d3,f#3,a3]", D: "b1@2 a1@2 g1@2 g2 f2, [b2,d3,g3] ~", E: "[e2,c3,e3,g3] [d2,d3,f3,a3]",
  F: "[f2,c3,e3,a3] [g2,b2,d3,g3]", G: "[d2,c3,f3,a3] [g2,b2,d3,g3]", H: "e2 d2 c2@2, c3", I: "[g2,g3]",
  J: "[g2,g3] [f2,f3] [e2,e3] [d2,d3] [c2,c3]@4", K: "[g2,g3] [f2,f3] [e2,e3] [d2,d3] c2@2 a#1@2, ~ c3",
  L: "[a1,c3,f3,a3] [d2,c3,f3,a3]", M: "[g1,d3,b3]", N: "[c2,c3,e3]",
})).s("gm_piano").gain(0.3)

stack(piano, piano_2)