Strudelify

Tom Brier Improvisation

Tom Brier

KeyE♭ majorTempo89 bpm
0:00/0:00
// Tom Brier Improvisation — Tom Brier
// 89 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 15/8 at bar 2, 10/4 at bar 3, 4/4 at bar 5) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/6307454; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(89/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
const piano = note("<~ A@7 B@4 C@4 D@7 E@7 F@5 G H I J@5 K@2 L@7 M@2 N O@4 P@2 Q@2 R@3 S@6>".pickRestart({
  A: "[~@9 g4@3 f4 g4 f4 [f4,g4] g4 f4 [f4,g4] g4 [f4,g4] f4 g4 ~@29 bb2@2 ~@53 f4@3 ~@14 bb4@3 ~@13 bb4@3 ~@6 c4@8 [bb3,c4]@21 ~@13 g4@3 ~@14 c4@3 ~ [g3,bb3,eb4]@5 [ab2,b3]@3 [g2,bb3]@3 [ab2,c4], ~ eb2@29 db4@3 g3@3 c4@4 bb3@3 [gb3,g3]@4 eb3@2 d3 db3@4 c3@56 [eb3,bb3,eb4]@17 [db3,ab3,db4]@17 [c3,g3,e4,g4]@34 ~@6 f2@10 ~ [bb2,ab3,d4,gb4]@17 ~@12, ~@3 bb2@24 d4@27 ~@9 c4@10 [c4,eb4,gb4,ab4]@37 ~@34 bb3@13 ~@28 [eb3,a3]@10 ~@29, ~@3 g3@21 eb4@30 ~@10 [eb4,gb4]@9 ~@42 bb4@8 ~@9 bb4@8 ~@60 g4@12 ~@12, ~@4 db4 f4@7 ~@11 [f4,g4]@31 ~@11 bb4@45 g4@8 ~ g4@8 [f4,g4]@8 [f4,g4]@8 ~@43 [eb4,gb4]@9 ~@8 eb4@9 ~@12]/7", // Fsus2 Bbsus2 Eb Abm Gm Ab Gmaj7 Eb5 …
  B: "[~@2 g2@3 bb2@8 ~ bb1@5 gb5@3 ~@9 [bb3,db4,eb4,g4]@9 ~@14 b4@4 ~@9 [eb3,gb3,ab3,c4]@9 ~@14 gb4@3 [eb4,g4]@5 ~@10 c5@3 [ab3,d4]@9 ~@5 gb4@3, ~@2 bb3@11 ~@6 eb2@12 db5@27 [gb4,c5]@18 ~@5 eb4@9 eb2@21 [f2,bb4]@17, ~@22 [bb2,g3,g5]@18 eb1@18 ~@5 eb5@12 ~@10 [eb3,gb3,ab3,c4,f4]@8 bb2@18 ~@17, ~@25 eb5@15 ~@9 [bb3,db4,eb4,g4,bb4]@9 [eb3,gb3]@9 ab4@26 g3@9 [eb3,g3,bb3]@9 ~@9 [f3,ab3,bb3,d4,f4,ab4]@8, ~@28 d5@12 ~@5 a4@9 ab2@21 ~ ab1@18 ~@5 [eb4,g4,bb4]@12 ~@17]/4", // Eb7 Ab7 Eb Abdim Gbdim Bb5 Eb Fm7 …
  C: "[~@33 [d4,b4]@4 ~@8 [eb3,gb3,ab3]@9 ~@14 f4@4 gb3@5 gb3@9 [ab1,ab2,gb3,f4]@3 gb3@5 ~ gb3@8 [a1,a2,gb3,eb4]@4 ~@5 [eb2,eb3,eb4,g4]@9 [eb2,eb3,eb4,g4]@3 [d2,d3,d4,gb4]@4, ~ [g2,bb3]@18 [f2,f3]@18 [eb3,ab3]@5 g4@3 c4@14 b3@12 ~@6 c4@12 ~@6 c4@12 ~@21, ~ g4@14 [db4,g4,bb4,eb5]@21 ~@4 c4@5 gb4@26 ~ eb4@17 ~@39, ~ eb3@9 [eb2,eb3]@9 ~@9 [g2,g3]@9 [ab2,eb4,c5]@17 eb2@18 [ab1,ab2]@14 ~@3 [a1,a2,eb4]@14 ~@4 [bb1,bb2,g3,bb3]@17 ~@4, ~@6 eb4@12 ~@22 ab4@14 eb3@9 [c3,eb3,ab3,c4]@9 ~@56]/4", // G Ab7 Db Ebdim Eb D Gm F …
  D: "[~@2 [d2,d3,d4,gb4]@3 ~@26 e4@5 ~@9 c4@3 ~@9 [c3,eb3,f3]@9 ~@14 c4@2 ~@15 eb4@3 [bb1,ab3,d4]@5 ~@9 [g3,bb3]@3 bb3@5 ~@9 eb4@3 ~ [eb3,c4]@8 eb4@5 ~@55 [db4,g4]@5 [db4,g4]@3 db4@5 [db4,gb4]@3 ~ [ab2,eb3,c4,f4]@4, ~@5 [db2,db3,db4,f4]@9 [c2,c3]@17 [c2,g4]@17 [f2,eb4,gb4]@17 ~ f1@17 ~@5 eb4@9 ~@17 eb4@9 [bb3,g4]@12 ~@13 [bb3,eb4]@12 ~@5 [ab4,c5]@17 eb5@29 [eb3,g3,bb3,g4]@8 ~@5, ~@10 bb3@17 ~ bb3@8 [bb3,e4]@12 [c3,eb3]@6 a3@17 [a3,g4]@12 a3@9 [a3,b3]@9 ~@16 [eb3,g3]@9 [g2,eb3,g3]@9 [ab2,ab3,ab4]@17 ~@13 d4@8 ~ [d4,gb4]@8 [db4,g4]@12 [eb3,g3,bb3]@14 bb4@12 ~@4, ~@10 [c4,e4]@9 [c4,e4,g4,c5]@12 ~@17 a3@6 c4@25 ~@3 b1@18 ~@5 [bb1,ab3,d4,gb4]@12 eb2@17 ~@9 [a2,eb3,gb3,c4,gb4]@9 [bb2,eb3,g3]@8 [bb2,db3,e3,g3]@8 ~ [d3,f3,ab3]@17 eb1@34 ~@4, ~@22 [e3,g3]@9 c3@9 [c3,e3,g3,d4]@9 ~@2 g4@14 ~@9 [c3,eb3,f3,eb4]@9 [gb2,eb3,gb4]@18 ~@8 [bb2,g4]@9 ~@5 eb4@8 ~@17 g4@9 [db4,g4,bb4]@12 bb2@5 bb4@3 [bb1,bb2]@5 bb4@21 [eb2,c5]@17 ~@4]/7", // D F7 Bb7 Gm Cm Dbdim Gb5 Fm7 …
  E: "[~@9 f4@3 [a2,eb3,gb3]@5 eb3@8 ~ [eb3,eb4]@8 ~@8 [c4,c5]@3 [bb3,bb4]@5 [g3,g4]@3 ~ [eb3,eb4]@5 [f3,d4]@3 g3@5 ~@8 b3@3 ~@13 eb4@3 ~@30 c4@3 ~@8 [eb3,gb3,ab3,eb4]@6 ~ db4 ~@13 ab3@3 ~@5 eb4@3 eb4@5 [eb4,g4]@3 ~@17 e3@8 e4@5 ~@11 [c3,e3,g3]@6 ~ bb3, ~ eb4@11 eb4@13 ~ bb2@20 ~@24 [eb2,bb2,eb3,c4]@8 [f2,f3,bb3]@16 ~ [eb3,gb3]@2 f4@10 c4@8 ~ [gb3,eb4]@11 gb3@8 ~@6 c4@2 ~@5 bb3@11 ~@21 [b3,b4]@8 [e4,g4]@11 ~ bb3@22 [b3,c4]@2, ~@4 [ab2,eb3,c4]@8 ~@5 [a2,gb3,c4]@12 ~@5 [eb3,eb4]@11 ~@22 g3@11 ~@8 [g2,g3]@8 ~ c4@5 eb4@11 ~@5 c4@8 eb2@19 [bb1,d4]@16 [eb2,g3]@16 [d2,d3,bb3]@16 ~@9 [c3,e3,g3,g4]@5 e4@8 [e4,g4]@11, ~@26 g3@11 [g3,g4]@8 ~@17 db4@16 ~@5 [db4,g4]@11 ~ gb4@16 ~@8 ab2@8 [c3,gb4]@16 ~@8 [bb2,a3]@8 ~@8 [eb3,gb4]@8 ~@9 [db2,db3]@8 [c2,g2]@16 c1@16, ~@91 ab2@12 [eb3,gb3,b3]@8 ab1@16 ~@5 f4@11 ~@21 g4@8 ~@3 bb4@13 [c4,bb4,c5]@17 ab4@19]/7", // Ebdim Eb C Bb G Eb Dm Ab7 …
  F: "[~@16 a3@5 ~@24 b3@3 ~@29 [eb4,g4]@3 ~@5 c4@3 ~@13 [bb3,bb4]@3 [bb3,bb4]@5 ~@19 bb3@8 ~@21 [eb5,eb6]@3, [c3,eb3]@21 [a3,eb4]@3 f2@3 g2@2 ab2@19 ~@8 [bb2,g4]@5 [bb3,eb4]@8 [bb3,eb4,g4]@6 bb3@5 ~@13 bb3@8 ~@8 [bb3,bb4]@16 g2@16 eb6@3 eb1@8 [eb3,g3,bb3,db4]@8, f2@16 f4@16 b3@8 [ab1,eb4]@8 bb1@16 [eb2,eb3]@16 ~@8 [d2,d3,d4,f4]@8 [eb2,eb3]@16 ~@8 [gb2,gb3]@5 g5@3 [eb3,bb5]@8 eb4@24, a3@5 g4@3 gb4@24 ~@5 f4@11 bb3@13 g3@19 ~@13 [g3,eb4]@19 ~@5 [ab4,d5,bb5]@11 bb4@32, ~@5 eb4@8 g4@19 g4@16 ~@5 [d4,gb4]@11 ~@8 [bb1,bb2]@8 [c2,c3,eb4,gb4]@8 ~@16 [e2,e3]@8 [f2,f3]@16 eb5@8 [g3,bb3]@5 [db5,g5,bb5]@19]/5", // Eb Bb Eb Cm Adim Eb Eb5 Eb …
  G: "~@13 f5@3 eb5@5 ~@8 b4@3, [ab1,ab2,b5,c6] [a1,a2,gb5], ~@5 ab5@11 c5@8 [gb3,a3,c4,eb4,c5]@8, ~@8 [eb3,ab3,c4,eb5]@8 ~@5 eb5@11", // Ab D Gbdim Ab
  H: "~@13 [ab4,c5]@3 ~@14 ab4@2, [bb1,bb2,g4,bb4]@8 [bb1,bb2]@4 f4 d4 f4@2, ~@2 [g3,bb3,eb4]@2 [g4,bb4] g4@3, ~@9 d4@3 [d3,f3,bb3,ab4]@4, ~@11 bb4@5", // Ab Eb Bb Eb Gm Bb7
  I: "~@8 db4@5 ~@11 [eb3,g3,bb3]@8, [eb2,bb2,bb3,g4]@13 db4@8 [db4,g4,bb4,eb5]@11, eb4@13 eb4@19, eb3 [db3,eb3,g3,f4] eb1@2, ~@5 [d4,gb4]@11 ~@16", // Eb Eb7 D
  J: "[c5@5 ~@19 [eb3,gb3,ab3,c4]@6 ~ bb5 ~@16 a4@5 ~@3 eb4@5 a4@3 bb4@5 ~@8 [eb4,bb4]@3 ~@21 e4@3 [e4,g4]@5 ~@48 g2@3, [ab1,ab2,eb4]@16 eb1@16 [ab1,c6]@13 f5@3 [a2,gb5]@13 eb4@11 [eb3,g3,bb3]@8 [db3,f4,ab4]@8 [db3,f3,ab3,bb3,f4,ab4]@5 e4@8 ab4@11 ~@11 ab3@2 a3@3 eb4@3 gb4@13 a3@5 [eb4,g4]@3 f2@8, gb4@13 [gb4,c5,eb5,ab5]@19 ~@8 [eb3,gb3,ab3,c4,eb5]@6 a1@18 [bb1,bb2,g4]@16 ~@13 g4@8 bb3@8 [bb3,e4,g4]@19 f2@8 eb4@5 c4@19, ~@5 [c5,eb5]@8 ~@17 ab5@2 ~@5 eb6@11 ~@5 a4@3 [gb3,a3,c4,c5]@8 ~@5 bb4@8 db2@19 [c2,g2]@16 c1@16 g4@5 f4@27, ~@8 [eb3,gb3,ab3,c4]@8 ~@15 b5@17 ~@5 eb5@11 ~@5 [eb5,bb5]@11 ~@5 bb4@11 e3@8 [c3,e3,g3]@8 ~@8 [c3,e3,g3]@8 [c3,eb3]@32]/5", // Ab7 Eb5 Em Ab5 Ab D Eb Db …
  K: "[~@13 b3@3 ~@29 b3@3 ~@13 c4@3, [ab2,g4]@16 bb2@16 ~@5 eb4@11 ~@5 eb4@11, b3@8 eb4@8 bb3@13 bb3@11 ~@8 c4@13 ~@3, eb4@5 f4@11 ~@5 [d4,gb4]@11 g3@8 [g3,bb3]@8 gb3@8 [gb3,b3]@8, ~@3 gb4@13 ~@8 [bb1,g4]@8 [eb2,bb2,eb3,f4]@16 [ab2,eb3]@16]/2", // Abmaj7 D Gm B5 Eb Ebsus2 Ab5
  L: "[[eb2,eb3]@8 [eb2,eb3,db4,g4,bb4,eb5]@8 [f2,f3,db4,g4,bb4]@8 ~@13 c4@3 c4@5 ~@19 eb5@5 ~@8 eb6@3 ~@29 bb5@3 [ab4,d5]@5 ab4@8 [ab4,ab5]@3 [g4,eb5]@5 ~@24 b4@3 eb4@5 ~@3 c4@5 ~@11 [eb3,gb3,ab3,c4]@6 ~@15 eb5@3 eb4@5 ~@8 gb4@3, [bb2,g3,bb3,eb4]@16 ~@8 [g2,g3,db4,b4]@21 gb4@19 c6@8 [eb3,gb3,ab3,c4,gb5]@3 c6@5 ~@13 eb2@19 ~@5 [d5,f5]@11 g5@13 db5@16 ab2@16 gb4@18 [gb4,c5] gb3@8 [eb3,gb3,ab3]@8 [c3,ab4]@16, ~@24 g4@8 gb3@5 ab4@8 c4@11 ~@5 eb2@19 gb3@8 [eb3,gb3,ab3,c4]@5 bb5@16 f2@19 ~@5 eb5@8 g4@8 [g4,eb5]@11 c5@13 c4@11 ~@8 eb5@13 ~@19, ~@29 [ab2,eb4,c5]@19 ab1@16 [gb3,gb5]@5 eb5@11 ~@5 [c5,gb5,c6]@8 [bb4,eb5,g5]@8 [bb4,eb5,g5]@11 ab5@13 g2@19 ~@8 [eb2,eb3,bb4]@8 [eb3,ab3]@5 [eb4,ab4]@11 ~@14 eb4@7 [eb4,gb4,c5]@11 ~@5 eb4@11, ~@29 gb4@11 [eb3,gb3,ab3,g4]@8 ~@8 [eb3,gb3,ab3,c4]@8 c3@16 [ab2,d5,d6]@16 [bb2,g3]@16 [d3,ab3]@16 [eb3,bb3]@5 g4@3 [eb3,g3,bb3,db4,d5]@8 [g3,bb3,db4,eb4]@16 gb4@8 [eb3,gb3,ab3,g4]@8 ab1@16 eb2@16 ~@8 [eb3,gb3,ab3,f4]@8]/7", // Eb Eb7 Gm7b5 Abdim Ab Cm Ab7 Eb …
  M: "[eb4@5 ~@8 g4@3 ~@13 [d4,ab4]@8 d4@8 d4@8 [db2,db3,a3,d4,gb4]@3 ~@5 gb4@3, [eb2,eb3]@16 [e2,db3,e3,db4]@20 ~ [bb1,bb2,c4,ab4]@19 ~@8, g4@13 ~@8 c5@7 ~@36, ~@5 [eb4,bb4]@11 ~@8 g4@12 ~@28, ~@8 c5@8 bb4@12 ~ [f2,d3,f3,bb4]@15 ~ [c2,c3,bb3,g4]@11 [d2,d3,ab3,d4,f4]@8]/2", // Ddim Dmaj7 Eb Dbm Fm Eb5 Bb C7 …
  N: "~@13 eb3@3 ~@13 bb2@3, [eb2,g3,g4]@26 g2@5 ~, eb3@13 ~@3 db3@16, ~@5 [db4,eb4]@27, ~@8 bb2@8 ~@5 bb2@3 gb2@8", // Eb Dbsus2
  O: "[~@12 c2@3 ~@5 ab2@3 ~@6 c2@2 ~@40 db5@5 ~@15 b4@3 ~@8 gb3@5 ~@8 c3@3 ~@5 b2@3 c3@2, [ab2,gb4]@15 eb2@8 f2@8 ~@13 ab3@11 ~@5 [bb3,db4,g4]@8 [gb4,gb5]@8 [f4,f5]@19 eb4@31 ~@2, [gb3,c4]@8 [gb3,c4]@24 ~@4 [bb3,eb4]@11 ~@5 [a3,eb4,gb4,a4]@11 [eb3,g3]@8 [eb3,g3,bb3,db4,g4,g5]@5 db5@7 ~@4 [eb3,g3,bb3,db4]@8 [ab2,c5]@7 gb4@23 ~@3, ~@2 f4@6 ab1@8 ~@10 eb2@5 eb2@8 [eb2,eb3]@8 [f2,f3,d4,f4,ab4]@8 [gb2,gb3]@8 g2@16 eb1@16 ~@4 ab4@3 [eb3,ab3,c4]@5 gb3@3 eb3@8 ab2@8 ~@2, ~@5 eb4@11 ~@15 g4@16 ~@13 bb4@19 ~@4 [eb4,db5,eb5]@8 ab1@27 ~@3 bb2@5 ~@2]/4", // Ab7 Gdim Gb F Gbdim Eb5 Ebdim Eb …
  P: "[~@3 [c4,eb4]@3 ~@4 ab4@3 ~ [c4,eb4]@4 ~@8 gb4@3 bb3@5 ~@8 g4@3 ~@8 g4@4 [c2,g2,e3,bb3,e4,g4,c5]@7, ~@3 ab4@7 ab2@16 eb2@19 [d2,b2,f3,b3,b4]@16 ~@3, ~@6 [c3,eb3,ab3,c4,eb4,bb4]@8 [eb3,gb3]@16 ~@4 [bb3,bb4]@11 ~@19, ~@14 gb4@7 f4@8 g4@8 gb4@8 ~@5 gb4@11 ~@3, ~@18 [c4,eb4]@11 [bb2,g3,eb4]@16 ~@19]/2", // Cm C7 Bdim Ab Ebm Bb Cm Eb
  Q: "[~ [c2,c3,bb3,e4,g4]@8 [c2,c3,bb3,e4,g4]@3 [db2,db3,b3,f4,ab4]@5 [db2,db3,b3,f4,ab4]@3 ~@31 [c3,eb3,f3]@8 [ab1,ab2,b3,eb4,g4]@5, ~@20 [c2,c3,bb3,e4,g4]@8 a3@20 [a3,eb4]@11 ~@5, ~@25 f2@15 c4@19 ~@5, ~@28 g4@15 f1@16 ~@5, ~@28 eb3@2 gb4@3 f4@3 [c3,eb3,f3,eb4]@8 ~@20]/2", // C7 Db7 F7 Abm C7 Adim F7
  R: "[~@8 b3@3 bb3@4 ~@16 [eb4,g4]@8 ~@42 [eb3,gb3,c4]@8 ~@3 c5@3 g4, gb4@11 ~@8 [ab3,d4,g4]@8 ~@12 bb3@16 eb5@11 [eb3,a3,c4]@7 [ab1,ab2]@16 [g1,g2,bb3,eb4,bb4]@7, ~@3 f4@8 ~@4 [bb3,gb4]@11 [c2,c3]@16 [bb1,bb2]@13 [eb4,a4,c5]@7 eb4@8 eb5@19 ~@7, ~@5 eb4@5 ~ [bb1,bb2]@16 ~@12 [eb4,g4,bb4]@8 [g4,bb4]@11 ~@4 [a4,c5]@8 [eb4,gb4]@8 [eb4,gb4,c5]@11 ~@7, ~@23 [g3,c4,eb4]@8 [g3,c4]@11 ~@5 [eb4,eb5]@3 [eb3,g3]@8 [a1,a2]@16 ~@22]/3", // Eb Cdim G Adim Ab Eb Ebm C …
  S: "[~ [bb3,bb4]@5 [bb3,e4]@8 ~@11 c4@7 ~@24 [d4,g4]@3 ~@14 b3@3 ~@5 eb4@5 ~@5 f4@4 bb3@10 ~@6 c4@7 [eb1,eb3,g3,bb3,db4]@52 ~@22, ~@6 [e2,db3,g3,bb4]@19 [c3,ab3,f4,ab4]@19 [bb2,f3,ab3]@16 ~@16 [ab2,eb3,gb3,c4]@10 [bb2,f3,bb3,d4,gb4]@10 ~@10 [bb1,bb3]@12 ~@74, ~@14 [bb3,e4,g4]@11 ~@7 c4@8 d4@11 [db4,gb4]@8 ~@5 eb4@12 ~@116, ~@22 f2@22 ~@4 [c4,f4]@11 [eb2,bb2,eb3,db4,f4]@17 ~@19 [eb2,bb2,eb3,g3,eb4]@22 ~@75, ~@36 db4@8 g4@12 ~@12 bb3@9 ~@115]/6", // Bb Bbdim G5 Eb7 Edim Fm Bb7 Ab7 …
})).s("gm_piano").gain(0.25)

