Strudelify

How Do You Do It

The Beatles

KeyF majorTempo135 bpm
0:00/0:00
// How Do You Do It — The Beatles
// 135 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 4 "TRUMPET" trumpet (copy of ch 1 "SYNTH" trombone); ch 5 "STRINGS" violin (copy of ch 2 "MUTED TRUMPET" muted trumpet); ch 3 "CELLO" viola (copy of ch 6 "ACC. BASS" acoustic bass)
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(135/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 · muted trumpet
const muted_trumpet = note(`<
  A B C D E F G H I J K@2 L F G H I M N@2 O P Q R O S T U V W E F X H Y Z AA@2 E F G H I J K@2 L F G H I M N@2 O P Q R O
  S T U V W E F X H Y Z AB@2
>`.pickRestart({
  A: "f4@2 c5@2 a4@2 f4!2", B: "d4@2 g4@2 e4@2 c4!2", C: "[a3,c4,f4]@2 [bb3,d4,f4]@4 [bb3,d4,f4]!2",
  D: "[a3,c4,f4] [g3,bb3,eb4]!2 [ab3,b3,e4]", E: "~@2 [f3,a3]!2 ~@3 a4, c4@4 c5@3 ~, ~@3 [d4,f4]",
  F: "[g4,bb4]@2 [g4,bb4] [a4,c5] [g4,bb4] [f4,a4] [e4,g4]@2", G: "~@2 [c4,f4]!2 [a4,c5]@2 [f4,a4]@2, ~ a4 ~@2",
  H: "~@2 [bb3,d4,f4]!2 [bb3,e4]@2 c5 bb4, g4@3 e4", I: "[f4,a4]@2 [f4,a4] [a4,c5] [d4,f4] [e4,g4] [f4,a4]@2",
  J: "g4@3 f4 e4 f4 g4@2, [bb3,d4] bb3", // Bb
  K: "[[a3,c4]@2 [bb3,d4]@4 [bb3,d4]!2 [a3,c4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [ab3,b3,e4]@2, f4@5 ~@3]/2", // Am Bb Am Eb E
  L: "~ [f3,a3]!2 c5, c4 ~", M: "g4@2 g4 f4 e4 f4 g4@2, [bb3,d4] bb3",
  N: "[[a3,c4]@2 [bb3,d4]@4 bb3!2 [a3,c4]@2 [g3,bb3,eb4] [a3,c4,f4] ~ [g3,bb3,eb4] [a3,c4,f4] f4, f4@5 ~@3, ~@3 d4 ~@4]/2", // Am Bb Am Eb F Eb F
  O: "g4@2 g4 a4 bb4!2 c5 bb4, [bb3,d4] [e4,g4]", P: "~@2 [c4,f4]!2 ~@2 c4!2, a4@3 a3",
  Q: "d4 ~ [f3,bb3]@2 ~@2 c4!2, ~ c4@5 ~@2, ~ [e3,bb3]", R: "d4 ~ [f3,a3]!2 ~@2 [f3,a3]@2, ~ c4@5 ~@2",
  S: "~@2 [c4,f4]!2 ~@3 c5, a4@3 ~, ~ [d4,f4]", T: "d5@2 [f4,b4]!2 d5@2 [f4,b4,d5]@2, ~ d5 ~@2",
  U: "e5 c5 d5 a4 [e4,c5]@2 [e4,g4,d5]@2, g4 f4 ~@2", V: "[b3,f4,g4]@2 d4 [b3,f4,g4]@2 d4 [b3,f4,g4]@2",
  W: "[e4,g4,c5]@2 bb4 [e4,g4,c5]@2 bb4 [e4,g4,c5]@2", X: "~@2 [f4,a4]!2 [a4,c5]@2 [f4,a4]@2",
  Y: "[f4,a4] [a4,c5] [d4,f4] [f4,a4]", Z: "g4@2 a4 bb4 e4@2 g4@2, [bb3,d4] bb3",
  AA: "[[a3,c4]@2 [bb3,d4]@4 [bb3,d4]!2 [a3,c4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 ~@2, f4@5 ~@3]/2", // Am Bb Am Eb
  AB: "[[a3,c4]@2 [bb3,d4]@4 bb3!2 [a3,c4]@2 [bb3,d4] [a3,c4]@2 ~@3, f4@13 ~@3, ~@3 d4 ~@4]/2", // Am Bb Am Bb Am
})).s("gm_muted_trumpet").gain(0.56).pan(0.4)

// bass · acoustic bass · "ACC. BASS"
const bass = note(`<
  A B C D E F E G E G H D E F E G E G H I J E F K J E L M N O E F E G E G H D E F E G E G H D E F E G E G H I J E F K J
  E L M N O E F E G E G H P
>`.pickRestart({
  A: "f3@2 c4@2 a3@2 f3!2", B: "d3@2 g3@2 e3@2 c3!2", C: "f2@2 bb2@4 bb2!2", D: "f2 eb2!2 e2", E: "f2!2 d2!2",
  F: "g2!2 c3 c2", G: "g2 bb2 c3 c2", H: "f2@2 [bb2,f3]@4 [bb2,f3]!2", I: "f2@4 eb2@2 f2@2 ~@2 eb2@3 f2@2 ~",
  J: "bb2!2 c3 c2", K: "f2 c3 a2 f2", L: "g2 d3 b2 g2", M: "c3 g2 c2 g2", N: "g2@2 ~ g2@3 g2@2",
  O: "[c3,bb3]@2 ~ [c3,bb3]@3 [c3,bb3]@2", P: "f2@2 [bb2,d3] f2@2 ~@3",
})).s("gm_acoustic_bass").gain(0.56)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A@2
>`.pickRestart({
  A: "x!2", B: "x ~@3 x!2 ~@2",
})).gain(0.4)

// drums · rim
const rim = s("rim").struct(`<
  A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 C
>`.pickRestart({
  A: "x!2 ~ x!3 ~ x", B: "x!2 ~ x!3 ~@2", C: "x!2 ~ x!2 ~@3",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!71 [~ x ~@2]>").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct(`<
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~
>`.pickRestart({
  A: "x",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~
  B ~ A ~ B ~ A ~ B ~ A ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@10 x ~@3 x!2",
})).gain(0.4)

stack(muted_trumpet, bass, kick, rim, clap, snare, low_tom, mid_tom)

More by The Beatles