Strudelify
Act Naturally cover art

Help!

Act Naturally

The Beatles

KeyG majorTempo160 bpm
0:00/0:00
// Act Naturally — The Beatles
// 160 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 114 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): Guitar I (Lead).
setcpm(160/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.

// other · electric guitar jazz · "Guitar I"
const electric_guitar_jazz = note(`<
  A B C D E F ~ G H ~@2 I J ~@2 K L ~ M N O ~@3 P ~@2 Q L ~@2 L R ~ S T U F ~ V W ~@2 X J ~@2 K L ~ M N Y Z@2 AA AB Z@2
  AA AC F ~ G H ~@2 I J ~@2 K L ~ M N O ~@3 P ~@2 Q L ~@2 L R ~ S T U F ~ G H ~@2 I J ~@2 K L ~ M N AD Z AE AA AF@2
>`.pickRestart({
  A: "~ g4 f#4 e4", B: "d4@2 d5 g4 a4 c5@3", C: "d4@2 c#5 d5 e5 f#5@2 ~", D: "[e5,g5]!2 d5 b4",
  E: "g4@2 ~ e3 g3 e4 d4@2", F: "g4@3 ~", G: "~@2 g4 d4 e4 ~ g4!2, ~@5 e4@2 ~", H: "g4 ~ g4 d4 ~ g4 ~@2, ~@2 e4 ~",
  I: "~@2 g4 d4 e4 d4 b3@2", J: "d4@4 b3 a3 g3@2", K: "~@2 g4 d4 e4 g4 ~ g4", L: "g4 ~ g4 d4 e4 g4 ~@2", M: "~@7 a4",
  N: "b4 e5@3 d5 b4@3", O: "g4 ~@3", P: "~@2 g4 d4 e4 g4 ~@2", Q: "g4 ~ g4 d4 e4 g4 ~ g4", R: "g4 ~ g4 d4 e4 g4@3",
  S: "~@7 a3", T: "d4@2 d5@2 d4 d5@2 d4", U: "c5@2 c4 b4@2 b3 a4@2", V: "~@2 g4 d4 e4 ~ g4!2, c4@7 ~, ~@5 e4@2 ~",
  W: "g4 ~ g4 d4 ~ g4 ~@2, c4@3 ~, ~@2 e4 ~", X: "d3@2 g4 [e3,d4] [f3,e4] [a3,d4] b3@2", Y: "~ g3 f#3 e3",
  Z: "d3@2 d4 g3 a3 c4@3", AA: "g4@2 g4@2 e4 d4 b3 a3", AB: "g3!2 f#3 e3", AC: "g3@3 a3 b3 e4 d4@2",
  AD: "g4 ~ g3@2 f#3@2 e3@2", AE: "d3@2 f#4 d4 e4 f#4@3", AF: "g3/2",
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.8)

// chords · acoustic guitar steel · "Guitar II"
const acoustic_guitar_steel = note(`<
  ~ A@2 B C D C E@2 D F G H@2 F I@2 J@2 K L J M N@2 J M C@2 J@2 C O P Q M@2 D C E@2 D F G H@2 F I@2 J@2 K L R J C@2 J@2
  C@2 D C E@2 D F G H@2 F I@2 J@2 K L J M N@2 J M C@2 J@2 C O P Q M@2 D C E@2 D F G H@2 F I@2 J@2 K L J S F T@2
>`.pickRestart({
  A: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2", // D
  B: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!2", // G
  C: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@3 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2", // G
  D: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!2", // G
  E: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4] [c3,e3,g3,c4,e4]@2", F: "[g2,b2,d3,g3,b3,g4]!4",
  G: "[d3,a3,d4,f#4]!4", H: "[[d3,a3,d4,f#4]!3 [d3,a3,d4,f#4]@2 [g2,b2,d3,g3,b3,g4]!3]/2", I: "[c3,e3,g3,c4,e4]!4",
  J: "[d3,a3,c4,f#4]@2 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4] [d3,a3,c4,f#4]@2", // D7
  K: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!2 [g2,b2,d3,g3,b3,g4]@2", // G
  L: "[g2,b2,d3,g3,b3,g4] ~@3", M: "[d3,a3,c4,f#4]@2 [d3,a3,c4,f#4] [d3,a3,c4,f#4]@2 [d3,a3,c4,f#4] [d3,a3,c4,f#4]@2",
  N: "[g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2", // G
  O: "[g2,b2,d3,g3,b3,g4]@4 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@4 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]!2 ~ [g2,b2,d3,g3,b3,g4]", // G
  P: "[a2,e3,g3,c#4,a4]@2 [a2,e3,a3,c#4,a4]@3 [a2,e3,g3,c#4,a4] [a2,e3,g3,c#4,a4]@2", // A7 A A7
  Q: "[a2,e3,g3,c#4,a4]@2 [a2,e3,g3,c#4,a4] [a2,e3,g3,c#4,a4]@2 [a2,e3,a3,c#4,a4] [a2,e3,g3,c#4,a4]@2", // A7 A A7
  R: "[d3,a3,c4,f#4]@2 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]!3", // D7
  S: "[d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@2 [d3,a3,c4,f#4] [d3,a3,c4,f#4]@2", T: "[g2,b2,d3,g3,b3,g4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.28)

// bass · electric bass finger · "Bass Guitar"
const bass = note(`<
  ~ A B C D C E F@2 C G A B C E F H A I J K A B C L A I C M A I C N O@2 P B C E H F C G A B C E F H A I J Q A R C L S T
  C U C E F@2 C G A B C E F H A I J K A B C L A I C M A I C N O@2 P B C E F@2 C G A B C E F H A I J Q V W X Y@2
>`.pickRestart({
  A: "d2 a1", B: "d2!2 e2 f#2", C: "g2 d2", D: "g2 d2 e2 f#2", E: "g2@2 d2 b1", F: "c2 g1", G: "g2@2 b1 c2",
  H: "c2@2 g1 c2", I: "d2@2 e2 f#2", J: "g2@2 g2!2", K: "g2 ~@3", L: "g2!2 f#2 e2", M: "g2@2 f#2 e2", N: "g2@2 d2 g2",
  O: "a2@3 a2 a2@4", P: "d2@3 d2 d2@4", Q: "g1 ~@3", R: "d2@2 a1 d2", S: "d2@2 d3 g2 a2 c3@3", T: "d3 c3 b2 a2",
  U: "g2@2 b1 d2", V: "d2!2", W: "d2!4", X: "g2 e2 d2 b1", Y: "g1/2",
})).s("gm_electric_bass_finger").gain(0.29).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~ A@19 B A@12 C@4 A@15 B A@23 B A@12 C@4 A@15 B A@3 B ~>".pickRestart({
  A: "x!2", B: "x", C: "x ~@2 x!2 ~@3",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct("<~ A@9 B A@8 C D A@21 B A@8 C D A@13 B A@8 C D A@21 B A@8 C A@4 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@2 x ~@2 x!2 ~", D: "x",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct("<~ A@18 B ~ A@30 B ~ A@22 B ~ A@30 B A@4 ~@2>".pickRestart({
  A: "x!8", B: "x!5 ~@3",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@112 x ~>").gain(0.4)

stack(electric_guitar_jazz, acoustic_guitar_steel, bass, kick, snare, hihat, crash)

More by The Beatles