Strudelify

On the Midway

Tom Brier

KeyB♭ majorTempo100 bpm
0:00/0:00
// On the Midway — Tom Brier
// 100 bpm, 2/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/32 at bar 1, 2/4 at bar 1) are rendered on a constant 2/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/6306956; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 225 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/2)

// 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@2 B@2 C D E F G@2 H@2 I J K L A@2 B@2 C D M@2 N O P Q R S T U V W X@2 V W Y@2 Z AA AB AC AD AE AF@2 V W AG@2 V W
  AH@2 AI AJ AK AL V AM AN@2 V W X@2 V W Y@2 Z AA AB AC AD AE AF@2 V W AG@2 V W AH@2 AI AJ AK AL V AM AO@2 A@2 B@2 C D E
  F G@2 H@2 I J K L A@2 B@2 C D M@2 N O P Q R S AP@2 AQ AR AS@2 AT AU AV AW AQ AR AX AY AZ BA BB BC AQ AR BD@2 AT BE BF
  BG BH BI BJ BK AQ BL BM BN AQ AR AS@2 AT AU AV AW AQ AR AX AY AZ BA BB BC AQ AR BD@2 AT BE BF BG BH BI BJ BK AQ BL BM
  BO A@2 B@2 C D E F G@2 H@2 I J K L A@2 B@2 C D M@2 N O P Q R S AP@2
