Strudelify
I'm Down cover art

Past Masters

I'm Down

The Beatles

KeyG majorTempo175 bpm
0:00/0:00
// I'm Down — The Beatles
// 175 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(175/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 · drawbar organ · "Organ"
const drawbar_organ = note(`<
  ~@2 A ~ B@2 C@2 D@2 E ~ F ~ G ~ A ~ B@2 C@2 D@2 E ~ F ~ G ~ G ~ H@2 I@2 J@2 K@2 G ~ A ~ B@2 C@2 D@2 E ~ F ~ L@2 M N
  O@2 P Q R S T@2 U V U V W X U V Y Z AA@2 U V U V W X U V Y Z AA@2 ~
>`.pickRestart({
  A: "[g3,b3,d4] ~@7", // G
  B: "[[g4,a#4]@2 [g4,a#4]@2 [g4,a4] [g4,a#4]@3 [g4,a#4]@2 [g4,a4] [g4,a#4] [g4,a#4]@2 [g4,a4]@2, c4]/2", // Gm Gsus2 Gm Gsus2 Gm Gsus2
  C: "[[f4,g4,b4]@2 [f4,g4,b4]@2 [e4,g4,b4] [f4,g4,b4]@2 ~ [f4,g4,b4]@2 [e4,g4,b4] [d4,g4,b4]@5, g3]/2", // G7 Em G7 Em G
  D: "[[g4,a#4]@2 [g4,a#4]@2 [g4,a4] [g4,a#4]@3 [g4,a#4]@2 [g4,a4] [g4,a#4]@2 [g4,a4] a#4 a4, c4]/2", // Gm Gsus2 Gm Gsus2 Gm Gsus2
  E: "d4@3 [d4,f4,g4] ~@4", F: "[d4,f#4,a4]@3 [d4,f4,g4] ~@4", G: "[g4,b4,d5] ~@7", H: "[g4,a#4,c5]!8, c4",
  I: "[g4,b4,d5]!8, g3", J: "[a4,c5,d5]!8, [d4,f#4]",
  K: "[g4,b4,d5]!2 ~ [g4,b4,d5]!3 ~ [g4,b4,d5]!3 ~ [g4,b4,d5]!3 ~ [g4,b4,d5], g3", // G
  L: "[g5,b5,d6]!2 ~ [g5,b5,d6]!3 ~ [g5,b5,d6]!3 ~ [g5,b5,d6]!3 ~ [g5,b5,d6], g4", // G
  M: "[g5,b5,d6]!2 ~ [g5,b5,d6]!3 ~ [g5,b5,d6]!3 ~ [g5,b5,d6]!3 ~ [g5,b5,d6], g4!2", // G
  N: "[g5,b5,c#6] [g5,b5,d6] ~ [g5,b5,d6]!3 ~ [g5,b5,d6] [b5,c6,d6,e6,f6] [c5,d5,e5,f5,g5,a5] [f4,a4,b4] [c4,d4,e4] [e4,f4,a4,b4,c5] [d5,e5,f5,g5,a5] [b5,c6,d6,e6] [f6,g6,a6,b6], g4@5 g4 g4@2, ~@8 [g6,a6]@7 ~", // C#m7b5 G Bdim Dm7 Bm7b5 C Fmaj7 Dm …
  O: "[[g5,a#5]!2 ~ [g5,a#5]!3 ~ [g5,a#5]!3 ~ [g5,a#5]!3 ~ [g5,a#5] [g5,a#5]!2 ~ [g5,a#5]!3 ~ [g5,a#5]!3 ~ [g5,a#5] ~@4, c5]/2", // Gm
  P: "~@2 [d5,e5,f5] [g4,a4,b4,c5] [c4,d4,e4,f4] [e3,f3,g3,a3,b3] [a2,b2,c3,d3] [f2,g2] [g#2,a#2,b2] [c3,c#3,e3] ~ [a#3,c4] [d4,e4,f4] [g4,a4,b4] [c5,d5,e5,f5] [g5,a5], ~@4 d3 [f3,g3,a3] ~@2, ~@11 b3@2 ~@3", // Dm Cmaj7 Dm7 Em D7 Fsus2 G#m C …
  Q: "[f5,g5] [a4,b4,c5,d5,e5] [f4,f#4,g4] [c4,d4,e4] [f3,g3,a3,b3] [c3,d3,d#3,e3] [a2,a#2,b2,c#3] [e2,f2,g2,g#2] [d2,d#2] [e2,f2,f#2,g2,g#2] [g#2,a2,a#2,b2,c3,d3] [e3,f3,g3,a3] [b3,c4,d4] [e4,f4,g4,a4] [b4,c5,d5,e5] ~", // Fsus2 Am C G7 D#maj7 Fmaj7 Bm Fmaj7 …
  R: "~ [c6,d6] ~ [c6,d6]!3 ~@2 [c6,d6]@4 [c6,d6]@4, [d4,f#4]", S: "c6@2 [g5,a#5,c6]@3 [g5,a#5,c6]@3, [c4,e4]",
  T: "[[g5,b5,d6]!2 ~ [g5,b5,d6]!3 ~ [g5,b5,d6]!3 ~ [g5,b5,d6]!3 ~ [g5,b5,d6] [g5,b5,d6]@4 [g5,b5,d6]@4 [g5,b5,d6]@4 [g5,b5,d6]@4, g4]/2", // G
  U: "[d4,b4] [d4,e4,b4] [d4,f4,b4] [d4,e4,b4], g3", V: "[d4,f4,b4]@2 [d4,e4,b4] [d4,f4,b4]@5, g3",
  W: "[g4,c5] [g4,a4,c5] [g4,a#4,c5,d5] [g4,a4,c5], c4", X: "[g4,a#4,c5]@2 [g4,a4,c5] [g4,a#4,c5]@5, c4",
  Y: "[d4,f#4,a4]", Z: "[c4,e4,g4]",
  AA: "[[d4,b4]@2 [d4,e4,b4]@2 [d4,f4,b4]@2 [d4,e4,b4]@2 [d4,f4,b4]@2 [d4,e4,b4] [d4,f4,b4]@5, g3]/2", // G E7 Bdim E7 Bdim E7 Bdim
})).s("gm_drawbar_organ").gain(0.4)

