Strudelify
Locomotive Breath cover art

1990 · Living in the Past

Locomotive Breath

Jethro Tull

KeyE minorTempo136 bpm
0:00/0:00
// Locomotive Breath — Jethro Tull
// 136 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 2 "BASS" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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.

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@36 A B C B D B C B D B D E F B G B D H I E F B G B C B C B D B D B C E J B D B D K L E M N C B D O D P C B D E Q B C
  P R K L S T B D B D B D B D B U E F B G B G K L V W B G B C B C B G B G X@2 ~
>`.pickRestart({
  A: "~@2 b0@3 ~ b0@2 g1@4 d1@3 ~", B: "e1@3 ~ e1@3 ~ e1@3 ~ e1@3 ~", C: "e1@2 b0@3 ~ b0@2 g1@4 d1@3 ~",
  D: "e1@2 b0@3 ~ b0@2 g1@3 ~ d1@3 ~", E: "b0@3 ~ b0@3 ~ b0@3 ~ b0@3 ~", F: "b0@3 ~ b0@3 ~ b0@3 ~ d1@3 ~",
  G: "e1@2 b0@3 ~ b0@2 g1@4 d1@4", H: "g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0@2",
  I: "a0@2 a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~", J: "b0@3 ~ b0@3 ~ b0@3 ~ d1@4",
  K: "g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~", L: "a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~",
  M: "b0@3 ~ b0@2 ~@2 b0@3 ~ d1@3 ~", N: "e1@3 ~ e1@3 ~ e1@3 ~ e1@2 ~@2", O: "e1@3 ~ e1@3 ~ e1@2 ~@2 e1@2 ~@2",
  P: "e1@3 ~ e1@3 ~ e1@2 ~@2 e1@3 ~", Q: "b0@3 ~ b0@2 b0 ~ b0@3 ~ d1@4", R: "e1@2 b0@3 ~ b0@2 g1@3 ~ d1@4",
  S: "b0@2 ~@2 b0@2 ~@2 b0@3 ~ b0@3 ~", T: "b0@3 ~ b0 ~ b0 ~ b0@3 ~ d1@4", U: "e1@2 b0@3 ~ b0@2 g1 ~ g1@2 d1@3 ~",
  V: "b0@2 ~@2 b0@2 ~@2 b0@2 ~@2 b0@3 ~", W: "b0@2 b0@3 ~ b0@2 b0@3 ~ d1@3 ~", X: "[e0@11 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@34 A@2 B C D E F G H I J K L M N O P Q L R S T U V W X Y Z AA K AB V AC AD AA AE AF AG AH C AI AJ AK AL AM AN AO AP
  L AQ J Q L AR L AS AT AU L AV AW R AX AY AZ BA BB BC BD BE BF BA BG BH D BI BJ V BK BH BL R S BM BN V BO AV BP BQ BO
  BH BR@6
>`.pickRestart({
  A: "[e3,b3,e4]/2", B: "~@2 b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@4, ~@2 d#4 ~@13",
  C: "[b3,e4] ~ e4 ~ [b3,e4] ~@3 e4 ~ [b3,e4] ~@3 [b3,e4]@2", D: "~@2 b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  E: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~ [b3,e4] ~ [b3,e4]@2 e4 ~ [b3,e4]@2", // E5
  F: "~@2 b3@2 b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~", G: "[b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@3",
  H: "e4 ~ b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~, ~@12 b3 ~@3", // G5 D5
  I: "[b3,e4] ~@3 [b3,e4] ~ e4 ~ e4 ~ [b3,e4] ~@3 [b3,e4] ~", J: "~@2 [b3,e4] ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  K: "[b3,e4] ~ e4 ~ [b3,e4] ~@3 e4 ~ [b3,e4] ~@3 [b3,e4] ~", L: "~@2 b3 ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  M: "b3 ~ b3 ~ [b3,d#4,f#4] ~ f#4 ~ [b3,f#4] ~ [b3,d#4,f#4]@2 f#4 ~ [b3,f#4]@2", // B B5 B B5
  N: "~@2 [b3,f#4] ~ [b3,f#4] ~ f#4 ~ [b3,f#4]@3 ~ [a3,d4]@3 ~", // B5 D5
  O: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~ e4 ~ [b3,e4] ~ e4 ~ [b3,e4] ~", // E5
  P: "e4 ~ b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~, ~@2 e4 ~@13", Q: "[b3,e4] ~ e4 ~ [b3,e4] ~@5 [b3,e4]@3 ~ [b3,e4]@2",
  R: "[g3,d4]@15 ~", S: "[a3,e4]@15 ~", T: "[b3,d#4,f#4] ~@3 [b3,f#4] ~@3 [b3,f#4] ~@3 f#4 ~ [b3,f#4]@2",
  U: "~@2 f#4 ~ f#4 ~ f#4 ~ [b3,f#4]@2 ~@2 [a3,d4]@3 ~", V: "[b3,e4] ~@3 [b3,e4] ~@5 [b3,e4]@2 ~@2 [b3,e4]@2",
  W: "~@2 e4 ~ e4 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@4", X: "[b3,e4]@2 ~@2 [b3,e4] ~@5 [b3,e4]@2 ~@2 [b3,e4]@2",
  Y: "~@2 b3 ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@4", Z: "[b3,e4] ~ e4 ~ [b3,e4] ~@5 [b3,e4]@2 ~@2 [b3,e4] ~",
  AA: "~@2 [b3,e4] ~@3 b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~", AB: "e4 ~ b3 ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  AC: "~@2 b3 ~ b3 ~@3 [d4,g4]@3 ~ [a3,d4]@3 ~", AD: "~@4 [b3,e4] ~@5 [b3,e4] ~ e4 ~ [b3,e4] ~",
  AE: "[b3,f#4] ~@3 [b3,f#4] ~ f#4 ~ f#4 ~ [b3,f#4] ~ f#4 ~ [b3,f#4] ~", // B5
  AF: "~@2 [b3,f#4] ~ f#4 ~ f#4 ~ [b3,f#4]@3 ~ [a3,d4]@4", AG: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~@3 [b3,e4] ~@3 [b3,e4]@2",
  AH: "~@2 [b3,e4] ~ e4 ~@3 [d4,g4]@3 ~ [a3,d4]@3 ~", AI: "~@2 b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@2 ~@2",
  AJ: "[g3,d4]@15 ~, e4 ~@15", AK: "[a3,e4]", AL: "[b3,d#4,f#4] ~ f#4 ~@3 [b3,f#4]@2 ~@8",
  AM: "~@2 [b3,f#4]@2 ~@2 f#4 ~ [b3,f#4]@3 ~ [a3,d4]@3 ~", AN: "[b3,e4] ~@3 [b3,e4]@2 ~@4 [b3,e4]@2 ~@2 [b3,e4]@2",
  AO: "~@2 b3@3 ~@3 [d4,g4]@3 ~ [a3,d4]@3 ~", AP: "[b3,e4] ~@3 [b3,e4] ~ e4 ~ e4 ~ [b3,e4]@2 ~@2 [b3,e4]@2",
  AQ: "[b3,e4] ~@3 [b3,e4] ~ e4 ~@3 [b3,e4] ~@3 [b3,e4]@2", // E5
  AR: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~@3 [b3,e4]@2 e4 ~ [b3,e4]@2", // E5
  AS: "[b3,f#4] ~ f#4 ~ f#4 ~ [b3,f#4] ~ f#4 ~ [b3,f#4]@2 f#4 ~ [b3,d#4,f#4]@2, ~@10 d#4 ~@5", // B5 B
  AT: "~@2 [b3,f#4] ~ [b3,f#4] ~@3 [b3,f#4]@3 ~ [a3,d4]@3 ~", // B5 D5
  AU: "[b3,e4] ~@3 [b3,e4] ~ e4 ~ e4 ~ [b3,e4]@3 ~ [b3,e4]@2", AV: "[b3,e4] ~@3 [b3,e4] ~@3 e4 ~ [b3,e4] ~@3 [b3,e4]@2",
  AW: "~@8 d4@3 ~ [a3,d4]@3 ~, ~@8 g4 ~@7", AX: "[a3,e4]@15 ~, d4 ~@15", AY: "[b3,f#4] ~@5 [b3,d#4,f#4]@2 ~@8",
  AZ: "~@2 f#4 ~ [b3,f#4] ~ [b3,f#4] ~@5 [a3,d4]@4", BA: "[b3,e4] ~@3 [b3,e4] ~@5 [b3,e4]@3 ~ [b3,e4]@2",
  BB: "~@6 b3 ~ [b3,g4]@2 ~@2 [a3,d4]@3 ~", BC: "[b3,e4]@2 ~@2 [b3,e4]@2 ~@4 [b3,e4] ~@3 [b3,e4]@2",
  BD: "~@4 [b3,f#4] ~ [b3,f#4] ~ [d4,g4]@3 ~ [a3,d4]@3 ~", BE: "[b3,e4] ~@3 [b3,e4] ~@3 e4 ~ [b3,e4]@3 ~ [b3,e4]@2",
  BF: "~@4 b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~", BG: "~@8 [d4,g4]@3 ~ [a3,d4]@3 ~",
  BH: "[b3,e4] ~@3 [b3,e4] ~@3 e4 ~ [b3,e4]@2 ~@2 [b3,e4]@2", // E5
  BI: "[b3,f#4]@2 ~@2 [b3,f#4] ~ [b3,f#4]@2 ~@2 f#4 ~ [b3,f#4] ~@3", // B5
  BJ: "~@2 [b3,f#4]@3 ~ f#4 ~ [b3,f#4]@3 ~ [a3,d4]@3 ~", BK: "~@2 b3@5 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  BL: "~@2 b3 ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@2 ~@2", // G5 D5
  BM: "[b3,f#4] ~@3 [b3,f#4] ~ f#4 ~ f#4 ~ [b3,d#4,f#4]@2 ~@2 [b3,f#4]@2", // B5 B B5
  BN: "~@2 f#4 ~ f#4 ~@3 [b3,f#4]@3 ~ [a3,d4]@4", BO: "~@2 [b3,f#4]@5 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  BP: "~@2 [b3,d#4,f#4]@2 ~@2 [b3,f#4] ~ [d4,g4]@3 ~ [a3,d4]@3 ~", BQ: "[b3,e4] ~@3 [b3,e4] ~@5 [b3,e4] ~@3 [b3,e4] ~",
  BR: "[~@2 b3 ~ b3@3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~ [b3,e4] ~@3 [b3,e4] ~@5 [b3,e4]@2 ~@2 [b3,e4]@2 ~@2 [b3,f#4]@6 [d4,g4]@3 ~ [a3,d4]@3 ~@7 e3@28 ~@14, ~@4 f#4 ~@3 f#4@26 ~@6 f#4@20 ~@36, ~@16 [b3,e4]@11 ~@5]/6", // G5 D5 E5 B5 G5 D5 E5
})).s("gm_overdriven_guitar").gain(0.2).pan(0.4)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~@37 A ~ B ~ C D E F A F G H I D J ~@3 K L M N O P Q R S D T U V W X Y Z AA A ~@3 AB AC T H AD ~ AE AF AG P AH AI AJ
  AK AD ~ AL AM ~@2 AN AO AP AQ AR AS AT AS M AU AV ~ AW AC M ~ AT ~@3 AX AY AZ ~ BA ~ T ~ BB BC AZ ~@3 BD
