Strudelify
Locomotive Breath cover art

1971 · Original Masters

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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@36 A B C B C B C B C B C D E B C B C F G D E B C B C B C B C B C B C D E B C B C F G D E B C B C B C H C B C D I B C
  B C F G D I B C B C B C B C B J D E B K B C F G D L B C B C B C B M B M N@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@3 ~ d1@3 ~",
  D: "b0@3 ~ b0@3 ~ b0@3 ~ b0@3 ~", E: "b0@3 ~ b0@3 ~ b0@3 ~ d1@3 ~", F: "g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~ g0 ~",
  G: "a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~", H: "e1@3 ~ e1@3 ~ e1@2 ~@2 e1@3 ~", I: "b0@3 ~ b0@2 b0 ~ b0@3 ~ d1@4",
  J: "e1@2 b0@3 ~ b0@2 g1 ~ g1@2 d1@3 ~", K: "e1@2 b0@3 ~ b0@2 g1@4 d1@4", L: "b0@2 b0@3 ~ b0@2 b0@3 ~ d1@3 ~",
  M: "e1@2 b0@3 ~ b0@2 g1@4 d1@3 ~", N: "[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 F L M N O P F Q R S T U V U F W X K Y U Z AA X AB AC AD AE C AF AG R AH AI U AJ AK F AL J
  P F AM F AN AO AK F AP AQ Q AR AS AT U AU U AV AP AW U AX AP D AY AI U AZ AP BA Q R BB BC U BD BE BF BG BD AP BH@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 ~ 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] ~", // E5
  L: "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
  M: "~@2 [b3,f#4] ~ [b3,f#4] ~ f#4 ~ [b3,f#4]@3 ~ [a3,d4]@3 ~", // B5 D5
  N: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~ e4 ~ [b3,e4] ~ e4 ~ [b3,e4] ~", // E5
  O: "e4 ~ b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~, ~@2 e4 ~@13", P: "[b3,e4] ~ e4 ~ [b3,e4] ~@5 [b3,e4]@3 ~ [b3,e4]@2",
  Q: "[g3,d4]@15 ~", R: "[a3,e4]@15 ~", S: "[b3,d#4,f#4] ~@3 [b3,f#4] ~@3 [b3,f#4] ~@3 f#4 ~ [b3,f#4]@2",
  T: "~@2 f#4 ~ f#4 ~ f#4 ~ [b3,f#4]@2 ~@2 [a3,d4]@3 ~", U: "[b3,e4] ~@3 [b3,e4] ~@5 [b3,e4]@2 ~@2 [b3,e4]@2",
  V: "~@2 e4 ~ e4 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@4", W: "[b3,e4] ~ e4 ~ [b3,e4] ~@5 [b3,e4]@2 ~@2 [b3,e4] ~",
  X: "~@2 [b3,e4] ~@3 b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~", Y: "e4 ~ b3 ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  Z: "~@2 b3 ~ b3 ~@3 [d4,g4]@3 ~ [a3,d4]@3 ~", AA: "~@4 [b3,e4] ~@5 [b3,e4] ~ e4 ~ [b3,e4] ~",
  AB: "[b3,f#4] ~@3 [b3,f#4] ~ f#4 ~ f#4 ~ [b3,f#4] ~ f#4 ~ [b3,f#4] ~", // B5
  AC: "~@2 [b3,f#4] ~ f#4 ~ f#4 ~ [b3,f#4]@3 ~ [a3,d4]@4", AD: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~@3 [b3,e4] ~@3 [b3,e4]@2",
  AE: "~@2 [b3,e4] ~ e4 ~@3 [d4,g4]@3 ~ [a3,d4]@3 ~", AF: "~@2 b3@3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@2 ~@2",
  AG: "[g3,d4]@15 ~, e4 ~@15", AH: "[b3,d#4,f#4] ~ f#4 ~@3 [b3,f#4]@2 ~@8",
  AI: "~@2 [b3,f#4]@2 ~@2 f#4 ~ [b3,f#4]@3 ~ [a3,d4]@3 ~", AJ: "~@2 b3@3 ~@3 [d4,g4]@3 ~ [a3,d4]@3 ~",
  AK: "[b3,e4] ~@3 [b3,e4] ~ e4 ~ e4 ~ [b3,e4]@2 ~@2 [b3,e4]@2", // E5
  AL: "[b3,e4] ~@3 [b3,e4] ~ e4 ~@3 [b3,e4] ~@3 [b3,e4]@2", // E5
  AM: "[b3,e4] ~ e4 ~ [b3,e4] ~ e4 ~@3 [b3,e4]@2 e4 ~ [b3,e4]@2", // E5
  AN: "[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
  AO: "~@2 [b3,f#4] ~ [b3,f#4] ~@3 [b3,f#4]@3 ~ [a3,d4]@3 ~", // B5 D5
  AP: "[b3,e4] ~@3 [b3,e4] ~@3 e4 ~ [b3,e4]@2 ~@2 [b3,e4]@2", AQ: "~@8 d4@3 ~ [a3,d4]@3 ~, ~@8 g4 ~@7",
  AR: "[a3,e4]@15 ~, d4 ~@15", AS: "[b3,f#4] ~@5 [b3,d#4,f#4]@2 ~@8", AT: "~@2 f#4 ~ [b3,f#4] ~ [b3,f#4] ~@5 [a3,d4]@4",
  AU: "~@6 b3 ~ [b3,g4]@2 ~@2 [a3,d4]@3 ~", AV: "~@4 [b3,f#4] ~ [b3,f#4] ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  AW: "~@4 b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@3 ~", AX: "~@8 [d4,g4]@3 ~ [a3,d4]@3 ~",
  AY: "[b3,f#4]@2 ~@2 [b3,f#4] ~ [b3,f#4]@2 ~@2 f#4 ~ [b3,f#4] ~@3", AZ: "~@2 b3@5 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  BA: "~@2 b3 ~ b3 ~ b3 ~ [d4,g4]@3 ~ [a3,d4]@2 ~@2", // G5 D5
  BB: "[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
  BC: "~@2 f#4 ~ f#4 ~@3 [b3,f#4]@3 ~ [a3,d4]@4", BD: "~@2 [b3,f#4]@5 ~ [d4,g4]@3 ~ [a3,d4]@3 ~",
  BE: "[b3,e4] ~@3 [b3,e4] ~@3 e4 ~ [b3,e4] ~@3 [b3,e4]@2", // E5
  BF: "~@2 [b3,d#4,f#4]@2 ~@2 [b3,f#4] ~ [d4,g4]@3 ~ [a3,d4]@3 ~", BG: "[b3,e4] ~@3 [b3,e4] ~@5 [b3,e4] ~@3 [b3,e4] ~",
  BH: "[~@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 V Q P R P R P R P R P R T AA V Q P R
  P AB Y AC V R P R P R P R P R AD AA V Q P R P AB AE AF V AG P R P R P R P R AH AA V R P R P AI AE AC AJ AK@2 AL AM AN
  AO AP AQ AR AS AT@2 ~