>`.pickRestart({
  A: "[~ [bb3,d4] [c4,eb4] [db4,e4] [d4,f4] [db4,e4] [c4,eb4] ~@3 a2 ~ g2 ~ f2 ~, ~@14 [bb3,d4]@9 ~@9]/2", // Bb Cm Dbm Dm Dbm Cm Bb
  B: "[~ [c4,e4] [d4,f4] [eb4,gb4] [e4,g4] [eb4,gb4] [d4,f4] ~@3 c3 ~ a2 ~ g2 ~, ~@14 [c4,e4]@9 ~@9]/2", // C Dm Ebm Em Ebm Dm C
  C: "f2 ~ [f3,a3,c4] ~ c2 ~ [f3,a3,c4] ~, ~ [eb4,a4,d5]@2 c5", // F D
  D: "[a2,a4,d5] c5 [f3,a3,c4,d5] ~ f2 ~ [eb4,f4,a4]@2, eb4@3 [eb4,g4]@3 [f3,a3,c4] ~", // D5 Dm7 F7 Eb F
  E: "bb2 ~ [f3,bb3] ~ d3 a4 [d4,g4]@2, ~@2 [d4,c5]@4 [f3,bb3] ~", F: "f3 ~ f2 ~ g2 ~ a2 ~, [eb4,f4] ~",
  G: "[~ [bb3,d4] [c4,eb4] [db4,e4] [d4,f4] [db4,e4] [c4,eb4] ~@3 f2 ~ g2 ~ ab2 ~, ~@14 [bb3,d4]@9 ~@9]/2", // Bb Cm Dbm Dm Dbm Cm Bb
  H: "[~ [d4,gb4] [e4,g4] [f4,ab4] [gb4,a4] [f4,ab4] [e4,g4] [d4,gb4]@3 [gb4,d5]@2 [f4,b4]@2 c5@2, ~@10 [a2,a3] ~ [ab2,ab3]@4]/2", // D Em Fm Gbm Fm Em D Fdim …
  I: "[a2,a3,g4,db5] e5 [g3,a3,db4,db5] ~ [e2,e3] ~ [g3,a3,db4] ~, ~@3 [g4,a4]@3 bb4@2", // A7 E A7 Gsus2
  J: "[g2,g3,g4,b4] d5 [g3,b3,d4,b4] ~ [a2,a3] ~ [g3,a3,db4] ~, ~@3 [a4,db5]@3 a4@2", // G A A7 A
  K: "[gb4,d5]@2 [gb3,d5] [f3,db5] d5@2 eb5 e5, [d2,d3] ~@3 gb3 ~@3", // D Db D
  L: "[a4,f5]@2 [a3,f4] [ab3,e4] f4@2 f2 ~, [f2,f3] ~@3 a3 ~@3", // Dm Dbm F
  M: "[[bb2,bb3] ~ [f3,ab3,bb3] ~ [f2,f3] d5 [f3,ab3,bb3] ~ [d2,d3] ~ [ab4,d5,g5]@2 [c2,c3] f5 [d2,d3,ab4,d5] bb4, ~ [d4,ab4,c5]@2 bb4@2 ~@3, ~@6 [d4,ab4]@2 ~@2 [bb1,bb2] ~@5]/2", // Bb Bb7 F Bb7 D G C Ddim …
  N: "[g4,c5]!4, [eb2,eb3] ~ [bb2,bb3] ~ [g2,g3] ~ [f2,f3] ~", // C5 Eb Bb G F
  O: "[eb2,eb3,gb4,c5] ~ [gb3,bb3,eb4] ~ [gb2,gb3] ~ [gb3,bb3,eb4] ~, ~ d5@2 [gb4,eb5]@3 ~@2", // Cdim Ebm Gb Ebm
  P: "[f4,d5]@2 [f3,bb3,d4] ~ [f4,c5]@2 [f4,bb4]@2, [f2,f3] ~ [f4,d5]@2 [bb2,bb3] ~ [ab2,ab3] ~", // Dm Bb F5 Bb5 F Dm Bb Ab
  Q: "[g2,g3,f4,b4] ~ [f3,g3,b3,d4] ~ [g2,f3] ~ [d2,d3] ~, ~ c5@2 [f4,b4,d5]@3 ~@2", // G7 D Bdim
  R: "[c2,c3] ~ [e4,g4,bb4,d5]@2 [d2,d3] c5 [e2,e3] ~, ~@2 [g3,bb3,c4] ~@3 g4@2", // C Em7b5 D E C7
  S: "[f2,f3] ~ [eb4,a4,d5]@2 [g2,g3] c5 [f4,f5]@2, ~@2 [f3,a3,c4] ~@3 [a2,a3] ~", // F D G F A
  T: "[bb2,bb3] ~ f3 g3 f3@2 d3@2, [f4,bb4]@15 ~", U: "bb2 ~ [f3,f4]@2 [g3,g4]@2 [bb3,bb4]@2",
  V: "[g2,g3,e4,bb4,c5]@2 [g3,bb3,c4,e4,bb4,c5] b4 [gb2,gb3,eb4,bb4,c5]@2 [gb3,bb3,c4,eb4,bb4,c5] b4", // C7 Cm7b5
  W: "[eb4,a4,c5] ~ [f3,a3,c4] ~@2 c5 [f3,a3,c4,g4] a4, [f2,f3] ~ [f2,f3] ~, ~ f5@2 [eb4,a4,d5]@3 eb4@2", // Adim F D
  X: "[bb4@2 ~@2 [f3,bb3]@2 ~@2 [c3,c4] ~ [bb2,bb3]@2 [g2,g3]@4 [f2,f3]@4 [f3,bb3,d4]@2 ~@2 [d2,d3,g4]@4 [f2,f3,bb4]@4, [bb2,bb3,d4]@3 ~@13, ~@2 d5@4 [d4,g4]@13 ~ f4@4 ~@8]/2", // Bb5 C Bb G F Bb G5 Bb5 …
  Y: "[bb4@2 ~@2 [f3,bb3,d4]@2 ~@2 [f2,f3] ~ [bb2,bb3]@2 [c3,c4]@4 [d3,d4]@4 [f3,bb3,d4]@2 ~@2 [bb1,bb2,d5,f5]@4 [d2,d3,gb5]@4, [bb2,bb3,f4]@3 ~@13, ~@2 d5@4 [bb4,d5,f5]@13 ~ [db5,e5]@4 bb4@8]/2", // Bb F Bb C D Bb D Bb5 …
  Z: "[eb5,g5] ~ [g3,bb3,eb4] ~ [g2,g3]@2 [eb2,eb3,bb4,g5]@2, [eb2,eb3,bb4]@3 ~@5, ~ a5@2 [bb4,bb5]@3 ~@2", // Eb G Eb Eb5 Bb
  AA: "[d2,d3]@2 [f3,bb3,d4] ~ [bb1,bb2]@2 [f2,f3,f4,bb4,d5]@2, [bb4,d5,f5]@11 ~@5", // D Bb
  AB: "c5 ~ [d3,gb3,a3,c4] ~ [a2,a3]@2 [d2,d3,gb4,c5]@2, [gb2,gb3,gb4]@3 ~@5, ~ d5@2 [gb4,eb5]@3 ~@2", // D7 A D7 Gb Ebm
  AC: "[g2,g3]@2 [g3,bb3,d4] ~ [d3,d4]@2 [bb2,bb3,g4]@2, [g4,bb4]@11 ~@5", // G Gm D Eb Gm
  AD: "a4 ~ [f3,a3,d4] ~@2 e5 [f3,a3,d4] ~, [a2,a3] ~ [d2,d3] ~, ~ d5@2 [a4,d5,f5]@3 [a4,d5]@2", // Dm A D Dm D5
  AE: "e5 db5 [g3,a3,db4,e4,a4] ~ [a1,a2]@2 [g3,a3,db4,e4] ~, [db2,db3,g4]@3 [g4,db5,e5]@3 [g4,db5,f5]@2", // A7 A A7 Dbdim Gm7b5
  AF: "[[d2,d3,f4,a4,d5]@2 [f3,d5] [e3,db5] [f3,d5] [g3,eb5] [ab3,e5] ~ f2@2 [f3,f4]@2 [g3,g4]@2 [bb3,bb4]@2, ~@7 [a3,a4,c5,eb5,f5]@3 ~@6]/2", // Dm Dbm Dm Cm Dbm F G Bb …
  AG: "[bb4@2 ~@2 [f3,bb3]@2 ~@2 [bb2,bb3] ~ [g2,g3]@2 [d2,d3]@4 [f2,f3]@4 [f3,bb3,d4]@2 ~@2 [d2,d3,g4]@4 [f2,f3,bb4]@4, [bb2,bb3,d4]@3 ~@13, ~@2 d5@4 [d4,g4]@13 ~ f4@4 ~@8]/2", // Bb5 Bb G D F Bb G5 Bb5 …
  AH: "[bb4@2 ~@2 [f3,bb3,d4]@2 ~@2 [d3,d4] ~ [c3,c4]@2 [bb2,bb3]@4 [f3,f4]@4 [bb2,bb3,db5,e5]@4 [ab2,ab3,d5,f5]@4 [f2,f3,gb5]@4, [bb2,bb3,f4]@3 ~@13, ~@2 d5@4 [bb4,d5,f5]@13 ~@5 bb4@8]/2", // Bb D C Bb F Bbdim Ddim Gbmaj7 …
  AI: "[eb2,eb3,bb4,eb5,g5]@2 [g3,bb3,eb4,bb4,eb5,g5] gb5 [bb1,bb2,c5,eb5,g5]@2 [g3,bb3,eb4,c5,eb5,g5] gb5", // Eb Cm7
  AJ: "[bb4,eb5,g5] ~ [g3,bb3,eb4] ~ [g2,g3]@2 [a2,a3,c5]@2, [eb2,eb3] ~@3, ~ bb5@2 eb5@3 ~@2", // Eb G Am Eb
  AK: "d5 ~ [f3,bb3,d4] ~ [f2,f3]@2 [f3,bb3,d4] ~, [bb2,bb3,f4]@3 ~@5, ~ f5@2 [f4,bb4]@3 [f4,d5]@2", // Bb F Bb Bb5 Dm
  AL: "[g2,g3,g4]@2 [g3,bb3,d4] ~ [d2,d3,g4]@2 [f2,f3,bb4]@2, ~ f4 ~@2", // G Gm G5 Bb5
  AM: "[a4,c5] ~ [f3,a3,c4] ~@2 f5 [g4,c5,eb5,g5]@2, [f2,f3,eb4]@3 ~ [f2,f3]@2 [f3,a3,eb4] ~, ~ f5@2 [g4,c5,eb5,g5]@3 ~@2", // Am F Cm F7 F F7 Cm
  AN: "[[bb2,bb3]@2 [f2,f3]@2 ~@2 [g2,g3]@4 [f2,f3] ~ [d2,d3]@2 ~@2 [bb1,bb2]@4 [f3,f4]@4 [g3,g4]@4 [bb3,bb4]@4, [d4,bb4]@23 ~@9, f4@5 ~@3]/2", // Bb F G F D Bb F G …
  AO: "[[bb2,bb3]@2 [f2,f3]@2 ~@2 [g2,g3]@4 [f2,f3] ~ [d2,d3]@2 ~@2 [bb1,bb2]@8 [f2,f3,f4,a4,c5,eb5,f5]@8, [d4,f4,bb4]@23 ~@9]/2", // Bb F G F D Bb F7 Bb
  AP: "[[bb2,bb3] ~ f3 g3 f3@2 d3@2 bb2@2 ~@2 [bb1,bb2,bb4,d5,f5,bb5]@2 ~@2, [f4,bb4]@19 ~@13]/2", // Bb Bb5
  AQ: "[bb2,bb3,g4] [eb3,eb4,bb4] [g3,g4,eb5] [c3,c4,ab4]", AR: "[eb3,eb4,c5] [ab3,ab4,eb5] [f3,f4,bb4] [d3,d4,f5]",
  AS: "[[a4,gb5] ~ [g3,bb3,eb4] ~ [bb1,bb2]@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] c5 eb5 d5 [g3,bb3,eb4,c5] bb4, [eb2,eb3]@2 ~ eb5@5 [eb2,eb3]@2 ~@2 [bb2,bb3]@2 ~@2, ~@2 [bb4,g5]@4 g4@17 ~ g4@8, ~@9 bb4@2 ~@5]/2", // D Eb Bb Eb Cm7 Eb Bb Eb
  AT: "a4 ~ [f3,a3,c4,eb4] f5 [eb5,g5] f5 [f3,a3,c4,eb4] ~, [f2,f3] ~ [c2,c3] c5, ~ [a4,eb5,g5]@3 a4@4", // F7 Eb F7 F C Am7b5
  AU: "ab4 ~ [f3,ab3,bb3,d4] f5 g5 f5 [f3,ab3,bb3,d4] ~, [f2,f3] ~ [bb1,bb2] ~, ~ [bb4,d5,g5]@2 ~@3 bb4@2", // Bb7 F Bb Gm
  AV: "c5 ~ [g3,bb3,eb4] d5 c5 d5 [f3,a3,eb4,eb5] c5, g4 a4, [eb2,eb3] ~ [f2,f3] ~, ~ eb5@2 ~@5", // Eb F7 Eb F
  AW: "f5 ~ [f3,ab3,bb3,d4] ~ [f2,f3]@2 [f3,ab3,bb3,d4] ~, [bb1,bb2,ab4]@3 ~@5, ~@2 d5@4 [ab4,bb4]@9 ~", // Bb7 F Bb7 Absus2
  AX: "[a4,gb5] ~ [f3,g3,b3,d4] ~ [g2,g3]@2 [f2,f3]@2, [g2,g3] ~@3, ~ [bb4,g5]@2 [g4,bb4,d5]@5", // D G7 G F G Eb Gm
  AY: "~@2 [e3,g3,bb3,c4] c5 d5 c5 [e2,e3,e4,g4,bb4]@2, [e2,e3] ~ [g2,g3,e4,g4] ~, ~ [e4,g4,bb4]@3 ~@4", // C7 Edim E C Edim
  AZ: "~@2 [f3,bb3,d4] f5 [d5,g5] f5 [f3,bb3,d4] ~, [f2,f3] ~ [d2,d3,bb4] ~, ~ [bb4,d5,g5]@3 ~@2 [bb4,d5]@2", // Bb G5 Bb F Gm Bb
  BA: "~@2 [f3,a3,eb4] f5 g5 c5 [f3,a3,eb4] ~, [c2,c3] ~ [f2,f3] f5, ~ [a4,eb5,g5]@3 a4@4", // F7 C F Am7b5
  BB: "[b4,g5] ~ [ab3,b3,f4] ~ [ab3,b3,f4] ~ [f2,f3]@2, [ab2,ab3,ab4]@3 ~@5, ~@2 ab5@4 [ab4,b4,f5]@9 ~", // Em Fdim F Ab Fdim
  BC: "[bb4,g5] ~ [f3,ab3,bb3,d4] ~ [f3,ab3,bb3,d4] ~ [bb1,bb2]@2, [bb2,bb3,ab4]@3 ~@5, ~@2 f5@4 [bb4,d5,f5,bb5]@9 ~", // Eb Bb7 Bb Bb7 Bb
  BD: "[[a4,gb5] ~ [g3,bb3,eb4] ~ [bb1,bb2]@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] c5 eb5 d5 [g3,bb3,eb4,c5] bb4, [eb2,eb3]@2 ~ eb5@5 [eb2,eb3]@2 ~@2 [g2,g3]@2 ~@2, ~@2 [bb4,g5]@4 g4@17 ~ g4@8, ~@9 bb4@2 ~@5]/2", // D Eb Bb Eb Cm7 Eb G Eb
  BE: "ab4 ~ [f3,ab3,bb3,d4] d5 f5 e5 f5 gb5, [f2,f3] ~ [bb2,bb3] [ab2,ab3], ~ [bb4,d5,g5]@2 ~@5", // Bb7 F Bb Ab Gm
  BF: "[g2,g3]!2 [gb2,gb3] [f2,f3], [g4,b4,d5,g5]@15 ~", // G Gb F G
  BG: "[e5,ab5] ~ [e3,g3,bb3,c4] ~ [c2,c3]@2 [g2,g3]@2, [e2,e3,bb4]@3 ~@5, ~@2 [e5,g5]@4 [bb4,c5]@9 ~", // E C7 C G Edim Em Bbsus2
  BH: "ab4 ~ [eb3,ab3,c4] f5 g5 f5 [eb3,ab3,c4,eb5] c5, [ab2,eb3,ab3]@2 ~@2 [eb2,eb3,c5]@3 ~, ~ [c5,g5]@3 ~@4", // Ab Ab5 Cm C5
  BI: "d5 ~ [eb3,ab3,c4] ~@2 eb5 [eb3,gb3,a3,c4,d5] c5, [ab2,ab3,ab4]@3 [a4,c5]@2 ~@3, ~@2 eb5@4 gb4@9 ~, ~@2 [a2,a3] ~", // Ab D7 Ab Am A
  BJ: "bb4 ~ [g3,bb3,eb4] ~@2 f5 [g3,bb3,eb4] ~, [bb2,bb3,g4]@3 ~ [eb2,eb3]@2 ~@2, ~ c5@2 [g4,bb4,eb5]@3 [g4,g5]@2", // Eb G
  BK: "[b1,b2,eb4,gb4,b4]@2 [bb1,bb2,d4,f4,bb4] ~", // B Bb
  BL: "c5 ~@4 eb5 f5 gb5, [eb3,eb4] [ab3,ab4] [bb2,bb3] [g2,g3], ~ eb5@2 [g4,bb4]@2 ~@3", // Eb Ab Bb G Gm
  BM: "g5 f5 [f3,a3,eb4,eb5] ~@2 eb5 [f3,ab3,bb3,d4] ~, [f2,f3,a4]@3 [ab4,d5]@3 [ab4,f5]@2, ~@2 [bb1,bb2] ~", // F7 Bb7 F Abdim Db Bb
  BN: "[eb2,eb3,g4,bb4,eb5] ~ [bb1,bb2,d5,f5,ab5,bb5] ~", BO: "[eb2,eb3,g4,bb4,eb5] ~ [f2,f3,a4,c5,eb5,f5] ~",
})).s("gm_piano").gain(0.3)

stack(piano)

More by Tom Brier