>`.pickRestart({
  A: "~@2 b3 ~@3 [b3,e4] ~ b3 ~@3 [b3,e4] ~@3", B: "~@2 b3 ~@3 b3 ~@5 b3 ~@3",
  C: "~@2 [b3,e4] ~@3 [b3,e4] ~@3 e4 ~@3 [b3,e4] ~", D: "b3 ~@15", E: "~@2 [b3,e4] ~@3 b3 ~ b3 ~@3 [b3,e4] ~@3",
  F: "[b3,e4] ~@15", G: "~@6 b3 ~@5 b3 ~@3", H: "~@6 b3 ~@9", I: "~@2 b3 ~@3 b3 ~ b3 ~@3 b3 ~@3",
  J: "~@2 b3 ~@3 [b3,e4] ~ [b3,e4] ~@7", K: "~@6 [b3,f#4] ~@3 [b3,f#4] ~ b3 ~@3", L: "~@2 b3 ~ b3 ~ b3 ~@9",
  M: "~@2 [b3,e4] ~@3 [b3,e4] ~ [b3,e4] ~@7", N: "~@2 b3 ~ b3 ~@11",
  O: "~@2 [b3,e4] ~@3 [b3,e4] ~ [b3,e4] ~@3 [b3,e4] ~@3", P: "~@2 e4 ~ e4 ~@11",
  Q: "~@2 b3 ~@3 [b3,e4] ~ [b3,e4] ~@3 [b3,e4] ~@3", R: "e4 ~@3 b3 ~@11", S: "~@2 b3 ~@3 [b3,e4] ~ b3 ~@3 e4 ~@3",
  T: "~@2 [b3,e4] ~@3 [b3,e4] ~ [b3,e4] ~@3 e4 ~@3", U: "~@2 e4 ~ e4 ~ [b3,e4] ~@9",
  V: "~@6 [b3,e4] ~ [b3,e4] ~@3 b3 ~@3", W: "[b3,e4] ~@3 b3 ~@11", X: "~@2 [b3,f#4] ~@3 b3 ~ b3 ~@3 b3 ~@3",
  Y: "f#4 ~@3 b3 ~ b3 ~@9", Z: "~@2 b3 ~@3 b3 ~ [b3,e4] ~@3 [b3,e4] ~@3", AA: "~@4 b3 ~ [b3,e4] ~@9",
  AB: "~@2 b3 ~ [b3,f#4] ~@3 f#4 ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~", AC: "[b3,f#4] ~@5 b3 ~@9",
  AD: "~@2 [b3,e4] ~@3 b3 ~ b3 ~@7", AE: "~@2 [b3,e4] ~@3 b3 ~ [b3,e4] ~@3 [b3,e4] ~@3", AF: "~@4 e4 ~@11",
  AG: "~@2 b3 ~@3 [b3,e4] ~ [b3,e4] ~@3 e4 ~@3", AH: "~@2 b3 ~@3 b3 ~ [b3,e4] ~@3 b3 ~@3", AI: "~@2 e4 ~@13",
  AJ: "~@2 b3 ~ b3 ~@3 b3 ~@7", AK: "f#4 ~@5 [b3,f#4] ~@9", AL: "~@2 [b3,e4] ~@3 [b3,e4] ~ b3 ~@3 [b3,e4] ~@3",
  AM: "~@2 [b3,e4] ~ [b3,e4] ~ [b3,e4] ~@9", // E5
  AN: "~@2 [b3,f#4] ~ [b3,f#4] ~@3 [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~", AO: "[b3,f#4] ~ b3 ~@13",
  AP: "~@2 [b3,e4] ~@3 [b3,e4] ~ e4 ~@7", AQ: "~@2 [b3,e4] ~@13", AR: "~@2 e4 ~@3 [b3,e4] ~ e4 ~@3 e4 ~@3",
  AS: "~@2 b3 ~@13", AT: "~@2 e4 ~@3 [b3,e4] ~ b3 ~@7", AU: "~@2 [b3,e4]@3 ~ [b3,e4] ~@9",
  AV: "~@2 [b3,e4] ~@3 [b3,e4] ~ b3 ~@7", AW: "~@2 [b3,f#4] ~@5 [b3,f#4] ~ b3 ~@3 [b3,f#4] ~",
  AX: "~@2 [b3,f#4] ~@3 b3 ~ b3 ~@3 f#4 ~@3", AY: "f#4 ~ b3 ~ b3 ~ [b3,f#4] ~@9",
  AZ: "~@2 [b3,e4] ~@3 e4 ~ [b3,e4] ~@7", BA: "~@2 [b3,e4] ~@3 [b3,e4] ~ b3 ~@3 e4 ~@3",
  BB: "~@2 [b3,e4] ~@3 e4 ~ b3 ~@7", BC: "~@2 f#4 ~@3 f#4 ~@9", BD: "~@2 e3 ~@13",
})).s("gm_overdriven_guitar").gain(0.12).pan(0.4)

// other · flute
const flute = note("<~@83 A B C D E F G H I@2 J@2 K L M N O P@2 Q ~@29>".pickRestart({
  A: "~@4 e5 ~ g5 a5 b5 ~ b5 ~ a5 g5 a5 ~", B: "e5 ~ e5@7 d5 f#5 d5 b4 d5 e5 ~",
  C: "~@2 e5 g5 b5 ~ b5 ~ a5 g5 a5 g5 e5 ~ d5 ~", D: "e5@8 ~ b4 d5 e5 g5 e5 d5 b4", E: "e5 ~ e5@9 ~ b5 g5 a5 ~",
  F: "a5 ~ g5 ~ f#5 ~ g5 ~ f#5 d5 e5 [b4,c5] ~ b4 ~ b4", G: "~ b4 d5 ~ d5 ~ d5@5 ~ a4 b4 [d5,e5] ~",
  H: "g5 e5!2 f#5 d5 e5 d5 b4 ~ a4 g4 ~ f#4 d4@2 ~",
  I: "[e4 ~@3 b4 d5 e5 ~ g5 ~ g5 ~ f#5 d5 e5@7 ~ b4 ~ b5 a5 g5 f#5 a5 g5 f#5 e5]/2",
  J: "[f#5 d5 e5 b4@6 ~ a4 b4 a4 g4 f#4 g4@5 a#4 b4 d5 e5 f#5 e5 d5 b4 a4 g#4 b4!2]/2",
  K: "b5 d5 a5 b5 d5 a5 b5 d5 a5 b5 d5 a5 b5 d5 a5 b5", L: "e5 a5 b5 e5 a5 b5 e5 a5 b5 e5 a5 b5 e5 a5 b5 e5",
  M: "f#5 a5 b5 f#5 a5 b5 f#5 a5 b5 f#5 a5 b5 f#5 a5 b5 f#5",
  N: "a5 b5 [f#5,a5] a5 b5 a5 f#5 e5 d5 b4 a4 g4 ~ f#4 [d4,e4] ~", O: "e4@2 ~@2 e5 b4 d5 ~ d5 ~ b4 ~ e5 f#5 g5 ~",
  P: "[b5 ~ b5 ~ a5 g5 f#5 g5 f#5 d5 e5 b4 c5 a4 ~ a4@7 b4 ~ d5@3 b4@5]/2",
  Q: "~ e5 f#5 g5 b5 a5 g5 f#5 g5 f#5 e5 f#5 d5 e5 d5 b4",
})).s("gm_flute").gain(0.71).pan(0.6)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B@3 C@3 D@3 E@4 F@6 G H I@5 J@4 K L M N@3 O P Q P R S R P R T U V W P R P X Y Z AA Q P R P R P R AB R P R AC AD AE
  AF P R P AG Y AH AA Q P R P R P R P R AI AD AJ AF AK R P AL AM AN AA AF AO R P R P R AB R AP AD AA R P R P AQ AR AN AS
  AT@2 AU AV AW AX AY AZ BA BB BC@2 ~
>`.pickRestart({
  A: "~@11 b2@4 ~",
  B: "[~@8 [g4,b4]@3 ~ [g4,b4]@4 [f#4,a4] ~ [g4,b4] ~ [a4,c5] ~ [g4,b4] ~ [f#4,a4] ~ [e4,g4]@18 b2@4, e3@11 ~]/3", // G F#m G Am G F#m Em
  C: "[~@8 [e4,g4]@2 ~ [e4,g4]@2 ~ [e4,f#4] [e4,g4] ~ [e4,a4] ~@2 e4@7 ~ [b2,b3,d#4]@14 ~@2 b2@4, e3@29 ~@19, ~@10 f#4@11 ~@3]/3", // Em Esus2 Em A5 B
  D: "[~@8 [g4,b4]@2 ~ [g4,b4]@2 [f#4,a4] ~ [g4,b4] ~ [a4,c5] ~ [b4,d5] ~ [c5,e5] ~@2 [b4,d#5,f#5]@18 ~@2 b2@4, e3@7 ~]/3", // G F#m G Am Bm C B
  E: "[~@8 [g4,b4]@3 ~ [g4,b4]@4 a4@2 [g4,b4]@2 a4 c5 ~ b4@3 ~ b4@3 ~@4 d5@3 ~@7 c#3@2 ~ [b2,b4,e5,f#5,b5]@14 ~@3, e3@23 [d#3,f#5]@8 [d3,b4,g5]@7 [c#3,e5,a5]@6 ~@20, ~@16 f#4 ~@25 a4@4 ~@18]/4", // G Bsus4 D#m G A
  F: "[~@3 a#4 b4 d5 ~ d#5 e5 g5@2 e5 d5 ~ b4 ~@7 e4@3 ~@3 d4@3 ~@20 b4@4 a#4 a4@2 ~ g4 ~@3 d4 ~ b3@2 ~ [e3,b3]@2 ~@2 [e3,b3] ~@3 [e3,b3] ~@3 [e3,b3]@2 [d4,g4]@2 [e3,b3]@2 d4 ~ [d4,g4]@3 [d3,a3,d4]@3 ~@2, ~@15 a4@2 g4@2 ~@2 g4@5 ~@5 e4@9 b2@21 ~@3 e3 a3 ~@21 g3@3 ~@6, ~@16 e4@4 ~@5 b3@8 b4@4 b3@14 [a#4,e5]@2 ~@2 b4@14 ~@27, ~@18 a4@8 ~@7 f#4@22 e5@2 ~@3 e4@30 ~@6, ~@34 e3@27 ~@3 [d4,g4]@17 ~@15]/6", // E5 G5 E5 G5 D5 A#dim G5
  G: "e3@2 ~ a#5 e3@2 ~@2 [e2,e3]@2 ~@2 [e2,e3] ~@3, [b3,e4], ~@3 [b5,e6]@12 ~, ~@4 a#5 ~@11", // E E5
  H: "[e2,e3]@2 f#4 [a#5,b5,e6] [e2,e3,a5]@2 [b3,g5] ~ [g4,e5]@2 g5 ~ a5 a#5 b5 ~, ~@2 e4@5 ~@9, ~@2 b3@2 ~@3 [g2,d4]@4 ~ [d2,a3,d4]@4", // E A5 Em C G5 D5
  I: "[[e2,e3,d6]@2 ~@2 [e2,e3]@2 ~@2 [e2,e3]@2 ~@2 [e2,e3]@2 ~@3 a#5 b3@2 e6 ~ b3 e6 d6 b5 ~ a#5 [a#5,b5] ~ e6 b5 a5 ~ g5 ~ e3@2 ~@2 [e2,e3]@2 ~@2 [e2,e3]@2 ~@2 e3@2 a#4 b4 ~@2 [b3,e4] b4 [d4,g4]@3 a4 b4 d5 ~ e5 [e3,d5,g5]@3 b4 ~@2 a4 ~ e5@4 [e2,e3]@2 ~@2, [b3,e4]@16 [e2,e3]@2 b5 ~ [e2,e3]@4 [g2,d4]@4 [d2,d4]@4 e2@6 ~@10 e2 ~@3 [e2,e3,d5]@4 ~@4 d2@2 ~ e2@3 ~@2 [e2,e3]@2 ~@2 e2@2 ~@6, ~@3 e6@15 e4@5 ~ g4@25 ~@15 [b3,e4]@16, ~@21 g6@2 ~@5 a3@2 ~@2 [b3,e4]@16 ~@2 [b3,e4]@2 ~@3 g2@4 ~ [d3,a3,d4]@4 ~@8 e3 ~@7, ~@35 f#5@8 ~@8 e5@2 ~@14 e5@2 d5@2 ~ b4@8]/5", // E7 E Bmaj7 E E5 G5 Em7 E …
  J: "[~ b4 [b3,e4]@2 g5 a5 [b3,e4,a#5] ~ [g2,d4]@2 d6 d#6 d6!2 ~@2 [e3,d6,g6]@2 [b5,e6]@2 [e2,e3]@2 [a5,d6]@2 e2@2 ~@2 [e2,e3]@2 ~@3 g5 a5 ~ d6 e6 g6@2 e6 [b5,d6] d6 b5 a5 [a5,b5] g5 ~ e3@2 f#5@2 [e2,e3]@2 ~@2 [e2,e3]@2 ~@2 [e2,e3]@2 ~@2, [e2,e3]@2 [d5,e5] ~ [e2,e3]@4 g4@31 ~@25, ~@8 b5 ~@2 [d2,d3,a3]@3 ~ e2@3 ~@6 e3 ~@7 [e2,e3]@2 ~ b3@2 ~ b3 ~@5 d2@2 ~ [e2,f#5]@3 ~@14, ~@12 d4@4 [b3,e4]@17 ~ e4@5 ~@9 [b3,e4]@16, ~@12 g6@2 ~@2 e6 ~@7 [b5,e6]@9 ~ b5@2 [e2,e3]@4 [g2,d4,g4]@3 ~ [d3,a3,d4]@4 ~@16]/4", // E5 E G5 Em7 E5 E D5 E …
  K: "[e2,e3]@2 ~@2 e5@2 b3 e4 [g2,d4,g4,e5]@3 d5 [d4,b4]@3 a4, ~ [b3,e4] [e2,e3]@2 ~@2 [d2,a3] ~, ~@3 d5@2 ~ [d5,g5]@2 ~@8", // E Em7 G E5 E D5 G5
  L: "[e2,e3,a4]@3 ~ [e2,e3]@2 ~@2 [e2,e3]@2 ~@2 [e2,e3]@2 ~@2, [b3,e4,b4,e5], ~@3 d5@13", // A5 E E5
  M: "~ d#4 [d#4,e4] ~@2 a4 [b3,e4,a#4] b4 [e3,d4,g4]@2 d#5 e5 [g2,g5] a5 ~ [f#5,a#5], [e2,e3]@2 b3@2 [e2,e3]@4 ~@4 [a3,d4]@3 ~, ~@3 g4@2 ~@3 d5 ~@7", // Emaj7 E Em7 G F# E D5
  N: "[~ e5@12 ~@21 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~, e2@35 ~@13, [b3,d4,e4]@11 ~@5, e3@5 ~@3, [g5,b5]@7 ~@17]/3", // E5 G5 D5 E7 G
  O: "[e3,b3,e4]@13 ~@3", P: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~", Q: "[e3,b3,e4]@15 ~", R: "[e3,b3,e4]",
  S: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~, ~@12 b3 ~@3", // E5 G5 D5
  T: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3]@4, ~@6 d4 ~", U: "~ g#3 ~@14, [b2,f#3,b3]@5 ~@3",
  V: "~@2 [b2,f#3,b3]@5 ~ [b2,f#3,b3]@4 [d3,a3,d4]@3 ~", W: "[e3,b3,e4]@11 ~@5", X: "[b3,d4,g4]@7 ~",
  Y: "[a3,e4,a4]@3 ~", Z: "[b2,b3], [f#4,b4]@7 ~", AA: "~@2 [b2,f#3,b3]@5 ~ [b2,b3]@4 [d3,a3,d4]@3 ~, ~@4 f#3 ~@3",
  AB: "~@2 [e3,b3,e4]@5 ~ [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~", // E5 G5 D5
  AC: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3]@3 ~, ~@12 d4 ~@3", AD: "[b2,f#3,b3]",
  AE: "~@2 [b2,f#3,b3]@5 ~ [b2,f#3,b3]@3 ~ [d3,a3,d4]@3 ~", AF: "[e3,b3,e4]@7 ~", AG: "[g3,d4,g4]@7 ~",
  AH: "[b3,f#4,b4]@7 ~", AI: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [a3,d4]@2 ~@2, ~@3 d3",
  AJ: "~@2 [b2,f#3,b3]@5 ~ [b2,b3]@4 [d3,a3,d4]@4, ~@4 f#3 ~@3", // B5 B D5
  AK: "~@2 [e3,e4]@6 [g3,d4,g4]@2 ~@2 [d3,a3,d4]@3 ~, ~ b3@2 ~@5", AL: "[d4,g4]@13 ~@3, g3@15 ~", AM: "[a3,e4,a4]@15 ~",
  AN: "[b3,f#4,b4]@13 ~@3", AO: "~@2 [e3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~, ~ b3@2 ~@5",
  AP: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3]@2 ~@2, ~@12 d4 ~@3", AQ: "[g3,d4,g4]@15 ~",
  AR: "[e4,a4]@15 ~, a3@13 ~@3", AS: "~@2 [b2,f#3,b3]@5 ~ [b2,b3]@3 b3 [d3,a3,d4]@3 ~, ~@4 f#3 ~@3",
  AT: "[~@4 [a#5,c#6,d#6,e6] ~ a#5 b5@11 d#5 e5 a#5 b5 ~@2 b5 a5 ~ f#5 [d3,a3,d4]@2 d5@2, [e3,b3,e4]@17 ~ [e3,b3,e4]@6 [g3,d4,g4]@3 ~@5, ~@6 e6@11 ~@5 e6@2 ~@8, ~@7 a#5 ~@15 d6@2 ~@7]/2", // A#dim D5 E5 G5
  AU: "e5@11 ~ d5 e5 g5 d5, [e3,b3,e4]", // E5
  AV: "e5 ~ d5 e5 g5 a5 a#5 b5 d6 e6 g6 e6 d6 e6 d6 b5, ~ g5@2 ~@13, ~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~", // E5 G5 D5
  AW: "d6 b5 a5 b5 a5 g5 f#5 ~ d5 [d#5,e5] b4 ~ b4 ~ a4 ~, [e3,b3,e4]", // Emaj7 E5
  AX: "g4 ~ e4@2 ~ f#4 e4 g4 f#4 a4 ~ b4 a4 d5 b4 e5, ~@2 [e3,b3]@6 [g3,d4,g4]@3 ~ [d3,a3,d4]@3 ~, ~@2 f#4 ~ e4@2 ~@4 g4@2 ~@4", // E5 G5 D5
  AY: "d5 g5 e5 a5 g5 b5 a5 d6 a#5 b5 ~ d6 e6 a#5 b5 d6, [e3,b3,e4]", // E5
  AZ: "c6 e6 a#5 b5 d6 e6 a#5 ~ b5 [c6,d6] e6 a#5 [d3,a3,d4]@2 d6 e6, ~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [a#5,b5] ~@3", // Csus2 D5 E5 G5 Bmaj7
  BA: "[e3,b3,e4], g6 ~", // E5
  BB: "~@2 d6 d#6 e6 g6 b6 g6 [g3,d4,g4]@3 [a#5,d#6] [d3,a3,d4,b5]@2 a5 g5, ~@2 [e3,b3,e4]@6 e6 ~@2 e6@3 ~@2", // G5 D#5 Bm7 E5
  BC: "[[e3,b3,d4,e4]@5 ~@3, e5@9 ~@23]/2", // E7
})).s("gm_piano").gain(0.48).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@36 A B C D E F@2 G H I@2 J K L M N@2 O@4 L P Q@2 R@2 ~@5 S T U V@2 W@2 X@3 Y Z AA AB AC AD@2 ~@10 AE@3 AF AG@2 AH@2
  AI AJ AK@2 AL ~@3 AM@2 AN AO AP@3 AQ AR@2 AS@2 AT@2 AU AV AW@2 AX@3
