Strudelify

The Saints

The Beatles

KeyF majorTempo184 bpm
0:00/0:00
// The Saints — The Beatles
// 184 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(184/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.

// bass · acoustic bass · "BASS"
const bass = note(`<
  A@3 B A C D E A F G H I J A K A@3 B A C D E A F G H I J A K A@3 B A C D E A F G H I J A K A@3 B A C D E A F G H I J A
  L M@3 N M O P Q M R D S T U M V M@3 N M O P Q M R D S T ~@3
>`.pickRestart({
  A: "f2@3 ~@5 c2@3 ~@5", B: "f2 f2@3 e2 ~@3 d2 ~@3 c2 ~@3", C: "f2 ~@2 f2 e2 ~@3 d2 ~@3 c2 ~@3",
  D: "c2@3 ~@5 g1@3 ~@5", E: "c2@3 ~@4 c2 d2 ~@3 e2 ~@3", F: "f1@3 ~@4 f1 g1@3 ~ a1 ~@3", G: "bb1@3 ~@5 f1@3 ~@5",
  H: "bb1@3 ~@5 a1@3 ~ g1@3 ~", I: "f1@3 ~@4 a1 bb1@3 ~ b1@3 ~", J: "c2@3 ~@4 c2 d2@3 ~ e2@3 ~",
  K: "f1@3 ~@4 c2 d2@3 ~ e2@3 ~", L: "f1@3 ~@4 d2 e2@3 ~ gb2@3 ~", M: "g2@3 ~@5 d2@3 ~@5",
  N: "g2 g2@3 gb2 ~@3 e2 ~@3 d2 ~@3", O: "g2 ~@2 g2 gb2 ~@3 e2 ~@3 d2 ~@3", P: "d2@3 ~@5 a1@3 ~@5",
  Q: "d2@3 ~@4 d2 e2 ~@3 gb2 ~@3", R: "g1@3 ~@4 g1 a1@3 ~ b1 ~@3", S: "c2@3 ~@5 b1@3 ~ a1@3 ~",
  T: "g1@3 ~@4 b1 c2@3 ~ db2@3 ~", U: "d2@3 ~@4 d2 e2@3 ~ gb2@3 ~", V: "g1@3 ~@4 d2 e2@3 ~ gb2@3 ~",
})).s("gm_acoustic_bass").gain(0.8).pan(0.3)

// other · tenor sax · "SAX"
const tenor_sax = note(`<
  ~@3 A@6 B@4 C@7 D E@4 F G@3 H@5 I@2 D J@3 K@4 D L M@2 ~@15 N O@5 P@4 Q@4 R@7 S T@3 ~@8
>`.pickRestart({
  A: "[~@2 f3@6 a3@4 bb3@2 c4@20 f3@5 ~ a3@4 bb3@2 c4@20 ~ a3@5 a3@3 ~ g3@2 f3@13 ~ f3@4, ~@12 a3 ~@83]/6",
  B: "[a3@6 ~@2 c4@4 c4@2 ~ c4@3 bb3@21 a3@4 ~ bb3@2 c4@10 a3@8, ~@46 bb3 ~@17]/4",
  C: "[g3@11 ~ g3@3 f3@19 f3@5 ~ a3@3 ~ bb3@2 c4@20 f3@6 a3@4 bb3@2 c4@20 f3@6 a3@4 bb3@4]/7", D: "c4 a3",
  E: "[f3@12 a3@2 g3@22 a3@3 ~ a3@4 g3@2 f3@13 ~ f3@3 ~]/4", F: "a3@4 c4@2 c4!2", G: "[~ bb3@11 a3@2 bb3 c4@5 a3@4]/3",
  H: "[g3@11 ~ g3@3 f3@19 f3@5 ~ a3@3 ~ bb3@3 c4@18 ~ f3@6 a3@4 bb3@4]/5", I: "[c4@18 f3@5 ~ a3@4 bb3@4]/2",
  J: "[f3@12 a3@2 g3@20 a3@5 ~ a3@4 g3@3 ~]/3", K: "[f3@11 ~ f3@7 a3@6 ~@2 c4 c4@2 ~ c4@3 bb3@21 ~ a3@4 bb3@4]/4",
  L: "g3@11 ~ g3@4", M: "[f3@19 ~@13]/2", N: "~@2 g3@6 a3@4 b3@3 ~",
  O: "[d4@18 g3@5 ~ b3@4 c4@2 d4@20 g3@5 ~ b3@4 c4@2 d4@9 ~ b3@8]/5",
  P: "[g3@12 b3@2 a3@19 ~ b3@5 ~ b3@4 a3@2 g3@12 ~ g3@4 ~]/4",
  Q: "[b3@10 d4 ~ d4@2 d4@4 c4@21 ~ b3@3 ~ c4@2 d4@10 b3@8, ~@18 d4 ~@45]/4",
  R: "[a3@12 a3@3 g3@18 ~ g3@6 b3@4 c4@2 d4@20 g3@6 b3@3 ~ c4@2 d4@21 ~ g3@4 b3@4 c4@4]/7", S: "~@3 b3, d4",
  T: "[g3@11 b3@3 ~ a3@20 ~@13]/3",
})).s("gm_tenor_sax").gain(0.46)

