Strudelify
Yes It Is cover art

Past Masters

Yes It Is

The Beatles

KeyE majorTempo97 bpm
0:00/0:00
// Yes It Is — The Beatles
// 97 bpm, 12/8, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (12/8 at bar 1, 6/8 at bar 9, 12/8 at bar 9) are rendered on a constant 12/8 grid of one bar per cycle
// note: ch 8 "Fiddle" named as a string part, played on violin (its pad bowed patch is not one)
// note: Full arrangement: all 44 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(97/6)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M N O P Q R C S T U V W L X Y E Z AA S AB AC AD AE AF AG AH AI AJ AK AL AM AN
>`.pickRestart({
  A: "~@6 [e2,b2,e3]!6", B: "[e2,b2,e3]!10 [e2,b2,e3]@2", C: "[a2,e3,a3]!3 [f#2,c#3,f#3]!3",
  D: "[b2,f#3,b3]!3 [e2,b2,e3]!2 ~", E: "[a2,e3,a3]!6 [d3,a3,d4]!6",
  F: "[b2,f#3,b3]!4 ~@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4] [c#3,g#3,c#4]@3", // B5 C#5
  G: "[c#3,g#3,c#4]@2 ~@4 [a2,e3,a3]@2 [a2,e3,a3] [a2,e3,a3]@3", // C#5 A5
  H: "[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2", I: "[e2,b2,e3]!12",
  J: "[e2,b2,e3]!3 [a2,e3,a3]!3", // E5 A5
  K: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [b2,f#3,b3] [b2,f#3,b3]@3 [b2,f#3,b3]@2", // F#5 B5
  L: "[e2,b2,e3]@2 [e2,b2,e3] [e2,b2,e3]@3 [a2,e3,a3]@2 ~@4", M: "[d3,a3,d4]@6 [b2,f#3,b3]!6",
  N: "[c#3,g#3,c#4]!2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2", // C#5
  O: "[a2,e3,a3]!6 [d3,a3,d4]@6", P: "[c#3,g#3,c#4]!6 [e2,b2,e3]!6",
  Q: "[e2,b2,e3]!4 ~@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2", R: "[b2,f#3,b3]!3 [e2,b2,e3]!3",
  S: "[b2,f#3,b3]@2 [b2,f#3,b3]!4 [e2,b2,e3]!4 [e2,b2,e3]@2", // B5 E5
  T: "[c#3,g#3,c#4] [c#3,g#3,c#4]@3 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4", // C#5
  U: "[f#2,c#3,f#3]!3 [b2,f#3,b3]!2 ~", V: "[e2,b2,e3]@6 [a2,e3,a3]!6", W: "[f#2,c#3,f#3]!2 ~@4 [b2,f#3,b3]@6",
  X: "[d3,a3,d4]@3 [b2,f#3,b3]!3", // D5 B5
  Y: "[c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2", // C#5
  Z: "[c#3,g#3,c#4]!2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2", // C#5 E5
  AA: "[e2,b2,e3] [e2,b2,e3]@3 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2", // E5
  AB: "[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [f#2,c#3,f#3]!6", // A5 F#5
  AC: "[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]!2", AD: "[c#3,g#3,c#4]!12",
  AE: "[f#2,c#3,f#3]!6 [b2,f#3,b3]!4 ~@2", // F#5 B5
  AF: "[e2,b2,e3]@2 [e2,b2,e3] [e2,b2,e3]@3 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2", // E5 A5
  AG: "[f#2,c#3,f#3]!3 [b2,f#3,b3]!3", AH: "[e2,b2,e3]!6 [a2,e3,a3]!2 [a2,e3,a3]@2 [a2,e3,a3]@2",
  AI: "[d3,a3,d4]!3 [b2,f#3,b3]!3", AJ: "[c#3,g#3,c#4]!8 ~@4",
  AK: "[a2,e3,a3]!6 [d3,a3,d4]!2 [d3,a3,d4]@2 [d3,a3,d4]@2", AL: "[c#3,g#3,c#4]!2 ~ [e2,b2,e3]@3",
  AM: "[g#2,d#3,g#3]@2 [g#2,d#3,g#3] [g#2,d#3,g#3]@3 [a2,e3,a3]@2 ~@4", AN: "[e2,b2,e3] ~@11",
})).s("gm_acoustic_guitar_nylon").gain(0.64).pan(0.4)

// chords · acoustic guitar nylon · "Steel String"
const acoustic_guitar_nylon_2 = note(`<
  A B C D E F G H I J K J L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF M AG J AH J AI AJ N O AK AL