>`.pickRestart({
  A: "~@2 e4@5 ~ g4@4 d4@3 ~", B: "e4@13 ~@3", C: "~ b3@3 d4@2 b3@2", D: "d4@2 e4@3 ~ e4@10", E: "~@2 b3@6 g4@4 d4@3 ~",
  F: "[e4@9 b3@3 g4@2 d4@2]/2", G: "e4@9 ~@7", H: "~@2 d4 ~@5 d4 ~ b3 ~ d4@2 b3 ~",
  I: "[d4@2 e4@2 ~@2 e4@17 ~ d4@2 b3@2 a3@3 ~]/2", J: "b3@9 ~@7", K: "~@8 a3@2 b3@2 d4@2 b3 ~", L: "d4 e4 ~ e4@5",
  M: "~ b3@3 g4@2 d4@2", N: "[g4 d4@2 e4@6 b3@3 g4@2 d4@2]/2", O: "[b5@28 ~ b3 d4 ~]/4",
  P: "~@2 b3@3 ~@3 d4@2 b3 ~ d4@2 ~@2", Q: "[d4@2 g4@2 e4@14 b3@2 ~@4 a3 b3 d4 ~ b3 ~ d4 ~]/2",
  R: "[d4@2 e4@21 ~ d4@2 ~@2 b3@2 ~@2]/2", S: "b3@2 b3 ~ d4@2 ~@2 g4@2 e4@2 d4@2 e4@2", T: "b3@13 ~@3",
  U: "~@8 b3 a3 b3@2 d4@2 b3 ~", V: "[d4@2 e4@2 ~@2 e4@12 d4 ~@5 d4 ~@3 d4 ~@3]/2", W: "[d4@2 e4@21 ~ g4@4 d4 ~@3]/2",
  X: "[b5@23 ~]/3", Y: "~@2 b3@2 ~@4 b3@3 ~ [a3,d4]@3 ~", Z: "~@4 [b3,e4] ~@5 e4@2 ~@2 e4@2",
  AA: "~@2 [b3,d4,e4] ~@5 [d4,g4]@3 ~ [a3,d4]@3 ~", AB: "~@4 [b3,e4] ~@5 e4 ~@5",
  AC: "e4@2 d4 ~ e4 ~ g4 ~ f#4 d4 ~@2 b3@2 d4@2", AD: "[e4@24 d4@3 ~ b3 ~ a3 ~]/2", AE: "b5/3", AF: "~@3 d4",
  AG: "[e4 ~@3 e4 ~@3 e4 ~ d4@8 b3 ~@5 g4@2 d4 ~ e4@2 b3 ~]/2", AH: "[d4@2 e4@17 ~ d4 ~ b3 ~ b3@2 a3 ~ b3 ~ d4 ~]/2",
  AI: "d4 e4@7", AJ: "~@2 b3 d4 e4@2 g4@2 e4@2 d4@2 e4@2 b3 ~", AK: "[d4@2 e4@16 d4@2 b3@2 a3 ~ g3 ~ f#3@2 d3@4]/2",
  AL: "e3", AM: "[~@4 e4 ~@3 e4@2 b3 ~ d4@2 e4@10 ~@8]/2", AN: "e4@2 d4 ~ e4@12", AO: "~@8 d4@2 e4@2 g4 ~@3",
  AP: "[b5@3 ~]/3", AQ: "~@6 [a3,d4] ~", AR: "[e4@2 d4 ~ e4@2 g4@2 d4@2 ~@8 b3@13 ~, ~@5 e4@7 ~@4]/2",
  AS: "[e4@10 b3@2 d4@2 e4@9 ~@5 b3@2 ~@2]/2",
  AT: "[d4@2 e4 ~ e4 ~@3 d4@2 e4 ~@3 e4@5 ~ b3 ~ b3 ~ g4@3 ~ [a3,d4]@3 ~]/2", // D5
  AU: "[b3,e4] ~@3 [b3,e4] ~@3 [a3,d4]@2 [b3,e4]@2 ~@4", AV: "~@2 [d4,g4]@2 ~@6 d4 ~ d4 ~@3",
  AW: "[[a3,b3,d4] ~ e4 ~ e4 ~ e4@2 e4@13 ~@3 d4@4 a3@3 ~]/2", AX: "[b3@11 ~@5]/3",
})).s("gm_overdriven_guitar").gain(0.24).pan(0.7)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft_2 = note("<~@44 A ~@13 B ~@9 C ~@3 C ~@6 D A E F ~@43 G ~@5>".pickRestart({
  A: "~@6 d4 ~@9", B: "~@14 b3 ~", C: "~@6 b3 ~@9", D: "~@12 d4 ~@3", E: "b3 ~ b3 ~@3 b3 ~ b3 ~@7", F: "~@10 e4 ~@5",
  G: "~@14 d4 ~",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.7)

// chords · rock organ · "ELEC ORGAN"
const rock_organ = note(`<
  ~@36 A B C D@2 E@2 F@4 G@2 F@2 H@2 I@2 J@2 K L M@2 N@2 O P O Q R@2 S@2 F@2 T@2 I@2 U@2 E@2 V@2 M@2 W@2 H@2 X@2 D@2 Y@2
// … 78 more lines

More by Jethro Tull