// other · piano
const piano = note(`<
  A B A B A C D E F G H I J K L M N@2 O B P B Q R S T U V P W X Y Z AA AB AA AC AD AE AF AG AH AI AJ AC AK AL ~@17 AM AN
  AM AN AM AO AP AQ AR AS AT AU AV AW AX AY AZ@2 BA AN BB AN BC BD BE BF BG BH BB ~@3
>`.pickRestart({
  A: "~@2 f5@4 d5 ~", B: "f5 ~@3", C: "f5@4 ~@7 c5 d5@3 eb5", D: "e5@3 c6 e5@3 eb5 d5@3 bb5 d5@3 db5",
  E: "c5@3 a5 c5@3 b4 bb4 ~@2 g5 bb4 ~@2 g4", F: "a4@2 ~@10 a5 bb5 ~ b5",
  G: "c6 ~@2 b5 bb5 ~@3 a5 ~@2 f5 d5@2 ~ c5, ~@7 ab5@2 ~@7", H: "bb4@3 ~@4 db5 d5@2 ~ f5 g5@2 ~@2",
  I: "ab5@2 ~ d5 g5@2 f5@5 ~ g5@2 ~@2", J: "~@3 f4 a4 ~@2 d5 c5@4 a4@2 ~ c5", K: "~@3 c4 e4 ~@2 a4 g4@4 e4@2 ~ g4",
  L: "~@3 f4 g4@2 ~ ab4 a4@2 ~ c5 d5@2 ~ c5", M: "f5@3 ~@13", N: "[~@4 ab5@2 a5@2 ~@2 c6 ~ a5@2 ~ f5@4 ~@13]/2",
  O: "~@4 ab5@3 a5 ~@3 c6 a5@2 ~@2", P: "~@4 ab5@3 a5 ~@3 c6 a5 ~@3", Q: "c5@3 b5 c6 ~@2 c5 gb5 ~@2 g5 g4 eb5@3",
  R: "e5 ~@2 c4 b4 ~@2 c5 c4@3 gb4 g4 ~@3", S: "~@4 ab4 ~@2 a4 ~@3 c5 d5 ~@3", T: "f5@3 ~ e5@3 eb5@4 ~@5",
  U: "a5@2 bb5@2 bb4@2 ~ e5 f5@2 bb4 ~ db5@2 d5 ~", V: "f4@2 ~ f4 a4 ~@2 bb4 ~@3 e4 f4 ~@3",
  W: "g5@3 ~@5 ab5 ~@2 a5 ~@4", X: "g5 ~@2 f5 ~@4 ab5 ~@2 f5 d5 ~@2 c5", Y: "f5@3 f4 ~@3 f4 ~ a4 ~ a4 bb4@2 ~@2",
  Z: "c5@5 ~@11", AA: "~@3 f4 ~@3 f4 ~ a4 ~ a4 bb4@2 ~@2", AB: "c5@7 ~@9", AC: "c5 ~ a4 ~",
  AD: "f4@2 ~@2 ab4@2 a4@2 ~@3 c5 a4@3 ~", AE: "g4@5 ~@11", AF: "~@4 ab4@2 ~ a4@2 ~@2 c5 a4@2 ~@2", AG: "f4@2 ~@4 f4 ~",
  AH: "a4@2 ~@2 c5 ~ c5 ~", AI: "c5@2 ~ bb4@3 ~@10", AJ: "~@3 f4@2 ~@2 f4 a4 ~@2 a4 bb4@2 ~@2",
  AK: "g4@3 ~ ab4@2 ~ a4@2 ~@2 c5 a4@2 ~@2", AL: "f4 ~@3", AM: "~@2 g5@4 e5 ~", AN: "g5 ~@3", AO: "g5@4 ~@7 d5 e5@3 f5",
  AP: "gb5@3 d6 gb5@3 f5 e5@3 c6 e5@3 eb5", AQ: "d5@3 b5 d5@3 db5 c5 ~@2 a5 c5 ~@2 a4", AR: "b4@2 ~@10 b5 c6 ~ db6",
  AS: "d6 ~@2 db6 c6 ~@3 b5 ~@2 g5 e5@2 ~ d5, ~@7 bb5@2 ~@7", AT: "c5@3 ~@4 eb5 e5@2 ~ g5 a5@2 ~@2",
  AU: "bb5@2 ~ e5 a5@2 g5@5 ~ a5@2 ~@2", AV: "~@3 g4 b4 ~@2 e5 d5@4 b4@2 ~ d5", AW: "~@3 d4 gb4 ~@2 b4 a4@4 gb4@2 ~ a4",
  AX: "~@3 g4 a4@2 ~ bb4 b4@2 ~ d5 e5@2 ~ d5", AY: "g5@3 ~@13", AZ: "[~@4 bb5@2 b5@2 ~@2 d6 ~ b5@2 ~ g5@4 ~@13]/2",
  BA: "~@4 bb5@3 b5 ~@3 d6 b5@2 ~@2", BB: "~@4 bb5@3 b5 ~@3 d6 b5 ~@3", BC: "d5@3 db6 d6 ~@2 d5 ab5 ~@2 a5 a4 f5@3",
  BD: "gb5 ~@2 d4 db5 ~@2 d5 d4@3 ab4 a4 ~@3", BE: "~@4 bb4 ~@2 b4 ~@3 d5 e5 ~@3", BF: "g5@3 ~ gb5@3 f5@4 ~@5",
  BG: "b5@2 c6@2 c5@2 ~ gb5 g5@2 c5 ~ eb5@2 e5 ~", BH: "g4@2 ~ g4 b4 ~@2 c5 ~@3 gb4 g4 ~@3",
})).s("gm_piano").gain(0.64).pan(0.4)