// chords · piano · "Frederick Hodges"
const piano_2 = note("<A@2 B@3 C D E F ~@63>".pickRestart({
  A: "[~ g5 ~ ab5 b5@2 d6@2 g6 ~ g6 ~ g6 ~@2 g6@2 ~@2 g6@17 ~@28]/2",
  B: "[~@17 [bb2,db3]@23 ~ gb3@10 [c4,eb4]@2 ~@2 [ab3,c4,f4] ~ [c4,eb4] ~@2 [ab3,c4,f4]@2 ~@2 [gb3,c4,eb4]@14 ~@18, ~@15 eb2@25 ~ [ab2,eb3]@35 ~@20, ~@51 gb3@4 ~@2 gb3@7 ~@32]/3", // Bbm Cm Fm Cm Fm Cdim Ab5
  C: "~@21 [f2,c3]@11", D: "c2@4 g2@2 ~@4 [bb3,d4,g4] ~ g3 ~@2 [bb3,d4] ~@2 f2@14, ~@7 e3@10 ~@15",
  E: "~@3 bb1@8 bb1@8 ~@6 [ab2,b3,eb4]@3 ~@4", F: "~@5 [d3,eb3]@2 ~@25",
})).s("gm_piano").gain(0.25)

stack(piano, piano_2)

More by Tom Brier