Strudelify

Readymade

Beck

KeyD majorTempo135 bpm
0:00/0:00
// Readymade — Beck
// 135 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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.

// bass · acoustic bass · "bass"
const bass = note(`<
  A B A C A B A C A B A C A B A C A B A C A B A C A B A C ~@8 A B A C A B A C ~@16 A B A C ~@4 A B A C A B A C A B A C A
  B A C ~@8
>`.pickRestart({
  A: "d2@4 a2 ~ g2@10", B: "d2@2 g2 f2@5", C: "d2!2 g2 f2@5",
})).s("gm_acoustic_bass").gain(0.44)

// chords · electric guitar clean · "guitar1"
const electric_guitar_clean = note(`<
  A@2 B C D ~@8 E F ~ G@2 H@2 I ~@7 J@2 K@2 ~ L ~ L M@2 D ~@5 J@2 K@2 ~ L ~ L ~ L ~ L ~@8 J@2 K@2 ~@16 N O P@2 N O Q@2
>`.pickRestart({
  A: "[~@4 d3@9 ~@3]/2", B: "~@2 [a6,d7,a7]!2", C: "[a6,d7,a7]!2 ~ b2", D: "d3", E: "~@6 a5 f#5", F: "e5 ~",
  G: "[~ d4 e4 d4@2 d4 e4 d4]/2", H: "[e4@8 d4@4 c4@8 b3@4 b3 c4 b3 g3@5]/2", I: "a3", J: "[e3@3 e3@3 e3@4 e3@6]/2",
  K: "[c#3@6 c#3@7 c#3@19]/2", L: "[a6,d7,a7]!4", M: "[d3@9 ~@5 b2@2]/2", N: "d3@2 e3@3 e3@3 e3@2 ~ d3@2 e3@3",
  O: "g3@3 ~", P: "[d3@2 e3@3 e3@3 e3@2 d3@2 ~ d3@2 f#2@3 f#2@9 ~@5]/2",
  Q: "[d3@2 e3@3 e3@3 e3@2 d3@2 ~ d3@2 f#2@3 ~ f#2@9 ~@4]/2",
})).s("gm_electric_guitar_clean").gain(0.41)

// chords · electric guitar clean · "guitar1" · soft notes
const electric_guitar_clean_2 = note("<~@3 A ~@30 B ~ B ~@13 B ~ B ~ B ~ B ~@35>".pickRestart({
  A: "~@2 [a6,d7,a7]!2", B: "[a6,d7,a7]!2 ~@2",
})).s("gm_electric_guitar_clean").gain(0.21)

// chords · reed organ · "organ"
const reed_organ = note("<~@48 A ~ A ~ A ~ A ~@16 B ~@3 A ~@3 A ~@3 A ~@8>".pickRestart({
  A: "~@2 [d7,f#7,a7]@4 [c7,c#7,f7,f#7] [a6,b6,d#7,e7] [g6,a6,d7]@8", // D C#maj7 Asus2 Gsus2
  B: "~@2 [d7,f#7,a7]@4 [c7,c#7,f7,f#7] [a6,b6,d#7,e7] [g6,d7]@8", // D C#maj7 Asus2 G5
})).s("gm_reed_organ").gain(0.48)

// drums · rim
const rim = s("rim").struct("<[~ x]!35 [x!4 ~@4] [~ x]!27 [x!4 ~@4] [~ x]!28>").gain(0.58)

// drums · kick
const kick = s("bd").struct("<~@63 [~@5 x!2 ~] ~@28>").gain(0.58)

// drums · hihat
const hihat = s("hh").struct("x!4").gain(0.58)

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

// drums · shaker
const shaker = s("sh").struct("<[x!8]!16 [~ x ~ x ~ x ~ x]!4 [x!8]!72>").gain(0.58)

stack(bass, electric_guitar_clean, electric_guitar_clean_2, reed_organ, rim, kick, hihat, mid_tom, shaker)

More by Beck