Strudelify
Blackbird cover art

The Beatles

Blackbird

The Beatles

KeyG majorTempo120 bpm
0:00/0:00
// Blackbird — The Beatles
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 73 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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.

// other · piano · "Remixed"
const piano = note(`<
  A@4 B C@4 D E@4 F G@4 H I@4 J K@4 L M@4 H N@4 O P@4 Q R@4 S T@4 O U@4 L M@4 H V@4 W X@3
>`.pickRestart({
  A: "[g2@5 a2@5 b2@5 g3@5 g3@5 g3@5 g3@5 g2@5 a2@5 b2@5 g3@5 g3@5 g3@4]/4", B: "~ g3@5 c3@5 c#3@5",
  C: "[d3@5 d#3@5 e3@5 e3@5 d#3@5 e3@5 d3@5 c#3@5 c3@5 c3@5 c3@5 c3@5 b2@4]/4", D: "~ b2@5 a2@5 a2@5",
  E: "[d3@5 d3@5 g2@5 g2@5 c3@5 b2@5 a2@5 a2@5 d3@5 d3@5 g2@5 g2@5 g2@4]/4", F: "~ a2@5 b2@5 g3@5",
  G: "[g3@5 g3@5 g3@5 c3@5 c#3@5 d3@5 d#3@5 e3@5 e3@5 d#3@5 e3@5 d3@5 c#3@4]/4", H: "~ c3@5 c3@5 c3@5",
  I: "[c3@5 b2@5 b2@5 a2@5 a2@5 d3@5 d3@5 a2@5 a2@5 f3@5 e3@5 d3@5 c3@4]/4", J: "~ a#2@5 a#2@5 c3@5",
  K: "[c3@5 f3@5 e3@5 d3@5 c3@5 a#2@5 a#2@5 a2@5 a2@5 d3@5 d3@5 g2@5 a2@4]/4", L: "~ b2@5 g3@5 g3@5",
  M: "[g3@5 g3@5 c3@5 c#3@5 d3@5 d#3@5 e3@5 e3@5 d#3@5 e3@5 d3@5 c#3@5 c3@4]/4",
  N: "[b2@5 b2@5 a2@5 a2@5 d3@5 d3@5 g2@5 g2@5 g2@5 g2@5 a2@5 b2@5 g3@4]/4", O: "~ g3@5 g3@5 g3@5",
  P: "[c3@5 c#3@5 d3@5 d#3@5 e3@5 e3@5 d#3@5 e3@5 d3@5 c#3@5 c3@5 c3@5 c3@4]/4", Q: "~ c3@5 b2@5 b2@5",
  R: "[a2@5 a2@5 d3@5 d3@5 a2@5 a2@5 f3@5 e3@5 d3@5 c3@5 a#2@5 a#2@5 c3@4]/4", S: "~ c3@5 f3@5 e3@5",
  T: "[d3@5 c3@5 a#2@5 a#2@5 a2@5 a2@5 d3@5 d3@5 g2@5 a2@5 b2@5 g3@5 g3@4]/4",
  U: "[g3@5 g3@5 g3@4 g3 g2@5 a2@5 b2@5 c3@5 b2@5 a2@5 d3@5 d3@5 g2@5 a2@4]/4",
  V: "[b3@5 b3@5 a3@5 a3@5 d4@5 d4@5 g3@5 g3@5 c4@5 b3@5 a3@5 a3@5 d4@4]/4", W: "~ d4@5 g3@5 g3@5",
  X: "[c4@10 b3@10 a3@10 a3@10 d4@10 d4@10 ~@5 d3@15 ~@16, ~@15 g3@5 ~@4]/3",
})).s("gm_piano").gain(0.36)

