Strudelify

The One Step

Chick Corea

KeyC majorTempo111 bpm
0:00/0:00
// The One Step — Chick Corea
// 111 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 15, 4/4 at bar 16, 2/4 at bar 39, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 47 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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 · epiano1 · "E.PIANO 1"
const epiano1 = note("<A@4 B@2 C@2 D@3 E F G@8 H I@5 J@8 K@8 L@2 M@2>".pickRestart({
  A: "[~@4 c5 d#5 e5@3 ~@20 e5 f5@3 ~@19 a#4 ~ d5@3 ~@18 f5 g#5@2 f5 ~ d#5 ~ c5 [a#4,d#5] [c5,f5]@3 ~ [a#4,d#5]@6 ~@2, [b3,c4,e4,g4]@19 ~@3 [a3,a#3,d4,f4]@22 ~@2 [g3,g#3,c4,d#4]@22 ~@2 [f3,f#3,a#3,c#4]@22 ~@4, ~@10 g5@15 ~@3 a5@2 ~@4 d5@15 ~@5 c#5 ~@3 f5@14 ~@24]/4", // D#5 F5 D#5 Cmaj7 A#maj7 G#maj7 F#maj7
  B: "[[d3,a3,d4,f4,a#4,e5]@3 ~@37 [a5,e6]@7 ~, ~@5 [d3,g3,c4,e4,a4,d5]@17 ~@2]/2", // A#maj7 A5 Am7
  C: "[[d3,a3,d4,f4,a#4,e5]@3 ~@7 [d3,g3,c4,e4,a4,d5]@26 ~@4 d#5 e5@7, ~@5 [g3,d4,f4,c5,g5]]/2", // A#maj7 Am7 Gsus4
  D: "[~@4 d5 ~ g5 ~ b5 ~ c6 ~ b5 c6 ~@4 a5@3 ~ e5 ~ c6 d6 ~@4 b5@3 ~ g5@4 ~@2 e5@6 ~@2 [c#5,f#5,a#5,c#6]@3 ~ [d5,g5,b5,d6]@4 ~@2 [g5,b5,c6,e6]@4 ~@2 [g5,b5,c6,e6,g6]@7 ~, [e3,g3,b3,d4]@9 ~ [f3,a3,c4,e4]@11 ~ [f#3,b3,c4,e4]@11 ~ [g3,b3,c4,e4]@12 ~@26, ~@30 a5 ~@15 e5@6 ~@6 [a4,e5]@13 ~]/3", // F# G Cmaj7 Em7 Fmaj7 Esus2 Cmaj7 A5
  E: "[e6,f6,a6] ~@5 [a5,c6,d6,f6] ~@3 [g#3,f#5,a#5,c#6]@2 [a3,f5,a5,c6]@3 ~ [c#4,c#5,f5,a5]@7 ~, c6 ~@11", // Fmaj7 Dm7 F# F C#aug
  F: "[d4,f4] ~@3 d5 ~ c5@3 ~ [d#4,f#4,b4]@11 ~ [e4,g4,b4]@2, e5 ~@11", // Dm B Em
  G: "[~@10 c5@12 ~@14 d#6@6 ~@4 [c6,g6]@10 ~@8 d5 ~ f#5@4 a5@12 ~@6 [a5,b5] ~ g5 ~ b5 ~@19 a#4 ~ d5 ~ a#4 ~@18 f5 g5 ~ f5@2 d#5 ~ c5 ~ [a#4,c5,d#5,f5] ~@3 [a#4,d#5]@7 ~ [d#2,a#2,f4,a#4,c5]@5 ~@5 [f4,g4,c5]@10 ~@2 f4 ~ [f4,a#4,c5]@4 ~@2 [f4,a4,c5]@4 ~@2, ~@10 [d#4,f4,g#4]@49 ~@133, ~@11 [c5,g5]@6 c6 g#5@3 [d#6,a#6]@7 ~@68, ~@24 [d#5,a#5]@32 ~@2 [f#3,g3,b3,d4]@23 ~ [g3,a3,c4,e4]@22 ~@2 [a#3,d4,d#4,g4]@22 ~@2 [g#3,c4,c#4,f4]@25 ~@11 [f2,c3]@26, ~@34 f5@22 ~@10 f5 ~@27 d5@15 ~@9 f5@16 ~@58]/8", // C5 Asus2 A#sus4 D#5 D#sus2 Fsus2 Fsus4 F …
  H: "[f4,g4,c5]@3 ~ [f4,a4,c5]@6 ~@2 [g#2,d#3,d4,d#4,g4,a#4]@4 ~@6 [a#2,f3,c4,f4,a4]@2", // Fsus2 F D#maj7 F
  I: "[~@16 [c2,g2]@17 ~@13 [e5,b5]@12 ~@12 [a#4,f5]@12 ~@12 [d5,a#5]@11 ~@7 d#5 ~ c5 ~ a#4 ~ f4 a#4, ~@4 [c3,g3,c4,d4,g4]@29 ~ [b3,c4,e4,g4]@24 [a3,a#3,d4,f4]@24 [g3,g#3,c4,d#4]@23 ~ [f3,f#3,a#3,c#4]@14, ~@40 a4@18 ~@8 [d5,a5]@16 ~@6 g4@17 ~@15, ~@40 e5@6 ~@18 c6@18 ~@8 [a#4,f5]@15 ~@15, ~@21 [c5,g5]@8 ~@3 f5@3 ~@9 d5@3 ~@13]/5", // C5 E5 A#5 Gm Csus2 Cmaj7 A#maj7 G#maj7 …
  J: "[c5@4 a#4@6 ~@2 [d3,a3,d4,f4,a#4,e5]@3 ~@31 [d6,e6]@11 ~@3 [d3,a3,d4,f4,a#4,e5]@3 ~@27 [g5,a5]@9 ~ [g3,d4,f4,c5,e5,g5]@8 ~@4 a5 ~ b5 ~ d6 ~ g6 ~@2 [d6,e6] ~@2 c6@2 a5@3 ~ e6@2 d6@3 ~ c6@2 b5@3 ~ d6@2 a5 b5@3 a5@2 g5@2 ~ g5 ~@3 g5@2 ~ f5@2 ~ e5@2 ~ f5@2 ~ e5@2 ~ c5@2 a4@3 ~ [a#3,d#4,a4,a#4]@3 ~ [a3,d4,a4]@3 ~ [a3,d4,f4]@3 ~ c#4@2, ~@22 [d3,g3,c4,e4,a4,d5]@36 ~@12 [d3,g3,c4,e4,a4,d5]@29 ~@9 [e3,g3,b3,d4]@9 ~ [f3,a3,c4,e4]@11 ~ [f#3,b3,c4,e4]@11 ~ [g3,b3,c4,e4]@12 [g#3,b3,d4,f4]@11 ~ [g3,b3,c4,e4]@11 ~@15, ~@42 [g5,a5]@15 ~@31 [c6,d6]@11 ~ d#5 ~@29 d6 ~@22 g#5@2 ~@37]/8", // A#maj7 Dsus2 A#maj7 Gsus2 C Dsus2 D# D5 …
  K: "[c4@4 g3 ~ [a3,c#4,f4,a4,c5]@6 [c5,e5] ~@3 [b4,d5]@2 [a4,c5]@3 ~ [d#4,f#4,b4]@11 ~ [e4,g4,b4]@10 ~@34 g#5@14 ~@8 [a4,f#5]@2 [d5,a5]@4 [f#5,d6]@12 ~@6 [g5,d6]@2 [d5,b5]@4 [b4,g5]@12 g4@6 d5@2 [a#4,f5]@4 [d5,a#5]@12 ~@6 d#5@2 c5@2 a#4@2 g4@2 [g4,c5]@4 [f4,a#4]@8, ~@6 e4 ~@39 [d#4,f4,g#4,c5]@27 g5@20 ~@55 g4@6 ~@12 f4@18 ~@8, ~@58 g5@12 d#6@23 ~@99, ~@60 [d#5,a#5]@33 ~ [f#3,g3,b3,d4]@22 ~@2 [g3,a3,c4,e4]@21 ~@3 [a#3,d4,d#4]@22 ~@2 [g#3,c4,c#4]@24 ~@2, ~@22 c6@9 ~@33]/8", // F C Bm Am B Em D D5 …
  L: "[[d#2,a#2,a#4,c5]@4 ~@6 [f4,g4,c5]@12 ~@2 [f4,a#4,c5]@4 ~@2 [f4,a4,c5]@4 ~@2 [f4,g4,c5]@3 ~ [f4,a4,c5]@6 ~@2, f4@5 [f2,c3]@18 ~]/2", // Cm7 Fsus2 Fsus4 F Fsus2 F F5
  M: "[[g#2,d#3,d4,d#4,g4,a#4]@9 ~ [a#2,f3,c4,f4,a4]@4 ~@14 [c2,g2]@18 ~@2, ~@16 [c3,g3,c4,d4,g4]@29 ~@3]/2", // D#maj7 F C5 Csus2
})).s("gm_epiano1").gain(0.43)