>`.pickRestart({
  A: "~@6 [e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3]", // E
  B: "[e3,g#3,b3]@2 [e3,g#3,b3]@3 [e3,g#3,b3] [e3,g#3,b3]@3 [e3,g#3,b3] [e3,g#3,b3]@2", // E
  C: "[e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]", // A
  D: "[d#3,f#3,a3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3] [e3,g#3,b3]@3 [e3,g#3,b3] [e3,g#3,b3]@2", // D#dim E
  E: "[e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4] [f#3,a3,b3,d4]@3 [f#3,a3,b3,d4]@2 [f#3,a3,b3,d4]", // A Bm7
  F: "[d#3,f#3,a3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3] [e3,g#3,c#4]@3 [e3,g#3,c#4] [e3,g#3,c#4]@2", // D#dim C#m
  G: "[e3,g#3,c#4]@3 [e3,g#3,c#4]@2 [e3,g#3,c#4] [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]", // C#m A
  H: "[f#3,a3,d4]@2 [f#3,a3,d4]@3 [f#3,a3,d4] [e3,g#3,c#4]@3 [e3,g#3,c#4] [e3,g#3,c#4]@2", // D C#m
  I: "[e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3] [e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3]", // E
  J: "[e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3] [e3,a3,c#4]@2 [e3,a3,c#4]@3 [e3,a3,c#4]", // E A
  K: "[f#3,a3,c#4]@3 [f#3,a3,c#4] [f#3,a3,c#4]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]@2 [d#3,f#3,a3]", // F#m D#dim
  L: "[d3,f#3,a3,b3]@3 [d3,f#3,a3,b3] [d3,f#3,a3,b3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]@2 [d#3,f#3,a3]", // Bm7 D#dim
  M: "[e3,g#3,c#4]@3 [e3,g#3,c#4]@2 [e3,g#3,c#4] [e3,g#3,c#4]@2 [e3,g#3,c#4]@3 [e3,g#3,c#4]", // C#m
  N: "[e3,a3,c#4]@3 [e3,a3,c#4] [e3,a3,c#4]@2 [d3,f#3,a3]@3 [d3,f#3,a3]@2 [d3,f#3,a3]", // A D
  O: "[e3,g#3,c#4]@3 [e3,g#3,c#4]@2 [e3,g#3,c#4] [e3,g#3,b3]@2 [e3,g#3,b3]@3 [e3,g#3,b3]", // C#m E
  P: "[e3,g#3,b3]@3 [e3,g#3,b3] [e3,g#3,b3]@2 [e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3]", // E
  Q: "[f#3,a3,d4]@3 [f#3,a3,d4]@2 [f#3,a3,d4] [d3,g#3,b3]@2 [d3,g#3,b3]@3 [d3,g#3,b3]", // D G#dim
  R: "[e3,a3,c#4]@3 [e3,a3,c#4] [e3,a3,c#4]@2 [f#3,a3,c#4]@3 [f#3,a3,c#4]@2 [f#3,a3,c#4]", // A F#m
  S: "[d3,f#3,a3]@3 [d3,f#3,a3]@2 [d3,f#3,a3] [d3,g#3,b3]@2 [d3,g#3,b3]@3 [d3,g#3,b3]", // D G#dim
  T: "[e3,g#3,c#4]@4 [e3,g#3,c#4]@2 [e3,g#3,c#4]@3 [e3,g#3,c#4]@2 [e3,g#3,c#4]", // C#m
  U: "[e3,a#3,c#4]@3 [e3,a#3,c#4]@2 [e3,a#3,c#4] [d#3,f#3,a3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]", // A#dim D#dim
  V: "[e3,g#3,b3]@4 [e3,g#3,b3]@2 [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]", // E A
  W: "[e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4] [d#3,f#3,a3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]", // A D#dim
  X: "[e3,g#3,b3]@3 [e3,g#3,b3] [e3,g#3,b3]@2 [e3,a3,c#4]@3 [e3,a3,c#4]@3", // E A
  Y: "[f#3,a3,d4]@3 [f#3,a3,d4]@2 [f#3,a3,d4] [d#3,f#3,a3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]", // D D#dim
  Z: "[e3,g#3,c#4]@3 [e3,g#3,c#4] [e3,g#3,c#4]@2 [e3,g#3,c#4]@3 [e3,g#3,c#4]@2 [e3,g#3,c#4]", // C#m
  AA: "[e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4] [d3,f#3,a3]@2 [d3,f#3,a3]@3 [d3,f#3,a3]", // A D
  AB: "[e3,g#3,c#4]@3 [e3,g#3,c#4] [e3,g#3,c#4]@2 [e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3]", // C#m E
  AC: "[e3,g#3,b3]@3 [e3,g#3,b3]@2 [e3,g#3,b3] [e3,g#3,b3]@2 [e3,g#3,b3]@3 [e3,g#3,b3]", // E
  AD: "[f#3,a3,d4]@3 [f#3,a3,d4] [f#3,a3,d4]@2 [g#3,b3,d4]@3 [g#3,b3,d4]@2 [g#3,b3,d4]", // D G#dim
  AE: "[e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4] [f#3,a3,c#4]@2 [f#3,a3,c#4]@3 [f#3,a3,c#4]", // A F#m
  AF: "[d3,f#3,a3]@3 [d3,f#3,a3] [d3,f#3,a3]@2 [d3,g#3,b3]@3 [d3,g#3,b3]@2 [d3,g#3,b3]", // D G#dim
  AG: "[e3,a#3,c#4]@3 [e3,a#3,c#4] [e3,a#3,c#4]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]@2 [d#3,f#3,a3]", // A#dim D#dim
  AH: "[e3,a3,c#4]@3 [e3,a3,c#4] [e3,a3,c#4]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]@2 [d#3,f#3,a3]", // A D#dim
  AI: "[d3,f#3,a3]@3 [d3,f#3,a3] [d3,f#3,a3]@2 [d#3,f#3,a3]@3 [d#3,f#3,a3]@2 [d#3,f#3,a3]", // D D#dim
  AJ: "[e3,g#3,c#4]@3 [e3,g#3,c#4]@2 [e3,g#3,c#4]@2 [e3,g#3,c#4] [e3,g#3,c#4]@3 [e3,g#3,c#4]", // C#m
  AK: "[d#3,g#3,c4]@3 [d#3,g#3,c4] [d#3,g#3,c4]@2 [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]", AL: "[e3,g#3,b3] ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.64)

// other · violin · "Fiddle"
const violin = note("<A B ~ C ~ D ~@2 E F G ~ H I ~@3 J ~@3 K ~ G L H ~@8 M N G O P ~@4 Q>".pickRestart({
  A: "~@6 b2@6 e5@7 ~@5", B: "b4@7 ~@5 e4@7 ~@5", C: "e5@4 ~@2 b5@4 ~@3 e6@5 ~@6", D: "b4@2 ~ f#5@2 ~ b5@2 ~@4",
  E: "~@12 e4@5 ~ e5@5 ~", F: "b4@5 ~@19", G: "~@6 e5@2 ~ b5@2 ~", H: "~@6 b4@2 ~ f#5@2 ~", I: "g#5@5 ~@19",
  J: "~@13 e5@5 ~@6, ~@12 e4@5 ~@7", K: "~@13 b4@6 ~@5, ~@2 d#4 ~", L: "e6@5 ~@19", M: "~@6 [f#4,b4]@5 ~",
  N: "~ g#5@8 ~@15", O: "e6@7 ~@17", P: "~@12 b4@4 ~@3 f#5@4 ~", Q: "~@4 d#5@2 ~ b4@2 ~ g#4 ~@2 c#5@5 ~@6",
})).s("gm_violin").gain(0.78).pan(0.9)

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

// drums · tambourine
const tambourine = s("tb").struct("<[~ x] [x!2]!38 x!2 [x!2]!2 x>").gain(0.32)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2, violin, clap, tambourine)

More by The Beatles