Strudelify

That Song About the Midway

Joni Mitchell

KeyE♭ majorTempo123 bpm
0:00/0:00
// That Song About the Midway — Joni Mitchell
// 123 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Adlib Guitar 2" named as a guitar, played on electric guitar clean (its french horn patch is not one)
// note: Full arrangement: all 89 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(123/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 · "Adlib Piano"
const piano = note(`<
  A B C D E F G H I E J K L M N O P Q R@2 S@6 T@2 U V W X Y Z AA AB AC AD AE AF E AG G H I E AG AH L M N O AI AJ AK AL
  AE AM AN AO AP AQ AR AC AD AS AT AN AU AV AW AR AC AD AX@4 AC AY AZ BA BB BC BD BE BF@2 BG
>`.pickRestart({
  A: "~@3 g3@3 [ab3,bb3,eb4]@3 [ab3,bb3,eb4]@3 [ab3,bb3,eb4]@6 [g3,bb3,eb4]@5 ~, eb2@23 ~", // Absus2 Eb
  B: "~@3 ab3@3 [bb3,c4,eb4]@3 [bb3,c4,eb4]@3 [bb3,c4,eb4]@6 [ab3,c4,eb4]@5 ~, ab2@23 ~", // Cm7 Ab
  C: "~@3 g3@2 ~ [ab3,bb3,eb4]@3 [ab3,bb3,eb4]@3 [ab3,bb3,eb4]@6 [g3,bb3,eb4]@5 ~, eb2", // Absus2 Eb
  D: "~@3 g3@3 [ab3,bb3,eb4]@3 [ab3,bb3,eb4]@3 [ab3,bb3,eb4]@6 [g3,bb3,eb4]@5 ~, eb2@3 ~", // Absus2 Eb
  E: "f4@2 f4!2 ~@3 g4, [bb3,d4], bb2@17 ~ bb2@5 ~, ~@4 f4@3 ~", // Bb
  F: "ab4@2 ~@4 f4 eb4, [ab2,c4,eb4] [bb2,bb3,d4], ~@6 g4@11 ~@7", G: "~ [ab3,c4]!2 [g3,bb3,eb4], [f2,eb4]@3 ~",
  H: "eb2@5 ~ bb2@5 ~ eb3@5 ~ bb2@5 ~, [g3,bb3,eb4] g3", I: "eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ eb4@3 eb4@3, g3@3 [g3,bb3]",
  J: "~ ab4@6 ~@12 f4@3 eb4@2, ~ [ab2,c4,eb4]@12 [bb2,bb3,d4]@11, ~@7 g4@12 ~@5", // Ab Bb
  K: "~@7 [ab3,c4]@6 [ab3,c4]@6 [g3,bb3,eb4]@5, ~ [f2,eb4]@18 ~@5", // Ab Eb F7
  L: "~ eb2@5 ~ bb2@5 ~ eb3@5 ~ bb2@5, ~ [g3,bb3,eb4]@12 g3@11", // Eb
  M: "~ eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ eb4@3 eb4@2, ~ g3@18 [g3,bb3]@5", // Gm
  N: "~ f4@3 f4@6 f4@3 ~@9 g4@2, ~ [ab3,db4]@23, ~ [eb2,eb3]@17 ~ [eb2,eb3]@5, ~@13 f4@9 ~@2", // Db5 Eb
  O: "~ eb4@6 ~@12 eb4@3 eb4@2, ~ [ab3,c4]@18 ~@5, ~ [ab2,eb3]@11 ~ [ab2,eb3]@11, ~@7 eb4@12 c4@5", // Ab Ab5
  P: "~ g4@3 g4@3 g4@3 g4@3 [g2,bb4]@6 [bb2,g4]@5, ~ eb4@23, ~ [eb2,eb3]@11 ~@12", // Gm Eb
  Q: "~ eb3@5 ~@7 f4@6 eb4@5, ~ [ab3,db4,f4]@12 [ab3,db4]@11, ~@7 eb2@17", // Db Db5
  R: "[~@2 [ab3,c4,eb4]@3 [ab3,c4]@6 [ab3,c4]@3 ~@9 ab3@3 [eb3,ab3]@6 bb2@5 ~ eb2@5 ~ eb3@3 eb3, ~@2 [ab2,eb3]@17 ~ [ab2,eb3]@5 ~@23, ~@14 [ab3,c4]@9 ~@9 [g3,bb3]@12 ~@4]/2", // Ab Ab5 Ab Gm
  S: "[~@2 f3@3 ~@3 bb2@5 ~ eb3@5 ~ bb2@5 ~ eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ eb4@3 f4@3 eb4@3 ~@3 bb1@5 ~ f4@3 eb4@3 f4@3 eb4@3 eb2@5 ~@7 eb4@6 eb4@6 [ab2,ab3]@5 ~@4 [c4,eb4,ab4]@3 [c4,eb4,ab4]@6 [ab3,c4,g4]@6 eb2@5 ~ bb2@3 eb3@3 eb3@5 ~ bb2@4, ~@2 eb2@5 ~@43 bb2@5 ~@7 bb2@11 ~@7 eb3@18 ~@6 eb3@5 ~ ab2@11 ~@23, ~@5 g3@9 g3@12 g3@18 [g3,bb3]@6 [ab3,db4]@24 [ab3,db4]@24 [bb3,eb4,bb4]@9 ~@15 [g3,bb3,eb4]@22, ~@53 f4@9 ~@12 f4@12 ~@58]/6", // Ab Abmaj7 Gm Db5 Eb5 Eb
  T: "[~@2 eb2@5 ~@7 g4@6 g4@6 eb4@5 eb4@6 ~@9 db4@2, ~ [g3,bb3,eb4]@6 [bb3,eb4]@6 [ab3,bb3]@11, ~@8 eb3@17 ~ eb2@17 eb3@5, ~@37 eb4@9 ~@2]/2", // Eb Eb5 Absus2
  U: "~ db4@6 eb4@6 eb4@3 eb4@6 eb4@2, ~ [ab3,bb3]@23, ~ eb2@11 ~ eb3@11", // Absus2
  V: "~ f3@3 ~@3 bb2@5 ~ eb3@5 ~ bb2@5, ~ eb2@5 ~@18, ~@4 g3@8 ~ g3@11",
  W: "~ eb2@5 ~@7 eb4@6 f4@5, ~ g3@12 [g3,bb3]@11, ~@7 eb3@17", // Gm
  X: "~ eb4@3 ~@3 bb1@5 ~ f4@3 eb4@3 f4@3 eb4@2, ~ [ab3,db4]@23, ~ bb2@5 ~@7 bb2@11, ~@4 f4@9 ~@11", // Db5
  Y: "~ eb2@5 ~@7 eb4@6 eb4@5, ~ [ab3,db4]@23, ~ f4@12 ~@11, ~@7 eb3@17", // Db5
  Z: "~ [ab2,ab3]@5 ~@4 [c4,eb4,ab4]@3 [c4,eb4,ab4]@6 [ab3,c4,g4]@5, ~ [c4,eb4,bb4]@9 ~@14, ~@7 eb3@5 ~ ab2@11", // Ab Abmaj7 Cm7
  AA: "~ eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ bb2@5, ~ [g3,bb3,eb4]@23", // Eb
  AB: "~ eb2@5 ~@6 g4@6 g4@6, ~ [g3,bb3,eb4]@11 [bb3,eb4]@12, ~@6 eb3@17 ~", // Eb Eb5
  AC: "eb4@2 eb4@2 ~@3 db4, [ab3,bb3], eb2@17 ~ eb3@5 ~, ~@4 eb4@3 ~", // Absus2
  AD: "db4@2 eb4@2 eb4 eb4@2 eb4, [ab3,bb3], eb2@11 ~ eb3@11 ~", // Absus2
  AE: "f3@3 ~@3 bb2@5 ~ eb3@5 ~ bb2@5 ~, eb2@5 ~@19, ~ g3@3 g3@4",
  AF: "eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ [g3,bb3,eb4]@6, g3@11 ~@13", // Eb
  AG: "ab4@2 ~@4 f4 eb4, [ab2,c4,eb4] [bb2,bb3,d4], ~ g4@2 ~", // Ab Bb
  AH: "~@6 [ab3,c4]@6 [ab3,c4]@6 ~ [g3,bb3,eb4]@5, [f2,eb4]@3 ~", // Ab Eb F7
  AI: "~ g4@6 g4@5 ~ [g2,bb4]@6 [bb2,g4]@5, ~ eb4@23, ~ [eb2,eb3]@11 ~@12", // Gm Eb
  AJ: "~ eb3@5 ~@6 f4@6 eb4@6, ~ [ab3,db4,f4]@11 [ab3,db4]@12, ~@7 eb2@17", // Db Db5
  AK: "[ab3,c4,eb4] [ab3,c4]@2 [ab3,c4] ~@3 ab3, [ab2,eb3]@17 ~ [ab2,eb3]@5 ~, ~@4 [ab3,c4]@3 ~", // Ab Ab5 Ab
  AL: "[eb3,ab3]@6 bb2@5 ~ eb2@5 ~ eb3@3 eb3@3, ~ [g3,bb3]@2 ~", // Ab5 Gm
  AM: "eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ eb4@3 f4@3, g3@3 [g3,bb3]", // Gm
  AN: "eb4@3 ~@3 bb1@5 ~ f4@3 eb4@3 f4@3 eb4@3, [ab3,db4], bb2@5 ~@7 bb2@11 ~, ~ f4@3 ~@4", // Db5
  AO: "eb2@5 ~@7 eb4@6 eb4@6, [ab3,db4], f4 ~, ~ eb3@3", // Db5
  AP: "[ab2,ab3]@5 ~@4 [c4,eb4,ab4]@3 [c4,eb4,ab4]@6 [ab3,c4,g4]@6, [bb3,eb4,bb4]@3 ~@5, ~@6 eb3@5 ~ ab2@11 ~", // Ab Abmaj7 Eb5
  AQ: "eb2@5 ~ bb2@3 eb3@3 eb3@5 ~ bb2@5 ~, [g3,bb3,eb4]@23 ~", // Eb
  AR: "eb2@5 ~@7 g4@6 g4@6, [g3,bb3,eb4] [bb3,eb4], ~@6 eb3@17 ~", // Eb Eb5
  AS: "f3@3 ~@3 bb2@5 ~ eb3@5 ~ bb2@5 ~, eb2@5 ~@19, ~@3 g3@8 ~ g3@12",
  AT: "eb2@5 ~@7 eb4@6 f4@6, g3 [g3,bb3], ~@6 eb3@17 ~", AU: "eb2@5 ~@7 eb4@6 eb4@6, [ab3,db4], f4 ~, ~@6 eb3@17 ~",
  AV: "[ab2,ab3]@5 ~@4 [c4,eb4,ab4]@3 [c4,eb4,ab4]@6 [ab3,c4,g4]@6, [c4,eb4,bb4]@3 ~@5, ~@6 eb3@5 ~ ab2@11 ~", // Ab Abmaj7 Cm7
  AW: "eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ bb2@5 ~, [g3,bb3,eb4]@23 ~", // Eb
  AX: "[f3@3 ~@3 bb2@5 ~ eb3@5 ~ bb2@5 ~ eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ bb2@5 ~ eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ bb2@5 ~ eb2@5 ~ bb2@2 ~ eb3@3 ~@3 g4@6 g4@3, eb2@5 ~@82 [bb3,eb4]@9, ~@3 g3@9 g3@72 eb3@5 ~@7]/4", // Eb5
  AY: "eb2@5 ~ g2@5 ~ eb3@5 ~ [eb4,ab4,bb4]@6, [ab3,bb3,db4]@3 ~", // Ebsus4 Bbm7
  AZ: "eb2@5 ~ bb2@2 ~ eb3@3 eb3@5 ~ bb2@5 ~, [eb4,ab4,bb4]", BA: "[eb2,eb4,ab4,bb4]@2 [ab3,bb3]!2",
  BB: "f3@3 ~@3 bb3@5 ~ eb4@5 ~ eb3@5 ~, eb3@5 ~@19, ~ g3@3 g3@4",
  BC: "eb3@3 ~@15 bb3@5 ~, bb2 ~, g3@5 ~ bb3@11 ~@7, ~ f3@3 [d3,f3]@4", // Dm
  BD: "bb2@5 ~@13 bb3@5 ~, ab3, [db3,f3]!2, ~@6 bb3@11 ~@7", // Db
  BE: "[gb3,a3]@3 bb3@3 bb3@5 ~ [bb3,eb4]@6 bb3@5 ~, eb3, ~ g3@3 g3@4", // Gbm Eb5
  BF: "bb3@6 bb3@2 ~ eb4@3 eb4@5 ~ bb3@5 ~, [eb3,g3]", BG: "[eb3,g3,bb3]@23 ~",
})).s("gm_piano").gain(0.31)

stack(piano)

More by Joni Mitchell