// other · piano · "Remixed"
const piano_2 = note(`<
  ~@2 A@2 B@2 C@6 ~ D@3 E F G@2 H@5 I@5 ~@7 J@3 K@2 L@3 M N@6 O@2 ~@4 P Q@2 R ~ S@2 T U@4 T V@2
>`.pickRestart({
  A: "[~@6 g4@5 g4@5 g4@3 g4@2 g4@3 f4@2 g4@3 d5@7 d5@28]/2",
  B: "[~@12 b4@3 a4@2 g4@5 a4@3 a4@2 a4@10 g4@3 c5@7 d5@3 b4@8 ~@6]/2",
  C: "[~@28 a4@8 b4@7 g4@35 ~@10 g4@5 g4@5 g4@8 a4@2 b4@5 a4@3 ~@2 g4@3 e4@5 a4@7 g4@5 b4@3 a4@5 g4@23 ~@23]/6",
  D: "[~@24 g4@5 g4@5 g4@3 g4@2 g4@3 f4@2 g4@3 d5@7 d5@30 ~@10 b4@2]/3", E: "~ a4@2 g4@5 a4@3 a4@2 a4@10 g4@3 c5@6",
  F: "~ d5@3 b4@8 ~@20", G: "[~@14 a4@8 b4@7 g4@35]/2",
  H: "[~@10 g4@5 g4@5 g4@8 a4@2 b4@5 a4@3 ~@2 g4@3 e4@5 a4@7 g4@5 b4@3 a4@2 e4@5 g4@20 c5@15 g4@20 g4@35]/5",
  I: "[~@10 c5@15 g4@20 g4@25 ~@8 g5@5 f5@2 d5@3 f5@7 d5@3 d5@2 c5@5 a#4@3 f4@7 g4@25 ~@20]/5",
  J: "[~@26 g4@5 g4@5 g4@3 g4@2 g4@3 f4@2 g4@3 d5@7 d5@30 ~@10]/3",
  K: "[b4@3 a4@2 g4@5 a4@3 a4@2 a4@10 g4@3 c5@7 d5@3 b4@8 ~@18]/2",
  L: "[~@16 a4@8 b4@7 g4@35 ~@10 g4@5 g4@5 g4@8 a4@2]/3", M: "b4@5 a4@3 ~@2 g4@3 e4@5 a4@7 g4@5 b4@2",
  N: "[~ a4@2 e4@5 g4@20 c5@15 g4@20 g4@35 ~@10 c5@15 g4@20 g4@25 ~@8 g5@5 f5@2 d5@3 f5@6]/6",
  O: "[~ d5@3 d5@2 c5@5 a#4@3 f4@7 g4@15 ~@28]/2", P: "~@14 g4@5 g4@5 g4@3 g4@2 g4@3",
  Q: "[f4@2 g4@3 d5@7 d5@30 ~@10 b4@3 a4@2 g4@5 a4@2]/2", R: "~ a4@2 a4@10 g4@3 c5@7 d5@3 b4@6",
  S: "[~@4 a4@8 b4@7 g4@35 ~@10]/2", T: "g4@5 g4@3 g4@7 e4@3 b4@5 a4@5 ~@2 g4@2",
  U: "[~ e4@5 a4@7 g4@5 b4@3 a4@5 g4@22 g4@5 g4@5 g4@5 a4@3 g4@2 b4@3 a4@5 ~@2 g4@3 e4@5 g4@7 b4@5 a4@3 g4@5 g4@12 e4@3 d4@3 ~@4]/4",
  V: "[~ e4@5 a4@7 g4@5 b4@3 a4@5 g4@23 ~@15]/2",
})).s("gm_piano").gain(0.46)

// other · piano · "Remixed"
const piano_3 = note(`<
  ~@7 A B C D E F G ~@5 H@2 I J ~ K@2 L M@2 N O ~ F P Q D R S ~@5 B Q T U ~ B V W R X Y@2 Z ~@7 P Q D R AA B AB W R AC
>`.pickRestart({
  A: "~@21 g3@3 g3@5 ~@3", B: "~@9 g3@3 g3@5 ~@12 g3@3", C: "g3@5 ~@12 g3@3 g3@8 ~@4",
  D: "~@5 g3@3 g3@5 ~@12 g3@3 g3@4", E: "~ d3@2 g3@5 ~@24", F: "~ g3@3 g3@5 ~@12 g3@3 g3@5 ~@3",
  G: "~@9 d3@3 g3@5 d3@2 g3@5 ~@8", H: "[~@7 g3@3 g3@5 ~@12 g3@3 g3@5 ~@12 g3@3 g3@5 ~@9]/2", I: "~@3 g3@3 g3@8 ~@18",
  J: "~@11 g3@3 g3@5 d3@2 g3@5 ~@6", K: "[~@7 g3@3 g3@5 ~@12 g3@3 g3@5 ~@29]/2", L: "~@23 g3@3 g3@5 ~",
  M: "[~@11 g3@3 g3@5 ~@12 c4@3 c4@5 ~@2 c4@5 ~@18]/2", N: "~@2 g3@5 g3@5 ~@5 g3@3 g3@5 ~@7", O: "~@5 g3@5 g3@5 ~@17",
  P: "~@29 g3@3", Q: "g3@5 ~@12 g3@3 g3@5 ~@7", R: "~@13 g3@3 g3@5 ~@11", S: "~ g3@3 g3@5 ~@2 g3@5 g3@3 d3@2 g3@5 ~@6",
  T: "~@5 g3@3 g3@8 ~@16", U: "~@13 g3@3 g3@5 d3@2 g3@5 ~@4", V: "g3@5 ~@27", W: "~@25 g3@3 g3@4",
  X: "~ c4@3 c4@5 ~@2 c4@5 ~@16", Y: "[~@4 g3@5 g3@5 ~@5 g3@3 g3@5 ~@2 g3@5 ~@5 g3@5 g3@3 g3@2 g3@5 ~@5 g3@5]/2",
  Z: "~@5 g3@5 ~@5 g3@5 g3@8 g3@3 ~", AA: "~ g3@3 g3@5 g3@2 g3@5 ~@16", AB: "g3@5 ~@12 d3@3 g3@5 d3@3 ~@4",
  AC: "~ b3@15 ~@16",
})).s("gm_piano").gain(0.36)

// other · piano · "Remixed"
const piano_4 = note("<~@10 A ~@11 B ~@4 C@2 ~@8 D ~@8 E ~@5 F ~@14 D ~@4 G>".pickRestart({
  A: "~@25 d3@3 d3@4", B: "~@11 d3@3 d3@5 ~@13", C: "[~@31 g3@3 g3@5 ~@25]/2", D: "~ d3@3 d3@5 d3@3 ~@20",
  E: "~@13 d3@3 d3@5 ~@11", F: "~ g3@3 g3@5 ~@23", G: "~ g3@15 ~@16",
})).s("gm_piano").gain(0.36)

stack(piano, piano_2, piano_3, piano_4)

More by The Beatles