Strudelify

Bye Bye Love

Simon & Garfunkel

KeyA majorTempo170 bpm
0:00/0:00
// Bye Bye Love — Simon & Garfunkel
// 170 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/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 pick · "PICK BASS"
const bass = note(`<
  A B C D E F E G E H I J E F E G K L I M B N O P Q N R P S T U V R@2 W X Y Z F E AA AB AC AD AE Z AF AG AH K G AD AI B
  V AJ P AK V O AL AK AM AN AO AP@2 AQ AL AR Z G E AS Z AT AU AF K F AB G AV AW AX AY AZ N BA AL BB AP BA P AR BC BD AO
  BE AO BF P AR AB AF Z BG AB AS AU AF K AF AB G K BH AX AF AX AY AX BI BJ BK AY BL ~
>`.pickRestart({
  A: "a1@3 ~@5 c2@4 d2@4", B: "a1 ~@3", C: "~@2 c2 d2", D: "a1@5 ~@3 b1@4 c#2@4", E: "d1@5 ~@3 d1@5 ~@3",
  F: "a1@5 ~@2 a1@2 ~@3 f#1@4, ~@11 a1@2 ~@3", G: "a1@5 ~@2 a1@2 ~@2 a1@5", H: "a1@4 ~@3 a1 ~@3 a1@5",
  I: "a1@5 ~@3 e1@6 ~@2", J: "a1@6 ~@2 b1@4 c#2@3 ~", K: "d1@6 ~@2 d1@7 ~", L: "a1@6 ~ a1@2 ~@3 f#1@3 ~, ~@11 a1@2 ~@3",
  M: "a1@7 ~ a1@4 ~@4", N: "e1@5 ~@3 g#1@4 b1@4, ~@7 g1@2 ~@7", O: "e1@5 ~@2 g1 g#1@4 b1@3 ~",
  P: "a1@5 ~@2 c2 c#2@4 e2@4", Q: "a1@6 ~ c2 c#2@4 e2@4", R: "e1@5 ~@3 g#1@4 b1@3 ~, ~@7 g1@2 ~@7",
  S: "a1@4 ~@3 c2 c#2@4 e2@2 ~@2", T: "d2@5 ~@3 f#2@4 a2@4, ~@7 f2@2 ~@7", U: "d2@5 ~@2 f2 f#2@4 a2@3 ~",
  V: "e1@5 ~@2 g1 g#1@4 b1@4", W: "e1@5 ~@3 g#1@4 b1@2 ~@2, ~@7 g1@2 ~@7", X: "a1@5 ~@3 c#2@4 e2@4, ~@7 c2@2 ~@7",
  Y: "a1@5 ~@3 b1@4 c#2@3 ~, ~@7 a1@2 ~@7", Z: "d1@5 ~@3 d1@6 ~@2", AA: "a1@4 ~@3 a1@2 ~@3 f#1@3 ~, ~@11 a1@2 ~@3",
  AB: "d1@3 ~ d1@3 ~", AC: "a1@5 ~@2 a1@2 ~@2 a1@4 ~", AD: "a1@6 ~@2 e1@7 ~", AE: "a1@4 ~@4 b1@4 c#2@3 ~, ~@7 a1@2 ~@7",
  AF: "a1@4 ~@3 a1@2 ~@2 a1@5", AG: "d1@5 ~@3 d1@7 ~", AH: "a1@5 ~@2 a1@2 ~@3 f#1@3 ~, ~@11 a1@2 ~@3",
  AI: "a1@4 ~@3 a1@3 ~ a1@4 ~", AJ: "e1@4 ~@3 g1 g#1@4 b1@3 ~", AK: "a1@4 ~@3 c2 c#2@4 e2@3 ~",
  AL: "a1@4 ~@3 c2 c#2@4 e2@4", AM: "d2@5 ~@2 f2 f#2@4 a2@4", AN: "d2@5 ~@3 f#2@4 a2@3 ~, ~@7 f2@2 ~@7",
  AO: "e1 ~ g#1 b1, ~@7 g1@2 ~@7", AP: "e1@4 ~@3 g1 g#1@4 b1@4", AQ: "e1@4 ~@3 g1 g#1@4 b1@2 ~@2",
  AR: "a1 ~ b1 c#2, ~@7 a1@2 ~@7", AS: "a1@4 ~@3 a1@2 ~@3 f#1@4, ~@11 a1@2 ~@3",
  AT: "a1@5 ~@2 a1@2 ~@3 e1@4, ~@11 a1@2 ~@3", AU: "a1@7 ~ e1@8", AV: "d1@3 ~ d1@4",
  AW: "a1@5 ~@2 a1 ~@4 f#1@3 ~, ~@11 a1@2 ~@3", AX: "a1@7 ~ e1@7 ~", AY: "a1@4 ~@3 a1@2 ~@3 e1@4, ~@11 a1@2 ~@3",
  AZ: "a1@3 ~@13", BA: "e1@4 ~@4 g#1@4 b1@3 ~, ~@7 g1@2 ~@7", BB: "a1@3 ~@5 c#2@4 e2@3 ~, ~@7 c2@2 ~@7",
  BC: "d2 ~ f#2 a2, ~@7 f2@2 ~@7", BD: "d2@4 ~@4 f#2@4 a2@3 ~, ~@7 f2@2 ~@7", BE: "e1@3 ~@5 g#1@4 b1@4, ~@7 g1@2 ~@7",
  BF: "e1@2 ~@2 g#1@2 b1 ~, ~@7 g1@2 ~@7", BG: "a1@4 ~@3 a1@2 ~@2 a1 e1@3 ~", BH: "a1@4 ~@3 a1@2 ~@2 a1 e1@4",
  BI: "a1@4 ~@3 a1@2 ~@3 e1@4, ~@11 a1@3 ~@2", BJ: "a1@6 ~@2 a1@7 ~", BK: "e1@4 ~@3 e1@2 ~@2 e1@5",
  BL: "a1@3 ~@3 a1@5 ~@5",
})).s("gm_electric_bass_pick").gain(0.45).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@86 A B C D E F G H I J K L M N O P@2 ~@23 Q@2>".pickRestart({
  A: "~@3 a5@5 [g#5,b5] ~@3 [f#5,a5]@2 ~@2, ~@2 c#6@5 ~@9", B: "[g#5,b5]@5 ~ [g#5,b5]@5 ~@5",
  C: "~@2 [g#5,b5]@2 ~@2 [g#5,b5]@2 [f#5,a5]@3 ~ [e5,g#5]@2 ~@2", D: "[c#5,e5,a5]@5 ~ [c#5,e5,a5]@5 ~@5",
  E: "~@2 [a5,c#6]@5 ~ [g#5,b5] ~@3 [f#5,a5] ~@3", F: "[g#5,b5]@5 ~ [g#5,b5]@7 ~@3",
  G: "~@2 [g#5,b5]@2 ~@2 [g#5,b5]@2 [f#5,a5] ~@3 [e5,g#5] ~@3", H: "[c#5,e5,a5]@5 ~ [c#5,e5,a5]@10",
  I: "~@2 [c#5,a5]@5 ~ [d5,b5] ~@3 [e5,c#6]@2 ~@2", J: "[f#5,d6]@5 ~ [f#5,d6]@6 ~@4",
  K: "~@2 [f#5,d6]@3 ~ [f5,c#6] ~ [f#5,d6]@2 ~@2 [g5,d#6]@2 ~@2", L: "[g#5,e6]@5 ~ [g#5,e6]@10",
  M: "~@2 [g#5,e6]@6 [f#5,d6] ~@3 [e5,c#6] ~@3", N: "[e5,c#6]@3 [d5,b5]@5",
  O: "~@2 [d5,b5]@6 [c#5,a5] ~@3 [b4,g#5]@2 ~@2", // G F#m E
  P: "[c#5@7 ~@7 g5@16 ~@2, a5@11 e5@19 ~@2, ~@4 c#5@11 ~, ~@6 a5@9 ~]/2",
  Q: "[~@6 [f#5,b5]@13 ~@13, a4@3 ~@13, ~@3 c#5@16 ~@13, ~@4 e5@15 ~@13]/2", // B5
})).s("gm_overdriven_guitar").gain(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I H J K I H I F I H L M N O P Q M O P Q R S T U V U V W X Y Z I Z AA Z AB K G H G AC I AD J M N O AE Q
  M O AE Q M S AF O AE O AE Q AG I H I H I H J K G H I H I H J M N O AE Q AH O AE Q AI S AF O AE O AE Q AJ G H I H I H J
  AK I Z G AL I Z J M AM R AM M Q V Q AN ~
>`.pickRestart({
  A: "[a2,c#3,e3,a3]@2 ~@6 [c3,e3,g3,c4]@2 ~@2 [d3,f#3,a3,d4] ~@3", // A C D
  B: "a2@3 [c#3,e3,a3] ~@3 [c#3,e3,a3] ~@3 [c#3,e3,a3] ~@3 [c#3,e3,a3]", // A
  C: "~@3 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] [c3,e3,g3,c4] ~@3 [d3,f#3,a3,d4] ~@3", // A C D
  D: "a2@3 [c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] [c#3,e3,g3,a3,c#4] ~@2 [c#3,e3,g3,a3,c#4]!2 ~@2 [c#3,e3,g3,a3,c#4]", // A A7
  E: "d3 ~@3 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@2 ~@2", // D
  F: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] c#3 ~ [e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] [c#3,e3,a3,c#4]@2 ~@2", // A
  G: "[d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@2 ~@2", // D
  H: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@2 [c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4]!2 ~@3", // A
  I: "[d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3", // D
  J: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@3 [b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@3", // A E
  K: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@2 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,g3,a3]!2 ~@3", // A A7
  L: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@3 [b2,e3,g#3,b3] ~@3 [e3,b3]@2 ~@2, ~@3 b2, ~@12 g#3 ~@3", // A E E5
  M: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@2 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3]!2 ~@3", N: "[a2,c#3,e3,a3] ~@7",
  O: "[g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3] ~@3", // E
  P: "[g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3] ~@2 [g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3] [g#2,b2,e3,g#3]@2 ~@2", // E
  Q: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@3", // A
  R: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@2 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] [a2,c#3,e3,a3]@2 ~@2", // A
  S: "[a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3] ~@3", // D
  T: "[a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3] ~@2 [a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3] [a2,d3,f#3,a3]@2 ~@2", // D
  U: "[b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@3", // E
  V: "[b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@2 [b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3]!2 ~@3", // E
  W: "[a2,c3,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@3 [a2,c#3,e3,g3,a3] ~@3 [a2,c#3,e3,g3,a3] ~@3", // A A7
  X: "[a2,c#3,e3,g3,a3] ~@3 [a2,c#3,e3,g3,a3] ~@2 [a2,c#3,e3,g3,a3] ~@3 [a2,c#3,e3,g3,a3]!2 ~@3", // A7
  Y: "[d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@2 ~@2 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4] ~@3", // D
  Z: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@2 [c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] [c#3,e3,a3,c#4]@2 ~@2", // A
  AA: "[d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@2 ~@2 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@2 ~@2", // D
  AB: "[c#3,e3,a3,c#4]@2 ~@2 [c#3,e3,a3,c#4] ~@3 [b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@3", // A E
  AC: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@2 [c#3,e3,a3,c#4]@2 c#3 ~ [e3,a3,c#4] [c#3,e3,a3,c#4]@2 ~@2", // A
  AD: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@2 [c#3,e3,a3,c#4] ~ [c#3,c#4] ~ [e3,a3] [c#3,e3,a3,c#4] ~@3", // A C# A5 A
  AE: "[g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3] ~@2 [g#2,b2,e3,g#3] ~@3 [g#2,b2,e3,g#3]!2 ~@3", // E
  AF: "[a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3] ~@2 [a2,d3,f#3,a3] ~@3 [a2,d3,f#3,a3]!2 ~@3", // D
  AG: "[a2,c#3,e3,g3,a3] ~@3 [a2,c#3,e3,g3,a3] ~@2 [a2,c#3,e3,g3,a3] ~ a2 ~ [c#3,e3,g3,a3] [a2,c#3,e3,g3,a3] ~@3", // A7
  AH: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@2 [a2,c#3,e3,a3] ~ a2 ~ [c#3,e3,a3] [a2,c#3,e3,a3] ~@3", // A
  AI: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@2 [a2,c#3,e3,a3] ~ [a2,a3] ~ [c#3,e3] [a2,c#3,e3,a3] ~@3", // A C#m A
  AJ: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,g3,a3] ~@2 [a2,c#3,e3,g3,a3] ~@3 [a2,c#3,e3,g3,a3]!2 ~@3", // A A7
  AK: "[a2,c#3,e3,a3] ~@3 [a2,c#3,e3,a3] ~@2 [a2,c#3,e3,a3]@2 ~@2 [a2,c#3,e3,g3,a3]!2 ~@3", // A A7
  AL: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4] ~@2 [c#3,e3,a3,c#4]@2 ~@2 [c#3,e3,a3,c#4] [c#3,e3,a3,c#4]@2 ~@2", // A
  AM: "[c#3,e3,a3,c#4] ~@3 [c#3,e3,a3,c#4]@2 ~@2 [b2,e3,g#3,b3] ~@3 [b2,e3,g#3,b3] ~@3", // A E
  AN: "[a2,c#3,e3,a3] ~@5 [a2,c#3,e3,a3] ~@9", // A
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.7)

// other · acoustic guitar steel · "CLEAN GTR"
const acoustic_guitar_steel_2 = note(`<
  A B C D E F E G E H I J E F E G K L I M B N O P Q N R P S T U V R@2 W X Y Z F E AA AB AC AD AE Z AF AG L K G AD AH B V
  AI P AJ V O AK AJ AL U AM AN@2 AO AK AP Z G E AQ Z AR AS AF K F AB AF K AT AU AV AW N AX AK AY AN AX P AP AZ BA AM BB
  AM BC P AP AB AF Z BD AB AQ AS AF K AF AB G K BE AU AF AU AV AU BF BG BH AV BI ~
>`.pickRestart({
  A: "a3@3 ~@5 c4@4 d4@4", B: "a3 ~@3", C: "~@2 c4 d4", D: "a3@5 ~@3 b3@4 c#4@4", E: "d3@5 ~@3 d3@5 ~@3",
  F: "a3@5 ~@2 a3@2 ~@3 f#3@4, ~@11 a3@2 ~@3", G: "a3@5 ~@2 a3@2 ~@2 a3@5", H: "a3@4 ~@3 a3 ~@3 a3@5",
  I: "a3@5 ~@3 e3@6 ~@2", J: "a3@6 ~@2 b3@4 c#4@3 ~", K: "d3@6 ~@2 d3@7 ~",
  L: "a3@5 ~@2 a3@2 ~@3 f#3@3 ~, ~@11 a3@2 ~@3", M: "a3@3 ~ a3@2 ~@2", N: "e3@5 ~@3 g#3@4 b3@4, ~@7 g3@2 ~@7",
  O: "e3@5 ~@2 g3 g#3@4 b3@3 ~", P: "a3@5 ~@2 c4 c#4@4 e4@4", Q: "a3@6 ~ c4 c#4@4 e4@4",
  R: "e3@5 ~@3 g#3@4 b3@3 ~, ~@7 g3@2 ~@7", S: "a3@4 ~@3 c4 c#4@4 e4@2 ~@2", T: "d4@5 ~@3 f#4@4 a4@4, ~@7 f4@2 ~@7",
  U: "d4@5 ~@2 f4 f#4@4 a4@3 ~", V: "e3@5 ~@2 g3 g#3@4 b3@4", W: "e3@5 ~@2 g3 g#3@4 b3@2 ~@2",
  X: "a3@5 ~@3 c#4@4 e4@4, ~@7 c4@2 ~@7", Y: "a3@5 ~@3 b3@4 c#4@3 ~, ~@7 a3@2 ~@7", Z: "d3@5 ~@3 d3@6 ~@2",
  AA: "a3@4 ~@3 a3@2 ~@3 f#3@3 ~, ~@11 a3@2 ~@3", AB: "d3@3 ~ d3@3 ~", AC: "a3@5 ~@2 a3@2 ~@2 a3@4 ~",
  AD: "a3@6 ~@2 e3@7 ~", AE: "a3@4 ~@4 b3@4 c#4@3 ~, ~@7 a3@2 ~@7", AF: "a3@4 ~@3 a3@2 ~@2 a3@5", AG: "d3@5 ~@3 d3@7 ~",
  AH: "a3@4 ~@3 a3@3 ~ a3@4 ~", AI: "e3@4 ~@3 g3 g#3@4 b3@3 ~", AJ: "a3@4 ~@3 c4 c#4@4 e4@3 ~",
  AK: "a3@4 ~@3 c4 c#4@4 e4@4", AL: "d4@5 ~@2 f4 f#4@4 a4@4", AM: "e3 ~ g#3 b3, ~@7 g3@2 ~@7",
  AN: "e3@4 ~@3 g3 g#3@4 b3@4", AO: "e3@4 ~@3 g3 g#3@4 b3@2 ~@2", AP: "a3 ~ b3 c#4, ~@7 a3@2 ~@7",
  AQ: "a3@4 ~@3 a3@2 ~@3 f#3@4, ~@11 a3@2 ~@3", AR: "a3@5 ~@2 a3@2 ~@3 e3@4, ~@11 a3@2 ~@3", AS: "a3@7 ~ e3@8",
  AT: "a3@5 ~@2 a3 ~@4 f#3@3 ~, ~@11 a3@2 ~@3", AU: "a3@7 ~ e3@7 ~", AV: "a3@4 ~@3 a3@2 ~@3 e3@4, ~@11 a3@2 ~@3",
  AW: "a3@3 ~@13", AX: "e3@4 ~@4 g#3@4 b3@3 ~, ~@7 g3@2 ~@7", AY: "a3@3 ~@4 c4 c#4@4 e4@3 ~",
  AZ: "d4 ~ f#4 a4, ~@7 f4@2 ~@7", BA: "d4@4 ~@3 f4 f#4@4 a4@3 ~", BB: "e3@3 ~@5 g#3@4 b3@4, ~@7 g3@2 ~@7",
  BC: "e3@2 ~@2 g#3@2 b3 ~, ~@7 g3@2 ~@7", BD: "a3@4 ~@3 a3@2 ~@2 a3 e3@3 ~", BE: "a3@4 ~@3 a3@2 ~@2 a3 e3@4",
  BF: "a3@4 ~@3 a3@2 ~@3 e3@4, ~@11 a3@3 ~@2", BG: "a3@6 ~@2 a3@7 ~", BH: "e3@4 ~@3 e3@2 ~@2 e3@5",
  BI: "a3@3 ~@3 a3@5 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@4 A B C B A D@3 A E A F G H@4 I@4 J@4 K@2 L@6 C M@2 N@2 O@4 P C E A Q@4 R@6 S@2 K@2 T@6 C E U@3 V@3 C P A E A W@4
  X@6 Y@4 Z@4 AA@2 A E A E A AB@3 AC@5 AD@8 AE AF@2 ~
>`.pickRestart({
  A: "[f#3,a3,d4]@15 ~", B: "[e3,a3]@7 ~, c#4", C: "[f#3,a3,d4]@7 ~",
  D: "[[e3,a3,c#4]@23 ~ [b3,d4]@8 [a3,c#4]@16, ~@12 e3@11 ~, ~@4 g#3 ~@3]/3", E: "[e3,a3,c#4]@15 ~", F: "[e3,a3,c#4]",
  G: "~ f#3@14 ~, [a3,d4]@7 ~", H: "[[a3,c#4]@23 ~ [g#3,b3,d4]@7 ~ [a3,c#4]@19 ~@13, e3@25 ~@7]/4",
  I: "[[g#3,b3]@32 [a3,c#4]@31 ~, e3@31 ~]/4", J: "[[g#3,b3]@16 [a3,c#4]@15 ~, e3@61 ~@3]/4", K: "[[f#3,a3,d4]@15 ~]/2",
  L: "[[b3,e4]@63 ~ [a3,c#4]@30 ~@2, g#3@61 ~@2 e3@32 ~]/6", M: "[[e3,c#4]@15 ~ [f#3,d4]@15 ~, a3@31 ~]/2",
  N: "[c#4@15 ~ [f#3,d4]@14 ~@2, a3@15 ~, e3@13 ~@19]/2", // D
  O: "[[a3,c#4]@23 ~ [g#3,b3,d4]@7 ~ c#4@15 ~ [f#3,d4]@14 ~@2, e3@45 ~@19, ~@32 a3@31 ~]/4", // A G#dim D
  P: "[a3,c#4]@15 ~, e3@13 ~@3", Q: "[[e3,a3,c#4]@22 ~@2 [g#3,b3,d4]@7 ~ [a3,c#4]@19 ~@13, ~@24 e3@27 ~@13]/4",
  R: "[[g#3,b3,d4]@30 ~@2 [a3,c#4]@31 ~ [g#3,b3,d4]@31 ~, e3@47 ~]/6", S: "[[e3,a3,c#4]@15 ~]/2",
  T: "[[g#3,b3,e4]@61 ~@3 c#4@30 ~@2, ~@21 [e3,a3]@10 ~]/6", // E A5
  U: "[[f#3,a3,d4]@15 ~ e3@13 ~@3 [f#3,d4]@15 ~, ~@15 a3@31 ~@2, ~@15 c#4@16 ~@17]/3", // D
  V: "[[e3,a3,c#4]@23 ~ [g#3,b3,d4]@7 ~ [a3,c#4]@14 ~@2, ~@8 e3@7 ~]/3", // A G#dim A
  W: "[[e3,a3,c#4]@23 ~ [g#3,b3,d4]@7 ~ [a3,c#4]@17 ~@15, ~@24 e3@25 ~@15]/4", // A G#dim A
  X: "[[g#3,b3]@31 ~ [a3,c#4]@31 ~ [g#3,b3]@31 ~, e3@47 ~]/6", Y: "[c#4@31 ~ [f#3,d4]@30 ~@2, a3@31 ~, e3@29 ~@35]/4",
  Z: "[[b3,e4], g#3@61 ~@3]/4", AA: "[[e3,a3,c#4]@31 ~]/2",
  AB: "[[e3,a3,c#4]@22 ~@2 [g#3,b3,d4]@7 ~ [a3,c#4]@14 ~@2, ~@12 e3@11 ~]/3", // A G#dim A
  AC: "[[f#3,a3,d4]@14 ~@2 e3@13 ~@2 [f#3,a3,d4]@15 ~ [a3,c#4]@16 [f#3,a3,d4]@15 ~@2, ~@15 [a3,c#4]@16 ~@16 e3@14 ~@19]/5", // D A D A
  AD: "[[a3,c#4]@23 ~ [b3,d4]@8 [a3,c#4]@23 ~ [g#3,b3,d4]@7 ~ [a3,c#4]@23 ~ [g#3,b3,d4]@7 ~ [a3,c#4]@30 ~@2, e3@27 ~ e3@36, ~@12 g#3@3 ~@49]/8", // A Bm A G#dim A G#dim A
  AE: "[e3,g#3,b3,d4]@7 ~", AF: "[[e3,a3,c#4]@13 ~@3]/2",
})).s("gm_string_ensemble_1").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@4 A@16 B A@32 B A@32 B A@39 C ~>".pickRestart({
  A: "x!2", B: "x", C: "x ~@2 x ~@4",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@3 A B@16 ~ B@15 C B@16 ~ B@15 C B@16 ~ B@15 C B@23 D ~>".pickRestart({
  A: "~@11 x!2 ~@3", B: "~ x ~ x", C: "~@4 x ~@6 x!2 ~@3", D: "~ x ~@2",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B A B A@2 B@2 A@3 B A B A B C A D A E A B F D A@3 B A B A G A B A B A B A B A B A B A B A B C A B A B A B A B
  A@2 H D A D A B A B A B A B A B A B A B A B A B C A B A B A@3 B A B A B A G A@3 B A@5 B A B A@5 B A B A@2 B A@2 I ~
>`.pickRestart({
  A: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x", B: "x ~@3 x ~@2 x!2 ~@2 x!2 ~@2 x", C: "x", D: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x",
  E: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3", F: "x ~@2 x!2 ~@3 x ~@3 x ~@2 x", G: "x ~@3 x ~@2 x!2 ~@3 x ~@3",
  H: "x ~@3 x ~@2 x!2 ~@2 x!2 ~@3", I: "~@3 x ~@4",
})).gain(0.56)

stack(bass, overdriven_guitar, acoustic_guitar_steel, acoustic_guitar_steel_2, string_ensemble_1, kick, snare, hihat)

More by Simon & Garfunkel