// other · distortion guitar · "Guitar 1"
const distortion_guitar = note("<~@28 A@2 B C D E F G@2 H I J K L K ~@48>".pickRestart({
  A: "[g2@2 c3 d3 f3 d3@2 a#2@3 a#2 g2 a#2 c3@3]/2", B: "g2@2 c3 d3 f3 d3@2 f3",
  C: "a3@2 a3@2 a3 g3 f3@2, g3 ~@3 g3 ~@11", D: "c3@2 f3 g3 a#3 g3@2 a#3", E: "d4@2 d4@2 d4 c4 a#3@2, c4 ~@3 c4 ~@11",
  F: "g3@2 g3@2 a#3 g3@3", G: "d4!2", H: "d4!3 a#3", I: "g3@4 g2 a#2@2 c3", J: "d3 f3 c3 a#2, c3 ~@7 d3 ~@7",
  K: "g2 ~@7", L: "~@5 f2 f#2@2",
})).s("gm_distortion_guitar").gain(0.64)

// chords · overdriven guitar · "Guitar 2"
const overdriven_guitar = note(`<
  ~@2 A ~ B@2 C D B@2 E ~ E ~@3 A ~ B@2 C D B@2 E ~ E ~@15 A ~ B@2 C D B@2 E ~ E ~ F@4 G H D@2 I G F@3 J F J G K F J I G
  F@3 J F J G K F J I G F@2 ~
>`.pickRestart({
  A: "[g2,d3] ~@7", B: "[c3,g3]!8", C: "[f2,g2,d3] [g2,d3]!7", D: "[g2,d3]!8", E: "[d3,a3]@3 [g2,d3] ~@4",
  F: "[g2,d3] [g2,e3] [g2,f3] [g2,e3]", G: "[c3,g3] [c3,a3] [c3,a#3] [c3,a3]", H: "[c3,g3] [c3,a3] [c3,g3] ~",
  I: "[d3,a3] [d3,b3] [d3,c4] [d3,b3]", J: "[g2,d3] [g2,e3] [g2,d3] ~", K: "[c3,g3] [c3,a3] [c3,a#3] [c3,g3]",
})).s("gm_overdriven_guitar").gain(0.4)

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~@2 A ~ B@2 C@2 B@2 D ~ D ~ A ~ A ~ B@2 C@2 B@2 D ~ D ~ E ~ A ~ F@2 C G H I C@2 A ~ A ~ B@2 C@2 B@2 D ~ D ~ C@4 B@2
  C@2 J B C J C@4 B@2 C@2 J B C@6 B@2 C@2 J B C@2 ~
>`.pickRestart({
  A: "g2 ~@7", B: "c2!8", C: "g2!8", D: "d2@3 g2 ~@4", E: "~@2 g2 ~@5", F: "a#1 c2!7", G: "f2 g2!7", H: "c3 d3!7",
  I: "d3!8", J: "d2!8",
})).s("gm_electric_bass_pick").gain(0.45)

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

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

// drums · high tom
const high_tom = s("ht").struct("<~@3 A ~@13 A ~@13 B ~@11 A ~@47>".pickRestart({
  A: "~@3 x ~@4", B: "~@3 x ~ x ~@2",
})).gain(0.36)

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

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@4 A B@5 C ~ C ~ D ~@3 A B@5 C ~ C ~@5 B@8 D ~@3 A B@5 C ~ C ~ B@11 D B@8 A@3 D B@8 A@3 D ~
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "~ x!2 ~@5", D: "x",
})).gain(0.36)

stack(drawbar_organ, distortion_guitar, overdriven_guitar, bass, kick, snare, high_tom, crash, ride_bell)

More by The Beatles