Strudelify

You've Got to Hide Your Love Away

The Beatles

KeyG majorTempo62 bpm
0:00/0:00
// You've Got to Hide Your Love Away — The Beatles
// 62 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 6, 2/4 at bar 19, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 34 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(62/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 · acoustic guitar nylon · "Rythm Gtr Nylon"
const acoustic_guitar_nylon = note("<A B C B C D E F G H I J K J L M N M O P Q R S T U V U V W X W X Y ~>".pickRestart({
  A: "~@16 g2@3 [g2,b2,d3,g3,d4,g4]!2 [g2,b2,d3] [g3,d4,g4] [g2,b2,d3,g3,d4,g4] d3 e3 ~ [e3,g3,d4,g4]!2 ~ [g3,d4,g4]@2, ~@24 [g3,d4,g4]@3 ~@2 d3@3", // G G5 G Em7 G5
  B: "[g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2 [f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2, ~@5 [g2,b2,d3]@3 ~@5 d3@3 ~@5 f3@3 ~@5 [g2,b2,d3]@3", // G G5 Dsus4 F Am7 G G5 G
  C: "[c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2, ~@5 [c3,e3]@3 ~@5 [c3,e3]@3 ~@5 f3@3 ~@5 [c3,e3]@3", // C C5 C C5 F Am7 C
  D: "[d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,d4,f#4]@2 a3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2, ~@5 d3@3 g3 ~@4 d3@3 ~@5 [g2,b2,d3]@3 ~@5 d3@3", // D G G5 Dsus4 G
  E: "[f3,a3,c4,f4]@3 f3@2 e3@3 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4] ~ b2@3 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2, ~@3 [a3,c4,f4]@5 ~@4 [g2,b2,d3,g3,d4,g4]@2 ~@7 [c3,e3]@3 ~@5 [c3,e3]@3", // F G C F G C
  F: "[c3,f3,a3,c4,f4]@3 [c3,f3,a3,c4,f4]!2 ~ [a3,c4,f4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2, ~@5 [c3,f3]@3 ~@5 [c3,e3]@3 ~@5 [g2,b2,d3]@3 ~@5 d3@3", // F C G G5 Dsus4 F5 C G
  G: "[f3,a3,c4,f4]@3 f3@2 e3@3 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2, ~@3 [a3,c4,f4]@5 ~@5 [g2,b2,d3]@3 ~@5 [c3,e3]@3 ~@5 [c3,e3]@3", // F G G5 C C5 C C5 F …
  H: "[f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2, ~@5 f3@3 ~@5 [c3,e3]@3 ~@5 d3@3 ~@5 d3@3", // F Am7 C C5 D C
  I: "[d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@2 ~ [g3,d4,g4]@2, ~@5 d3@3 ~@5 d3@3 ~@5 [g2,b2,d3]@3 ~@5 [g2,b2,d3]@3", // D G G5 G G5 G
  J: "[c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]@2 ~ [g3,c4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2, ~@5 [c3,e3]@3 ~@5 [c3,e3]@3 ~@5 d3@3 ~@5 d3@3", // C C5 C C5 Dsus4 D C
  K: "[d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 ~ [a3,d4,e4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@2 ~ [g3,d4,g4]@2, ~@5 d3@3 ~@5 d3@3 ~@5 [g2,b2,d3]@3 ~@5 [g2,b2,d3]@3", // Dsus2 Asus4 D G G5 G G5 G
  L: "[d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 ~ [a3,d4,e4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2, ~@5 d3@3 ~@5 d3@3 ~@5 [g2,b2,d3]@3 ~@5 d3@3", // Dsus2 Asus4 D G G5 Dsus4 G
  M: "[f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2, ~@5 f3@3 ~@5 [g2,b2,d3]@3 ~@5 [c3,e3]@3 ~@5 [c3,e3]@3", // F Am7 G G5 C C5 C C5 …
  N: "[f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2, ~@5 f3@3 ~@5 [c3,e3]@3 ~@5 [g2,b2,d3]@3 ~@5 d3@3", // F Am7 C G G5 Dsus4 C G
  O: "[f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,d4,f#4]@2 a3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2, ~@5 f3@3 ~@5 [c3,e3]@3 ~@5 d3@3 g3 ~@4 d3@3", // F Am7 C D C
  P: "[g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2 [f3,a3,c4,f4]@3 f3@2 e3@3 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4] ~ b2@3, ~@5 [g2,b2,d3]@3 ~@5 d3@3 ~@3 [a3,c4,f4]@5 ~@4 [g2,b2,d3,g3,d4,g4]@2 ~@2", // G G5 Dsus4 F G F G
  Q: "[c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2 [c3,f3,a3,c4,f4]@3 [c3,f3,a3,c4,f4]!2 ~ [a3,c4,f4]@2 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]!2 ~ [g3,c4,e4]@2, ~@5 [c3,e3]@3 ~@5 [c3,e3]@3 ~@5 [c3,f3]@3 ~@5 [c3,e3]@3", // C F C F5 C
  R: "[g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2 [f3,a3,c4,f4]@3 f3@2 e3@3 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2, ~@5 [g2,b2,d3]@3 ~@5 d3@3 ~@3 [a3,c4,f4]@5 ~@5 [g2,b2,d3]@3", // G G5 Dsus4 F G G5 G F …
  S: "[c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2, ~@5 [c3,e3]@3 ~@5 [c3,e3]@3 ~@5 f3@3 ~@5 [c3,e3]@3", // C C5 C C5 F Am7 C C5 …
  T: "[d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2, ~@5 d3@3 ~@5 d3@3 ~@5 d3@3 ~@5 d3@3", // D
  U: "[g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@2 ~ [g3,d4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]@2 ~ [g3,c4,g4]@2, ~@5 [g2,b2,d3]@3 ~@5 [g2,b2,d3]@3 ~@5 [c3,e3]@3 ~@5 [c3,e3]@3", // G G5 G G5 C C5 C C5 …
  V: "[d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 ~ [a3,d4,e4]@2 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ [a3,d4,f#4]@2, ~@5 d3@3 ~@5 d3@3 ~@5 d3@3 ~@5 d3@3", // Dsus4 D Dsus2 Asus4 D
  W: "[g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2 [d3,a3,d4,g4]@3 [d3,a3,d4,g4]!2 ~ [a3,d4,g4]@2 [f3,a3,c4,g4]@3 [f3,a3,c4,g4]@2 ~ [a3,c4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!2 ~ [g3,d4,g4]@2, ~@5 [g2,b2,d3]@3 ~@5 d3@3 ~@5 f3@3 ~@5 [g2,b2,d3]@3", // G G5 Dsus4 F Am7 G G5 G
  X: "[c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]@2 ~ [g3,c4,g4]@2 [f3,a3,c4,g4]@3 [f3,a3,c4,g4]!2 ~ [a3,c4,g4]@2 [c3,e3,g3,c4,g4]@3 [c3,e3,g3,c4,g4]!2 ~ [g3,c4,g4]@2, ~@5 [c3,e3]@3 ~@5 [c3,e3]@3 ~@5 f3@3 ~@5 [c3,e3]@3", // C C5 C C5 F Am7 C C5 …
  Y: "[g2,b2,d3,g3,d4,g4]", // G
})).s("gm_acoustic_guitar_nylon").gain(0.3).pan(0.3)

