Strudelify
Going to California cover art

Led Zeppelin IV

Going to California

Led Zeppelin

KeyD majorTempo150 bpm
0:00/0:00
// Going to California — Led Zeppelin
// 150 bpm, 2/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 "Guitar 2" acoustic guitar nylon (copy of ch 1 "Guitar 2" acoustic guitar nylon); ch 4 "Guitar 1" acoustic guitar steel (copy of ch 2 "Guitar 1" acoustic guitar steel)
// note: Full arrangement: all 268 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · acoustic guitar nylon · "Guitar 2"
const acoustic_guitar_nylon = note(`<
  A B A B A B A B A B A B A B A B C D C D C D C E A B A B A B A B C D C D C D C E A B A B A B A B C D C D C D C E A B A
  B A B A B F@2 G H I@2 J@2 K L M N O@2 P Q R Q R Q C D C D C D C E A B A B A B A B C D C D C D C E A B A B A B A B C D
  C D C D C E A B A B A B A B S T S T S T S T U@2 V W V W V X Y@8 Z W Z W Z W Z W R Q R Q R Q R Q C@8 R Q R Q R Q R Q
  C@8 R Q R Q R Q R Q C@8 R Q R Q R Q AA@2 AB AC AD@2 AE@2 AF@2 AG AC AH@2 AI Q AI Q R AJ R Q AK@2 R AL R AL R AL R AL R
  AL R AJ R Q AK@2 R AL R AL R AL R AL R AL
>`.pickRestart({
  A: "d2 d4 d3 d4", B: "d2 d4 d3@2", C: "g2 g3", D: "g2 e4 g3@2", E: "g2 e4 d2@2",
  F: "[[d2,f4]@2 [d3,f4] f4@2 e4 d3@2]/2", G: "[b2,d4]@2 d3 e4", H: "d4 d4@2 e4", I: "[d2@2 d4 f#4@3 d3@2]/2",
  J: "[[d2,a3]@2 d3 d4@2 d4 d3@2]/2", K: "f4@3 f4", L: "d3 e4@2 d4", M: "[b2,d4]@2 g3 e4", N: "d4!2 d3 e4",
  O: "[d2@2 f#4 d4@3 d3@2]/2", P: "d2@2 d3 c#4", Q: "d2 d3", R: "[d2,d4]@2 d3 d4", S: "a2 d4", T: "d3 d4",
  U: "[g3 b3 c#4 d4@2 c#4@2 c#4]/2", V: "a2@2 c#4 d4", W: "a2 c#4", X: "d2 c#4", Y: "d2 d4", Z: "[a2,d4]@2 c#4 d4",
  AA: "[a2@2 c4 c4@2 c4 c4@2]/2", AB: "d3 g3!2 e4", AC: "d4!2 g3 e4", AD: "[d2@2 a3 d4@2 d4 a3@2]/2",
  AE: "[[d2,d4]@2 d3 d4@2 d4 a3@2]/2", AF: "[f4@2 c4 f4@2 f4 c4@2]/2", AG: "b2 g3!2 e4", AH: "[d2 d4@2 d4@3 a3@2]/2",
  AI: "[d2,d4]@2 c#4 d4", AJ: "d2 a3", AK: "[[d2,d4]@2 d3 e4@3 d3@2]/2", AL: "d2@2 d3 d4",
})).s("gm_acoustic_guitar_nylon").gain(0.5).pan(1)

