Strudelify

Smokescreen

Chick Corea

KeyD minorTempo106 bpm
0:00/0:00
// Smokescreen — Chick Corea
// 106 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@13 A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C
  A@2 B C A@2 B C ~
>`.pickRestart({
  A: "[~ [f4,a4,d5]!3 [f4,a4,d5]@3 [f4,a4,d5]!2 [f4,a4,d5]@2 [f4,a4,d5] [f4,a4,d5]@3 [f4,a4,d5]@2 [f4,a4,d5] [f4,a4,d5]@2 [f4,a4,d5]@3 [f4,a4,d5] [f4,a4,d5]@3 [f4,a4,d5]@4 [f4,a4,d5]]/2", // Dm
  B: "[f4,bb4,d5]!2 [f4,bb4,d5]@2 [f4,bb4,d5]@3 [f4,bb4,d5]!2 [f4,bb4,d5]@2 [f4,bb4,d5] [f4,bb4,d5]@3 [f4,bb4,d5]", // Bb
  C: "[f4,bb4,d5]@2 [f4,bb4,d5]!2 [f4,bb4,d5]@3 [f4,bb4,d5] [f4,bb4,d5]@4 [f4,bb4,d5]@3 [f4,bb4,d5]", // Bb
})).s("gm_acoustic_guitar_steel").gain(0.16)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@4 A B C B D E@2 B F B A G@2 B A B H B A B I B A J@2 B A B K B A B L B A B M B A B N B A B A B A B A B A G@2 B A B H
  B A B I B A J@2 B A B A B A B A ~
>`.pickRestart({
  A: "~@15 d2", B: "~ d2!2 ~@13", C: "~@3 e3@2 a3 f3 d3 c3 f3 d3 bb2 a2@2 ~ d2", D: "~@4 bb3 f3 c3 d3 g3 c4 ~@5 d2",
  E: "[~ d2!2 ~@12 e3@2 a3 f3 d3 c3@2 ~ bb2@2 e3 c3 a2 g2@2 ~ d2]/2", F: "~@3 d2 g2 e2 a2 f2 bb2 c3 ~ d3 ~ e3 ~ d2",
  G: "[~ d2!2 ~@12 g2@2 e3 c3 a2 bb2@3 c3@2 a3 f3 d3 e3@3 d2]/2", H: "~@2 f2 ~ g2 a2 ~ bb2 ~@2 c3 ~ d3 e3 ~ d2",
  I: "~@7 f2 bb2 c3@2 g2 c3 db3 ~ d2", J: "[~ d2!2 ~@12 bb3@2 f3 c3 d3 g3 c4 ~@2 g3 d3 a2 b2 e3 a3 ~ d2]/2",
  K: "~@3 bb3 g3 d3 e3 a3 f3 c3 d3 g3 e3 ~@2 d2", L: "~ g1 g2 a1 a2 bb2 ~ c3@2 db2 db3 d2 d3 e3 f3 d2",
  M: "e3 a3 f3 d3 ~ c3 ~ bb2@2 e3 c3 a2 g2@2 ~ d2", N: "g1@2 g2 g1 a1@3 bb1@3 bb2 bb1 c2@3 d2",
})).s("gm_acoustic_bass").gain(0.64)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B
  C D A B C D A B C D A B C D A B C D ~
>`.pickRestart({
  A: "~@3 x ~ x ~@2 x ~@7", B: "x ~@2 x ~ x ~ x ~ x!2 ~@5", C: "x ~@4 x ~@2 x ~@7", D: "~@2 x ~@2 x ~@3 x!3 ~@4",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!76 ~>").gain(0.5)

// drums · clap
const clap = s("cp").struct("<~@45 A B C D A B C D ~@16 A B C D A B C D ~>".pickRestart({
  A: "~@7 x ~ x ~ x!2 ~@3", B: "~ x ~ x", C: "~@3 x", D: "~@5 x!2 ~",
})).gain(0.57)

// drums · low tom
const low_tom = s("lt").struct("<[~@11 x!2 ~@2 x] ~@77>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C
  D E B C D E B C D E B C D E B C D E ~
>`.pickRestart({
  A: "~@15 x", B: "~ x!4 ~@2 x!3 ~ x!2 ~@2 x", C: "~ x!2 ~ x ~@2 x!2 ~@2 x ~@3 x", D: "x!3 ~ x ~@2 x!3 ~ x!2 ~@2 x",
  E: "x ~ x!3 ~@2 x!2 ~@3 x ~@2 x",
})).gain(0.57)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@8 x!3 ~@5] ~@77>").gain(0.57)

stack(acoustic_guitar_steel, bass, kick, snare, clap, low_tom, hihat, mid_tom)

More by Chick Corea