Strudelify

Piano Piece for Children No. 20

Bela Bartok

KeyF minorTempo120 bpm
0:00/0:00
// Piano Piece for Children No. 20 — Bela Bartok
// 120 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 46 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@6 B@8 C@3 D@7 E@5 F@6 G@8 ~@3>".pickRestart({
  A: "[~@166 [d4,g5]@5 ~ eb5@5 ~ g4@14, ~@3 f5@6 g3@13 c5@6 ab4@23 ~@7 bb3@44 ~@3 ab3@51 ab3@17 ~@19, ~@4 f3@44 f3@28 bb4@26 ~@48 [f3,ab5]@23 ~@19, ~@9 f5@8 [c4,f5]@6 f4@28 ~@3 [g3,eb5]@16 c5 f4@22 f4@25 f4@55 ~@4 eb5@15, ~@13 [ab3,g5]@12 ~@23 f5@9 ~@7 db4@38 ~@9 c4@45 g5@5 f5 c4@9 [c4,eb4]@21]/6", // G5 Fm F5 Cm Abmaj7 Cm
  B: "[~@117 g5@5 eb5@5 ~@41 ab5@5 ~@37 f3@5 ~@13 f4@15 f5@6 f5@6 g5, ~@4 bb2@48 ~@2 bb3@9 ~@37 ab5@13 b3@9 gb3@23 f5@28 ~@5 f4@4 ab4@5 c5@24 ~@45, ~@4 f5@15 g5 bb3@28 c5@25 ~ [ab4,c5]@30 ~@3 f4@16 ~@9 eb4@21 ~@10 [g3,g5]@10 [db4,f5]@19 ~@17 ab4@35 ~@12, ~@9 d3@16 ab5@7 f5@20 ~@7 c4@42 g3@22 ~@4 bb3@26 ~@4 f3@35 ~@6 d3@14 ~@9 c4@24 ~@11, ~@14 ab3@21 ~@13 ab3@55 ~@4 g5@5 f5@11 ~@5 eb5@25 ~@15 ab3@24 ~@12 e3@8 ~@3 ab3@30 ~@11]/8", // Ab G Db
  C: "[~@13 c5@7 ab4@20 ~@26 c5@8 bb4@22, ~@6 f5@11 ~@23 ab3@29 ~@27, ~@20 f5@5 ~@23, ~@41 c3@29 ~@26, ~@46 eb5@23 ~@27]/3",
  D: "[~@87 f5@5 ~@40 f5@6 ~@18 c5@6 bb4@16 ~@12 f2@7 ~@4 f4@23, ~@3 f4@25 ~ f4@64 ~@5 g5@33 eb3@21 eb3@11 ~@61, ~@17 f2@42 ~@33 f5@11 f5@27 c3@23 ~@71, ~@109 c5@23 ab3@20 ~ g3@25 c4@46, ~@115 ab4@19 ~@4 eb5@19 ~@21 f4@23 ~@23]/7",
  E: "[~@13 f5@5 ~@5 eb5@6 ~@57 ab4@7 ~@18 bb3@5 ~@6 eb4@22 ~@7 g5@7 f5@2, ~ ab5@19 ~@9 eb5@22 ~@17 ab5@10 ~@15 c5@23 c5@29 ~@15, ~@7 g5@11 [d4,g5]@15 eb4@14 f5@27 f5@21 ~@49 ab5@15 ~, ~@34 c4@17 ~@6 [bb2,d3]@21 ~@82, ~@40 g4@10 ~@13 [ab3,g5]@16 ~ [bb3,d4]@15 ~@9 ab3@41 ~@15]/5", // G5 Bb Abmaj7 Bb
  F: "[~@4 g5@4 eb5@5 ~@110 [db3,f3,a3]@28 bb3@41, ~@14 eb5@25 ~@18 [f3,ab5]@16 f4@53 ~@66, ~@19 bb3@19 ~@5 f2@20 f5@63 ~@66, ~@26 gb4@13 ~@11 [db3,g5]@17 db4@12 c5@24 ab4@67 ~@22, ~@33 f5@29 ab3@63 ~@67]/6", // Dbaug Fm Dbdim
  G: "[~@2 f5@6 f5@5 g5@3 ~@4 f5@9 c5@6 ~@24 f5@6 ~@130 bb3@34 ~@27, ~@35 ab4@22 g3@29 c5@7 bb4@32 ab2@63 ~@68, ~@55 eb3@27 ab2@31 f4@28 ~ f4@46 ~@68, ~@59 db4@25 c3@46 ~@49 db3@50 ~@27, ~@65 eb5@22 gb3@43 ~@37 [e3,ab3]@62 ~@27]/8", // E
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<A@2 B@3 ~@3 C@2 D ~@4 E F@8 G ~@2 H@4 ~@2 I@3 ~@2 J@3 K@5>".pickRestart({
  A: "[~@26 c4@25 ~@13]/2", B: "[~@9 g3@2 ~@13, ~@15 f3@28 ~@5]/3", C: "[~@2 eb4@37 ~@15 d4@5 ~@5]/2",
  D: "~@10 gb4@15 ~@7", E: "~ eb3@3",
  F: "[~@3 [eb3,g3,db4]@33 [f3,ab3,c4]@45 ~@50 f2@35 ~@22 db4@22 ~@19 f2@27, ~@81 [f3,ab3,c4]@38 [f3,ab3,c4]@47 ~@44 [f3,ab3]@46, ~@92 f2@39 ~@125]/8", // Eb7 Fm
  G: "~@13 f3@19, ~@3 ab3@5, ~@13 c4@7 ~@12",
  H: "[~@34 ab4@16 ~@12 [g3,b3,d4]@6 f4@6 ~@10 eb4@19 ~@25, ~@21 c4@29 ~@33 gb3@19 ~@26]/4", // G
  I: "[~@23 [d3,f3]@43 ~@30]/3", J: "[~@29 db2@62 ~@5]/3",
  K: "[~@9 f4@8 ~@3, ~@15 [c4,d4]@32 ~@33, ~@3 [f2,c3]@4 ~@3, ~@71 ab4@64 ~@25]/5", // Csus2 F5
})).s("gm_piano").gain(0.16)

stack(piano, piano_soft)

More by Bela Bartok