Strudelify

Me and Julio Down by the School Yard

Paul Simon

KeyA majorTempo180 bpm
0:00/0:00
// Me and Julio Down by the School Yard — Simon Paul
// 180 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 86, 4/4 at bar 87) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/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 · acoustic guitar steel · "Guitar 1"
const acoustic_guitar_steel = note(`<
  A B A B A B A B A B A B A B A B C D E F G H I H C J K@2 L M K@2 L M C D E F G H I H C J F N O@2 P Q R S F N O@2 T U V
  W T U V W F N O@2 P Q R S F N O@2 T U V W T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AC AN AO AP AJ AK AL AQ
  AR AS AK AT AR AS AK AT AR AS AK AT AU AV AW AV AU AV AW AV AX AY AZ ~@8
>`.pickRestart({
  A: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,c#4,e4]@2", // A D A
  B: "~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~", // A E
  C: "[a3,c#4,e4]@6 [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2", // A
  D: "~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~", // A
  E: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // A
  F: "[a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@2", // D
  G: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~", // D
  H: "[g#3,b3,e4]@5 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@4 [g#3,b3,e4] ~ [g#3,b3,e4]@2", // E
  I: "~@2 [g#3,b3,e4]@4 [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@4", J: "[a3,c#4,e4] ~@7",
  K: "[[g#3,b3,e4]@5 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@4 [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 ~@2]/2", // E
  L: "[a3,c#4,e4]@5 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2", // A
  M: "~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2", // A
  N: "~@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~", // D
  O: "[[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@4 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2]/2", // A
  P: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@2", // D
  Q: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@2 ~@2", // D
  R: "[a3,c#4,e4]@4 [c#4,e4]@2 [a3,e4] ~ [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~, ~@4 a3 ~@11", // A C#m A5 B
  S: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~", // E
  T: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~", // A G
  U: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~", // D E
  V: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~", // A D
  W: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~", // A E5 E
  X: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~@7", Y: "~@8 [a3,c#4,e4]@6 [a3,c#4,e4] ~",
  Z: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // A
  AA: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // A
  AB: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // A D
  AC: "[a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // D
  AD: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [g#3,b3,e4]@5 ~ [g#3,b3,e4] ~", // D E
  AE: "[g#3,b3,e4]@4 [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@4 [g#3,b3,e4] ~", // E
  AF: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@4 [g#3,b3,e4]@5 ~ [g#3,b3,e4] ~", // E
  AG: "[g#3,b3,e4]@4 [g#3,b3,e4] ~ [g#3,b3,e4]@2 [a3,c#4,e4]@6 [a3,c#4,e4] ~", // E A
  AH: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@6", // A
  AI: "~@8 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // D
  AJ: "[a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~", // D
  AK: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // D A
  AL: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@4 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // A
  AM: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // A D
  AN: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@2 ~@2 [a3,c#4,e4]@4 [c#4,e4]@2 [a3,e4] ~, ~@12 a3 ~@3", // D A C#m A5
  AO: "[b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~", // B E
  AP: "[g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // E D
  AQ: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // A
  AR: "[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // G D
  AS: "[g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // E A
  AT: "[b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // E5 E A
  AU: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // D A
  AV: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // E A
  AW: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4] ~", // D A C#m
  AX: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~@3", // D A
  AY: "[g#3,b3,e4] ~@3 [g#3,b3,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3", AZ: "[a3,d4,f#4] ~@3 [a3,d4,f#4] ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.3)

// chords · acoustic guitar steel · "Guitar 1" · soft notes
const acoustic_guitar_steel_2 = note("<~@128 A B C D E D F D E D G>".pickRestart({
  A: "~@14 [a3,c#4,e4] ~", B: "~@2 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~",
  C: "~@2 [a3,d4,f#4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4] ~", // D A C#m
  D: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // E A
  E: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // D A
  F: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4] ~", // D A C#m
  G: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~@7", // D A
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0.3)

// chords · acoustic guitar steel · "Guitar 2"
const acoustic_guitar_steel_3 = note(`<
  ~@3 A@8 B@8 C@2 D@2 E F G H@2 F@2 H@2 F@2 I@3 C@2 D@2 E J G K L M N O@2 P Q K L M N R S T U R S T U K L M N O@2 P Q K
  L M N R S T U R S T U V W X Y@2 Z AA AB AC AD AE AF K AG AH AI O AG AJ AK K AG AH AL AM AN AO AP AM AN AO AP AM AN AO
  AQ AR AS AR AS AR AS AR AS AT AU ~@9
>`.pickRestart({
  A: "[~@14 [c#4,e4,a4]@8 [c#4,e4,a4] ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [c#4,e4,a4]@7 ~ [c#4,e4,a4] ~ [e4,g#4,b4]@4 [e4,g#4,b4] ~ [c#4,e4,a4]@8 [e4,a4] ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [c#4,e4,a4]@7 ~ [c#4,e4,a4] ~ [e4,g#4,b4]@3 ~ [e4,g#4,b4] ~ [c#4,e4,a4]@7 ~ [c#4,e4,a4] ~ [d4,f#4,a4]@4 [d4,f#4,a4] ~ [c#4,e4,a4]@7 ~ [c#4,e4,a4] ~ [e4,g#4,b4]@3 ~ [e4,g#4,b4] ~ [c#4,a4]@8 [e4,a4] ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [c#4,e4,a4]@2, ~@110 e4@7 ~@11]/8", // A D A E A A5 D A …
  B: "[~@6 [c#4,e4,a4] ~ [e4,g#4,b4]@3 ~ [e4,g#4,b4] ~ [c#4,e4,a4]@7 ~ [c#4,e4,a4] ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ [c#4,e4,a4] ~ [e4,g#4,b4]@3 ~ [e4,g#4,b4] ~ [c#4,e4,a4]@7 ~ [c#4,e4,a4] ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [c#4,e4,a4]@4 ~@4 [c#4,e4,a4] ~ [e4,g#4,b4]@3 ~ [e4,g#4,b4] ~ [e4,a4]@5 ~ [e4,a4] ~@5 [e4,a4,c#5] ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5] ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@6 [e4,a4,c#5] ~ [e4,a4,c#5]@3 ~, ~@78 c#4@6 c#5@5 ~@39]/8", // A E A D A E A D …
  C: "[~@4 [d4,f#4,a4]@5 ~ [d4,f#4,a4] ~ [d4,f#4,a4]@7 ~ [d4,f#4,a4]@5 ~ [d4,f#4,a4] ~ [d4,f#4,a4]@4]/2", // D
  D: "[~@4 [e4,g#4,b4]@5 ~ [e4,g#4,b4] ~ [e4,g#4,b4]@7 ~ [e4,g#4,b4]@5 ~ [e4,g#4,b4] ~ [e4,g#4,b4]@4]/2", // E
  E: "~@4 [e4,g#4,b4]@5 ~ [e4,g#4,b4] ~ [e4,g#4,b4]@4", F: "~@4 [e4,a4,c#5]@5 ~ [e4,a4,c#5] ~ [e4,a4,c#5]@4",
  G: "[e4,a4,c#5] ~@7", // A
  H: "[~@4 [e4,g#4,b4]@5 ~ [e4,g#4,b4] ~ [e4,g#4,b4]@6 ~@2 [e4,g#4,b4]@5 ~ [e4,g#4,b4] ~ [e4,g#4,b4]@4]/2", // E
  I: "[~@4 [e4,a4,c#5]@5 ~ [e4,a4,c#5] ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5] ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@6 [e4,a4,c#5] ~ [e4,a4,c#5]@3 ~]/3", // A
  J: "~@4 [e4,a4,c#5]@5 ~ [e4,a4,c#5] ~ [e4,a4,c#5]@3 ~", K: "~ [d4,f#4,a4] ~ [d4,f#4,a4]",
  L: "~@4 [d4,f#4,a4]@4 ~@4 [d4,f#4,a4]@3 ~", M: "~@4 [e4,a4,c#5]@3 ~@5 [e4,a4,c#5]@4",
  N: "~@4 [e4,a4,c#5]@4 ~@4 [e4,a4,c#5]@3 ~", O: "~@4 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4]@3 ~",
  P: "~@4 [e4,a4,c#5]@3 ~@5 [d#4,f#4,b4]@3 ~", Q: "~@4 [e4,g#4,b4]@4 ~@4 [e4,g#4,b4]@3 ~",
  R: "[e4,a4,c#5]@5 ~@3 [d4,g4,b4]@6 ~@2", S: "[d4,f#4,a4]@7 ~ [e4,g#4,b4]@5 ~@3",
  T: "~@4 [e4,a4,c#5]@3 ~@5 [d4,f#4,a4]@4", U: "~@4 [e4,a4,c#5]@3 ~@5 [e4,g#4,b4]@3 ~",
  V: "[e4,g#4,b4]@5 ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@7", W: "~@3 [e4,a4,c#5]",
  X: "~@2 [e4,a4,c#5] ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@4", // A
  Y: "[~@2 [e4,a4,c#5] ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@6 [e4,a4,c#5] ~ [e4,a4,c#5]@3 ~@5 [d4,f#4,a4]@4]/2", // A D
  Z: "~@2 [d4,f#4,a4] ~ [d4,f#4,a4]@7 ~ [d4,f#4,a4]@4", AA: "~@2 [d4,f#4,a4] ~ [d4,f#4,a4]@4 ~@4 [e4,g#4,b4]@4",
  AB: "~@2 [e4,g#4,b4] ~ [e4,g#4,b4]@7 ~ [e4,g#4,b4]@4", AC: "~@2 [e4,g#4,b4] ~ [e4,g#4,b4]@4 ~@4 [e4,g#4,b4]@4",
  AD: "~@2 [e4,g#4,b4] ~ [e4,g#4,b4]@4 ~@4 [e4,a4,c#5]@4", AE: "~@2 [e4,a4,c#5] ~ [e4,a4,c#5]@4 [e4,a4,c#5]@3 ~@5",
  AF: "~@3 [d4,f#4,a4]", AG: "~@4 [d4,f#4,a4]@3 ~@5 [e4,a4,c#5]@3 ~", AH: "~ [e4,a4,c#5] ~ [e4,a4,c#5]",
  AI: "~@4 [e4,a4,c#5]@3 ~@5 [d4,f#4,a4]@3 ~", AJ: "~@4 [d#4,f#4,b4]@3 ~@5 [e4,g#4,b4]@4",
  AK: "~@4 [e4,g#4,b4]@3 ~@5 [d4,f#4,a4]@4", AL: "~@4 [e4,a4,c#5]@3 ~ [e4,a4,c#5]@5 ~@3",
  AM: "[d4,g4,b4]@6 ~@2 [d4,f#4,a4]@7 ~", AN: "[e4,g#4,b4]@5 ~@7 [e4,a4,c#5]@3 ~",
  AO: "~@4 [d4,f#4,a4]@4 ~@4 [e4,a4,c#5]@3 ~", AP: "~@4 [e4,g#4,b4]@3 ~ [e4,a4,c#5]@5 ~@3",
  AQ: "~@4 [e4,g#4,b4]@3 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~", // E A
  AR: "[d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~", // D A
  AS: "[e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~", // E A
  AT: "[d4,f#4,a4]@3 ~@3 [d4,f#4,a4] ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~@3", // D A
  AU: "[e4,g#4,b4] ~ [e4,g#4,b4] ~@5 [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~@3", // E A
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.7)

// chords · acoustic guitar steel · "Guitar 2" · soft notes
const acoustic_guitar_steel_4 = note("<~@128 A B C D C D C D C D E>".pickRestart({
  A: "~@4 [d4,f#4,a4] ~@9 [e4,a4,c#5] ~", B: "~@4 [e4,g#4,b4] ~@9 [e4,a4,c#5] ~",
  C: "[d4,f#4,a4]@3 ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~", // D A
  D: "[e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~", // E A
  E: "[d4,f#4,a4]@3 ~ [d4,f#4,a4] ~@11", // D
})).s("gm_acoustic_guitar_steel").gain(0.05).pan(0.7)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@8 A@2 B@2 C@2 D@2 E@3 F@2 G H I E J K L E M G L N@2 E@3 F@2 G H I E J F O E@2 P F Q R F O E@2 S T U V S T U V F O
  E@2 P F Q R F O E@2 S T U V S T U V W X Y@2 Z AA AB AC AD AE AF AG AA AH Y Z AI AJ AK AL AA AH Y AM AN AO AP AQ AN AO
  AP AQ AN AO AP AR AS AT AU AV AS AT AU AV AS AW AX ~@8
>`.pickRestart({
  A: "[a1@29 ~@3]/2", B: "[a1@19 ~@13]/2", C: "[a1@5 ~@3]/2", D: "[a1@3 ~]/2", E: "a1@5 ~ a1 ~ a1@6 ~@2",
  F: "d2@5 ~ d2 ~ d2@7 ~", G: "e2@5 ~ e2 ~ e2@7 ~", H: "e2@5 ~ e2 ~ e2@5 ~@3", I: "e2@6 e2 ~ e2@6 ~@2", J: "a1 ~@7",
  K: "e2@5 ~ e2 ~ e2@6 ~@2", L: "e2@5 ~ e2 ~ e2@8", M: "a1@5 ~ a1@2 a1@6 ~@2", N: "a1@5 ~ a1 ~ a1@7 ~",
  O: "d2@5 ~ d2 ~ d2@3 ~ d2@4", P: "d2@5 ~ d2 ~ d2@6 ~@2", Q: "a1@5 ~ a1 ~ b1@3 ~ b1@3 ~",
  R: "e2@5 ~ e2 ~ e2@3 ~ e2@2 ~@2", S: "a1@5 ~ a1@2 g1@7 ~", T: "d2@5 ~ d2 ~ e2@8", U: "a1@3 a1 d2@4",
  V: "a1@6 a1 ~ e2 ~ e2 ~ e2@2 ~@2", W: "e2@2 ~@2 e2@2 ~@2 e2 ~@7", X: "~@8 a1@5 ~ a1 ~", Y: "a1@6 ~@2 a1@5 ~ a1 ~",
  Z: "a1@6 ~@2 d2@5 ~ d2 ~", AA: "d2@7 ~ d2@5 ~ d2 ~", AB: "d2@7 ~ e2@5 ~ e2 ~", AC: "e2@7 ~ e2@5 ~ e2 ~",
  AD: "e2@5 ~@3 e2@6 e2 ~", AE: "e2@6 ~@2 a1@5 ~ a1 ~", AF: "a1@3 ~ a1 ~@3", AG: "~@8 d2@5 ~ d2 ~",
  AH: "d2@3 ~ d2@4 a1@5 ~ a1 ~", AI: "d2@6 ~@2 d2@5 ~ d2 ~", AJ: "d2@7 ~ a1@5 ~ a1 ~", AK: "b1@3 ~ b1@3 ~ e2@5 ~ e2 ~",
  AL: "e2@3 ~ e2@2 ~@2 d2@5 ~ d2 ~", AM: "a1@6 ~@2 a1@5 ~ a1@2", AN: "g1@7 ~ d2@5 ~ d2 ~", AO: "e2@4 a1@3 a1",
  AP: "d2@8 a1@6 a1 ~", AQ: "e2 ~ e2 ~ e2@2 ~@2 a1@5 ~ a1@2", AR: "e2 ~ e2 ~ e2@2 ~@2 a1 ~ a1 ~ a1 ~ a1 ~",
  AS: "d2@3 ~ d2 ~ a1@3 ~ a1@3 ~ a1@2", AT: "e2 ~ e2 ~ e2 ~ e2@2 a1 ~ a1 ~ a1 ~ a1 ~",
  AU: "d2@3 ~ d2 ~ a1@3 ~ a1 ~ a1 ~ a1 ~", AV: "e2@3 ~ e2@2 ~@2 a1 ~ a1 ~ a1 ~ a1 ~", AW: "e2 ~@3 e2 ~@3 a1 ~@7",
  AX: "d2@3 ~ d2 ~@11",
})).s("gm_electric_bass_finger").gain(0.25).pan(0.7)

// bass · electric bass finger · "Bass" · soft notes
const bass_soft = note("<~@129 A B C D E F C D G H>".pickRestart({
  A: "~@2 e2 ~@3 e2@2 ~@2 a1 ~ a1 ~ a1 ~", B: "~@6 a1@3 ~ a1 ~ a1 ~ a1 ~", C: "e2@3 ~ e2@2 ~@2 a1 ~ a1 ~ a1 ~ a1 ~",
  D: "d2@3 ~ d2 ~ a1@3 ~ a1@3 ~ a1@2", E: "e2 ~ e2 ~ e2 ~ e2@2 a1 ~ a1 ~ a1 ~ a1 ~",
  F: "d2@3 ~ d2 ~ a1@3 ~ a1 ~ a1 ~ a1 ~", G: "e2 ~ e2 ~ e2 ~ e2@2 a1 ~@5 a1 ~", H: "d2@3 ~ d2 ~@11",
})).s("gm_electric_bass_finger").gain(0.07).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@8 A@17 ~ A@17 ~ A@41 B C@8 D B C@24 E@2 F G E@2 F G H I D ~@8>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "~@4 x ~@2 x", C: "x ~@3 x ~@2 x", D: "x", E: "x ~ x ~ x ~@2 x", F: "x ~ x ~@2 x ~ x",
  G: "~ x!2 ~ x ~@2 x", H: "x!3 ~", I: "x!2",
})).gain(0.22)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@128 A B C D E@2 F D E G H>".pickRestart({
  A: "~@7 x", B: "~@2 x ~@4 x", C: "~@2 x ~@2 x ~ x", D: "~ x!2 ~ x ~@2 x", E: "x ~ x ~ x ~@2 x", F: "x ~ x ~@2 x ~ x",
  G: "x ~@3 x ~@2 x", H: "x",
})).gain(0.09)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@133
  [~ x!2 ~@3 x ~]
  [~ x ~ x]
  [~ x!3 ~@2 x ~]
  [~ x ~ x]
  [~ x!2 ~@3 x ~]
  [~ x ~@2]
>`).gain(0.04)

// drums · hihat
const hihat = s("hh").struct("<~@8 A@17 ~ A@17 ~ A@40 B C A@8 D C A@23 E F@11 G ~@7>".pickRestart({
  A: "~ x ~ x", B: "x!3 ~", C: "~@3 x", D: "~ x ~@2", E: "~@2 x ~ x!4", F: "x!8", G: "x!3 ~@5",
})).gain(0.31)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@131 [~@3 x!5] [x!8]!6 [x!6 ~@2]>").gain(0.09)

// drums · bongos
const bongos = s("bongo:18").struct("<~@8 A@17 ~ A@17 ~ A@40 ~@2 B@9 ~ B@25 C D B@2 C D B@2 C D B ~@7>".pickRestart({
  A: "~@5 x!2 ~", B: "~ x!2 ~@5", C: "x ~@6 x", D: "~ x ~ x ~@4",
})).gain(0.7)

// drums · bongos · soft notes
const bongos_soft = s("bongo:18").struct(`<
  ~@132
  [~ x!2 ~@5]
  [x ~@6 x]
  [~ x ~ x ~@4]
// … 47 more lines

More by Paul Simon