Strudelify

Take Your Time

Buddy Holly

KeyG majorTempo135 bpm
0:00/0:00
// Take Your Time — Holly Buddy
// 135 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 65 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 · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~ A B A B C D C E F G H I C J C J K@3 L M N O P Q@2 R S C J C J K@2 T U V W X Y Z AA AB@2 AC@2 AD AE Q@2 R AF C AG C
  AH AI@3 AJ AK AL AM AN
>`.pickRestart({
  A: "[g4,b4,d5]@6 ~@2 e5@5 d5 a4 ~, ~@8 [g4,c5]@7 ~", B: "[f#4,a4,c5]@10 d4@2 c#4@2 d4 ~",
  C: "~@4 [g4,b4,d5] ~@7 [g4,c5,e5] ~@3", D: "~@2 d4 ~ [f#4,a4]@2 d4 ~ [f#4,a4]@2 d4 ~ [f#4,a4]@2 d4 ~",
  E: "~@4 [f#4,a4]@2 d4 ~ [f#4,a4]@2 d4 ~ [f#4,a4]@2 d4 ~", F: "~@4 [d4,g4,b4] ~@7 [d4,f#4,a4] ~@3",
  G: "~@4 [d4,g4,b4] ~@7 [d4,f#4,a4] ~ [d4,f#4,a4] ~", H: "~@4 [d4,g4,b4] ~@5 d4 ~ [d4,f#4,a4] ~ [d4,f#4] ~",
  I: "~@4 d5 ~ d5 ~ d5 ~ d5 c5 b4 ~ a4 ~", J: "~@4 [f#5,d6]@2 a5 ~ [f#5,d6]@2 a5 ~ [f#5,d6]@2 a5 ~",
  K: "~@4 [g4,b4,d5] ~@7 [f#4,a4,d5] ~@3", L: "~@4 [g5,b5]@2 [a5,c6]@2 [b5,d6]@4 [g5,b5]@2 d6 ~",
  M: "[g5,c6,e6] ~ [g5,c6,e6] ~@3 [g5,c6,e6] ~@5 [g5,c6] ~@3", N: "[g5,c6,e6] ~@5 [g5,c6,e6] ~@5 [g5,c6] ~@3",
  O: "[g5,b5,d6] ~@5 f#5 ~@5 [f#5,a5] ~@3", P: "[g5,b5] ~@3 [g5,b5]@2 [a5,c6] ~ [b5,d6]@2 [a5,c6]@2 [g5,b5] ~@3",
  Q: "~@4 [g5,c6,e6] ~ [g5,c6,e6] ~@5 [g5,c6,e6] ~@3", R: "~@4 [g5,b5,d6] ~ [g5,b5,d6] ~@5 [g5,b5,d6] ~@3",
  S: "~@4 d4@2 e4 ~ e4@2 c4@2 b3@2 a3 ~", T: "~@4 [g4,b4,d5] ~@3 [f#4,d5]@4 [a4,c5]@4",
  U: "~@4 d6@2 d6 ~ d6 ~ d6 ~ d6 ~ d6@2, [g4,b4] ~", V: "~@3 b5 ~@3 c6, d6@7 ~ e6@8, b5 g5 c6 g5, ~@2 d5@6 ~@2 e5@5 ~",
  W: "f#5 ~@5 b5 a5, d6@3 a5@2 c6@2 ~, ~ d5@7, ~ f#5@3, ~@8 d6@7 ~",
  X: "~@3 [b5,d6] ~@3 [c6,e6], [b5,d6]@4 g5@5 ~ e5@6, ~ d5@3 [c6,e6]@2 g5@2", // Bm C Bm C
  Y: "f#5 ~@3 d6 c6 b5 a5, d6@3 a5@3 ~@2, ~@2 d5@13 ~, ~ f#5@3", Z: "[b5,d6] d5 [b5,d6] d5 [a5,c6] d5 [a5,c6] d5",
  AA: "[b5,d6]@2 d5@2 [b5,d6]@2 d5@2 [a5,c6]@2 d5@2 c#5@2 d5 ~", // Bm Am
  AB: "[[b5,d6] d5 [b5,d6] d5 [b5,d6] d5 [a5,c6] ~@5 f5@4, ~@7 d5@2 ~@7, ~ [g5,b5]]/2", // Bm Am G
  AC: "~@4 [g5,c6,e6] ~ [g5,c6,e6] ~@5 [g5,c6,e6] ~ [g5,c6,e6] ~", // C
  AD: "~@4 [g5,b5,d6] ~ [g5,b5,d6] ~@5 [f#5,a5,d6] ~ [f#5,a5,d6] ~", // G D
  AE: "~@4 [b5,d6]@2 [a5,c6] ~ [g5,b5]@2 [a5,c6] ~ [b5,d6] ~@3", AF: "~@4 d6@2 e6 ~ d6@2 c6@2 b5@2 a5 ~, ~@8 e6 ~@7",
  AG: "~@4 [f#5,d6]@2 a5 ~ d6@2 c6 ~ b5@2 a5 ~, ~@8 f#5 ~@7", AH: "~@4 [f#4,d5]@2 a4 ~ d5@2 c5 ~ b4@2 a4 ~",
  AI: "~@4 [g4,b4,d5] ~ [g4,b4,d5] ~@5 [f#4,a4,d5] ~ [f#4,a4,d5] ~", AJ: "~@4 d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~",
  AK: "[b5,d6]@2 d5 ~ [b5,d6]@2 d5 ~ [a5,c6]@2 d5 ~ [a5,c6]@2 d5 ~", // Bm Am
  AL: "[g5,b5]@2 d5 ~ [g5,b5]@2 d5 ~ [a5,c6]@2 g5 [d5,e5,f5,f#5] [a4,b4,c5] ~@3", // G Am
  AM: "~@4 [b4,d5,g5] ~@7 [a4,d5,f#5] ~@3", AN: "~@4 d5 ~ d5 ~ [b4,d5,g5] ~@7",
})).s("gm_drawbar_organ").gain(0.38).pan(0.7)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D A B A D E F E G H D H I F@4 J K F G K J L M H I H I G N O N P D H I F Q G@2 R S O F T@2 U M P I P V O@4 W
  O@2 X
>`.pickRestart({
  A: "g2 c3", B: "d2@7 ~ d2@8", C: "g2@7 ~ c3@8", D: "d2@7 ~ d2@7 ~", E: "g2@7 ~ d2@8", F: "g2@7 ~ d2@7 ~",
  G: "g2@7 ~ d2@6 ~@2", H: "g2@7 ~ c3@7 ~", I: "d2@7 ~ d2@6 ~@2", J: "c3@7 ~ g2@7 ~", K: "c3@6 ~@2 g2@7 ~",
  L: "g2@6 ~@2 g2@7 ~", M: "d2@6 ~@2 d2@5 ~@3", N: "g2@6 ~@2 d2@5 ~@3", O: "g2@3 ~ d2@3 ~", P: "g2@3 ~ c3@3 ~",
  Q: "g2@6 ~@2 d2@7 ~", R: "c3@5 ~@3 g2@6 ~@2", S: "c3@5 ~@3 g2@7 ~", T: "c3@3 ~ g2@3 ~", U: "g2@5 ~@3 g2@6 ~@2",
  V: "d2@3 ~ d2@3 ~", W: "g2@5 ~@3 d2@5 ~@3", X: "g2@2 ~@2 d2@2 ~@2 g2@3 ~@5",
})).s("gm_acoustic_bass").gain(0.38)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F@2 G H I J K L M N O P Q R S T U V W X Y Z AA E F@2 G H I J K L M N O P Q R S T U V W X Y Z AA E F@2 G H
  I J K H I J AB
