Strudelify

Piano Piece for Children No. 18

Bela Bartok

KeyC majorTempo120 bpm
0:00/0:00
// Piano Piece for Children No. 18 — Bela Bartok
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 35 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// chords · piano · "A.PIANO 1"
const piano = note("<A B C D@6 E@4 F G@3 H@3 I J@5 K L@4 M@2 N@2>".pickRestart({
  A: "[c4,e4]@3 g3@3 ~ [a3,c4]@3 g3@3 e4@3 g3@3 ~ [a3,c4]@3 g3@3 ~ e4@3 g3@2, ~@13 c4@2 ~@11 c4@2 ~@4", // C Am
  B: "~ a3@3 g3 ~@3 e4@3 g3@3 a3@2 ~ g3 ~@3 c4 ~@2 g3@3 a3@3 g3 ~, ~@8 c4 ~@5 c4 ~@5 g5@7 e5@5, ~@27 c4 ~@4",
  C: "~ g5 c4@2 ~ [g3,g5]@3 e5@4 g3@3 c4@2 ~ g3@3 ~ f5@3 [g3,e5]@3 [c4,f4,d5]@4, ~@8 c4@2 ~@5 a5@5 ~ a3@3 ~@8, ~@18 g5@4 c4 ~@9", // G C Dm7
  D: "[g3@3 d5@4 g3@3 ~@3 g3@3 ~ a3@2 ~ g3@3 ~ e4@2 [g3,g5]@4 [a3,c4]@3 g3@3 ~ [d4,a5]@3 [g3,g5]@3 [a3,f5]@3 [g3,e5]@4 f4@3 g3@3 ~ b3@3 ~@3 [c4,e4]@2 ~ g3@3 e5 ~@2 e5 ~@3 [e4,g4] ~@2 [c4,c6] ~@2 g5@6 ~ c5 ~@2 [e4,c6] ~@2 g5@6 g5@4 f5 ~@2 [g4,b4,e5]@3 d5@2 ~ [g4,c5,g5]@3 [e4,c6] ~@2 g5@6 ~ [c5,e5]@3 a#4@2 ~ g5@6 ~ g5@4 f5@3 e5@3 d5@4 c5@5 ~@2 c5@5 ~@3 g3@13 g2@3 f2@3 e2@3 d2, ~@3 f4@3 ~@4 g5@7 e5 ~@2 e5 ~@2 [c4,g5]@3 ~@4 e5@7 b3 ~@5 c4@2 ~@5 [c4,d5]@6 d5@5 ~ g5@7 ~@6 g5@2 ~@11 g5@2 ~@37 g5 ~@2 c6 ~@61, ~@56 f4@3 ~@52 f4 ~@42 [a3,c4]@15 ~@23]/6", // G Am D5 G Dm C Em C …
  E: "[~@4 c2@4 ~@4 c2@6 ~@19 e4 ~@3 f#4 ~@4 g#4@2 ~@3 a4@2 ~@59 c5@3 g4@3 [a4,c5]@3 g4@3 ~ e5@2 ~, ~@4 a3@18 ~@90 e5@5 ~@8 c5 ~@2, ~@19 g#3@86 ~@23]/4", // Am
  F: "g4@3 [a4,c5]@2 ~ g4@2 ~ [c5,e5]@3 g4@2 ~ [a4,c5]@2 ~ g4@2 ~ [c5,e5]@2 ~ g4@2 ~ [a4,c5] ~@2 g4@2", // Am C Am C Am
  G: "[~ e5@3 g4@2 ~ c5@2 ~ g4@3 [g3,c5] e5 ~ [g3,g4]@3 ~ [a4,c5] ~ g4@3 ~ [a3,e5]@3 [g3,g4]@2 ~ [a4,c5] ~ [e3,g4]@3 ~ d3@3 g4@2 ~ [d3,b4,f5]@3 g4@3 ~ c5 ~@2 g4@2 ~ [e3,a4,c5] ~@2 [e3,g4]@3 [g3,c5] ~@2 g4@3 [e3,a4]@3 g4@3 [a3,e5]@3 [g3,g4]@3 [a4,c5] ~@2 [e3,g4]@3 f5@3 g4@2 ~@2 [d3,b4,f5]@2, ~ [c3,g3]@6 a4 ~@18 c5 ~@10 c5@5 ~@27 c5@2 ~@4 c5 ~@20, ~ c5 ~@5 e3@6 ~@6 e3@6 ~@6 f3@2 ~@5 c3@8 ~@5 [c3,g3,e5]@7 ~@8 g3 ~@14 f3@3 ~@3 [c3,d3,c5]@7 ~@2, ~@38 f5@2 ~@23 e5@2 ~@31]/3", // C5 G Am A5 G Am Em Bdim …
  H: "[g4@2 ~ c5@3 ~ g4@2 ~ [e3,a4,c5] ~ e3 ~@3 [c3,g3] ~@28 f3@3 [e3,b4]@2 ~ [d3,d4] ~@23 g4@20 ~, ~@3 [c3,g3,e5]@7 ~@9 [c4,e4]@30 ~@5 g3@7 g3@35, ~@19 g4@17 g4@12 g4 ~@8 [c4,e4,a#4]@39, ~@23 e5@9 [c5,e5,g5]@17 ~@18 g4@4 [c5,e5,a#5]@25, ~@29 g3@13 [c3,g3]@7 ~@5 c3@42]/3", // Am C5 E5 D C C7 C C7 …
  I: "~@7 g5@3 f5@3 e5@3 d5@3 c5@4 ~@3 c5@4 ~@2, ~@19 g3@13",
  J: "[~ a3@13 g2@3 f2@3 e2@3 ~ d2@3 ~ c2@7 ~@21 a4@3 b4@4 c#5@4 d5@6 e5@9 e5@71 ~@7]/5",
  K: "~ g5@3 f5 ~@2 e5@2 ~ d5 ~@2 c5@2 ~ c6 ~@2 g5@4 ~@3 g5@2 ~ f5@2 ~, ~@13 g5 ~@18",
  L: "[[f4,e5]@2 ~ [a3,d5] ~@2 g5@3 c6@2 ~ g5@6 ~@6 [g4,g5]@7 ~@18 [g4,g5]@28 ~ g5@3 f5@2 e5@3 d5@3 ~@32 c2@4 d2@3, ~@3 e4@32 ~@10 a3@19, ~@6 c4 ~@2 a#3@64 ~@16 c4@16 d4@23, ~@18 [g4,g5]@6 ~@7 [g4,g5]@6 [g4,g5]@6 [g4,g5]@6 ~@79, ~@21 [c5,c6]@13 [c5,c6]@6 [c5,c6]@6 [c5,c6]@31 ~@12 c5@7 c5@12 ~@20]/4", // Fmaj7 D5 G C
  M: "[e2@4 f2@4 [f3,a3]@40 g4@3 f4@4 e4@5 [f3,d4]@4, ~@4 g2@3 ~@25]/2", // F Dm
  N: "[~@2 e3@5 ~@9 [c3,c4]@38 ~@10, ~@2 c4@11 ~@51, ~@7 d3@12 ~@45]/2", // C
})).s("gm_piano").gain(0.4)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~ A B C D E ~@2 F G@4 ~@7 H I@2 J@3 K L ~@2 M N@2 ~@2>".pickRestart({
  A: "~ c4@2 ~@18 e4@2 ~@9", B: "~@2 e4@5 ~@2 a3@3 ~@3 e4@3 ~@14", C: "~@4 b3@3 ~@4 e4@6 c4@2 ~@13, ~@5 c4 ~@10",
  D: "~@14 g3 ~", E: "~@25 g4 ~@6", F: "~@9 b3@14 ~@9", G: "[~@3 f3@17 ~@38 b4@23 b4@28 ~@19, ~@10 e3@43 ~@11]/4",
  H: "~@19 b3@13", I: "[~ f3@7 ~@10 c2@3 [d3,f3]@7 ~@4, ~@28 [e3,g3]@15 ~@21]/2",
  J: "[~@55 a2@36 ~@5, ~@9 [c#3,e3]@24 ~@21 c#3@37 ~@5, ~@9 [b2,d3]@11 ~@12]/3", // C#m Bm
  K: "~@7 b4@3 f4@2 ~@2 g4@2 ~ e4 ~@14, ~@7 g4 ~@24", L: "c4 ~@15", M: "~@9 [f3,c4]@23",
  N: "[~@16 g2@11 [d3,b3]@23 ~@6 g3@5 ~@3]/2", // G
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Bela Bartok