Strudelify
Cross Eyed Mary cover art

1996 · Aqualung

Cross Eyed Mary

Jethro Tull

KeyG majorTempo88 bpm
0:00/0:00
// Cross Eyed Mary — Jethro Tull
// 88 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 36, 4/4 at bar 37, 2/4 at bar 53, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A@2 B@2 C@2 D E F G F G H I J H@2 G K L M N O P M N O P Q@4 R@3 S T U V W@2 U V X@2 Y@3 Z AA@2 AB AC Q@4 R@3 S AD U
  V W@2 U V AE@2 AF AG AH AI AJ AK AL@3 AM
>`.pickRestart({
  A: "b2!3 ~ b2!3 ~", B: "c3!3 ~ c3!3 ~", C: "d3!3 ~ d3!3 ~", D: "e3!3 ~ e3!3 ~", E: "f3!3 ~ f3!3 ~",
  F: "e2 ~ e2 ~ e2 ~ e2 ~", G: "a#2 ~ a#2 ~ a#2 ~ a#2 ~", H: "c3 ~ c3 ~ c3 ~ c3 ~", I: "g#2 ~ g#2 ~ g#2 ~ g#2 ~",
  J: "d3 ~ d3 ~ d3 ~ d3 ~", K: "a2@4 a2@4 a2@4 ~@2 g#2 ~, ~@3 a2", L: "e2!2, f2 ~@15", M: "e2@3 ~ e2@2 ~@10",
  N: "f2@3 ~ f2@2 ~@10", O: "g2@3 ~ g2@2 ~@10", P: "a2@3 ~ a2@2 ~ c3@2 ~ e3@2 ~@2 g2@2",
  Q: "a2@2 ~ a2 c3 a2 ~ a2 ~ g2 ~@2 g2@4", R: "a#2@2 ~ a#2 c#3 a#2 ~ a#2 ~ g#2 ~@2 g#2@4",
  S: "c3@2 c3@2 c3@2 c3@2 d3!3 c3 d3@4", T: "~ b2!2 a2 b2@4 e2@3 e2 e2@2 ~@2",
  U: "e3 d3@2 b2@2 a2 g2@2 f2@3 f2 f2@2 ~@2", V: "f2@3 g2@2 a2 c3@2 g2@3 g2 g2@2 ~@2",
  W: "[g2 f#2@2 g2@2 b2 c3@2 d3@3 d3 d3@2 a2 c3@2 a2 c3@2 a2 c3 g2@2 e2@3 e2 e2@2 ~@2]/2",
  X: "[g2 f#2@2 g2@2 b2 c3@2 d3@3 d3 d3@2 a2 c3@2 a2 c3@2 a2 c3 g2@2 a2@2 ~ a2 c3 a2 ~ a2]/2",
  Y: "~ g2 ~@2 g2@4 a2@2 ~ a2 c3 a2 ~ a2", Z: "~ g2 ~@2 g2@4 a#2@2 ~ a#2 c#3 a#2 ~ a#2",
  AA: "~ g#2 ~@2 g#2@4 a#2@2 ~ a#2 c#3 a#2 ~ a#2", AB: "c#3 g#2 ~@2 g#2@4 c3@2 c3@2 c3@2 c3@2",
  AC: "d3!3 c3 d3@4 ~ b2!2 a2 b2@4", AD: "~ b2 ~ a2 b2@4 e2@3 e2 e2@2 ~@2",
  AE: "[g2 f#2@2 g2@2 b2 c3@2 d3@3 d3 d3@2 a2 c3@2 a2 c3@2 a2 c3 g2@2 d3!3 c3 d3@4]/2",
  AF: "~ b2 ~ a2 b2@4 e3@3 e3!4 ~", AG: "e3!4 ~@2 e3@2 c2@3 c2!5", AH: "c2!6 ~ c2 d2!8", AI: "d2!4 ~ d2!3 e2!8",
  AJ: "f2!8 e2@3 ~ e2@2 ~@2", AK: "~ a#2@3 ~ a#2@2 ~@2 c3@4 ~ c3@2", AL: "[~@3 d3@4 ~ d3@2 ~@3 e2@35]/3",
  AM: "e2@3 ~@5",
})).s("gm_acoustic_bass").gain(0.53)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note(`<
  ~ A@2 B@2 C@2 D E F G F G H I J H@2 G K ~ L M N O L M N O P@4 Q@3 ~@9 R S@3 T U@2 ~@2 P@4 Q@3 ~ V ~@8 W X Y Z AA AB AC
  ~@3