>`.pickRestart({
  A: "~@3 b2",
  B: "[~@9 [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 ~@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 ~, ~@10 g5@2 ~@3 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 e5@2 g5 ~ a5 a#5 b5 ~, ~@2 e4@5 ~@9, ~ b3 ~@2 [g2,d4,g4]@2 [d2,a3,d4]@2", // E F#7 A5 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 [g2,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 ~@8 [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 ~ [e2,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 ~@8 f#5@3 ~@14, ~@8 b5 ~@3 [d3,d4]@4 [b3,e4]@17 ~ e4@5 ~@9 [b3,e4]@16, ~@12 [d2,a3,g6]@2 ~ e2@3 ~@6 e3 ~@7 [e2,e3]@2 ~ b3@2 ~ b3 ~@5 d2@2 ~@18, ~@16 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 ~@2 [d5,g5]@2 ~@7", // 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: "[~@2 e5@12 ~@20 [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,b3]@4 [d3,a3,d4]@3 ~, ~@4 f#3 ~@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: "[b2,f#3,b3]", AB: "[g3,d4,g4]@7 ~", AC: "[b3,f#4,b4]@7 ~",
  AD: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3]@3 ~, ~@12 d4 ~@3", AE: "[a3,e4,a4]@15 ~", AF: "[b3,f#4,b4]@13 ~@3",
  AG: "[e3,b3,e4]@7 ~", AH: "~@2 [e3,b3,e4]@6 [g3,d4,g4]@3 ~ [d3,a3]@2 ~@2, ~@12 d4 ~@3", AI: "[g3,d4,g4]@15 ~",
  AJ: "~@2 [b2,f#3,b3]@5 ~ [b2,b3]@3 b3 [d3,a3,d4]@3 ~, ~@4 f#3 ~@3", // B5 B D5
  AK: "[~@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
  AL: "e5@11 ~ d5 e5 g5 d5, [e3,b3,e4]", // E5
  AM: "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
  AN: "d6 b5 a5 b5 a5 g5 f#5 ~ d5 [d#5,e5] b4 ~ b4 ~ a4 ~, [e3,b3,e4]", // Emaj7 E5
  AO: "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
  AP: "d5 g5 e5 a5 g5 b5 a5 d6 a#5 b5 ~ d6 e6 a#5 b5 d6, [e3,b3,e4]", // E5
  AQ: "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
  AR: "[e3,b3,e4], g6 ~", // E5
  AS: "~@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
  AT: "[[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 D E L@2 M@4 D N O@2 P@2 ~@5 Q R S D T U@2 V@3 W X Y Z AA AB@2 ~@10 AC@3 AD AE@2 AF@2 AG
  AH AG AI AJ ~@3 AK@2 AL AM AN@3 AO AP@2 AQ@2 AR@2 AS AT AU@2 AV@3
>`.pickRestart({
  A: "~@2 e4@5 ~ g4@4 d4@3 ~", B: "e4@13 ~@3", C: "~ b3@3 d4@2 b3@2", D: "d4 e4 ~ e4@5", E: "~ b3@3 g4@2 d4@2",
  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: "[g4 d4@2 e4@6 b3@3 g4@2 d4@2]/2", M: "[b5@28 ~ b3 d4 ~]/4", N: "~@2 b3@3 ~@3 d4@2 b3 ~ d4@2 ~@2",
  O: "[d4@2 g4@2 e4@14 b3@2 ~@4 a3 b3 d4 ~ b3 ~ d4 ~]/2", P: "[d4@2 e4@21 ~ d4@2 ~@2 b3@2 ~@2]/2",
  Q: "b3@2 b3 ~ d4@2 ~@2 g4@2 e4@2 d4@2 e4@2", R: "b3@13 ~@3", S: "~@8 b3 a3 b3@2 d4@2 b3 ~",
  T: "~@2 d4 ~@5 d4 ~@3 d4 ~@3", U: "[d4@2 e4@21 ~ g4@4 d4 ~@3]/2", V: "[b5@23 ~]/3",
  W: "~@2 b3@2 ~@4 b3@3 ~ [a3,d4]@3 ~", X: "~@4 [b3,e4] ~@5 e4@2 ~@2 e4@2",
  Y: "~@2 [b3,d4,e4] ~@5 [d4,g4]@3 ~ [a3,d4]@3 ~", Z: "~@4 [b3,e4] ~@5 e4 ~@5",
  AA: "e4@2 d4 ~ e4 ~ g4 ~ f#4 d4 ~@2 b3@2 d4@2", AB: "[e4@24 d4@3 ~ b3 ~ a3 ~]/2", AC: "b5/3", AD: "~@3 d4",
  AE: "[e4 ~@3 e4 ~@3 e4 ~ d4@8 b3 ~@5 g4@2 d4 ~ e4@2 b3 ~]/2", AF: "[d4@2 e4@17 ~ d4 ~ b3 ~ b3@2 a3 ~ b3 ~ d4 ~]/2",
  AG: "d4 e4@7", AH: "~@2 b3 d4 e4@2 g4@2 e4@2 d4@2 e4@2 b3 ~", AI: "~@2 d4@2 b3@2 a3 ~ g3 ~ f#3@2 d3@4", AJ: "e3",
  AK: "[~@4 e4 ~@3 e4@2 b3 ~ d4@2 e4@10 ~@8]/2", AL: "e4@2 d4 ~ e4@12", AM: "~@8 d4@2 e4@2 g4 ~@3", AN: "[b5@3 ~]/3",
  AO: "~@6 [a3,d4] ~", AP: "[e4@2 d4 ~ e4@2 g4@2 d4@2 ~@8 b3@13 ~, ~@5 e4@7 ~@4]/2",
  AQ: "[e4@10 b3@2 d4@2 e4@9 ~@5 b3@2 ~@2]/2",
  AR: "[d4@2 e4 ~ e4 ~@3 d4@2 e4 ~@3 e4@5 ~ b3 ~ b3 ~ g4@3 ~ [a3,d4]@3 ~]/2", // D5
  AS: "[b3,e4] ~@3 [b3,e4] ~@3 [a3,d4]@2 [b3,e4]@2 ~@4", AT: "~@2 [d4,g4]@2 ~@6 d4 ~ d4 ~@3",
  AU: "[[a3,b3,d4] ~ e4 ~ e4 ~ e4@2 e4@13 ~@3 d4@4 a3@3 ~]/2", AV: "[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@8 E@2 D@2 F@2 G@2 H@2 I J D@2 K@2 L M N@2 F@2 O@2 D@2 P@2 G@2 Q@2 D@2 R@2 D@2 S@2 D@2 T@2 D@2 U@2 G@2 Q@2
  D@8 V W T@2 D@2 X@2 G@2 Q@2 Y@4 R@2 L Z AA@2 AB@2 ~
>`.pickRestart({
  A: "~@8 [d5,g5]@3 ~ [a4,d5]@3 ~, ~@12 b4 ~@3", B: "[b4,e5] ~ [b4,e5] ~@5",
  C: "~@2 b4@6 [d5,g5]@3 ~ [a4,d5]@3 ~, ~@2 e5@3 ~@11", D: "[[b4,e5]@18 b4@5 ~ [d5,g5]@3 ~ [a4,d5]@3 ~]/2",
  E: "[b4@27 ~ [a4,d5]@4]/2", F: "[[b4,e5]@18 b4@6 [d5,g5]@3 ~ [a4,d5]@2 ~@2]/2",
  G: "[g5@16 [c#5,e5,a5]@15 ~, b5@31 ~, d5@7 ~@9]/2", H: "[[e5,f#5,b5]@13 ~ [a4,d5]@2, ~@28 c5 ~@3]/2",
  I: "[b4,e5] ~@3", J: "~@2 b4@5 ~ [d5,g5]@3 ~ [a4,d5]@3 ~", K: "[[b4,e5]@18 b4@3 ~ b4 ~ [d5,g5]@3 ~ [a4,d5]@3 ~]/2",
  L: "[b4,e5]", M: "~@2 b4@4 ~@2 [d5,g5]@3 ~ [a4,d5]@3 ~", N: "[[b4,e5]@18 b4@2 ~@4 [d5,g5]@3 ~ [a4,d5]@3 ~]/2",
  O: "[~@8 f#4@17 ~@3 [a4,d5]@4, b4@7 ~]/2", P: "[[b4,e5]@24 [d5,g5]@3 ~ d5@2 ~@2, ~@28 a4 ~@3]/2",
  Q: "[[e5,f#5,b5]@13 ~ [a4,d5]@2]/2", R: "[[b4,e5]@18 [b4,f#5]@6 [d5,g5]@3 ~ [a4,d5]@3 ~]/2",
  S: "[[b4,e5]@18 [b4,f#5]@2 ~@2 b4 ~ [d5,g5]@3 ~ [a4,d5]@3 ~]/2", T: "[[f#4,b4]@27 ~ [a4,d5]@4]/2",
  U: "[[b4,e5]@18 b4@6 [d5,g5]@3 ~ [a4,d5] ~@3]/2", V: "~ b4@3, e5", W: "~@2 b4@6 [d5,g5]@3 ~ [a4,d5]@3 ~, e5",
  X: "[[b4,e5]@18 [b4,f#5]@5 ~ [d5,g5]@3 ~ d5@2 ~@2, ~@28 a4 ~@3]/2", Y: "[b4@24 [d5,g5]@4 [a4,d5]@3 ~, e5@19 ~@13]/2",
  Z: "~ [b4,b5]@3 [d5,g5]@2 [a4,d5]@2", AA: "[[b4,e5]@18 ~ d5@5 [d5,g5]@4 [a4,d5]@4]/2", AB: "[[b4,e5]@3 ~]/2",
})).s("gm_rock_organ").gain(0.45)
// … 58 more lines

More by Jethro Tull