Strudelify

giant steps

Clarence Hill

KeyE♭ minorTempo120 bpm
0:00/0:00
// giant steps — Clarence Hill
// 120 bpm, 13/8, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5896790; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 26 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/6.5)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · epiano1 · "Electric Piano"
const epiano1 = note("<~@6 A B C D A B C E F G H I J K L M A N O P>".pickRestart({
  A: "[eb4,bb4,b4,gb5]@7 [c4,gb4,a4,d5]@7 ~ [b3,d4,g4,b4]@7 [ab3,bb3,d4,g4]@6 [eb4,f4,g4,bb4]@9 [b3,e4,a4,b4]@5 [d4,eb4,gb4,a4]@6", // Bmaj7 D7 G Gm Eb Esus4 D
  B: "[b3,gb4,g4,d5]@7 [ab3,d4,f4,bb4]@7 ~ [bb3,d4,eb4,g4]@7 [gb3,bb3,db4,eb4]@6 [b3,db4,eb4,gb4]@9 [f3,bb3,eb4,g4]@5 [ab3,bb3,eb4,f4]@6", // Gmaj7 Bb7 Ebmaj7 Ebm7 B Eb Absus2
  C: "[g3,eb4,f4,bb4]@11 [c4,e4,a4,b4]@6 [d4,eb4,gb4,a4]@5 [b3,gb4,g4,d5]@15 [b3,db4,ab4,eb5]@5 [bb3,e4,gb4,db5]@6", // Eb Am D Gmaj7 Abm Gb7
  D: "[ab3,db4,bb4,b4,gb5]@11 [f4,c5,eb5,g5]@6 [ab4,bb4,d5,f5]@5 [eb4,g4,f5,bb5]@15 [e3,eb4,ab4,eb5]@5 [e3,eb4,gb4,db5]@2 ~@4", // Gb Cm Bb7 Eb Emaj7 Ebm7
  E: "[ab3,db4,bb4,b4,gb5]@11 [f4,c5,eb5,g5]@6 [ab4,bb4,d5,f5]@5 [eb4,g4,f5,bb5]@15 db5@2 eb5@3 [e3,gb3,eb4,gb5]@2 ~@4, ~@37 [e3,ab3,eb4]@6 ~@5", // Gb Cm Bb7 Eb Ebm Emaj7
  F: "bb5@2 gb5@2 d5@2 ~ d5@2 b4@2 g4@2 d4@4 ~ g4@2 bb4@2 gb5@2 d5@2 ~@5 eb5@2 bb4@2 g4@2 a4@2 gb4@2 ~ db5@2 d5@2 bb4@2, [gb3,bb3,b3,db4]@4 ~@2 b4@2 ~@5 [gb3,g3,b3]@6 ~@9 [g3,bb3,d4]@6 ~@3 [e3,a3,b3,c4]@4 ~@7, ~@17 f4@2 ~@7 f5@6 ~@9 c5@2 ~@5", // Gb Gmaj7 Gm Am
  G: "[d3,g3,b3,db4,d5]@4 b4@2 ~ bb4@2 eb4@2 f4@2 g4@2 [g3,bb3,d4,eb4,a4]@2 ~ g4@2 [g3,bb3,d4]@2 ~@2 db5@2 gb4@2 [d3,gb3,a3,db4]@2 ~ eb4@2 c4@2 eb4@2 f3@2 g3@2 ~ eb4@2 g4@2 f4@2, ~@6 a4@2 ~@9 eb5@2 ~ eb4@4 ~@6 gb4@2 ~@9 bb3@2 ~@5, ~@7 [d3,f3,bb3]@4 ~@37", // G Ebmaj7 Gm Dmaj7 Bb
  H: "~@2 bb3@2 d4@2 ~ f4@2 g4@2 c5@2 eb5@2 g4@2 ~ c4@2 bb3@2 a4@2 e4@2 c4@2 b3@2 ~ b3@2 e3@2 g3@2 b3@2 d4@2 ~ g4@2 a4@2 bb4@2, [bb2,eb3,g3]@4 ~@2 c4@2 ~@9 e4@2 ~@11 bb3@2 ~@9 e4@2 ~@5", // Eb
  I: "b4@2 db5@2 bb4@2 ~ gb4@4 [c3,f3,g3,g4]@2 c5@2 [c3,f3,g3,g4]@2 ~ bb4@2 c5@2 db5@2 f5@2 db5@2 g4@2 ~ eb4 f4 g4@2 bb4@2 ~@2 f4@2 ~ bb4@2 b4@2 eb5@2, [b2,db3,gb3]@4 ~@2 d4@2 ~@9 ab4@2 ~@11 db4@2 ~@5 [e3,ab3,eb4]@5 [e3,gb3,eb4]@6, ~@41 g4@2 ~@5", // Csus4 Bsus2 Emaj7 Ebm
  J: "db5@4 gb5@2 db5@3 bb5@2 gb5@2 d5@2 gb5@3 e5 [b4,d5] d4@4 d5@2 f5@2 gb5 g5 ~ f5@2 bb4@2 eb4@2 f4@2 g4 ab4 ~ b4@2 c5@2 d5@2, [gb3,bb3,b3,db4]@7 ~@13 [gb3,g3,b3]@6 ~@15 bb4@2 ~@5", // Bm Gb Gmaj7
  K: "c5@2 ~@2 c5@2 ~ d5@2 ~@2 d5@2 gb5@2 ~@3 bb4@2 [f3,g3,bb3,eb4,bb5]@2 ~@2 bb5@2 [eb3,gb3,b3,db4,ab5]@4 ~ g5 ab5 gb5@2 eb5@2 f4@2 g4@2 ~ bb4@2 eb5@2 gb5@2, ~@17 d5@2 ~@18 [a3,c4,eb4]@4 a4@2 ~@5", // Eb Abm7 Adim
  L: "[f3,g3,bb3,eb5,bb5]@2 ~@2 [f3,g3,bb3,eb5,bb5]@2 ~ [f3,g3,bb3,eb5,d6]@4 bb5@2 d6@2 ~@3 bb5@2 d6@2 e6@2 [gb3,g3,b3,d4,d6]@4 ab5 a5 [gb3,g3,b3,d4,d5,gb5]@3 bb5 a5@3 eb6 bb5 ~ gb5 d5 ~ b5 bb5@2 ab5@2, ~@17 [g3,a3,b3,d4]@6 ~@14 [e3,ab3,eb4]@3 ~@2 [e3,gb3,eb4]@2 ~@4", // Eb Ebmaj7 Gmaj7 G Emaj7 Ebm
  M: "gb5@2 eb5@2 db5@2 ~ eb5@2 db5@2 b4@2 b3@2 ab4@2 ~ eb5@2 g5@2 f5@2 d5@2 d6@2 bb5@2 ~ d6@2 bb5@2 g5@2 [e3,ab3,eb4,eb5]@2 ~@2 [e3,eb4] [e3,gb3,eb4,db5]@2 ~@4, [gb3,bb3,b3,db4]@4 ~@2 gb5@2 ~@9 bb4@2 ~@3 [f3,g3,bb3,eb4]@15 ~@4 [ab3,eb5]@2 ~@5, ~@15 e6 ~@8", // Emaj7 Ebm7 Gb Eb Ab5
  N: "[b3,gb4,g4,d5]@7 [ab3,d4,f4,bb4]@7 ~ [bb3,d4,eb4,g4]@7 [gb3,bb3,db4,eb4]@6 [b3,db4,eb4,gb4]@5 f4@2 c4@2 f3@2 g3@2 ~ eb4@2 g4@2 f4@2, ~@41 bb3@2 ~@5", // Gmaj7 Bb7 Ebmaj7 Ebm7 B
  O: "f3@2 g3@2 bb3@2 ~ bb4@2 ~@2 [g3,bb3,c4,eb4,e5]@2 ~@2 d5@2 ~ b4@2 [gb3,a3,db4,d4,c5]@2 ~@2 g4@2 g3@2 d4@2 ~ c5@2 d5@2 f5@2 [e3,ab3,eb4,gb5]@2 eb5@2 ~ [e3,gb3,eb4,b4]@2 a4@2 g4@2, ~@6 eb4@2 ~@7 [g3,bb3,c4,eb4]@6 ~@27, ~@17 c5@2 ~@11 a4@2 ~@9 bb4@2 ~@5", // C7 D7 Emaj7 B Cm7
  P: "[gb3,bb3,b3,db4]@4 bb4@2 ~ gb4@2 bb3@2 db4@2 b3@2 f4@2 ~ eb4@2 bb3@2 g3@2 [eb3,g3,c4,bb4]@3 ~ c5@2 [eb3,g3,c4,c5]@7 bb3@2 db4@2 ~ [e3,gb3,bb3,gb4]@2 ~@4, db5@2 ~@4 ab4@2 ~@9 g4@2 ~@18 [e3,ab3,b3]@6 ~@5, ~@41 eb4@2 ~@5", // Gb Cm7 Cm Gb7 E
})).s("gm_epiano1").gain(0.3)

