Strudelify
KeyE majorTempo142 bpm
0:00/0:00
// Boys — The Beatles
// 142 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Organ 3 (Rock)" named as an organ, played on rock organ (its trombone patch is not one)
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Muted Gtr (Lead Dbl).
setcpm(142/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 · electric guitar clean · "Jazz Gtr"
const electric_guitar_clean = note(`<
  ~ A B C D ~@2 E@2 F@2 G@2 H F G ~@3 E@2 F@2 G@2 H F G ~ I@4 J K I@2 L K I M N O P Q R S T U V W X Y ~@2 Z AA F@2 G@2 H
  F G ~ I@4 J K I@2 L K I ~ AB AC AD@3 AE ~ AF L K I ~ AB AC AD@3 AE ~ AF L K I ~
>`.pickRestart({
  A: "~@4 [e4,g#4]@2 ~@2 d4 ~ b3@6, ~ [d#4,f#4]", B: "~@2 a4 ~@3 [a3,c#4]@2, [a3,c#4]@3 ~ [a3,d4]@2 ~@2, ~@5 a4@3",
  C: "~@2 [b3,e4]@2 a3 ~ e3 d3, ~ c#4, ~@5 g3@3", D: "~ a3@7, b2", E: "[e2,b2,e3,g#3,d4,e4]/2",
  F: "~@2 [a3,d4,f#4] ~ c4 c#4 ~@2, ~@2 [a3,e4] ~", G: "~@2 [e3,a3,c#4] ~ g3 g#3 ~@2, ~@2 [e3,b3] ~",
  H: "~@2 [b3,d#4,f#4] ~ d4 d#4 ~@2, ~@2 [b3,f#4] ~", I: "~ [e3,a3,c#4] [e3,g#3,b3]@2",
  J: "~ [a3,d4,f#4] [a3,c#4,e4]@2", K: "~@2 [a3,d4,f#4]@2 [a3,c#4,e4] a3@3", L: "~ [b3,d#4,f#4] [b3,d#4,f#4]@2",
  M: "~@2 d#4 e4@3 [e4,g4]@2 [e4,g4]@3 [e4,g4]@3 [e4,g4]@2", N: "g#4 ~ e4 ~ [d#4,e4,g#4]!2 ~@2", O: "~ [b3,d4]!5 a3 g3",
  P: "e3!2 ~@2", Q: "~@4 g#4@3 ~ a4@3 ~@3 e5@2, ~@2 e5@5 e5@4 e5@3 ~@2, ~@3 a#4",
  R: "b4@2 ~@8 [c#5,g5]@3 [c#5,g5]@3, ~@10 c5 ~@2 c5 ~@2", S: "[c5,c#5,g5] ~@6 [g#4,a4,c#5]",
  T: "[a4,c#5]@3 [a4,c#5]@3 [a4,c#5]@5 [g#4,b4]@3 e4@2, g#4 ~@2 g#4 ~@2 g#4 ~@4 g4 ~@4", U: "e4 ~@7",
  V: "b4!2 [b4,e5]!2, a4 ~@3 a4 ~@3 a4 ~@3 a4 ~@3", W: "[b4,e5]@4 [b4,e5]@4 b4 a4 g4@2 e4@4, a4 ~@3 a4 ~@11",
  X: "~@4 [b3,e4]@3 b3 [a#3,b3,e4]@3 b3 [a3,b3,e4]@3 b3", Y: "[g3,b3,e4]@3 b3 e3@4 e3 d3 b2@6",
  Z: "[e2,b2,e3,g#3,d4,e4]", AA: "~ [e3,g#3,d4,f#4,b4]@7", AB: "~ d4, ~ e4@3",
  AC: "~@5 f#4 ~@2, ~@2 f#4@3 ~@3, ~@2 d4 ~", AD: "~@5 e4 ~@2, ~@2 e4@3 ~@3, ~@2 d4 ~", AE: "~ b4 ~@2 b4 ~@2 b4",
  AF: "~@4 d4@3 ~@5 e4@4, ~@7 e4@5 ~@4, ~ c#4",
})).s("gm_electric_guitar_clean").gain(0.33)

// other · acoustic guitar steel · "Muted Gtr"
const acoustic_guitar_steel = note(`<
  A B C D B E@3 F C G F H B G F B E@3 F C G F H B G F B I@4 J@2 I@2 K J I B I@4 J@2 I@2 K J I B E@3 F C G F H B G F B
  I@4 J@2 I@2 K J I B I@4 J@2 I@2 K J I B I@4 J@2 I@2 K J I B
>`.pickRestart({
  A: "~@5 g#2 a2 a#2", B: "b2!8", C: "a2!8", D: "e2!6 g#2 a2", E: "e2", F: "e2!8", G: "a2!7 b2", H: "e2!7 a#2",
  I: "e2!2 g#2 b2 d3!2 c#3 b2", J: "a2!2 c#3 e3 g3!2 f#3 e3", K: "b2!2 d#3 f#3 a3!2 g#3 f#3",
})).s("gm_acoustic_guitar_steel").gain(0.46).pan(0.9)

// bass · fretless bass · "Fretless E.Bass"
const bass = note(`<
  ~ A B C D E@3 F G H F I A H F A E@3 F G H F I A H F A J@3 K L@2 J@2 M L J A N@2 J@2 L@2 J@2 M L J O E@3 F G H F I A H
  F A J@3 K L@2 J@2 M L J A J@3 P L@2 J@2 M L J A J@3 P L@2 J@2 M L J A
>`.pickRestart({
  A: "b2!8", B: "a2!6 a2@2", C: "e2!6 g#2 a2", D: "b2!7 a2", E: "e2", F: "e2!8", G: "a2!8", H: "a2!7 b2", I: "e2!7 a#2",
  J: "e2!2 g#2 b2 d3!2 c#3 b2", K: "e2!2 d2!2 c#2!2 b1!2", L: "a1!2 c#2 e2 g2!2 f#2 e2", M: "b1!2 d#2 f#2 a2!2 g#2 f#2",
  N: "e2!2 g#2 e2 b2!2 a2 g#2", O: "b2!6 b2@2", P: "e2!2 d2@2 c#2@2 b1@2",
})).s("gm_fretless_bass").gain(0.48)

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

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A C ~@4 D A@6 ~@5 E A F G A@2 B ~ E B A@2 E A@2 B A@3 ~@17 E B A@5 ~@37
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", C: "x!5 ~@3", D: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", E: "~ x!7",
  F: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", G: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x!2",
})).gain(0.44)