// bass · fretless bass · "FRETLESS"
const bass = note("<A@3 B C D E F G H I J K@7 L@6 M@2 N@2 O@2 P Q R S T@4 U V@2 W X@2 Y@2>".pickRestart({
  A: "[~@4 c3@2 e3@3 ~ g3@16 ~@2 a3@2 f3@3 ~ d3@17 ~ a#2 ~ d3@3 ~ f3@14]/3", B: "~@4 g#3@2 f3 ~@3 c3 ~ f3@3 ~ d#3@7 ~",
  C: "d2@9 ~ d2@5 ~@3 f3 ~ g3 ~ a3 ~", D: "g3@2 ~@2 a3@4 ~@4 a3@2 g3 ~ g3@8",
  E: "d2@8 ~@2 d2@4 ~@2 g3 ~ f3 ~ g3 ~ a3 ~", F: "g3@3 ~ f3 ~ d3@9 ~ g2@8", G: "e2@11 ~ f2@11 ~",
  H: "f#2@11 ~ g2@10 a1 ~", I: "g#2@10 a1 ~ a2@11 ~", J: "a#1@11 ~ a1@11 ~",
  K: "[d2@9 ~ d#2@12 e2@11 ~ c2@47 ~@7 d3 ~ f#3@4 a3@14 ~@4 b3 ~@3 b3 ~ d3@15 ~@3 a#2 ~ d3@4 f3@14 ~@4 g3 ~ f3 ~@5]/7",
  L: "[f3@3 ~ d#3@6 ~@2 d#2@4 ~@6 c2@36 ~@2 g#2@4 ~@6 a#2@5 ~ c3@12 c2@18 c2@2 ~@10 g1 ~ g1@7 ~ a#1 ~ a#1 ~ a#1@7 ~@3 f2 ~, ~@88 d2 ~@19 c2@16 ~@20]/6",
  M: "[f2@7 ~ a#1 ~ a1 ~ g#1@8 ~@2 d#2@9 ~ g#1 ~ g1 ~ f#1@8 ~@2 c2 ~]/2",
  N: "[c#2@4 f#1@8 d2@4 ~@6 d2@11 ~ f3 ~ g3 ~ f3 ~ g3@7 ~]/2",
  O: "[f3 ~ g3 ~ f3@6 ~@2 d2@3 ~@7 d2@11 ~ f3 ~ g3 ~ f3 ~ g3@7 ~]/2", P: "f3@4 g2@5 ~ e2 ~ e2@10 f1 ~",
  Q: "f1@10 f#1 ~ f#1@10 g1 ~", R: "g1@9 ~ g#1 ~ g#1@10 a1 ~", S: "a1@9 ~ a#1 ~ a#1@10 a1 ~",
  T: "[a1@10 ~@2 d2@9 ~ d#2@12 e2@11 ~ c2@47 ~ g1 ~]/4", U: "g1@9 ~ d2@5 ~ b1 ~ b1@4 f1 ~",
  V: "[f1@10 c2 ~ c2@4 f2 ~ f2@3 ~ d#2@9 ~@3 a#2 ~ a#2@7 ~ d#2 ~ d2 ~]/2", W: "c#2@8 ~@2 g#2 ~ g#2@4 c#2@8",
  X: "[d#2@5 ~@5 c2@37 ~]/2", Y: "[g#2@4 ~ a#2 ~@2 c3@6 c2@9 ~]/2",
})).s("gm_fretless_bass").gain(0.57)