// other · acoustic guitar steel · "Guitar 1"
const acoustic_guitar_steel = note(`<
  ~@12 A B C D E@4 F@4 G@2 H I J@2 C I E@4 F@4 G@2 H I J@2 C I E@4 F@4 G@2 H I J@2 C I K L M N@3 O@2 K P Q M R@2 S@6 E@4
  F@4 G@2 H I J@2 C I T@4 U@4 V@3 W X@3 Y Z@4 AA AB AC@2 AD@2 AE@2 AF@2 AG AH AI@8 AJ@2 AK@2 AL AM AN AO AP@8 AQ@2 AR@2
  AS@3 AT AU@2 AV AW AX AY AZ BA BB@4 BC@4 BD@3 I BE@2 BF BG BB@4 BC@4 BD@3 I BE@2 BF BG BB@4 BH@4 BI BJ BK@2 BL BM BN
  BO K P Q M BP@2 BQ@2 BR BS BT BU BV BW BX@2 BY@5 AM BZ@5 CA CB CC@3 BY@5 AM BZ@5 CA CB CC@3
>`.pickRestart({
  A: "~@2 f#4 a4", B: "g4 a4 f#4 a4", C: "e4 a4 d4 a4", D: "e4 a4 f#4!2", E: "[g4@3 f#4@4 d4@2 g4@2 d4@5]/4",
  F: "[[d4,b4]@3 a4@4 [f#4,a4]@2 [g4,a4]@2 [f#4,a4]@2 e4@2 d4]/4", G: "[f#4@2 d4 [e4,a4]@2 a4@2 a4]/2",
  H: "d4 a4 d4 a4", I: "a3 b3 d4@2", J: "[f#4@2 f#4 [e4,a4]@2 [e4,a4]@2 a4]/2", K: "~@2 f4 e4", L: "d4 e4 d4@2",
  M: "f4 e4 d4 c4", N: "[d4@4 c4 d4@7 d4@24 a3@4 b3@4 b3@4]/3", O: "[a3@5 b3 a3@2]/2", P: "d4 c4 d4@2",
  Q: "f4 e4 d4 g4", R: "[d4@20 a4@4 a3 b3@7]/2",
  S: "[a3!2 b3 d4@2 d4@2 d4@2 a4 d5 e5@2 a4 d5 e5@2 a4 d5 e5@2 a4 d5 e5]/6", T: "[g4@3 f#4@4 d4@2 [e4,g4]@2 d4@5]/4",
  U: "[[d4,b4]@3 [f#4,a4]@4 [f#4,a4]@2 [g4,a4]@2 [f#4,a4]@2 [e4,a4]@2 [d4,a4]]/4", // G F#m Gsus2 F#m A5 D5
  V: "[e4 f#4@7 f#4@4 e4@8 a4@8 d4@8 a4@8 a4@4]/3", W: "a3 b3 d4!2", X: "[e4@2 e4 [e4,a4]@2 [e4,a4] e4 d5@2 a4@2 a4]/3",
  Y: "d4 e4 f#4 e4", Z: "[g4@3 f#4@2 f#4@2 d4@2 e4@2 d4@2 d4@2 d4]/4", AA: "b4 d4 g4 b4", AB: "a4 d4 f#4 a4",
  AC: "[g4 a4 d4 a4@2 a4@3]/2", AD: "[f#4@2 f#4 e4@2 d4@2 d4]/2", AE: "[a3 b3 d4 [f#4,a4]@2 a4 b4 a4]/2",
  AF: "[d4 f#4!2 e4@2 a4 d4!2]/2", AG: "d4 e4 f#4 a4", AH: "a3 b3 d4 a4",
  AI: "[f4@2 a4 e4@2 a4@2 f4@2 a4@2 e4@2 a4@2 f4@2 f4@2 e4@2 f4@2 f4@2 f4@2 g4@2 f4 d4@2]/8", AJ: "[~@3 a4@2 a4!3]/2",
  AK: "[~ e5@2 a4@2 a4 a4@2]/2", AL: "g4 a4@15", AM: "a4 a4@2 e5", AN: "g4 f4", AO: "~@3 a4",
  AP: "[f4@2 f4 g4@4 f4@2 f4@2 g4@2 a4@2 a4@2 a4@2 a4@2 a4@2 a4@2 a4@2 a4@2 a4@3]/8", AQ: "[~@3 a4@5]/2",
  AR: "[~@3 a4@2 a4 f4@2]/2", AS: "[g4@5 a4@2 a#4@2 a4@2 a4]/3", AT: "f4 a4 e4 a4", AU: "[e4 f#4@11 a4@8 a4@4 g4@8]/2",
  AV: "f#4 a4 e4 a4", AW: "d4 a4 a3@2", AX: "b3 d4 c#4 e4", AY: "d4 a4 e4 a4", AZ: "f#4 a4 d4 a4", BA: "e4 a4 f#4@2",
  BB: "[g4@3 f#4@4 d4@2 e4@2 d4@2 b3!2 d4]/4",
  BC: "[g4@3 [f#4,a4]@4 [d4,a4]@2 [g4,a4]@2 [f#4,a4]@2 [d4,a4] e4 [d4,a4]]/4", // F#m D5 Gsus2 F#m D5
  BD: "[f#4@3 [e4,a4]@2 e4!2 d4@2 a4 e4 a4]/3", BE: "[g4@3 [f#4,a4]@2 e4 d4@2]/2", BF: "d4 e4!2 d4", BG: "d4 e4 f#4@2",
  BH: "[g4@3 [f#4,a4]@2 [f#4,a4]@2 [f#4,a4]@2 [g4,a4]@2 [f#4,a4]@2 d4 e4 d4]/4", BI: "f#4@2 e4!2", BJ: "d4@2 e4 d4",
  BK: "[a3 b3 d4 [e4,a4]@2 d4 d4@2]/2", BL: "[d4,g4]", BM: "e4!2 d4 a4", BN: "d4@2 d4 a4", BO: "c4 a4 d4 a4",
  BP: "[d4@2 f#4 a4@3 a3 b3]/2", BQ: "[d4@5 a4@2 a4]/2", BR: "~@3 g5", BS: "f5 e5 d5 c5", BT: "d5 e5 a5 g5",
  BU: "e5@2 d5@2 a4@2 f#4 a4", BV: "d5@2 a4!2", BW: "f#4 a4@3", BX: "[d5@3 d5@2 d5!3]/2",
  BY: "[d5 a4 f#4 e5@2 a4 f#4 e5@2 a4 f#4 e5@2 a4 f#4 e5@2 e5@2 e5]/5",
  BZ: "[e5 c#5 e5 e5@2 a4@2 a5@2 a4@2 e5@2 a4@2 e5@2 a4 d5 e5]/5", CA: "d4 a4 d5 e5", CB: "d4 a4 d5 a5",
  CC: "[d4 e4 f#4 d5@2 e5@2 a5@2 e5@2 d5]/3",
})).s("gm_acoustic_guitar_steel").gain(0.5).pan(0.1)

stack(acoustic_guitar_nylon, acoustic_guitar_steel)

More by Led Zeppelin