Strudelify

Another Girl

The Beatles

KeyA majorTempo160 bpm
0:00/0:00
// Another Girl — The Beatles
// 160 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 94 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 Rythm.
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.

// bass · fretless bass · "Fretless E Bass"
const bass = note(`<
  ~ A B A B C D C B C D C E@3 B F A B A B C D C G C D C E H@2 B F A B C H I J K D L M N O C D C B C D C E@3 B F A B A B
  I J I D P M N O C D C B C D C E@3 B F A B C H C Q R@7
>`.pickRestart({
  A: "a1@4 ~@3 a1 e2@4 d#2@4", B: "d2@4 ~@3 d2 a1@4 d2@4", C: "a1@4 ~@3 a1 e2@4 a1@4", D: "g1@4 ~@3 g1 d2@4 g1@4",
  E: "d2@4 ~@3 d2 a1@4 c2@4", F: "e2", G: "d2@4 ~@3 d2 a1@4 e2@4", H: "d2@4 ~@3 d2 a1@8", I: "c2@4 ~@3 c2 g1@4 c2@4",
  J: "g1@2 d2 g1", K: "c2@4 ~@3 c2 g1@8", L: "c2 g1", M: "e2@4 ~@3 e2 b1@4 e2@4", N: "a1@2 e2 a1", O: "e2!2",
  P: "c2@2 g1 c2", Q: "d2@4 ~@3 d2 a1@4 a1@4", R: "[a1@15 ~]/7",
})).s("gm_fretless_bass").gain(0.47).pan(0.6)

// other · electric guitar jazz · "Lead Gtr - Jazz"
const electric_guitar_jazz = note(`<
  ~ A B C D ~@10 E ~@8 F G ~@2 H G ~@3 I J@2 K ~@6 L M N ~@11 O P O P ~@24 Q R@2 S T@5
>`.pickRestart({
  A: "~@4 [c4,c#4]@2 ~ c4 a3@3 [d4,e4] d4@4", B: "c4@3 ~ c4@3 ~@9", C: "~@4 [c4,c#4]@2 ~ c4 a3@3 d4 ~@4", D: "c4 ~",
  E: "~ d3", F: "~@8 [f#4,g4]@2 ~ f#4 [d4,e4]@2 ~ d4", G: "c4 ~@3", H: "~@4 a4@4 [f#4,g4]@2 ~ f#4 [d4,e4]@2 ~ d4",
  I: "a3@4 [c4,c#4]@2 ~ c4 a3@3 [d4,e4] d4@4", J: "[c4@3 ~ c4@3 ~ a3@12 a4@4 [f#4,g4]@2 ~ f#4 [d4,e4]@2 ~ d4]/2",
  K: "c4 a3@3, b3 ~@15", L: "d5@3 e5@5 a5@8", M: "e5@4 e5@4 [d5,e5]@2 ~ d5 c5@4, d5 ~@3 d5 ~@11", N: "a4@3 ~@13",
  O: "~@3 [d4,d#4,f#4,g4] [d4,f#4]@4 [d4,d#4,f#4,g4]@2 ~ [d4,f#4]@4 [d4,d#4,f#4,g4]", P: "[d4,f#4] ~ a3!2, ~ c4@3",
  Q: "~@4 [c4,d4]@2 ~ c4 a3@3 [d4,e4] d4@4", R: "[c4@3 ~ [c4,d4]@2 ~ c4 a3@11 [c4,d4] c4@3 a3 c4 d4@3 d4 e4@3]/2",
  S: "~ [c4,d4]@2 c4 ~ a3@4 a4@3 [f#4,g4] f#4@3", T: "[[d4,e4] d4@3 c4@5 a3@64 ~@7]/5",
})).s("gm_electric_guitar_jazz").gain(0.59).pan(0.2)

// chords · electric guitar muted · "Muted Gtr Rythm"
const electric_guitar_muted = note(`<
  ~ A ~ A ~@9 B@3 ~ A ~ A ~@9 B@3 ~ A ~ A ~@2 C ~ C ~ D ~ E ~@8 B@3 ~ A ~ A ~@2 C ~ C ~ D ~ E ~@8 B@3 ~ A ~ A ~ A ~ F@7
>`.pickRestart({
  A: "~ g3 ~ g3", B: "~ d3 ~@2", C: "~@4 f3@4 ~@3 [d3,f3,d4] ~@4", D: "~@11 d4 ~@4", E: "~ d4 ~ d4",
  F: "[~ [g3,a4]@104 ~@7]/7", // Gsus2
})).s("gm_electric_guitar_muted").gain(0.32).pan(0.1)

