Strudelify

pure imagination

Gene Wilder

KeyE♭ majorTempo100 bpm
0:00/0:00
// pure imagination — Gene Wilder
// 100 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/742561; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · "SATB"
const piano = note(`<
  ~@7 A B C D E F G H@2 I J K L M N O@2 P Q R S T U V W@2 I J K X M N Y@2 Z ~ AA AB AC AD T U V W@2 I J AE AF M N AG@2
  AH@2 ~@2 AI AJ@2
>`.pickRestart({
  A: "~@2 c4 eb4", B: "bb4@2 c4 eb4", C: "bb4 ~ g4 bb4", D: "d5@3 eb5 d5 eb5 d5 eb5", E: "d5 bb4 c3 eb3",
  F: "g3@2 ab3 bb3", G: "g3 ~ f3 eb3", H: "[d3 eb3 d3 eb3 d3@2 [bb2,bb3]@4 ~@2 [c3,c4]@2 [eb3,eb4]@2]/2",
  I: "[f3,ab3,eb4,bb4]@2 [ab3,c4] [f3,ab3,c4,eb4]", J: "[bb2,ab3,eb4,bb4] ~ [g3,g4] [bb3,bb4]",
  K: "[bb3,d4,g4,d5]@3 [bb3,eb4,g4,eb5] [bb3,d4,g4,d5] [bb3,eb4,g4,eb5] [bb3,d4,g4,d5] [bb3,eb4,g4,eb5]", // Gm Eb Gm Eb Gm Eb
  L: "[d4,eb4,g4,d5]@2 [bb3,d4,g4,bb4]@2 ~@2 c4 [bb3,c4,eb4]", M: "[ab3,c4,eb4,g4]@2 [f3,c4,eb4,ab4] [f3,c4,eb4,bb4]",
  N: "[ab3,c4,eb4,g4]@2 ~@2 [ab3,c4,f4]@3 [c4,eb4]", O: "[[b3,d4]@8 [a3,gb4]@8 [b3,g4]@11 ~@5, ~@8 [d4,d5]@19 ~@5]/2",
  P: "[ab3,eb4,c5,eb5] [ab3,f4,d5,f5] [ab3,eb4,c5,eb5] [ab3,f4,d5,f5] [ab3,eb4,c5,eb5]@4", // Ab Ddim Ab Ddim Ab
  Q: "[g3,f4,bb4,d5] [g3,d4,f4,bb4] [bb3,eb4,g4]@2", R: "[g3,g4] [ab3,ab4] [g3,g4] [ab3,ab4] [g3,g4]@2 [eb3,eb4]@2",
  S: "[eb3,bb3,d4,g4] [g3,d4,f4,bb4]@2 ~", // Ebmaj7 Gm7
  T: "[a3,c4,g4,d5] [a3,c4,g4,eb5] [a3,c4,g4,d5] [a3,c4,g4,eb5] [d3,c4,gb4,d5]@2 [gb3,d4,a4]@2", // Am7 Am7b5 Am7 Am7b5 D7 D
  U: "[g3,d4,a4,c5] [g3,d4,bb4,d5]@2 ~", V: "[c4,c5] [d4,d5] [c4,c5] [d4,d5] [c4,c5]@2 ~ [c3,c4]",
  W: "[[d3,d4] [eb3,eb4] [e3,e4] [f3,f4]@2 ~ [c3,c4] [eb3,eb4]]/2", // D Eb E F C Eb
  X: "[d4,eb4,bb4,d5]@2 [bb3,d4,g4,bb4]@2 ~@2 c4 [bb3,c4,eb4]", // Ebmaj7 Gm Cm7
  Y: "[[b3,d4]@2 gb4@2 f4 ~ [a3,db4] [bb3,d4], ~@8 [a3,d4,d5]@11 ~@13]/2", Z: "[g3,eb4]@15 ~",
  AA: "[c5,eb5] [d5,f5] [c5,eb5] [d5,f5] [c5,eb5]@4", AB: "[bb4,d5] bb4 g4@2", AC: "g3 ab3 g3 ab3 g3@2 eb3@2",
  AD: "g3 bb3@2 ~",
  AE: "[bb3,d4,g4,d5]@3 [bb3,eb4,ab4,eb5] [f3,d4,ab4,d5] [f3,eb4,ab4,eb5] [gb3,d4,a4,d5] [gb3,eb4,a4,eb5]", // Gm Ebsus4 Ddim Fm7 D Ebdim
  AF: "[g3,f4,bb4,d5]@2 [bb3,d4,f4,bb4]@2 ~@2 c4 [bb3,c4,eb4]", // Gm7 Bb Cm7
  AG: "[[b3,d4]@2 f4@2 f4@2 db4 d4, ~@8 [a3,d4,d5]@15 ~@9]/2", AH: "[[eb3,eb4]@15 ~]/2",
  AI: "[ab2,eb3,c4] [g2,f3,bb3,eb4]", AJ: "[f2@8 bb2@8 [eb3,g3]@15 ~, [eb4,bb4]@15 ~, ab3@15 ~@17]/2",
})).s("gm_piano").gain(0.3)