// bass · electric bass finger · "Electric Bass"
const bass = note("<~@2 A B C D A B C E A B C E A B C D A B C E A B C E>".pickRestart({
  A: "b1@2 gb2@2 eb3@3 d2@2 a2@2 gb3@4 g2@2 ~ b3@4 d3@2 f3@2 bb2@2 eb2@3 bb2@2 g3@4 e2@2 a2@2 ~ d3@4 gb3@2, ~@17 d3@2 ~@22 c3@2 ~@5",
  B: "g2@2 d3@2 b3@3 bb2@2 f3@2 d3@4 eb2@2 ~ g3@4 db2@2 bb2@2 gb2@2 b1@3 gb2@2 eb3@4 f1@2 a1@2 ~ bb1@2 f2@2 d3@2, ~@17 bb2@2 ~@22 c2@2 ~@5",
  C: "eb2@11 a1@6 d2@5 g1@15 db2@5 gb1@6", D: "b1@11 f1@6 bb1@5 eb2@15 db2@5 gb1@6",
  E: "b1@11 f1@6 bb1@5 eb2@15 db2@5 gb1@2 ~@4",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct("<A@4 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2>".pickRestart({
  A: "x ~@14 x ~@12 x ~@8 x ~@4 x ~@5", B: "x ~@10 x ~@5 x ~@4 x ~@14 x ~@4 x ~@5",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct("<A@4 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2>".pickRestart({
  A: "~@7 x ~@5 x ~@8 x ~@12 x ~@12", B: "~@7 x ~@22 x ~@17",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<A@4 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2>".pickRestart({
  A: "~@6 x ~@13 x ~@16 x ~@4 x ~@5", B: "~@6 x ~@19 x ~@8 x ~@12",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<A@4 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2>".pickRestart({
  A: "~@4 x ~@2 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@2 x ~@14", B: "~@4 x ~@2 x ~@18 x ~@3 x ~@2 x ~@14",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@4 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2>".pickRestart({
  A: "~@11 x ~@5 x ~@19 x ~@4 x ~@5",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<A@4 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2>".pickRestart({
  A: "x ~@36 x ~@4 x ~@5", B: "x ~@10 x ~@12",
})).gain(0.3)

stack(epiano1, bass, kick, snare, low_tom, hihat, open_hat, crash)