// chords · acoustic guitar nylon · "Nylon Gtr Rythm"
const acoustic_guitar_nylon = note(`<
  ~ A B A B A C A D A C A D E@3 F A B A B A C A D A C A D E@3 F A B A B G H G H G I A J A C A D A C A D E@3 F A B A B G
  H G H G I A J A C A D A C A D E@3 F A B A B A B K@7
>`.pickRestart({
  A: "[a2,e3,a3,c#4,e4]@4 [a2,e3,a3,c#4,e4]@3 [a3,c#4,e4] [a2,e3,a3,c#4,e4]@3 [a3,c#4,e4] [a2,e3,a3,c#4,e4]@3 [a3,c#4,e4]", // A
  B: "[d3,a3,c4,f#4]@4 [d3,a3,c4,f#4]@3 [a3,c4,f#4] [d3,a3,c4,f#4]@3 [a3,c4,f#4] [d3,a3,c4,f#4]@3 [a3,c4,f#4]", // D7 F#dim D7 F#dim D7 F#dim
  C: "[g2,b2,d3,g3]@3 [g3,b3,g4] [g2,b2,d3,g3,b3,g4]@4 [g2,b2,d3,g3,b3,g4]@4 [g2,b2,d3,g3,b3,g4]@4, [b3,g4] ~@7", // G Em
  D: "[d3,a3]@3 [a3,c4,f#4] [d3,a3,c4,f#4]@4 [d3,a3,c4,f#4]@4 [d3,a3,c4,f#4]@4, [c4,f#4] ~@7", // D5 F#dim D7 Cdim
  E: "[a3,c4,f#4]@4 [a3,c4,f#4]@3 [d3,a3,c4,f#4]@4 [a3,c4,f#4] [d3,a3]@3 [a3,c4,f#4], d3@7 ~@5 [c4,f#4]@2 ~@2", // F#dim D7 F#dim D5 F#dim Cdim
  F: "[e2,b2,d3,g#3,b3,e4] ~@3", // E7
  G: "[c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 [g3,c4,e4] [c3,e3,g3,c4,e4]@3 [g3,c4,e4] [c3,e3,g3,c4,e4]@3 [g3,c4,e4]", // C
  H: "[g2,b2,d3,g3,b3,g4]@4 [g2,b2,d3,g3,b3,g4]@3 [g3,b3,g4] [g2,b2,d3,g3,b3,g4]@3 [g3,b3,g4] [g2,b2,d3,g3,b3,g4]@3 [g3,b3,g4]", // G
  I: "[e2,b2,d3,g#3,b3,e4]@4 [e2,b2,d3,g#3,b3,e4]@3 [g#3,b3,e4] [e2,b2,d3,g#3,b3,e4]@3 [g#3,b3,e4] [e2,b2,d3,g#3,b3,e4]@3 [g#3,b3,e4]", // E7 E E7 E E7 E
  J: "[g#3,b3,e4]!4, [e2,b2,d3]!2", K: "[~ [c#4,e4]@104 ~@7, [a2,e3,a3]@15 ~]/7",
})).s("gm_acoustic_guitar_nylon").gain(0.23).pan(0.9)

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

// drums · snare
const snare = s("sd").struct("<~ A@5 B A@6 B A@2 ~ A@8 B A@5 C ~ A@14 D A@7 E ~ A@17 B A@5 ~ A@6 ~@7>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@6 x!3 ~ x", D: "~@4 x ~@2 x ~@4 x ~@2 x",
  E: "~@4 x ~@7 x!2 ~ x",
})).gain(0.35)

// drums · crash
const crash = s("cr").struct("<~@16 A ~@15 A ~@23 A ~@23 A ~@6 A ~@6>".pickRestart({
  A: "x",
})).gain(0.35)

// drums · ride bell
const ride_bell = s("rd").struct("<~ A@14 B ~ A@15 ~ A@23 ~ A@23 ~ A@6 ~@7>".pickRestart({
  A: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x", B: "x ~@3 x ~@2 x!2 ~@3 x!2 ~ x",
})).gain(0.35)

stack(bass, electric_guitar_jazz, electric_guitar_muted, acoustic_guitar_nylon, kick, snare, crash, ride_bell)

More by The Beatles