// bass · fretless bass · "FRETLESS" · soft notes
const bass_soft = note("<~@3 A ~ B ~@10 C ~ D E ~@27>".pickRestart({
  A: "~@4 d#3 ~@7", B: "~@2 f3 ~@5 g3@2 f3 ~@13", C: "~@18 g3 ~@5", D: "~@20 d#3 ~ c3 ~", E: "g3 ~@23",
})).s("gm_fretless_bass").gain(0.36)

// drums · kick
const kick = s("bd").struct("<A@5 B@3 A@4 C D ~ E F E@5 ~ G A@4 E@4 H I H F J ~@2 F A@2 ~ B@2 K L>".pickRestart({
  A: "x!2", B: "x ~@4 x ~@6", C: "x ~@4 x ~@5 x", D: "~@5 x ~@6", E: "~@6 x ~@4 x", F: "x ~@5 x ~@4 x",
  G: "~@5 x!2 ~@5", H: "x ~@4 x!2 ~@4 x", I: "x ~@4 x ~@2 x ~@2 x", J: "~@5 x ~@5 x", K: "x ~@4 x ~@2 x ~@3",
  L: "~ x ~@4",
})).gain(0.39)

// drums · rim
const rim = s("rim").struct("<A@14 ~ B A@6 C B A@3 B A@9 ~@2 A@3 D C A C E>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2", D: "~ x ~ x ~@3 x ~ x ~@14", E: "x",
})).gain(0.52)