// bass · fretless bass · "Fretless E.Bass"
const bass = note("<~ A B C D E F G H I J K L K M N O P Q R D S D T U V U V S W S W X ~>".pickRestart({
  A: "g2 d2 f2 g2", B: "c2!2 f1 c2", C: "g1 d2 f1 g1", D: "c2!2 f2 e2", E: "d2!2 g1 d2",
  F: "f2@5 e2@2 ~ g1@5 b1@2 ~ c2@8 c2@8", G: "f2 e2 g1 d2", H: "f2 g1 c2!2", I: "f2 e2 d2 c2",
  J: "b1@8 a1@8 g1@8 g1@2 ~ a1@2 b1@2 ~", K: "c2!2 d2!2", L: "d2@8 d2@8 g1@8 g1@2 ~ a1@2 b1@2 ~", M: "d2!2 g2 d2",
  N: "f2 g2 c2!2", O: "f1 c2 g1 d2", P: "f1 g1 c2!2", Q: "f2 e2 d2!2", R: "g1@8 d2@8 f2@5 e2@2 ~ g1@5 b1@2 ~",
  S: "g1 d2 f2 g1", T: "d2 c2 b1 a1", U: "g1@8 g1@2 ~ a1@2 b1@2 ~ c2@8 c2@8", V: "d2!4", W: "c2!2 f2 c2", X: "g1",
})).s("gm_fretless_bass").gain(0.4)

