Strudelify
Eye In The Sky cover art

1982 · Eye In The Sky

Eye In The Sky

Alan Parsons

KeyD majorTempo112 bpm
0:00/0:00
// Eye In The Sky — Alan Parsons
// 112 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 acoustic guitar nylon (copy of ch 3 harpsichord); ch 8 overdriven guitar (copy of ch 7 overdriven guitar); ch 13 electric guitar muted (copy of ch 12 electric guitar muted)
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 26.
// note: The whole transcription plays 11 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(112/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 · epiano1
const epiano1 = note(`<
  ~ A@2 B@2 A@2 B@2 C D@7 E@2 F@2 G@2 H@2 C I@7 J@2 F@2 G@2 K@2 L M N O P Q R S T@2 U@2 V@2 W@2 X@2 C Y@7 Z@2 F@2 G@2
  AA@2 L M N O P Q R S T@2 AB@2 V@2 AC@2 AD@2 L M N O AE Q R S T@2 AF@2 AG@2 W@2 AD@2 AH@2 AG@2 AH@2 AG@2 U@2 AI@2 AJ@2
>`.pickRestart({
  A: "[c#4 d4 f#4 b3@3 c#4 a3@8 ~]/2", B: "[c#4@2 d4@2 f#4@2 b3@5 ~ c#4@2 a3@6 b3@2 g3@8 ~@2]/2",
  C: "[c#4,e4]@3 [d4,f#4]@5, d3@7 ~, a4@3 ~", // C#m D
  D: "[[c#4,e4]@4 ~@10 b3@2 c#4@5 ~ b3@9 ~ [c#4,f#4]@2 ~@4 b3@3 ~ c#4@2 a3@2 ~@2 [c#4,e4]@6 [d4,f#4]@9 ~ [c#4,e4]@4 ~@2 f#4@7 ~@3 c#4@5 ~ b3@10 c#4@2 d4@2 ~@2 b3@4 c#4@2 ~@2 f#3@2, d3@12 a3@27 ~@25 [a3,a4]@12 ~@2 a3@26 ~@4 a3@4, a4@6 f#4@9 ~ f#4@14 ~@6 f#4@9 ~@3 a4@13 ~@39 f#4@9 ~@3, ~@4 d4@9 ~@3 b2@25 ~@5 d3@29 ~@5 b2@27 ~@5, ~@16 d4@11 ~@7 d4@7 ~@27 d4@9 ~@3 [d4,f#4]@14 ~@18]/7", // C#m F#5 C#m D C#m A D
  E: "[[e3,g3,b3,d4,e4]@12 ~@2 [g3,d4,e4]@13 ~@5, ~@7 e3@9, ~@14 a#3@15 ~@3]/2", // Em7
  F: "[[a3,f#4]@11 ~@3 [g#3,b3,f#4]@16 ~@2, d4@9 ~@5 d4@13 ~@5]/2", // D G#m7
  G: "[[d3,f#4]@13 ~@3 g2@16, [a3,d4]@11 ~@3 b3@15 ~@3, ~@14 [d4,f#4]@13 ~@5]/2", // D D5 D
  H: "[[a3,f#4]@7 ~, d4@25 ~@7, d3@23 ~@9]/2", // D
  I: "[[c#4,a4]@4 ~@10 b3@2 c#4@5 ~ b3@9 ~ [c#4,f#4]@2 ~@4 b3@3 ~ c#4@2 a3@2 ~@2 [c#4,e4]@6 [d4,f#4]@9 ~ [c#4,e4]@4 ~@2 f#4@7 ~@3 c#4@5 ~ b3@10 c#4@2 d4@2 ~@2 b3@4 c#4@2 ~@2 f#3@2, d3@12 a3@25 ~@27 [a3,a4]@12 ~@2 a3@28 ~@2 a3@4, e4@3 ~ d4@9 ~@3 b2@25 ~@5 d3@32 ~@2 b2@27 ~@5, ~@6 f#4@9 ~ f#4@14 ~@6 f#4@9 ~@3 a4@13 ~@19 f#4@16 ~@4 f#4@9 ~@3, ~@16 d4@11 ~@7 d4@7 ~@27 d4@9 ~@3 d4@13 ~@19]/7", // F#m F#5 C#m D C#m A
  J: "[[e3,g3,b3,d4,e4]@6 ~ [g3,a#3,e4]@7 ~@2, ~@7 e3@8 ~, ~@7 d4@6 ~@3]/2", // Em7 Edim
  K: "[[a3,f#4]@7 ~, d4@25 ~@7, d3@11 ~@5]/2", L: "d3@3 ~ d3 ~ [d3,d4,f#4]@9 ~, a3@13 ~@3, [c#4,e4]@3 ~@5",
  M: "[c#4,e4]@6 [d3,a3,d4,f#4]@9 ~, [d3,a3] ~@3", // C#m D D5
  N: "[a3,c#4]@4 f#4 ~ [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4] ~, f#2@7 ~@9, f#4@3 ~@7 c#4 ~@5", // A F#m F#5 D F#5 F#m
  O: "[a3,c#4,f#4] ~ [f#2,a3,f#4]@2 c#4 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4] ~ [f#2,a3] ~, ~@2 c#4 ~@9 f#4@2 ~@2", // F#m A F#m
  P: "[c#4,e4]@6 d3@4 ~@2 d3 ~ d3 ~, a3@7 ~, d3@3 ~@3 [d4,f#4]@9 ~", // C#m D
  Q: "d3@2 ~@2 d3 ~ [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@2 d3 ~, [a3,c#4,e4]@3 d3@3 ~@2", // D A
  R: "[f#2,a3,f#4]@2 c#4 ~ [a3,c#4,f#4] ~ [f#2,a3]@2 c#4 ~ [f#2,a3,f#4]@2 c#4 ~ [a3,c#4,f#4] ~, c#4 ~@5 [c#4,f#4] ~@3 c#4 ~@5", // F#m F#5
  S: "[a3,c#4] ~ [f#2,c#4,f#4] ~ c#4 ~ [c#4,f#4] ~ [f#2,c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~, ~@2 a3@5 ~ a3@2 ~@6", // A F#5 F#m
  T: "[[g3,e4]@6 ~ [g3,a#3,d4,e4]@7 ~@2, [b3,d4]@5 ~@11]/2", // C Em7b5 Bm
  U: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@6 [a3,e4]@2 b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~@3 b2@2, a3@11 ~@3 f#3@16 ~@2, ~@7 a3@7 ~@2, ~@7 c#4@6 ~@3]/2", // C#m D Bm A5
  V: "[[g2,g3,b3,d4,e4]@4 [g2,g3] ~ g2@3 ~ g2 ~ [g2,g3] ~ g2@3 ~ g2 ~ g2 ~ g2@3 ~ g2 ~@3 g2@2, ~@2 f#4 [g3,b3,d4]@3 e4 [g3,b3]@8 ~]/2", // Em7 G
  W: "[[a3,c#4,e4]@4 f#4@2 [a3,b3,d4]@6 [a3,e4]@2 b2@3 ~ b2 ~ b2 ~ b2@2 ~@6 b2 ~, b2@3 ~ b2 ~ b2@3 ~@3 b2 ~ f#3@16 ~@2, ~@7 [a3,c#4]@7 ~@2]/2", // A Bm7 A5 A
  X: "[[g2,g3,b3,d4]@4 f#4@2 g2@3 ~ g2 ~ [g2,e4]@2 g2@2 g2@3 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@3, e4@2 ~@2 g3@23 ~@5, ~@4 g2 ~ [b3,d4]@6 ~@2 b3@16 ~@2]/2", // G C Bm
  Y: "[[c#4,e4]@4 ~@10 b3@2 c#4@5 ~ b3@9 ~ [c#4,f#4]@2 ~@4 b3@3 ~ c#4@2 a3@2 ~@2 [c#4,e4]@6 [d4,f#4]@9 ~ [c#4,e4]@4 ~@2 f#4@7 ~@3 c#4@6 b3@10 c#4@2 d4@2 ~@2 b3@4 c#4@2 ~@2 f#3@2, d3@12 a3@27 ~@25 [a3,a4]@12 ~@2 a3@28 ~@2 a3@4, a4@6 f#4@9 ~ f#4@14 ~@6 f#4@9 ~@3 a4@13 ~@39 f#4@9 ~@3, ~@4 d4@9 ~@3 b2@23 ~@7 d3@29 ~@5 b2@30 ~@2, ~@16 d4@11 ~@7 d4@7 ~@27 d4@9 ~@3 [d4,f#4]@14 ~@18]/7", // C#m F#5 C#m D C#m A D
  Z: "[[e3,g3,b3,d4,e4]@6 ~ [g3,a#3,d4,e4]@7 ~@2, ~@7 e3@8 ~]/2", AA: "[[a3,d4]@27 ~@5, [d3,f#4]@25 ~@7]/2",
  AB: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@6 e4@2 b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~@3 b2@2, a3@11 ~ a3 ~ f#3@16 ~@2, ~@7 [a3,c#4]@7 ~@2]/2", // C#m D Bm A
  AC: "[[a3,c#4,e4]@4 f#4@2 [a3,b3,d4]@6 [a3,e4]@2 ~@4 b2 ~ b2 ~ b2@2 ~@6 b2 ~, b2@3 ~ b2 ~ b2@3 ~@3 b2 ~ f#3@16 ~@2, ~@7 [a3,c#4]@7 ~@2]/2", // A Bm7 A5 A
  AD: "[[g2,g3,b3,d4]@4 f#4@2 g2@3 ~ g2 ~ [g2,e4]@2 g2@2 g2@3 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@3, e4@2 ~@2 g3@25 ~@3, ~@4 g2 ~ [b3,d4]@6 ~@2 b3@15 ~@3]/2", // G C Bm
  AE: "[c#4,e4]@6 d3@4 ~@2 d3 ~ d3 ~, a3@7 ~, d3@3 ~@3 [d4,f#4]@8 ~@2", // C#m D
  AF: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@6 [a3,e4]@2 b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~@3 b2@2, a3@11 ~@3 [f#3,a3]@14 ~@4, ~@7 c#4@6 ~@3]/2", // C#m D Bm A5 F#m
  AG: "[[g2,g3,b3,d4,e4]@4 [g2,g3] ~ [g3,b3,d4]@4 g2 ~ [g2,g3] ~ g2@3 ~ g2 ~ g2 ~ g2@3 ~ g2 ~@3 g2@2, ~@4 f#4@2 g2@3 ~@3 e4@2 [g3,b3]@13 ~@5]/2", // Em7 G
  AH: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@6 [a3,e4]@2 b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~@3 b2@2, a3@5 ~@2 [f#3,c#4]@7 ~@2, ~@7 a3@6 ~@3]/2", // C#m D Bm A5 F#5
  AI: "[[g2,g3,b3,d4,e4]@4 [g2,g3] ~ g2@3 ~ g2 ~ [g2,g3] ~ g2@3 ~ g2 ~ g2 ~ g2@3 ~ g2 ~@3 g2@2, ~@2 f#4 [g3,b3,d4]@3 e4 [g3,b3]@7 ~@2]/2", // Em7 G
  AJ: "[[c#4,e4]@3 [d4,f#4]@9 ~@4, a3@3 ~]/2", // C#m D
})).s("gm_epiano1").gain(0.33)

// bass · fretless bass
const bass = note(`<
  ~ A B C D E F C D G H E B G I E F C D E J K D K L G H E B G I E F C D E J K D K L G H M N G H M N O@2 E B C D E F C P
  G H E B G I E F C D E J K D K L G H M N G H M N O@2 E B C D E F C D G H M N G H M N O@2 E B C D E F C D E B C D E B C
  D E B C D Q@2
>`.pickRestart({
  A: "b1@2 ~@2 b1@3 ~ b1@5 ~ b1@2", B: "b1@3 ~ b1@3 ~ b1@8", C: "g1@3 ~ g1@3 ~ g1@4 ~@2 g1@2",
  D: "g1@3 ~ g1@3 ~ g1@7 ~", E: "b1@3 ~ b1@3 ~ b1@4 ~@2 b1@2", F: "b1 ~ b1 ~ b1@4", G: "d2@3 ~ d2@3 ~ d2@5 ~ d2@2",
  H: "d2@3 ~ d2@3 ~ d2@8", I: "d2 ~ d2 ~ d2@4", J: "e1@4 e1@3 ~ e1@8", K: "d1@3 ~ d1@3 ~ d1@4 ~@2 d1@2",
  L: "d1@2 ~@2 d1@3 ~ d1@7 ~", M: "f#1@3 ~ f#1@3 ~ f#1@5 ~ f#1@2", N: "f#1@3 ~ f#1@3 ~ f#1@8",
  O: "[g1@11 ~@3 g1@13 ~@5]/2", P: "g1 ~ g1 ~ g1@4", Q: "[b1@5 ~ b1@18 ~@8]/2",
})).s("gm_fretless_bass").gain(0.44)

// chords · harpsichord
const harpsichord = note(`<
  ~@25 A@2 B C A@2 B D E F G H I J K@2 ~@10 L M@3 N@3 O A@2 B C A@2 B D E F P H I J K@2 ~@10 L M@3 N@3 O ~@10 L M N M
  N@3 Q@2 M N M L M N M L N@2 M R@2
>`.pickRestart({
  A: "e4 f#4 a4 e4 f#4 a4 f#4 a4", B: "c#4 f#4 a4 ~ f#4 a4 f#4 a4, ~@6 b3@9 ~",
  C: "~ f#4 a4 ~ f#4 a4 f#4 a4, c#4@2 ~ b3@5", D: "c#4 f#4 a4 ~ f#4 a4 f#4 a4, ~@6 b3@7 ~@3",
  E: "b3 d4 a4 g4 b3 d4 g4 e4", F: "~@2 a4 ~@3 g4 e4, a#3@3 g4@2 d4@2 ~, ~ d4@3 a#3@2 ~@2",
  G: "b3 ~ g4 f#4 b3 d4 f#4 e4, ~ d4@3 ~@4", H: "g#3 ~ f#4 e4 g#3 b3 e4 b3, ~ b3@2 ~@5",
  I: "f#4 ~ d4 ~ a3 d4 f#4 a3, ~ a3@2 f#4@2 ~@3", J: "b3 d4 f#4 e4 g3 b3 e4 b3",
  K: "[~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4, a3@6 ~@2 a3@6 ~@2 a3@6 ~@2 a3@5 ~@3, ~@4 f#4@5 ~@3 f#4@6 ~@2 f#4@6 ~@2 f#4@4]/2",
  L: "~ d4 a4 ~ d4 a4 d4 a4, c#4@4 ~@2 b3@7 ~@3", M: "~ d4 a4 ~@3 d4 a4, c#4@5 ~ b3@8 ~@2, ~@2 d4 ~, ~@5 a4@2 ~",
  N: "~ d4 a4 ~@3 d4 a4, c#4@5 ~ b3@9 ~, ~@2 d4 ~, ~@5 a4@2 ~", O: "c#4 d4 a4 ~@2 a4 d4@2, ~@3 b3@3 ~@2, ~@2 d4 ~",
  P: "b3 d4 g4 f#4 b3 d4 f#4 e4",
  Q: "[c#4 d4 a4 ~@2 a4 ~@3 d4 a4 ~ d4 a4 d4 a4, ~@3 b3@3 ~ a4@2 ~@7, ~@8 d4@4 d4@4 c#4@4 ~@2 b3@7 ~@3]/2",
  R: "[c#4 ~@2 b3@9 ~@4, ~ d4@11 ~@4, ~ a4@5 ~@2]/2",
})).s("gm_harpsichord").gain(0.07).pan(0.1)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@40 A B C@2 D B C@2 E ~@2 F@2 G@2 F@2 H@2 ~@15 A B C@2 D B C@2 E ~@2 F@2 G@2 F@2 I@2 B C@2 D B C@2 E ~@2 F@2 G@2 F@2
  J@2 ~@14
>`.pickRestart({
  A: "~@5 [f#3,a3]!3", B: "[c#4,e4,a4] [d4,f#4,a4] [c#4,e4,a4] [d4,f#4,a4]@4 ~",
  C: "[[c#4,e4,a4] [d4,f#4,a4] [c#4,e4,a4] [e4,g4,a4]@2 [d4,f#4,a4]@2 [c#4,f#4,a4]@3 [c#4,f#4,a4]!3 [a3,c#4,f#4]!3]/2", // A D A A7 D F#m
  D: "[f#3,a3,c#4]@3 ~@2 [f#3,a3]!3", E: "[f#3,a3,c#4]@5 ~@3",
  F: "[[c#4,e4]@2 [d4,f#4] [b3,d4]@3 [c#4,e4] c#4@9, ~@7 a3@5 ~@4]/2", // C#m D Bm C#m
  G: "[[c#4,e4]@2 [d4,f#4] [b3,d4]@3 [c#4,e4] b3@9, ~@7 g3@5 ~@4]/2", // C#m D Bm C#m
  H: "[[c#4,e4]@2 [d4,f#4] [b3,d4]@3 [c#4,e4] [g3,b3]@7 ~@2]/2", // C#m D Bm C#m G
  I: "[[c#4,e4]@2 [d4,f#4] [b3,d4]@3 [c#4,e4] [g3,b3]@5 ~ [f#3,a3]!3]/2", // C#m D Bm C#m G F#m
  J: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@6 [c#4,e4]@2 [g3,b3]@11 ~@7]/2", // C#m D Bm C#m G
})).s("gm_electric_guitar_jazz").gain(0.15)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@9 A B@2 ~ A C D E F@2 G@2 H I@3 A J@2 ~ K C D E L@2 M@2 N O P@2 ~@7 E Q@2 ~ R@7 A S@2 ~ A T D E U@2 V@2 N W X ~@8 E
  Q@2 ~ Y@4 Z@3 ~@7 E Q@2 ~ Y@4 AA@3 ~@14
>`.pickRestart({
  A: "e3@6 f#3@7 ~@3", B: "[e3 f#3@2 a3@2 a2 a#2 b2@8 ~]/2", C: "e3@2 f#3 a3@2 d4 c#4!2", D: "b3", E: "~@7 a3",
  F: "[a3@2 g3@2 g3@2 g3@2 g3@2 a3@2 g3@2 a#3@13 ~@3 e3@2]/2",
  G: "[e3@2 d3@2 d3@2 d3@2 d3@2 e3@2 d3@2 f#3@6 f#3@2 e3@4 d3@5 ~]/2", H: "e3@2 f#3@2 e3@2 f#3 e3 d3@5 ~ b2@2",
  I: "[f#3 e3 d3 d3@2 b2 a2 a2@2 d3@9 ~@6]/3", J: "[e3@2 f#3 a3@2 a2 a#2 b2@8 ~]/2", K: "e3@3 f#3@3 ~ a2",
  L: "[a3 g3!4 a3 g3 a#3@6 ~@2 e4]/2", M: "[e4 d4!4 e4 d4 f#4@3 f#4 e4@2 d4@2 d4]/2",
  N: "e4@2 f#4@2 e4@2 f#4 e4 d4@4 ~@2 a3@2", O: "f#4 e4 d4 d4@2 a3 b3 a3", P: "[a3 d4 d4@7 ~@7]/2",
  Q: "[a3@2 g3@2 g3@2 g3@2 g3@2 a3@2 g3@2 a#3@6 a#3@2 a3@4 g3@5 ~]/2",
  R: "[~@4 a4!3 a4@11 ~@2 a4!3 a4@11 ~@2 a4!3 ~@8 d4@7 ~@2, ~@39 a4@15 ~@2]/7", S: "[e3@2 f#3 a3@2 a2 a#2 b2@9]/2",
  T: "e3 f#3@2 a3@2 d4 c#4!2", U: "[a3@2 g3@2 g3@2 g3@2 g3@2 a3@2 g3@2 a#3@9 ~@7 e4@2]/2",
  V: "[e4 d4!2 c#4 d4 e4 d4 f#4@3 f#4 e4@2 d4@2 ~]/2", W: "f#4 e4 d4 d4@2 b3 a3!2", X: "d4 d4@5 ~@2",
  Y: "[~@4 a4!3 a4@11 ~@2 a4!3 a4@8 ~]/4", Z: "[~@4 a4!3 ~@8 d4@5 ~@4, ~@7 a4@13 ~@4]/3",
  AA: "[~@8 a4@2 a4@2 a4@2 ~@16 d4@11 ~@7, ~@14 a4@27 ~@7]/3",
})).s("gm_electric_guitar_jazz").gain(0.05)

// chords · pad poly
const pad_poly = note("<~@52 A@7 ~@27 B@7 ~@11 B@7 ~@14>".pickRestart({
  A: "[~@8 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@15 ~@3 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@15 ~@3 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@23 ~@3, ~@14 a4@21 ~@11 a4@24 ~@8 a4@31 ~@3]/7", // F#m
  B: "[~@8 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@15 ~@3 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@15 ~@3 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@21 ~@5, ~@14 a4@21 ~@11 a4@24 ~@8 a4@29 ~@5]/7", // F#m
})).s("gm_pad_poly").gain(0.28)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@2 A@6 B@3 ~@74 C@2 D@2 E@2 F@2 G H I J K@2 I J L@2 ~ M N@6 O@3 P@3 Q R S T U V@2 ~
>`.pickRestart({
  A: "[~ [b4,d5]@38 ~ d5@28 ~@5 b4@23]/6", B: "[~@9 f#5@29 ~@10]/3", C: "[c#4@2 d4 b3@3 c#4 a3@8 ~]/2",
  D: "[c#4@4 d4@2 b3@6 c#4@2 g3@8 [e3,f#3] ~ b3@2 c#4@2 d4@2 ~ d#4, ~@15 e4]/2", // Esus2
  E: "[c#4@3 ~ d4@2 b3@6 c#4@2 a3@18, d4 ~@31]/2", F: "[c#4@4 d4@2 b3@5 ~ c#4@2 g3@14 ~@4]/2", G: "[d3,a3]",
  H: "~@2 [d3,a3]@2 ~@4 [d3,a3]@7 ~", I: "[f#3,c#4]@15 ~", J: "~ [f#3,c#4] ~@2 [f#3,c#4]@4",
  K: "[[d3,a3]@12 ~ [d3,a3]@3]/2", L: "[[g3,e4]@13 ~@3]/2", M: "~@8 e3@4 d3@2 e3 ~",
  N: "[b2@20 ~@6 c#3@2 d3@2 a3@21 ~@7 a3@9 ~ d4 ~ b3@16 ~@2 f#4 ~ f#4@2 f#4@2 e4 d4, ~@70 a3 ~@25]/6",
  O: "[e4@4 a4@2 f#4@4 d4@2 b3@2 e3@5 ~ a3@2 f#3@4 d3@2 b2@2 f#2@4 g2@2 b2@2 d3@2 a3@2 f#3@2 d4@2 a3@2, ~@6 e4 ~@15 e3 ~@25]/3",
  P: "[e4@2 a3 ~ [e4,f#4]@2 a4 ~ [e4,f#4]@2 g4@2 b4@2 c#5@5 ~ c#5@4 b4@2 a4 [f#4,a4] b4 ~ a4@5 ~ d5 ~ b4@4 a#4 [g#4,a4] g4 ~@3, ~@30 b4 ~@7 a4 ~@9]/3", // Esus2 F#m Amaj7
  Q: "~@2 [a4,b4]@2 d5 b4 d5 b4 d5@2 [a4,b4]@2 c#5@2 a4@2", R: "b4@2 f#4 ~ e4@2 d4 b3 e4 d4 b3 a4 d4@4",
  S: "[a3,c#4]@2 f#4 d4@4 ~", T: "c#4@2 a3@2 f#3@2 b3@9 ~, ~@6 a3 ~@9", U: "~@4 a4@7 ~ f#4 e4 d4@2",
  V: "[e4@2 f#4 ~@3 b3@6 d4@2 e4@10 ~@8]/2",
})).s("gm_overdriven_guitar").gain(0.22).pan(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@41 A B C D E F C G H@2 ~@24 A B C D E F C G H@2 ~@8 A B I D E F C G H@2 J@2 ~@20
>`.pickRestart({
  A: "a3@3 ~@3 d4@4 ~@4 [a3,f#4]@2, [c#4,e4]@3 f#4@3 d4@2, ~@4 a3@5 ~ a3@4 ~@2", // D C#m
  B: "a3@4 ~@2 [d4,f#4]@4 ~@2 [d4,f#4]@2 a3 ~, [c#4,e4]@3 ~@5, ~@4 a3@5 ~ a3@4 ~@2", // D C#m
  C: "~@2 f#3 [f#3,a3,c#4]@2 ~@2 f#3, [a3,c#4]@3 ~@2 f#3@2 ~, ~@3 [a3,c#4]", // F#m A
  D: "f#3@4 ~@8 [a3,c#4]@2 a3 ~, [a3,c#4]@3 [a3,c#4]@3 ~@2, ~@4 f#3@5 ~ f#3@5 ~", // A
  E: "a3@2 ~@2 a3@2 a3@3 ~@3 d4@2 f#4@2, [c#4,e4]@6 [d4,f#4]@7 ~@3, ~@5 a3@3", // C#m D
  F: "a3@4 a3@2 [a3,d4,f#4]@4 a3@2 [a3,d4,f#4]@2 a3 ~, [c#4,e4]@3 ~@5", // D C#m
  G: "f#3@4 f#3@2 [a3,c#4]@4 ~@2 [a3,c#4]@2 f#3 ~, [a3,c#4]@3 ~@2 f#3@2 ~", // A
  H: "[[g3,b3]@14 [g3,a#3,d4,e4]@15 ~@3, [d4,e4]@13 ~@19]/2", // G Em7b5 Dsus2
  I: "~@4 f#3@2 f#3@3 ~ f#3@2 ~@2 f#3@2, [a3,c#4]@3 [a3,c#4]@3 [a3,c#4]@2", J: "[b1@21 ~@11]/2",
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.4)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  A B@2 C D B@2 C@2 E F G@2 H F G I J C G K E L E@3 F G@2 H F G I J C G K E L E@3 M N@2 E@2 N@2 O@2 G@2 C D G@2 C P E F
  G@2 H F G I J C G K E L E@3 Q N@2 E@2 N@2 O@2 G@2 C D G@2 C P E Q N@2 E@2 N@2 O@2 G@2 C D G@2 C P G@2 C D G@2 C D G@2
  C D R@2
>`.pickRestart({
  A: "~@7 f#2", B: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~",
  C: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  D: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ a2@2", // G5
  E: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~", // D5
  F: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ a2@2", // D5
  G: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", // B5
  H: "[a2,d3] ~ [a2,d3] ~ d3@2 a2 ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~, ~@4 a2 ~@11", // D5
  I: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3]@2 e2@2", // B5
  J: "[g2,d3] ~ [g2,d3] ~ d3@2 g2 ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~, ~@4 g2 ~@11", // G5
  K: "[e2,b2] ~ [e2,b2] ~ [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  L: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ g2@2 d3 ~ [g2,d3] ~ [g2,d3] ~, ~@8 d3 ~@7", // G5
  M: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ a2@2 d3 ~ [a2,d3] ~ [a2,d3] ~, ~@8 d3 ~@7", // D5
  N: "[f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~", // F#5
  O: "[[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,e3]@13 ~@5]/2", // G5 C
  P: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 ~@2", // G5
  Q: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3]@2 d3 ~ [a2,d3] ~ [a2,d3] ~", R: "[[b2,f#3]@23 ~@9]/2",
})).s("gm_electric_guitar_muted").gain(0.24).pan(0.3)

// chords · pad poly
const pad_poly_2 = note("<~@59 A@2 B@2 C@2 D@7 E@3 ~@50>".pickRestart({
  A: "[[f#4,a4]@27 ~@5, e4@31 ~]/2", B: "[c#4@3 b3@5 c#4@3 b3@5, [d4,f#4]@7 ~]/2", C: "[[e4,a4]@15 ~, f#4]/2",
  D: "[c#4@6 b3@9 ~ c#4@5 ~@25 a#3@13 ~@21 g#3@13 ~@3 a3@15 ~, d4@107 ~@5, ~@11 b3@10 ~@11 b3@15 ~@9, ~@32 e4@29 ~@3 f#4@42 ~@6, ~@32 g3@25 ~@55]/7",
  E: "[b3@11 ~@5 a3@30 ~@2, [d4,f#4]@43 ~@5, ~@16 a4@27 ~@5]/3", // D
})).s("gm_pad_poly").gain(0.27)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@104 A B@5 C D@6 E@2 F G H@3 ~>".pickRestart({
  A: "~@9 e3@4 d3@2 e3", B: "[~ b2@20 ~@6 c#3@2 d3@2 a3@24 ~@4 a3@10 d4 ~ a3 ~@8]/5", C: "~@9 f#4 ~ f#4@2 f#4@2 e4",
  D: "[d4 e4@4 a4@2 f#4@4 d4@2 b3@2 e3@6 a3@2 f#3@4 d3@2 b2@2 f#2@4 g2@2 b2@2 d3@2 a3@2 f#3@2 d4@2 a3@2 e4@2 a3 ~ [e4,f#4]@2 a4 ~ [e4,f#4]@2 g4@2 b4 ~ c#5@5 ~ c#5@4 b4@2 a4 [f#4,a4] b4@2 a4@6 d5 ~ b4@4 a#4 [g#4,a4] g4 ~@2, ~@7 e4 ~@15 e3 ~@55 b4 ~@7 a4 ~@8]/6", // Esus2 F#m Amaj7
  E: "[~@3 [a4,b4]@2 d5 b4 d5 b4 d5@2 [a4,b4]@2 c#5@2 a4@2 b4@2 f#4 ~ e4@2 d4 b3 e4 d4 b3 a4 d4@3]/2", // Asus2
  F: "~ [a3,c#4]@4 f#4@2 d4@8 ~", G: "~ c#4@2 a3@2 f#3@2 b3@8 ~, ~@7 a3 ~@8",
  H: "[~@5 a4@8 f#4 e4 d4@2 e4@2 f#4 ~@3 b3@6 d4@2 e4@10 ~@7]/3",
})).s("gm_overdriven_guitar").gain(0.09).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~ A@49 ~ A@33 ~ A@17 ~ A@20 B ~>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.44)
// … 50 more lines

More by Alan Parsons