// other · electric guitar clean · "GUITAR"
const electric_guitar_clean = note("<~@47 A B A B C D E F@2 G H I C D J K L ~@32>".pickRestart({
  A: "~@3 f4 ~@3 f4 a4 ~@2 a4 bb4@2 ~@2", B: "c5@3 ~@13", C: "~@3 f4 ~@3 f4 a4@2 ~ a4 bb4@2 ~@2",
  D: "c5@3 ~@5 a4@3 ~@5", E: "f4@2 ~@2 ab4@2 ~ a4@2 ~@2 c5 a4@2 ~@2",
  F: "[g4@3 ~@5 eb4@2 ~ c4 d4@2 ~ c4@3 ~@6 a4@2 ~@2 g4@2 ~@2]/2", G: "f4@2 ~@4 f4 ~", H: "a4@3 ~@5 c5@2 ~@2 c5@2 ~@2",
  I: "c5@2 ~ bb4@2 ~@11", J: "g4@3 ~@5 ab4@2 ~ f4 g4@3 ~", K: "f4@2 ~@2 c4 ~ d4 f4 ab4@2 ~ f4 d4@2 ~ c4", L: "f4 ~@7",
})).s("gm_electric_guitar_clean").gain(0.72).pan(0.6)

// drums · kick
const kick = s("bd").struct("<[x!2]!92 ~@4>").gain(0.64)

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

// drums · ride
const ride = s("rd").struct("<[x ~@3 x ~@2 x!2 ~@3 x ~@2 x]!91 [x ~@3 x ~@2 x!2 ~@3 x ~@3] ~@4>").gain(0.57)

stack(bass, tenor_sax, piano, electric_guitar_clean, kick, snare, ride)

More by The Beatles