// chords · acoustic guitar nylon · "Lead Gtr Nylon"
const acoustic_guitar_nylon_2 = note("<~@9 A@2 B C B D ~@8 E F G F G ~@6>".pickRestart({
  A: "[~@16 d3@5 d3@3 ~@16 a2@8 g2@8 g2@3 a2@2 b2@3, ~@3 c3 b2 ~@3, ~@28 a3@3 a3@5 a3@3 a3@9 ~@16, ~@29 d4@5 ~ d4@2 d4@11 ~@16]/2",
  B: "d3@5 c3@5 ~ g2@2 e2@3 ~@3 [d3,a3,d4,g4]!2 [d3,a3,d4] g4 [d3,a3,d4,g4] [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 [d3,a3,d4] f#4 [d3,a3,d4,f#4], ~ d2", // Dsus4 D5 Dsus4 D D5 D
  C: "[d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 [d3,a3,d4] e4 [d3,a3,d4,e4] [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ f#4@2 g2@8 g2@3 a2@2 b2@3, ~@13 [d3,a3,d4]@3 ~@16", // Dsus2 D5 Dsus2 D D5
  D: "[d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 [d3,a3,d4] e4 [d3,a3,d4,e4] [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ f#4@3 ~@15, ~@13 [d3,a3,d4]@3 ~@16", // Dsus2 D5 Dsus2 D D5
  E: "d3@5 d3@3 ~@16 a2@8, ~ c3 b2 ~, ~@12 a3@3 a3@5 a3@3 a3@9, ~@13 d4@5 ~ d4@2 d4@11",
  F: "g2@8 g2@3 a2@2 b2@3 d3@5 c3@5 ~ g2@2 e2@3",
  G: "~@3 [d3,a3,d4,g4]!2 [d3,a3,d4] g4 [d3,a3,d4,g4] [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 [d3,a3,d4] f#4 [d3,a3,d4,f#4] [d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 [d3,a3,d4] e4 [d3,a3,d4,e4] [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]!2 ~ f#4@2, d2@16 ~@13 [d3,a3,d4]@3", // Dsus4 D5 Dsus4 D D5 D Dsus2 D5 …
})).s("gm_acoustic_guitar_nylon").gain(0.3).pan(0.8)

// drums · tambourine
const tambourine = s("tb").struct("<~@5 [~@3 x] [~ x ~ x]!26 x ~>").gain(0.45)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@10 A B@3 C ~@9 B@4 D@2 B E F ~>".pickRestart({
  A: "~@16 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", B: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  C: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@18", D: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x!3",
  E: "x ~@2 x ~ x ~@2 x ~@2 x ~ x!4 ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", F: "x",
})).gain(1.51)

// drums · shaker
const shaker = s("sh").struct("<~@10 A B@3 C ~@9 B@4 D@2 B E F ~>".pickRestart({
  A: "~@16 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", B: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  C: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@18", D: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x!3",
  E: "x ~@2 x ~ x ~@2 x ~@2 x ~ x!4 ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", F: "x",
})).gain(0.2)

stack(acoustic_guitar_nylon, bass, acoustic_guitar_nylon_2, tambourine, cabasa, shaker)

More by The Beatles