>`.pickRestart({
  A: "[b2,d3,g3,b3,g4] [d3,g3,b3,g4]!2 [g3,b3,g4] [g3,c4,e4]!2 [c3,e3,g3,c4,e4] [g3,c4,e4], ~@2 b2@5 ~ e3@4 ~@4", // G C
  B: "[a3,c4,f#4]!2 [d3,a3,c4,f#4]!2 [a3,c4,f#4]!2 [d3,a3,c4,f#4] [c4,f#4], d3 ~ d3 ~", // F#dim D7 F#dim D7 Cdim
  C: "[b3,g4] g4 [b2,d3,g3,g4] [g3,b3,g4] [e3,g3,c4,e4]!2 [c3,e3,g3,c4,e4] [c4,e4], [b2,d3,g3] ~ c3 ~, ~ b3@2 ~@5", // Em G C G
  D: "[c4,f#4]!2 [d3,a3,c4,f#4] [c4,f#4]!3 [d3,a3,c4,f#4] [c4,f#4], a2, [d3,a3] ~ [d3,a3] ~", // Cdim D7 Cdim D7 Cdim D5
  E: "[g3,b3,g4]@2 [g3,b3,g4]@2 [b2,d3,g3,b3,g4]@2 [g3,b3,g4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~, [b2,d3] ~ [c3,e3] ~", // G C Bm C
  F: "[[a3,c4,f#4]!2 [d3,a3,c4,f#4] [a3,c4,f#4]!3 [a2,d3,a3,c4,f#4] [a3,c4,f#4] [b3,g4]!2 [g3,b3,g4]!2 [e3,g3,c4,e4]!2 [c3,e3,g3,c4,e4] [e3,g3,c4,e4], a2@4 [a2,d3]@2 ~@2 b2@3 ~ c3@2 ~@2, d3@4 ~@10 d3@4 d3@5 ~@9, ~@4 g3 ~@3]/2", // F#dim D7 F#dim D7 F#dim Em G C …
  G: "[a2,a3,c4,f#4] [a3,c4,f#4] [d3,a3,c4,f#4] [c4,f#4] [d3,a3,c4,f#4]!3 [a3,c4,f#4], d3 ~@3, ~@2 a2@5 ~ a2@8", // F#dim D7 Cdim D7 F#dim
  H: "[b2,d3,g3,b3,g4]!3 [g3,b3,g4] [a3,c4,f#4]!2 [d3,a3,c4,f#4] [a3,c4,f#4]", // G F#dim D7 F#dim
  I: "[b3,g4]!2 [g2,b2,d3,g3,b3,g4] [d3,g3,b3,g4] [a3,c4,f#4]!2 [a2,d3,a3,c4,f#4] [a3,c4,f#4], [g2,b2,d3,g3] ~ d3 ~", // Em G F#dim D7 F#dim G
  J: "[d3,b3,g4]!2 [b2,d3,g3,b3,g4] [g3,b3,g4] [a3,c4,f#4]!2 [a2,d3,a3,c4,f#4] [a3,c4,f#4], g2@7 ~@9, [b2,g3] ~ d3 ~", // G F#dim D7 F#dim Em
  K: "[d3,g3,b3,g4]!2 [g3,b3,g4]!2 [a3,c4,f#4]!2 [d3,a3,c4,f#4]!2, [g2,b2]@7 ~@9, ~ d3!2 ~", // G F#dim D7 G
  L: "[b2,d3,g3,b3,g4] [d3,g3,b3,g4]!2 [b2,d3,g3,b3,g4] [g3,c4,e4]!2 [c3,e3,g3,c4,e4] [e3,g3,c4,e4], ~ b2@2 ~ [c3,e3]@2 ~@2", // G C
  M: "[a3,c4,f#4]!2 [d3,a3,c4,f#4]!2 [a3,c4,f#4]!2 [d3,a3,c4,f#4] [a3,c4,f#4], a2!2, d3 ~ d3 ~", // F#dim D7 F#dim D7 F#dim
  N: "[g3,b3,g4]!2 [b2,d3,g3,b3,g4] [g3,b3,g4] [c3,g3,c4,e4] [c3,c4,e4] [c3,e3,c4,e4] [g3,c4,e4], g2@7 ~@3 g3@4 ~@2, [b2,d3] ~ e3 ~", // G C Bm
  O: "[d3,a3,c4,f#4]!2 [a2,d3,a3,c4,f#4] [a3,c4,f#4] [a2,a3,c4,f#4] [a3,c4,f#4] [d3,a3,c4,f#4] [a3,c4,f#4], ~@2 d3 ~", // D7 F#dim D7 F#dim
  P: "[g3,b3,g4]!2 [b2,d3,g3,b3,g4] [g3,b3,g4] [f#3,c4,f#4] [a2,d3,f#3,c4,f#4]!2 [f#3,c4,f#4], g2@7 ~@9, [b2,d3] ~@3", // G F#dim D7 F#dim Bm
  Q: "[d3,b3,g4]!2 [b2,d3,g3,b3,g4] [g3,b3,g4] [d3,a3,c4,f#4]!2 [a2,d3,a3,c4,f#4] [a3,c4,f#4], g2@7 ~@9, [b2,g3] ~@3", // G D7 F#dim Em
  R: "[g3,b3,g4]!2 [b2,d3,g3,b3,g4] [d3,g3,b3,g4] [a3,c4,f#4] [d3,a3,c4,f#4]!2 [a3,c4,f#4], g2@7 ~@9, [b2,d3] ~@3", // G F#dim D7 F#dim Bm
  S: "[g3,b3,g4]!2 [b2,d3,g3,b3,g4] [b3,g4] [b3,f4] [d3,g3,b3,f4] [b2,d3,g3,b3,f4] [b2,g3,b3,f4], g2@6 b2 ~ g2@7 ~, [b2,d3]@2 ~ g3@2 ~@3, ~@2 b2 ~", // G Em Bdim G7 Bm
  T: "[g3,c4,e4]!2 [c3,e3,g3,c4,e4] [e3,g3,c4,e4] [c3,g3,c4,e4]!2 [c3,e3,g3,c4,e4] [c4,e4], [c3,e3] ~ e3 ~", // C
  U: "[c3,e3,g3,c4,e4] [e3,g3,c4,e4] [c3,e3,g3,c4,e4]!2 [e3,g3,c4,e4]!2 [c3,e3,g3,c4,e4] [e3,g3,c4,e4], ~@2 c3 ~", // C
  V: "[d3,g3,b3,g4]!3 [b3,g4] [c4,f#4]!2 [d3,a3,c4,f#4] [a3,c4,f#4], [g2,b2]@7 ~ a2@8, ~@2 [d3,a3] ~", // G Em Cdim D7 F#dim G D5
  W: "[g3,b3,g4]@2 [g3,b3,g4]@2 [g2,b2,g3,b3,g4]@2 [g3,b3,g4]@2 [b2,g3,b3,g4]@2 ~ b2 [b2,d3,g3,b3,g4]@2 [g3,b3,g4]@2, d3@3 ~, [g2,b2]@2 ~@3 [b2,g3,b3,g4] ~@2", // G Em G Em
  X: "[g3,c4,e4]!2 [c3,e3,g3,c4,e4] [e3,g3,c4,e4] [g3,c4,e4]!2 [c3,e3,g3,c4,e4] [e3,g3,c4,e4], [c3,e3] ~ [c3,e3] ~", // C
  Y: "[e3,g3,c4,e4]!3 [g3,c4,e4] [e3,g3,c4,e4]!3 [g3,c4,e4], c3@3 ~ c3@3 ~", // C
  Z: "[b2,d3,g3,b3,g4]!4 [g3,b3,g4]!2 [b2,g3,b3,g4] [g3,b3,g4], ~ d3, ~@2 b2 ~", // G Em G
  AA: "[a3,c4,f#4]!2 [d3,a3,c4,f#4]!2 [a3,c4,f#4]!2 [d3,a3,c4,f#4] [a3,c4,f#4], a2, d3 ~ d3 ~", // F#dim D7 F#dim D7 F#dim
  AB: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,a3,c4,f#4]@4 [g2,g3,b3,g4]@5 ~@3, [g2,b2]@7 ~@9", // G D7 G
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~ [x!2]!13 [x ~@2 x!2 ~@3] [x!2] [x ~@2 x!2 ~@3] [x!2]!47 [x!3 ~]>").gain(0.38)

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

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

stack(drawbar_organ, bass, acoustic_guitar_steel, kick, snare, tambourine)

More by Buddy Holly