Strudelify

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.
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: edit a riff to change every repeat.

// chords · epiano1
const epiano1 = note(`<
  ~ A@2 B@2 C@2 D@2 E F@7 G@2 H@2 I@2 J@2 E K@7 L@2 H@2 M@2 N@2 O P Q R S T U V W@2 X@2 Y@2 Z@2 AA@2 E AB@7 AC@2 H@2 M@2
  AD@2 O P Q R S AE U V W@2 AF@2 Y@2 AG@2 AH@2 O AI Q R AJ AE U V AK@2 AL@2 AM@2 Z@2 AH@2 AN@2 AO@2 AP@2 AQ@2 AR@2 AO@2
  AS@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@2 d4@2 f#4@2 b3@6 c#4@2 a3@15 ~@3]/2", D: "[c#4@2 d4@2 f#4@2 b3@6 c#4@2 a3@6 b3@2 g3@7 ~@3]/2",
  E: "[c#4,e4]@3 [d4,f#4]@5, d3@7 ~, a4@3 ~", // C#m D
  F: "[[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
  G: "[[e3,g3,b3,d4,e4]@12 ~@2 [g3,d4,e4]@13 ~@5, ~@7 e3@9, ~@14 a#3@15 ~@3]/2", // Em7
  H: "[[a3,f#4]@11 ~@3 [g#3,b3,f#4]@16 ~@2, d4@9 ~@5 d4@13 ~@5]/2", // D G#m7
  I: "[[d3,a3,f#4]@13 ~@3 g2@16, d4@11 ~@3 b3@15 ~@3, ~@14 [d4,f#4]@13 ~@5]/2", // D
  J: "[[a3,f#4]@7 ~, d4@25 ~@7, d3@23 ~@9]/2", // D
  K: "[[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
  L: "[[e3,g3,b3,d4,e4]@6 ~ [g3,a#3,e4]@7 ~@2, ~@7 e3@8 ~, ~@7 d4@6 ~@3]/2", // Em7 Edim
  M: "[[d3,f#4]@13 ~@3 g2@16, [a3,d4]@11 ~@3 b3@15 ~@3, ~@14 [d4,f#4]@13 ~@5]/2", // D D5 D
  N: "[[a3,f#4]@7 ~, d4@25 ~@7, d3@11 ~@5]/2", O: "d3@3 ~ d3 ~ [d3,d4,f#4]@9 ~, a3@13 ~@3, [c#4,e4]@3 ~@5",
  P: "[c#4,e4]@6 [d3,a3,d4,f#4]@9 ~, [d3,a3] ~@3", // C#m D D5
  Q: "[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
  R: "[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
  S: "[c#4,e4]@6 d3@4 ~@2 d3 ~ d3 ~, a3@7 ~, d3@3 ~@3 [d4,f#4]@9 ~", // C#m D
  T: "d3@2 ~@2 d3 ~ [d3,a3,d4,f#4]@5 ~ [a3,d4,f#4]@2 d3 ~, [a3,c#4,e4]@3 ~@5", // D A
  U: "[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
  V: "[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
  W: "[[g3,e4]@6 ~ [g3,a#3,d4,e4]@7 ~@2, [b3,d4]@5 ~@11]/2", // C Em7b5 Bm
  X: "[[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
  Y: "[[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
  Z: "[[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
  AA: "[[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
  AB: "[[c#4,e4,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@8 ~@2 c#4@6 b3@10 c#4@2 d4@2 ~@2 b3@4 c#4@2 ~@2 f#3@2, d3@6 a3@13 ~@13 [a3,a4]@6 ~ a3@14 ~ a3@2, ~@4 d4@9 ~@3 b2@23 ~@7 d3@28 ~@6 b2@30 ~@2, ~@6 f#4@9 ~ f#4@14 ~@6 f#4@10 ~@2 a4@13 ~@39 f#4@9 ~@3, ~@16 d4@11 ~@7 d4@7 ~@27 d4@9 ~@3 [d4,f#4]@14 ~@18]/7", // A F#5 C#m D C#m A D
  AC: "[[e3,g3,b3,d4,e4]@6 ~ [g3,a#3,d4,e4]@7 ~@2, ~@7 e3@8 ~]/2", AD: "[[a3,d4]@27 ~@5, [d3,f#4]@25 ~@7]/2",
  AE: "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
  AF: "[[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
  AG: "[[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
  AH: "[[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
  AI: "[c#4,e4]@6 [a3,d4,f#4]@7 ~@3, [d3,a3]@4 ~@2 d3@9 ~", // C#m D D5
  AJ: "[c#4,e4]@6 d3@4 ~@2 d3 ~ d3 ~, a3@7 ~, d3@3 ~@3 [d4,f#4]@8 ~@2", // C#m D
  AK: "[[g3,e4]@6 ~ [g3,a#3,d4]@7 ~@2, [b3,d4]@5 ~@2 e4@6 ~@3]/2", // C Gm Bm
  AL: "[[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
  AM: "[[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
  AN: "[[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
  AO: "[[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
  AP: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@5 ~ e4@2 b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~@3 b2@2, a3@10 ~@2 a3 ~ [f#3,a3,c#4]@14 ~@4]/2", // C#m D Bm F#m
  AQ: "[[g2,g3,b3,d4,e4]@4 [g2,g3] ~ [g2,g3]@4 g2 ~ [g2,g3] ~ g2@3 ~ g2 ~ g2 ~ g2@3 ~ g2 ~@3 g2@2, ~@2 f#4 [b3,d4]@3 e4 [g3,b3]@7 ~@2]/2", // Em7 G Bm G
  AR: "[[c#4,e4]@4 [d4,f#4]@2 [b3,d4]@6 [a3,e4]@2 b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~@3 b2 ~, a3@11 ~@3 f#3@16 ~@2, ~@7 [a3,c#4]@7 ~@2]/2", // C#m D Bm A5 A
  AS: "[[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 G H I J K L M A N C O E P Q O R S H I J K L M A N C O E P Q O R S T U V W H I V X Y@2 Z AA AB D Z F AC
  G H I J K L AD A N C O E P Q AE R S T U V W H I V X Y@2 Z AA AB O Z F AC G T I V W H I V X Y@2 Z AA AB D Z F AC G Z AA
  AB AF Z AA AB O Z AA AB D AG@2
>`.pickRestart({
  A: "b1@2 ~@2 b1@3 ~ b1@5 ~ b1@2", B: "b1@3 ~ b1@3 ~ b1@7 ~", C: "g1@3 ~ g1@3 ~ g1@5 ~ g1@2",
  D: "g1@2 ~@2 g1@3 ~ g1@7 ~", E: "b1@3 ~ b1@3 ~ b1@5 ~ b1@2", F: "b1 ~ b1 ~ b1@4", G: "g1 ~ g1 ~ g1@4",
  H: "d2@3 ~ d2@3 ~ d2@5 ~ d2@2", I: "d2@3 ~ d2@3 ~ d2@8", J: "b1@3 ~ b1@2 ~@2 b1@5 ~ b1@2",
  K: "b1@2 ~@2 b1@3 ~ b1@7 ~", L: "d2@2 ~@2 d2@3 ~ d2@5 ~ d2@2", M: "d2 ~ d2 ~ d2@4", N: "b1@2 ~@2 b1@2 ~@2 b1@7 ~",
  O: "g1@3 ~ g1@3 ~ g1@7 ~", P: "e1@4 e1@3 ~ e1@8", Q: "d1@3 ~ d1@3 ~ d1@4 ~@2 d1@2", R: "d1@3 ~ d1@3 ~ d1@5 ~ d1@2",
  S: "d1@2 ~@2 d1@3 ~ d1@7 ~", T: "d2@3 ~ d2@3 ~ d2@4 ~@2 d2@2", U: "d2@3 ~ d2@3 ~ d2@7 ~",
  V: "f#1@3 ~ f#1@3 ~ f#1@5 ~ f#1@2", W: "f#1@3 ~ f#1@3 ~ f#1@8", X: "f#1@2 ~@2 f#1@3 ~ f#1@8",
  Y: "[g1@11 ~@3 g1@13 ~@5]/2", Z: "b1@3 ~ b1@3 ~ b1@4 ~@2 b1@2", AA: "b1@3 ~ b1@3 ~ b1@8",
  AB: "g1@3 ~ g1@3 ~ g1@4 ~@2 g1@2", AC: "g1@2 ~@2 g1@3 ~ g1@5 ~ g1@2", AD: "d2@2 ~@2 d2@2 ~@2 d2@7 ~",
  AE: "g1@3 ~ g1@3 ~ g1@8", AF: "g1@2 ~@2 g1@3 ~ g1@8", AG: "[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 D E F G H I J K L@2 ~@10 M N O@2 P@3 Q A@2 D C A@2 D E F R S I J K T U ~@10 V N@3 P@3 Q ~@10 V O W O
  P@3 X@2 O P O M N P O M O P N Y@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, ~@3 b3@5",
  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@9 ~",
  E: "c#4 f#4 a4 ~ f#4 a4 f#4 a4, ~@6 b3@7 ~@3", F: "b3 d4 a4 g4 b3 d4 g4 e4",
  G: "~@2 a4 ~@3 g4 e4, a#3@3 g4@2 d4@2 ~, ~ d4@3 a#3@2 ~@2", H: "b3 ~ g4 f#4 b3 d4 f#4 e4, ~ d4@3 ~@4",
  I: "g#3 ~ f#4 e4 g#3 b3 e4 b3, ~ b3@2 ~@5", J: "f#4 ~ d4 ~ a3 d4 f#4 a3, ~ a3@2 f#4@2 ~@3",
  K: "b3 d4 f#4 e4 g3 b3 e4 b3",
  L: "[~ 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",
  M: "~ d4 a4 ~ d4 a4 d4 a4, c#4@4 ~@2 b3@7 ~@3", N: "~ d4 a4 ~@3 d4 a4, c#4@5 ~ b3@7 ~@3, ~@2 d4 ~, ~@5 a4@2 ~",
  O: "~ d4 a4 ~@3 d4 a4, c#4@5 ~ b3@8 ~@2, ~@2 d4 ~, ~@5 a4@2 ~",
  P: "~ d4 a4 ~@3 d4 a4, c#4@5 ~ b3@9 ~, ~@2 d4 ~, ~@5 a4@2 ~", Q: "c#4 d4 a4 ~@2 a4 d4@2, ~@3 b3@3 ~@2, ~@2 d4 ~",
  R: "~@2 a4 ~ a#3 ~ g4 e4, a#3@3 g4@2 ~@3, ~ d4@3 ~ d4@2 ~", S: "b3 d4 g4 f#4 b3 d4 f#4 e4",
  T: "~ d4 ~ d4 ~ d4 ~ d4, a3@2 f#4@2 a3@3 ~, ~@3 f#4",
  U: "~ d4 ~ d4 ~ d4 ~ d4, a3@6 ~@2 a3@5 ~@3, ~@4 f#4@5 ~@3 f#4@4", V: "~ d4 a4 ~ d4 a4 d4 a4, c#4@2 ~ b3@4 ~",
  W: "~ d4 a4 ~@2 a4 d4 a4, c#4@5 ~ b3@8 ~@2, ~@2 d4 ~",
  X: "[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",
  Y: "[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 I C@2 J B C@2 E ~@2 F@2 G@2 F@2 K@2 B C@2 J B C@2 E ~@2 F@2 G@2 F@2
  L@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]@5 ~@5 [f#3,a3]@2 [f#3,a3]@2 [f#3,a3]@2", 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,a4]@2 [d4,f#4,a4]@2 [c#4,e4,a4]@2 [d4,f#4,a4]@7 ~@3", J: "[f#3,a3,c#4]@3 ~@2 [f#3,a3]!3",
  K: "[[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
  L: "[[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 J K@2 ~ L C D E M@2 N@2 O P Q@2 ~@7 E R@2 ~ S@7 J T@2 ~ J U V E W@2 X@2 O Y Z ~@8 E
  R@2 ~ AA@4 AB@3 ~@7 E R@2 ~ AA@4 AC@3 ~@14
>`.pickRestart({
  A: "e3@3 f#3@4 ~", 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@6 f#3@7 ~@3", K: "[e3@2 f#3 a3@2 a2 a#2 b2@8 ~]/2",
  L: "e3@3 f#3@3 ~ a2", M: "[a3 g3!4 a3 g3 a#3@6 ~@2 e4]/2", N: "[e4 d4!4 e4 d4 f#4@3 f#4 e4@2 d4@2 d4]/2",
  O: "e4@2 f#4@2 e4@2 f#4 e4 d4@4 ~@2 a3@2", P: "f#4 e4 d4 d4@2 a3 b3 a3", Q: "[a3 d4 d4@7 ~@7]/2",
  R: "[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",
  S: "[~@4 a4!3 a4@11 ~@2 a4!3 a4@11 ~@2 a4!3 ~@8 d4@7 ~@2, ~@39 a4@15 ~@2]/7", T: "[e3@2 f#3 a3@2 a2 a#2 b2@9]/2",
  U: "e3 f#3@2 a3@2 d4 c#4!2", V: "b3@15 ~", W: "[a3@2 g3@2 g3@2 g3@2 g3@2 a3@2 g3@2 a#3@9 ~@7 e4@2]/2",
  X: "[e4 d4!2 c#4 d4 e4 d4 f#4@3 f#4 e4@2 d4@2 ~]/2", Y: "f#4 e4 d4 d4@2 b3 a3!2", Z: "d4 d4@5 ~@2",
  AA: "[~@4 a4!3 a4@11 ~@2 a4!3 a4@8 ~]/4", AB: "[~@4 a4!3 ~@8 d4@5 ~@4, ~@7 a4@13 ~@4]/3",
  AC: "[~@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@7 ~ d4@15 ~@3 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@16 ~@2 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~ c#4@8 d4@23 ~@3, ~@14 a4@22 ~@10 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@16 ~@2 [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 L M@2 ~ N O@6 P@3 Q@3 R S T U V W@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: "~@2 [f#3,c#4]@2 ~@4 [f#3,c#4]@7 ~", M: "[[g3,e4]@13 ~@3]/2",
  N: "~@8 e3@4 d3@2 e3 ~",
  O: "[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",
  P: "[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",
  Q: "[e4@2 a3 ~ [e4,f#4]@2 a4 ~ [e4,f#4]@2 g4@2 b4@2 c#5@5 ~ c#5@4 b4@2 [f#4,a4] a4 b4 ~ a4@5 ~ d5 ~ b4@4 a#4 [g#4,a4] g4 ~@3, ~@30 b4 ~@7 a4 ~@9]/3", // Esus2 F#m Amaj7
  R: "~@2 [a4,b4]@2 d5 b4 d5 b4 d5@2 [a4,b4]@2 c#5@2 a4@2", S: "b4@2 f#4 ~ e4@2 d4 b3 e4 d4 b3 a4 d4@4",
  T: "[a3,c#4]@2 f#4 d4@4 ~", U: "c#4@2 a3@2 f#3@2 b3@9 ~, ~@6 a3 ~@9", V: "~@4 a4@7 ~ f#4 e4 d4@2",
  W: "[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 I J C D K F C L M@2 ~@8 A J N D E F C G H@2 O@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: "[c#4,e4]@2 ~ d4@2 ~@2 [a3,f#4], a3@3 ~ a3@5 ~ a3@4 ~@2, ~@3 f#4@4 ~, ~@3 d4", // C#m D
  J: "a3@4 ~@8 [d4,f#4]@2 a3 ~, [c#4,e4]@3 [d4,f#4]@3 ~@2, ~@4 a3@5 ~ a3@4 ~@2", // D C#m D
  K: "a3 ~ a3 [a3,d4]@2 ~@2 f#4, [c#4,e4]@3 f#4@3 d4@2, ~@5 a3@3", // D5 C#m
  L: "f#3@4 f#3@2 ~@6 [a3,c#4]@2 f#3 ~, [a3,c#4]@3 [a3,c#4]@3 ~@2, ~@5 f#3@2 ~", // A
  M: "[[g3,d4,e4]@13 ~ [g3,a#3,d4,e4]@15 ~@3, b3@7 ~@9]/2", // Em7 Em7b5
  N: "~@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", O: "[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 I J K C G L M N E O E F G@2 H F I P K C G L E N E O E Q R@2 E@2 R@2 S@2 G@2 C D G@2 C T
  E F G@2 H F I J K C I L M N E O E U R@2 E@2 R@2 S@2 G@2 C D G@2 C T E U R@2 E@2 R@2 S@2 G@2 C D G@2 C T G@2 C D G@2 C
  D G@2 C D V@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]@2 [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", // B5
  J: "[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
  K: "[g2,d3] ~ [g2,d3] ~ d3@2 g2 ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~, ~@4 g2 ~@11", // G5
  L: "[e2,b2] ~ [e2,b2] ~ [e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  M: "[a2,d3]@2 [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~", // D5
  N: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ g2@2 d3 ~ [g2,d3] ~ [g2,d3] ~, ~@8 d3 ~@7", // G5
// … 79 more lines

More by Alan Parsons