// drums · hihat
const hihat = s("hh").struct(`<
  A@3 B C A@2 D A@4 D E ~ F A@3 G H A I F A@3 J H K H L A@4 M ~@2 A@3 N O A P Q
>`.pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~@2 x ~ x", C: "x ~ x!2 ~@5 x ~ x", D: "x ~ x!2 ~ x!2 ~ x!2 ~@2",
  E: "~@2 x!2 ~@5 x ~@2", F: "~@6 x ~ x!2 ~ x", G: "x ~@2 x ~ x!2 ~ x!2 ~@2", H: "~@3 x ~ x!2 ~ x!2 ~ x",
  I: "x ~@2 x ~ x!2 ~@5", J: "x ~@7 x!2 ~@2", K: "x ~ x!2 ~ x ~@2 x!2 ~@2", L: "x ~@5 x ~ x!2 ~ x",
  M: "x ~ x!2 ~@4 x!2 ~@2", N: "x ~ x!2 ~ x!2 ~@5", O: "~@2 x!2 ~ x ~@3 x ~ x", P: "x ~ x!2 ~ x ~@5 x", Q: "x",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 [~ x ~@4] ~@23>").gain(0.39)

// drums · open hat
const open_hat = s("oh").struct("<~@3 A@2 ~@2 B ~@5 B ~ C ~@3 D@2 ~ D ~@4 D@2 ~ D E ~@5 F D ~@4 A ~@3>".pickRestart({
  A: "~@2 x", B: "~@11 x", C: "~@5 x ~@6", D: "~ x ~@4", E: "~ x ~@2", F: "~ x ~ x",
})).gain(0.26)

// drums · high tom
const high_tom = s("ht").struct("<~@23 [~ x ~@2] ~@23>").gain(0.59)

// drums · ride
const ride = s("rd").struct("<~@4 A ~@7 B A C D ~@3 B ~@2 E ~@4 F ~ F ~@6 G H I ~@8>".pickRestart({
  A: "~@5 x ~@6", B: "~@11 x", C: "x!4", D: "x!2 ~@2", E: "~@2 x", F: "~@6 x ~@4 x", G: "~@5 x ~@5 x",
  H: "~@5 x ~@2 x ~@3", I: "x ~@4 x!2 ~@5",
})).gain(0.33)

// drums · splash
const splash = s("cr").struct("<~@42 [~@2 x] [~@5 x ~@6] ~ [~@2 x] [~ x ~@4]>").gain(0.39)

stack(epiano1, bass, bass_soft, kick, rim, hihat, mid_tom, open_hat, high_tom, ride, splash)

More by Chick Corea