>`.pickRestart({
  A: "~@3 b2 ~@3 b2", B: "~@3 c3 ~@3 c3", C: "~@3 d3 ~@3 d3", D: "~@3 e3 ~@3 e3", E: "~@3 f3 ~@3 f3",
  F: "~@3 b1 ~@3 b1 ~@3 b1 ~@2 e2 ~", G: "~@3 f2 ~@3 f2 ~@3 f2 ~@2 a#2 ~", H: "~@3 g2 ~@3 g2 ~@3 g2 ~@2 c3 ~",
  I: "~@3 d#2 ~@3 d#2 ~@3 d#2 ~@2 g#2 ~", J: "~@3 a2 ~@3 a2 ~@3 a2 ~@2 d3 ~", K: "~@15 [f#2,g2]", L: "~@3 e2 ~@12",
  M: "~@3 f2 ~@12", N: "~@3 g2 ~@12", O: "~@3 a2 ~@2 a2 ~@2 a2 ~@2 a2 c3 ~@2", P: "~@6 e3 ~ c3 ~@7",
  Q: "~@6 f3 ~ c#3 ~@7", R: "~@14 e3 ~", S: "c3 ~@13 e3 ~", T: "c3 ~@13 f3 ~", U: "c#3 ~@13 f3 ~", V: "~@2 b2 ~@13",
  W: "~@2 b2 ~@12 e3", X: "~@2 e3 ~@5", Y: "~@6 c2 ~@9", Z: "~@4 d2 ~@11", AA: "~@11 e2 ~@4", AB: "~@4 a#2 ~@8 c3 ~@2",
  AC: "~@7 d3 ~@8",
})).s("gm_acoustic_bass").gain(0.3)

// other · flute
const flute = note("<~ A@8 B C B D E F G H I J K L ~@33 M N O P ~@14 Q R S T U V W X Y>".pickRestart({
  A: "[e4!2 [e4,g4]!4 [e5,g5] [g5,b5] [b5,d6] d6 ~@2 e5@2 d#5 d5@13 ~@4]/2", // Em G Bm
  B: "e4 [e4,g4] [e5,g5] [g5,b5] b5 d6 ~ b3 e4@2 ~ b3 e4@2 d#4!2", C: "d4@2 ~ a#3 d4@2 ~ a#3 d4@2 ~ a#3 d4 ~ d4!2",
  D: "d4@2 ~ a#3 d4@2 d4!4 ~ d4 d4@2 d4 ~", E: "e4 [e4,g4] [e5,g5] [g5,b5] b5 d6 ~ c4 e4@2 ~ e4 e4@2 e4!2",
  F: "d#4@2 ~ d#4 d#4@2 ~ d#4!3 ~ d#4 d#4@2 f4!2", G: "f#4@2 ~ f#4 f#4@2 ~ f#4!2 a4 ~ f#4 f#4@2 f4!2",
  H: "e4@2 ~ e4 e4@2 ~ e4 e4@2 ~ e4 e4@2 f#4!2", I: "g4@2 ~ g4 g4@2 ~ g4!3 ~ g4 g4@2 f#4!2",
  J: "f4@2 ~ f4 f4@2 ~ f4!3 ~ f4 f4@2 g4 ~",
  K: "g4 [g4,a4] a4 [g4,a4] g4 [g4,a4] a4 [g4,a4] g4 [g4,a4] a4 [g4,a4] g5 [g5,a5] a5 [b5,d6]", // Gsus2 Bm
  L: "e6 [d6,e6] d6 [d6,e6] e6 [d6,e6] d6 [d6,e6] e6 [d6,e6] d6 [d6,e6] e6 [d6,e6] d6 [d6,e6]", // Dsus2
  M: "~@4 d6 e6 e6@2 d6 e6 e6@2 e6 [a5,c6] g5 a5", // Am
  N: "a5 [a5,c6] [g5,a5] a5 c6 [g5,a5] a5!3 g5 [g5,a5] [e5,a5] g5@2 [e5,g5] e5", // Am Gsus2 A5 Em
  O: "[g5,a5] g5 c6 a5 [c6,d6] e6!3 ~ g6@2 f#6 e6 d6 e6 ~", P: "~@3 d#6 d6 c6 a5 g5 c6 g5 a5 ~@5", Q: "~@15 a5",
  R: "b5 e6 d6 a5 b5 g5!3 ~@8", S: "~@8 a4@3 a4 ~@4", T: "a#4@3 a#4 ~@4 e4@3 e4 ~@4",
  U: "~ [d4,e4] f4@2 f4 ~@4 e4 g4@3 g4 ~@2, ~@10 f4 ~@5", V: "~@3 f#4 a4@3 a4 ~@5 e6 d6 e6, ~@4 g4 ~@11",
  W: "d6 e6 d6 e6 d6 e6 d6 e6 d6 e6 [d6,e6] d6 ~ d6 e6 d6", X: "e6 d6 e6 d6 e6 d6 e6 d6 e6 d6 e6 d6 e6 d6 e6 d6",
  Y: "e6 [b5,d6] ~@14", // Bm
})).s("gm_flute").gain(0.5)

// other · flute · soft notes
const flute_soft = note("<~ A ~ A ~ A ~ A ~ B ~ B ~ B ~@41 C D E ~@15 F G H I J K ~ L>".pickRestart({
  A: "~ g4 ~@14", B: "~@4 d6 ~@11", C: "~@9 e5 ~@6", D: "~@2 a5 ~@12 e6", E: "~@9 a5 ~ a5 ~@4", F: "~@4 a5!3 e5 ~@8",
  G: "~@6 a4 ~", H: "~@2 a#4 ~@3 e4 ~", I: "~@5 f4@2 ~@7 g4@2", J: "~@8 a4@3 ~@5", K: "~@12 e6 ~@3", L: "~@2 a5 ~@13",
})).s("gm_flute").gain(0.29)

// other · drawbar organ · "ORGAN 1"
const drawbar_organ = note("<~@21 A B C D A B C D E@4 F@3 ~@9 G H@3 I J@2 K ~ E@4 F@3 ~@20>".pickRestart({
  A: "e3@3 e3 e3@2 ~@10", B: "f3@3 f3 f3@2 ~@10", C: "g3@3 g3 g3@2 ~@10",
  D: "[a3,d4]@3 [a3,d4] [a3,d4]@2 a3 c4@2 a3 e4@2 a3 c4 g3@2", E: "a3@2 ~ a3 c4 ~ e4 ~ c4 g3 ~@2 g3@4",
  F: "a#3@2 ~ a#3 ~ a#3 f4 a#3 c#4 g#3 ~@2 g#3@4", G: "~@8 a3@2 ~ a3 c4 ~ e4 ~",
  H: "c4 g3 ~@2 g3@4 a3@2 ~ a3 c4 ~ e4 ~", I: "c4 g3 ~@2 g3@4 a#3@2 ~ a#3 ~ a#3 f4 a#3",
  J: "c#4 g#3 ~@2 g#3@4 a#3@2 ~ a#3 ~ a#3 f4 a#3", K: "c#4 g#3 ~@2 g#3@4 ~@8",
})).s("gm_drawbar_organ").gain(0.3)

// other · drawbar organ · "ORGAN 1" · soft notes
const drawbar_organ_soft = note("<~@29 A@4 B@3 ~@9 C@4 D@3 ~@2 A@4 B@3 ~@20>".pickRestart({
  A: "~@5 a3 ~ a3 ~@8", B: "~@4 c#4 ~@11", C: "~@13 a3 ~ a3", D: "~@12 c#4 ~@3",
})).s("gm_drawbar_organ").gain(0.18)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~ A B C D E F G H I J I J K L M N O P Q R ~@15 S T U V W X U V W Y ~@6 Z AA ~@7 AB AC U V W X U V W AD AE AF AG AH AI
  AJ AK@3 AL
>`.pickRestart({
  A: "~@2 [e4,g4,b4] [g4,b4]", B: "[e4,g4,b4]!2 [b4,e5,g5] [e4,g4,b4]", C: "[c4,e4,g4]!2 [g4,c5] [c4,e4,g4]",
  D: "[c4,e4,g4] g5 [g5,c6] [c5,g5]", E: "[d4,g4,b4] [d4,g4] [d4,b4] [d4,g4,b4]",
  F: "[d4,g4,b4] [b4,d5,g5] [b5,d6,g6] [b4,d5,g5]", G: "[a4,c5,e5,a5]@2 [a4,c5]@2 [a4,c5,e5,g5]@2 [a4,c5,e5,a5]!2",
  H: "[d5,f5,a#5] [f4,a#4,d5] [a#4,d5,f5] [d5,f5,a#5]", // A#
  I: "[e4,g4,b4] ~@2 [e4,g4,b4]!2 ~@3 [e4,g4,b4] ~@2 [e4,b4] [e4,g4,b4] ~@3", // Em E5 Em
  J: "[d4,f4,a#4] ~@2 [d4,f4,a#4]!2 ~@3 [d4,f4,a#4] ~@2 [d4,a#4] [d4,f4,a#4] ~@3", // A# Gm A#
  K: "[e4,g4,c5] ~@2 [e4,g4,c5]!2 ~@3 [e4,g4,c5] ~@2 [e4,c5] [e4,g4,c5] ~@3", // C
  L: "[d#4,g#4,c5] ~@2 [d#4,g#4,c5]!2 ~@3 [d#4,g#4,c5] ~@2 [d#4,c5] [d#4,g#4,c5] ~@3", // G# Cm G#
  M: "[f#4,a4,d5] ~@2 [f#4,a4,d5]!2 ~@3 [f#4,a4,d5] ~@2 [f#4,d5] [f#4,a4,d5] ~@3", // D
  N: "[e4,g4,c5] ~@2 [e4,c5] [e4,g4,c5] ~@2 [g4,e5] [g4,c5,e5] ~@2 [c5,e5,g5]!2 ~@2 [e5,g5,c6]", // C
  O: "[e5,g5,c6] ~@2 [e5,g5,c6]!2 ~@3 [e5,g5,c6] ~@2 [e5,c6] [e5,g5,c6] ~@3", // C
  P: "[d5,f5,a#5] ~@2 [d5,f5,a#5]!2 ~@3 [d5,f5,a#5] ~@2 [d5,a#5] [d5,f5,a#5] ~@3", // A# Gm A#
  Q: "[c#5,e5,a5]@2 ~ [e4,a4,c#5]@3 [a4,c#5,e5]@2 [e5,a5,c#6]@2 ~ [c#5,e5,a5]@5", // A
  R: "[d4,e4,g4,b4]@3 [d4,e4,g4,b4] [d4,e4,g4,b4]@4 [d5,e5,g5,b5]@3 [d5,e5,g5,b5] [d5,e5,g5,b5]@2 [d5,e5,g5,b5]@2", // Em7
  S: "[c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [d4,f#4,a4,d5]!3 [c4,e4,g4,c5] [d4,f#4,a4,d5]@2 [c4,c#4,e4,f4,g4,g#4,c5,c#5] ~", // C D C D C#maj7
  T: "~ [b3,d#4,f#4,b4]!2 [a3,c#4,e4,a4] [b3,d#4,f#4,b4]@4 [e4,g4,b4]@3 [e4,g4,b4] [e4,g4,b4]@2 ~@2", // B A B Em
  U: "~ d4@2 b3@2 a3 g3@2 [f4,a4,c5]@3 [c5,f5,a5] [c5,f5,a5]@2 ~@2, [e4,g4,b4]@3 g4@5 ~@8", // F Em
  V: "[f4,a4,c5]@3 [c4,f4,a4]@3 [c4,f4,a4]@2 [d4,g4,b4]@3 [d5,g5,b5] [d5,g5,b5]@2 ~@2", // F G
  W: "[d4,g4,b4]@3 [d4,g4,b4]@3 [d4,g4,b4]@2 [d4,f#4,a4]@3 [d4,f#4,a4] [d4,f#4,a4]@3 [d5,f#5,a5]", // G D
  X: "[d5,f#5,a5] ~ [a5,d6,f#6]!2 [d5,f#5,a5] [a4,d5,f#5]@3 [e4,g4,b4]@3 [e4,g4,b4] [e4,g4,b4]@2 ~@2", // D Em
  Y: "[d5,f#5,a5] ~ [a5,d6,f#6]!2 [d5,f#5,a5] [a4,d5,f#5]@3 ~@8", Z: "~@4 [c5,e5,g5,c6]!4",
  AA: "[d5,f#5,a5,d6]!3 [c5,e5,g5,c6] [d5,f#5,a5,d6]@2 [c#5,f5,g#5,c#6] [c5,e5,g5,c6] ~ [b3,d#4,f4,b4]!2 ~@5", // D C D C# C Fm7b5
  AB: "[c5,e5,g5,c6]@2 [c5,e5,g5,c6]@2 [c5,e5,g5,c6]@2 [c5,e5,g5,c6]@2 [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] [c5,e5,g5,c6] [d5,f#5,a5,d6]@2 [c#5,f5,g#5,c#6] ~", // C D C D C#
  AC: "~@2 [b3,d#4,f4,b4] [a3,c#4,e4,a4] ~@4 [e4,g4,b4]@3 [e4,g4,b4] [e4,g4,b4]@2 ~@2", // Fm7b5 A Em
  AD: "[d5,f#5,a5] ~ [a5,d6,f#6]!2 [d5,f#5,a5] [a4,d5,f#5]@3 [d5,f#5,a5,d6] ~ [d5,f#5,a5,d6] [c5,e5,g5,c6] [d5,f#5,a5,d6]@2 [c#5,f5,g#5,c#6] ~", // D C D C#
  AE: "~@2 [b3,d#4,f4,b4] [a3,c#4,e4,a4] [b3,d#4,f4,b4]@4 [e4,g4,b4]@3 [e4,g4,b4] [e4,g4,b4]@2 ~@2", // Fm7b5 A Fm7b5 Em
  AF: "~@8 [c4,e4,g4]@3 [c4,e4,g4] [c4,e4,g4]@2 ~@2", AG: "~@8 [b3,d4,g4]@3 [b3,d4,g4] ~@4",
  AH: "~@8 e6 c6 a5 [c4,e4,a4,e5] [a4,c5] ~@2 c4, ~@8 [c4,e4,a4]@3 ~ [c4,e4]@2 e4@2, ~@13 a4@3", // Am C
  AI: "a#5 f#5 f5 ~ a#4 f#4 ~ c#4 [e4,g4,b4]@3 [e4,g4,b4] [e4,g4,b4]@2 ~@2, [c#4,f4,a#4]@3 ~ [c#4,f4]@2 f4@2 ~@8", // Em A#m C#
  AJ: "~ [d4,f4,a#4]@3 [d4,f4,a#4] [d4,f4,a#4]@2 ~@2 [e4,g4,c5]@4 [e4,g4,c5] [e4,g4,c5]@2", // A# C
  AK: "[~@3 [d4,f#4,a4]@4 [d4,f#4,a4] [d4,f#4,a4]@2 ~@3 [e4,g4,b4,e5]@35]/3", AL: "[e3,e4]@3 ~@13",
})).s("gm_piano").gain(0.35)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~ A ~ B C D ~ E ~ F G F G F H I J K L ~@17 M ~@4 N ~@3 N ~@7 O ~@7 P Q ~@3 N ~@3 R S ~ T ~ U ~@5
>`.pickRestart({
  A: "~@3 e4", B: "~@2 e4 ~", C: "~ c5 ~@2", D: "~ b4 g4 ~", E: "~ e5 ~@2", F: "~@11 g4 ~@4", G: "~@11 f4 ~@4",
  H: "~@11 g#4 ~@4", I: "~@11 a4 ~@4", J: "~@3 g4 ~@3 c5 ~@8", K: "~@11 g5 ~@4", L: "~@11 f5 ~@4",
  M: "~@15 [a#3,b3,d4,d#4,f4,f#4,a#4,b4]", N: "~ [d5,f#5,a5] ~@14",
  O: "~@7 [b4,d#5,f#5,b5] ~@3 [a3,c#4,e4,a4] [b3,d#4,f4,b4]@4", P: "~@9 [d5,f#5,a5,d6] ~@5 [b4,c5,d#5,e5,f#5,g5,b5,c6]",
  Q: "~ [b3,d#4,f4,b4] ~@2 [b3,d#4,f4,b4]@4 ~@8", R: "~ [d5,f#5,a5] ~@7 [d5,f#5,a5,d6] ~@5 [b4,c5,d#5,e5,f#5,g5,b5,c6]",
  S: "~ [b3,d#4,f4,b4] ~@14", T: "~@6 [b3,d4,g4] ~", U: "~@3 [c#4,f4,a#4,c#5] ~@12",
})).s("gm_piano").gain(0.21)

// other · lead 1 square · "SQUAREWAVE" · C#sus2
const lead_1_square = note(`<
  ~@58
  [c#5@2 a#4@2 ~ a#4 c#5 d#5!3 c#5 d#5 c#5@2 c#5 a#4]
  [g#4 a#4!2 g#4!2 c#5 g#4 a#4 c#5 a#4@3 g#4 a#4 c#5 d#5]
  [f5 g#5 d#5 [c#5,d#5] d#5 c#5@3 f4 c#5 a#4@2 a#4@4]
  ~@20
>`).s("gm_lead_1_square").gain(0.48)

// other · lead 1 square · "SQUAREWAVE" · soft notes
const lead_1_square_soft = note("<~@58 [~@4 g#4 ~@2 f5!2 ~@7] [~@3 f4 ~ a#4 ~@10] [d#5 ~ f5 ~@13] ~@20>")
  .s("gm_lead_1_square").gain(0.24)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@21 A B C D A B C D E@4 F@3 G H I J K@2 I J L@2 M@3 N O@2 P ~ E@4 F@3 ~ H I J K@2 I J Q@3 ~ R S ~@5 T
>`.pickRestart({
  A: "[e3,b3]@3 [e3,b3] [e3,b3]@2 ~@10", B: "[f3,c4]@3 f3 [f3,c4]@2 ~@10", C: "[g3,d4]@3 d4 [g3,d4]@2 ~@10",
  D: "a3@3 a3 a3@2 a3 c4@2 a3 e4@2 a3 ~ g3@2", E: "a3@2 ~ a3 c4 ~ e4 ~ c4 g3 ~@2 g3@4",
  F: "a#3@2 ~ a#3 ~ a#3 f4 a#3 c#4 g#3 ~@2 g#3@4", G: "c4 ~", H: "~@8 [e3,b3]@3 [e3,b3] [e3,b3]@2 ~@2",
  I: "~@8 [f3,c4]@3 f3 [f3,c4]@2 ~@2", J: "~@8 [g3,d4]@3 d4 [g3,d4]@2 ~@2",
  K: "[~@8 d4@3 d4 d4@2 a3 c4@2 a3 e4@2 a3 ~ g3@2 [e3,b3]@3 [e3,b3] [e3,b3]@2 ~@2]/2", // E5
  L: "[~@8 d4@3 d4 d4@2 a3 c4@2 a3 e4@2 a3 c4 g3@2 a3@2 ~ a3 c4 ~ e4 ~]/2", M: "c4 g3 ~@2 g3@4 a3@2 ~ a3 c4 ~ e4 ~",
  N: "c4 g3 ~@2 g3@4 a#3@2 ~ a#3 ~ a#3 f4 a#3", O: "c#4 g#3 ~@2 g#3@4 a#3@2 ~ a#3 ~ a#3 f4 a#3",
  P: "c#4 g#3 ~@2 g#3@4 ~@8", Q: "[~@8 d4@3 d4 d4@2 a3 c4@2 a3 e4@2 a3 ~ g3@2 ~@5 f4@5 ~@3 b3@2 ~@9]/3",
  R: "~@14 b5 [g5,a5]", S: "b5!6 [g5,b5] ~@9", T: "[e3,a3]@3 ~@5",
})).s("gm_overdriven_guitar").gain(0.38)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~@22 A B C ~ A B C D@4 E@3 ~ F G H ~ I G H ~ J@4 K@3 ~@2 D@4 E@3 ~@2 G H ~ I G H ~ I ~@10
>`.pickRestart({
  A: "~@3 c4 ~@12", B: "~@3 g3 ~@12", C: "~@13 c4 ~@2", D: "~@5 a3 ~ a3 ~@8", E: "~@4 c#4 ~@11", F: "~@2 b3 ~@5",
  G: "~@11 c4 ~@4", H: "~@11 g3 ~@4", I: "~@5 c4 ~@10", J: "~@13 a3 ~ a3", K: "~@12 c#4 ~@3",
})).s("gm_overdriven_guitar").gain(0.23)

// chords · french horn · "FR.HORN"
const french_horn = note("<~ A@2 B@2 C@2 D E F G F G H I J H@2 K L M ~@60>".pickRestart({
  A: "[e4@14 d#4 d4@17]/2", B: "[e4@14 d#4 ~ a5@12 ~@4, ~@15 d4@17]/2", C: "[d4@12 e4@2 d#4 ~ a5@12 ~@4, ~@15 d4@17]/2",
  D: "[e4,a4]", E: "[f4,a#4], a#5@3 ~", F: "[b3,e4,g4]", G: "[a#3,d4,f4]", H: "[c4,g4,c6]", I: "[c4,d#4,g#4]",
  J: "[d4,f#4,a4]", K: "[a#4,d5,f5]", L: "[c#4,e4,a4]", M: "[d4,g4,b4]",
})).s("gm_french_horn").gain(0.17)

// chords · french horn · "FR.HORN" · soft notes
const french_horn_soft = note("<~ A@2 B ~ B ~ B ~ B C B C D E F D@2 C G B ~@60>".pickRestart({
  A: "[b5@7 ~]/2", B: "b5", C: "a#5", D: "e4", E: "[g#5,a#5]", F: "d6", G: "a5",
})).s("gm_french_horn").gain(0.11)

// drums · kick
const kick = s("bd").struct(`<
  ~@21 A@3 B C D E F G@3 H I A@2 J K L@2 M N O@2 P Q R@3 S@3 T U A@7 V W L@2 M N O@2 P X Y Z AA@2 AB AC AD AE AF@2
>`.pickRestart({
  A: "x ~@2 x ~@3 x!3 ~ x ~@3 x", B: "x ~@2 x ~@3 x!9", C: "x ~@2 x ~@3 x!4 ~@4 x", D: "x ~@2 x ~@3 x!4 ~@2 x ~ x",
  E: "x ~@2 x ~@3 x!3 ~ x ~ x ~ x", F: "x ~@2 x ~@6 x ~ x ~@3", G: "x ~@2 x ~@7 x ~@4", H: "x ~@2 x ~@7 x ~ x ~ x",
  I: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x", J: "x ~@2 x ~ x ~ x!2 ~@7", K: "~@2 x ~@5 x ~@2 x!2 ~@2 x",
  L: "x!2 ~ x ~@3 x!2 ~@2 x!2 ~@2 x", M: "x!2 ~ x ~@3 x!2 ~@2 x ~@4", N: "~@8 x ~@2 x ~@3 x",
  O: "x!2 ~ x ~@3 x!2 ~@2 x ~@3 x", P: "x!2 ~ x ~@4 x ~@2 x ~@3 x", Q: "x ~@7 x ~@2 x ~@4", R: "~@3 x ~@4 x ~@2 x ~@4",
  S: "~@3 x ~ x ~ x!2 ~@2 x ~@4", T: "~@3 x ~ x ~ x!2 ~ x ~ x ~ x ~", U: "x ~@4 x ~@2", V: "x ~@2 x ~@3 x!2 ~@7",
  W: "~@8 x ~@2 x!2 ~@2 x", X: "x!2", Y: "~@2 x ~@3 x ~ x ~@2 x ~@4", Z: "~@8 x!8", AA: "x!16", AB: "x!8 ~@8",
  AC: "~@9 x!2 ~@5", AD: "~@3 x!2 ~@8 x ~@2", AE: "~@10 x ~@2 x ~@2", AF: "x",
})).gain(0.72)

// drums · snare
// … 65 more lines

More by Jethro Tull