Strudelify
Planet Caravan cover art

1994 · Far Beyond Driven

Planet Caravan

Pantera

KeyE♭ minorTempo86 bpm
0:00/0:00
// Planet Caravan — Pantera
// 86 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar Fill.
setcpm(86/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, A@4 for four bars: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "Rhythm Guitar"
const acoustic_guitar_nylon = note("<A@7 B@72 C ~>".pickRestart({
  A: "[~@4 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 ~@6 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 ~@6 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 ~@6 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 eb3@2, eb2@9 ~@7 db3@6 bb3@8 ab3@11 ~@5 eb3@8 bb3@8 ab3@11 ~@5 eb3@8 bb3@8 ab3@11 ~@7, ~@2 bb2@7 ~@5 eb3@9 ~ db3@7 ~ eb2@9 ~@9 f3@5 ~@3 f3@5 ~@3 bb2@7 ~@7 db3@7 ~ db3@7 ~ eb2@9 ~@7, ~@18 f3@5 ~@3 f3@5 ~@3 bb2@7 ~@7 db3@7 ~ db3@7 ~ eb2@9 ~@9 f3@5 ~@3 f3@5 ~@3 bb2@7 ~@7]/7", // Ebm
  B: "[~@4 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 ~@6 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 ~@6 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 ~@6 gb3@2 ~@6 gb3@2 ~@6 gb3@2 [gb3,bb3,eb4]@3 ~ [f3,gb3,bb3,eb4]@4 eb3@2, db3@6 bb3@8 ab3@11 ~@5 eb3@8 bb3@8 ab3@11 ~@5 eb3@8 bb3@8 ab3@11 ~@5 eb3@8 bb3@8 ab3@11 ~@7, ~@2 f3@5 ~ db3@7 ~ eb2@9 ~@9 f3@5 ~@3 f3@5 ~@3 bb2@7 ~@7 db3@7 ~ db3@7 ~ eb2@9 ~@9 f3@5 ~@3 f3@5 ~@3 bb2@7 ~@7, ~@10 f3@5 ~@3 bb2@7 ~@7 db3@7 ~ db3@7 ~ eb2@9 ~@9 f3@5 ~@3 f3@5 ~@3 bb2@7 ~@7 db3@7 ~ db3@7 ~ eb2@9 ~@7]/8", // Ebm
  C: "~@2 gb3 ~@4 ab3, db3@6 bb3@9 ~, ~@2 f3@5 ~ db3@7 ~, ~@10 f3@5 ~, ~@3 gb3",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@2 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 A B A B A B C
>`.pickRestart({
  A: "eb2@6 eb2@4 eb2@2 ab2 bb2 db3@2", B: "db2@2 ~ db2 ab2 a2 ab2 gb2", C: "eb2@3 ~",
})).s("gm_electric_bass_finger").gain(0.3)

// other · electric guitar jazz · "Lead Guitar"
const electric_guitar_jazz = note("<~@54 A B C D E F G H I J K L M N@2 O@2 P Q R S T U V W X Y>".pickRestart({
  A: "f3@6 db3@2 eb3@7 ~", B: "~@2 eb3 gb3 ab3 ~ [ab3,a3] [gb3,ab3] ~ ab3 gb3 ~ gb3@2 eb3 db3",
  C: "eb3@3 db3 eb3 gb3 f3 db3 eb3@7 ~", D: "db3!2 gb3@2 ab3@2 ab3@2 ab3@2 gb3@2 eb3 gb3 eb3@2",
  E: "gb3 f3 eb3@5 ~@2 gb3 [bb3,eb4,f4] gb4 f4 eb4 f4 db4", F: "c4 db4 c4 db4 ab3 f3@5 ~@5 [gb3,bb3]",
  G: "[db4,f4] gb4 f4 eb4 ab4@2 f4 gb4 f4 eb4 ab4@2 db4 f4 gb4 f4", // Db
  H: "eb4@2 f4!2 gb4 f4 eb4 db4 c4 db4!2 c4 ~ c4 [gb3,ab3]!2, ~@6 bb3 ~", I: "[f3,gb3] [db3,f3]!2 eb3@5 ~ bb3 gb4@5 ~",
  J: "gb3 ab3@2 ab3 a3 ab3!2 a3 ab3 gb3 ab3 gb3 eb3@4", K: "gb3@2 ab3 a3 db4 eb4 [gb4,ab4]@2 eb4@4 eb4 ab4@3",
  L: "gb4 eb4 ab4 eb4 gb4 ab4 a4 ab4 eb4 ab4 gb4 ab4!2 gb4 ab4@2",
  M: "gb4@4 db5!2 [bb4,c5] gb4 c5!2 [ab4,b4] f4 b4!2 [ab4,bb4] f4", // Bbsus2 Abm Absus2
  N: "[bb4@4 ~@3 [gb4,bb4] [db5,eb5] ~ f5 gb5 ab5 ~ bb5@7 ~ bb5@6 gb5 [eb5,f5] [db5,gb5] db5]/2", // Gb Dbsus2 Ebsus2 Gb5
  O: "[eb5@8 ~ [gb4,ab4] [bb4,db5] bb4 ab4 gb4@6 ~ c4 db4 c4@2 f4 gb4 f4 gb4 f4@2 gb4@2]/2", // Gbsus2 Bbm
  P: "f4@8 c4 db4 c4 bb3 c4 ab3 gb3 f3", Q: "gb3 ab3 bb3 gb3 ab3 gb3 a3 ab3 gb3 db4@6 gb4",
  R: "[bb3,db4] [bb3,eb4] [eb4,gb4] [eb4,ab4] [eb4,gb4] [ab4,a4] [a4,bb4]!3 [gb4,ab4] [ab4,a4] [db5,eb5] [a4,bb4] [gb4,ab4] db4@2", // Bbm Eb5 Ebm Ab5 Ebm Amaj7 Bbmaj7 Gbsus2 …
  S: "eb5 db4@2 eb5 f4@2 eb5 f4@2 eb5 db4@5 [bb4,d5]", // Bb
  T: "[gb5,ab5,a5] [gb5,bb5] [eb5,f5] db5@4 [bb4,db5] [gb5,ab5] [gb5,g5] [eb5,ab5] [db5,eb5] [a4,bb4] [eb4,gb4] [eb4,ab4] bb3", // Gbm Gb Ebsus2 Bbm Gbsus2 Gmaj7 Ab5 Dbsus2 …
  U: "[d4,f5] ~@3 eb5 [db5,gb5] eb5 db5 eb5@4 a4 bb4 [c5,db5]@2, gb5 ~@3", V: "bb4 ab4@2 gb4 ab4@8 eb4 ab4 db4@2",
  W: "[gb4,ab4] [f4,gb4] [eb4,f4] [c4,db4]!2 [ab3,bb3] [eb3,gb3] [db3,eb3]!2 [e3,f3] [db3,gb3] [eb3,ab3] [bb3,db4] [d4,eb4] ~ [bb3,db4]", // Gbsus2 Gbmaj7 Ebsus2 Dbmaj7 Absus2 Ebm Dbsus2 Fmaj7 …
  X: "bb4@14 ~ [bb4,db5], f4 ~@15", Y: "[gb5,ab5,a5] [gb5,bb5] [eb5,f5] db5 eb5@12",
})).s("gm_electric_guitar_jazz").gain(0.4)

// other · acoustic guitar nylon · "Background FX" · Ebm Eb5 Ebm Eb5 Ebm Eb5 Ebm Eb5 …
const acoustic_guitar_nylon_2 = note(`<
  ~@27
  [[eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6]]!4
  ~@9
  [[eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6] [eb5,gb5] [bb5,eb6]]!2
  ~@39
>`).s("gm_acoustic_guitar_nylon").gain(0.13)

// drums · congas
const congas = s("conga:18").struct(`<
  ~ A B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B F D E B
  F D E B C G E B F D E B C D E H C D E B F ~
>`.pickRestart({
  A: "~@10 x!6", B: "~@2 x!3 ~@5 x!3 ~@3", C: "~@2 x!3 ~@5 x!6", D: "~@2 x!3 ~@11", E: "x!3 ~@7 x!6",
  F: "~@2 x!3 ~@4 x!7", G: "~@2 x!3 ~@3 x ~ x ~@5", H: "~@2 x!3 ~@4 x!4 ~@3",
})).gain(1.54)

// drums · congas
const congas_2 = s("conga:33").struct(`<
  ~@2 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C E A B C F G
  B C H A B I H A B C D J B C D A B C H A B K
>`.pickRestart({
  A: "x ~@2 x ~@3 x", B: "x ~@2 x!2 ~@3", C: "x ~@2 x ~ x!3", D: "~@2 x!3 ~@3", E: "~@4 x ~ x ~ x!2 ~@2 x!3 ~",
  F: "~@4 x ~ x ~ x ~@6 x", G: "x!2 ~ x ~@3 x", H: "~@4 x ~ x ~ x!3 ~@5", I: "x!2 ~ x!5", J: "x ~@5 x ~@7 x!2", K: "x",
})).gain(1.54)

stack(acoustic_guitar_nylon, bass, electric_guitar_jazz, acoustic_guitar_nylon_2, congas, congas_2)

More by Pantera