// drums · open hat
const open_hat = s("oh").struct("<~@10 A ~@4 B ~@6 A ~@37 A@3 ~@38>".pickRestart({
  A: "~@15 x", B: "~@3 x ~@12",
})).gain(0.44)

// drums · crash
const crash = s("cr").struct(`<
  ~@9 A ~@7 A ~@3 A ~@7 A ~@3 A ~@7 A ~@3 A ~@7 A ~@3 A ~@7 A ~@3 A ~ A ~ A@3 B A ~@3 A ~ A ~ A@3 ~ A ~@3 A C ~@2 A@3 C
>`.pickRestart({
  A: "x", B: "~ x ~@2 x ~@3", C: "~ x ~@2 x ~@2 x",
})).gain(0.44)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@41 A B@2 C D B E B E B F G ~@12 A E B E A E A E H@3 I A B E@2 A J A B A@3 B A B E F A K B@2 H A H L
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x", D: "~@2 x!6", E: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", F: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~",
  G: "x ~ x!3 ~ x!3 ~@7", H: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", I: "x ~ x!2 ~ x!3", J: "x ~ x!3 ~ x ~ x!3 ~ x ~ x!2",
  K: "x ~ x!2 ~ x!2 ~", L: "x ~@3 x ~ x ~@3 x!3 ~@3",
})).gain(0.38)

stack(electric_guitar_clean, acoustic_guitar_steel, bass, kick, snare, hihat, open_hat, crash, ride_bell)

More by The Beatles