// chords · piano
const piano_2 = note(`<
  A@4 B C D E F G H I J K L@2 M N O P Q R S T U V W X Y Z AA AB@2 M N AC AD J AE S AF AG AH AI AJ AK X Y Z AA AL@2 AM AN
  AO AP AQ AE S AR A@4 AS AT AU
>`.pickRestart({
  A: "[~@3 [d5,d6] ~@7 [bb4,bb5] ~@2 bb2@2, [bb3,c4,eb4,ab4]@15 ~ [bb3,d4,eb4,g4,bb4,bb5]@15 ~ [bb3,c4,eb4,f4]@15 ~ [bb3,d4,eb4,g4,g5]@15 ~, [c5,c6]@11 ~@21 [ab4,ab5]@11 ~@21, ~@8 bb2@15 ~ bb2@15 ~ bb2@15 ~@9]/4", // D Bb Ab Ebmaj7 Bbsus4 Ebmaj7 C Ab
  B: "c4 c5 bb4 g4, [ab2,eb3,g3]@15 ~", C: "bb3 bb4 f4 eb4, [g2,f3]@15 ~", D: "ab3 ab4 g4 eb4, [f2,eb3]@15 ~",
  E: "bb3@2 c4 eb4, [bb2,eb3,ab3]@15 ~", F: "[f2,ab3,c4,eb4,g4]@15 ~", G: "[bb2,ab3,c4,eb4,g4]@15 ~",
  H: "eb2 bb2 g3@2, [bb3,d4,g4]@15 ~", I: "d4 c4, [c2,c3,bb3,eb4,g4]@15 ~",
  J: "f2 c3 ab4 bb4, [ab3,c4,eb4,g4] [ab3,c4,eb4,f4]", K: "bb2 ~ f4 [bb2,eb4], [ab3,c4,eb4,g4] [ab3,c4], ~ bb2@2 ~",
  L: "[d4 eb4 d4 eb4 [bb3,d4]@2 ~@3 f3 g3 bb3 [ab2,eb3,g3,c4]@2 [g2,f3,bb3,eb4]@2, [eb2,gb3,a3]@2 [bb2,g3]@2 eb2 bb2 ~@2, ~@6 bb3@3 ~@7]/2", // Bb Abmaj7 Eb Ebdim Eb
  M: "f2 c3 c4 eb4, [ab3,c4,eb4,g4] ab3", N: "bb2 ~ g4 [bb2,bb4], [ab3,c4,eb4]@15 ~, g4 ~, ~ bb2@2 ~",
  O: "eb2@2 bb2@2 ~@2 d4 eb4, [bb3,d4,g4]@11 ~@5, ~ g3", // Gm
  P: "[c2,d4,eb4,g4]@2 [g2,bb3,d4,g4]@2 c4@2 c4 eb4, ~ [c3,eb3,g3]", Q: "f2 c3 ab4 bb4, [ab3,c4,eb4,g4] ab3",
  R: "bb2@2 ~@5 eb4, [ab3,c4,eb4,g4]@4 f4@3 ~, ~ bb2@2 bb2", // Abmaj7
  S: "g2 d3 g3 d3 [d4,gb4,a4,d5] gb4 a4 d5, [a3,b3,d4]@2 a3 d3", // D Bm7
  T: "g2 d3 g3 a3 d4 g4 ab4 d5, [d4,b4,d5] b3, a4 g4 ~@2", // G
  U: "[g4,c5,eb5] [f4,bb4,d5,f5] [g4,c5,eb5] [f4,bb4,d5,f5] c4@2 eb3@2, ab2 eb3 [g4,c5,eb5]@2", // Cm Bb Cm Bb Cm
  V: "g2 d3 [bb3,d4,f4,bb4]@2 [c3,g3]@2 c2@2, [f4,bb4,d5] ~ [bb3,eb4,g4]@2", // Bb C5 Bb Eb
  W: "f2 c3 [ab3,c4]@2 [eb4,g4]@2 eb4@2, [ab3,c4,eb4] ~ [bb2,ab3,c4]@2", // Ab Eb Ab Fm
  X: "[eb2,bb3,d4,f4,g4]@2 [bb2,d4,f4,g4,bb4]@2 f5 d5 bb4 g4, ~ g3", // Ebmaj7 Gm7
  Y: "a2 eb3 a3@2 [d3,c4]@2 [gb3,d4]@2, [c4,g4,ab4] [gb4,ab4]", // D7 D Abmaj7 Gbsus2
  Z: "[g2,a4,c5]@2 d3@2 g3 a3 bb3@2, d4@15 ~, ~@4 [bb4,d5]@11 ~", AA: "g4 gb4 bb3 a3, [c3,e3,bb3,d4] [f2,f3,eb4,f4]",
  AB: "[d4@4 eb4@4 [b3,d4,eb4]@4 [c4,eb4,f4]@4 [bb4,bb5]@15 ~, [bb2,ab3]@15 ~, c4 ~@3]/2", // B F7 Bb Bb7
  AC: "eb2@2 bb2@2 ~@2 d4 eb4, [bb3,d4,g4]@11 ~@5, ~ eb3", // Gm
  AD: "[c2,d4,eb4,g4]@2 [g2,bb3,d4,g4]@2 c4@2 c4 eb4, ~ [c3,eb3,g3,bb3]", // Cm Gm Cm7
  AE: "bb2@2 ~@5 eb4, [ab3,c4,eb4,g4] [ab3,c4], ~ bb2@2 bb2, ~@4 f4@3 ~", // Abmaj7 Ab
  AF: "~ f3 [a3,db4] [bb3,d4], bb2@15 ~, [d4,f4,a4,d5] ~", // A Bb Dm
  AG: "eb2 bb2 ~ f3 g3 bb3 eb4 bb3, [g3,bb3,eb4]@3 ~@5, ~@4 eb3@11 ~", // Eb
  AH: "db4 eb4 f4 g4 ab4 bb4 c5 db5, [bb2,f3,ab3] [bb2,ab3,db4] eb2@2, ~@2 [db4,f4] [eb3,db4,f4,ab4]", // Bb7 Bbm7 Db
  AI: "[g4,c5,eb5] [f4,bb4,d5,f5] [g4,c5,eb5] [f4,bb4,d5,f5] ab3 bb3 c4 eb4, ab2 eb3 [g4,c5,eb5]@2", // Cm Bb Cm Bb Cm
  AJ: "g2 d3 [g3,d4,f4,bb4]@2 [d4,f4]@2 [db4,e4]@2, [f4,bb4,d5] ~ [c3,bb3,g4]@2", // Gm7 Dm Dbm Bb C7
  AK: "g3 ab3 c4 eb4 [eb4,g4]@2 eb4@2, [f2,eb3] [bb2,ab3,c4], eb4 ~@3", // Eb F7 Fm
  AL: "[d4@4 eb4@4 e4@4 f4@4 [bb4,bb5]@15 ~, [bb2,ab3]@15 ~, c4 ~@3]/2", // Bb Bb7
  AM: "[ab3,c4,eb4,g4] eb5 bb4 eb4 c4@2 eb4@2, f2 c3 ab3@2", // Abmaj7
  AN: "g4 g5 eb5 bb4 [b3,d4,g4]@2 [ab3,d4,gb4,bb4]@2, bb2@11 ~@5, [c4,eb4] ~, ~ ab3@2 ~", // G Daug Cm
  AO: "eb2 bb2 g4 bb4 [f2,ab3,eb4,ab4]@2 [gb2,a3,eb4,a4]@2, [f4,g4,bb4,d5] g3 ~@2", // Fm7 Ebdim Gm7
  AP: "g2 d3 bb3@2 c4@2 c4 eb4, [d4,f4,bb4] [c3,eb3,g3,bb3]", // Bb Cm7
  AQ: "[f2,eb4,g4]@2 eb4 g4 ab4@2 bb4@2, [ab3,c4] [ab3,c4,eb4,f4], ~ c3 ~@2", // Cm Ab Fm7
  AR: "[bb2,a3,d4,f4,a4,d5]@2 [a3,db4] [bb3,d4]", AS: "[ab2,eb3,g3,c4] [g2,f3,bb3,eb4]",
  AT: "f2 bb2, [ab3,eb4,bb4]@15 ~", AU: "[eb2,bb2,g3,bb3,eb4,bb4]@15 ~",
})).s("gm_piano").gain(0.3)

stack(piano, piano_2)