Strudelify
Spain cover art

1993 · Verve Jazz Masters 3: Chick Corea

Spain

Chick Corea

KeyB minorTempo236 bpm
0:00/0:00
// Spain — Chick Corea
// 236 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 259 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(236/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 nylon · "Aranjuez"
const acoustic_guitar_nylon = note("<A@5 B@8 C@5 D@6 E@4 F@5 G@4 H@6 I@4 J@7 K@6 ~@199>".pickRestart({
  A: "[~@44 e4 ~@35, ~@3 b2@38 f#4@39, ~@4 b3@71 ~@5, ~ f#3@14 ~, ~@5 [e4,f#4]@2 b4@33 [a3,d4]@40]/5", // Esus2 D5
  B: "[~@21 f#4@2 g4@2 ~ a4@5 b4@5 a4@5 g4@2 ~@4 b2 ~@4 e4@3 ~@51 f#4@4 g4@3 a4@3 ~ b4@5 c#5@5 a4, c#4@40 ~@5 f#3@36 ~@3 a2@35 ~@9, ~ [a2,g3]@39 ~@6 a3@32 ~@7 g3@38 ~@5, ~@47 d4@32 ~@6 c#4@24 ~@19, ~@48 f#4 b2@7 f#4@45 ~@27]/8", // A7
  C: "[~@5 g4@4 ~@8 f#4@3 ~@2 f#4@4 e4@3 ~ e4@3 d4@2 ~@17 b3 d4@24 ~ f#4@2, ~@9 e3@43 f#3@28, ~@11 [g3,b3]@42 ~@27, ~@11 g4@6 ~@34 g2@29, ~@12 d4@14 ~@9 e4@36 ~@9]/5", // G
  D: "[~@5 d4@5 c#4@3 ~@3 d4@3 e4@3 c#4@3 b3@2 ~@23 a4@17 ~@2 c#4@2 ~ d4@2 e4@18 d4@4, ~@15 c#2@23 ~@10 f#2@34 ~@14, ~@16 c#3@24 ~@8 a#3@19 ~@29, ~@9 c#4@13 ~@10, ~@49 e4@24 ~@23]/6",
  E: "[~@2 c#4@5 ~@18 b3@37 ~@2, ~@7 b2@49 ~@8, ~@4 c#4@21 ~@7, ~@13 f#3@44 ~@7, ~@19 a3@38 ~@7]/4",
  F: "[~@10 a4@4 ~@25 b3@3 ~@4 d4@7 g4@3 c#5@4 d5@9 ~@8 c#5@3, ~@7 [d4,g4]@26 g3@32 ~@8 d5@6 ~, ~@7 g2@14 g2@22 ~@37, ~@7 b4@3 ~@4 b4@29 ~@10 b4@6 ~@10 e5@7 ~@4, ~@4 b3@9 d3@10 ~@17]/5", // G5
  G: "[~@5 g4@3 ~@18 a3 ~@31 b4@6, f#3@27 f#4@26 ~@11, ~@2 a3@23 f#2@36 ~@3, ~ a4@2 ~ a4@21 c#5@5 ~@2, ~@3 [c#4,e4]@23 c#4@35 ~@3]/4", // C#m
  H: "[a4@4 ~@8 g4@4 ~@2 g4@4 a4@3 ~@16 d4@6 ~@19 e4@14 ~@6 f#4@7 e4@3, ~@4 e3@17 ~ e3@10 ~@19 d#4 a2@30 ~@14, ~@5 [b3,e4]@27 ~@2 b3@14 ~@3 c#4@36 ~@9, ~@6 a4@8 ~@11 b4@49 ~@6 g4@8 ~@8, ~@28 g3@20 ~@3 g3@29 ~@16]/6", // E5
  I: "[d4@3 g#3@4 ~@9 d3@6 ~@24 d4@16 e4@2, ~@3 d2@14 ~@14 a3@33, ~@3 c#4@6 e4@4 ~@10 f#3@41, ~@7 [a2,d4]@4 f#4@41 ~@12, ~@39 c#4@24 ~]/4", // D5
  J: "[~@4 d4@9 ~@3 d4@4 ~@66 d4@17 c#4@8 ~, ~@13 f3@38 ~@10 e4 a4@26 ~@24, ~@13 [c#2,c#3]@26 ~@10 f#2@27 ~@36, ~@13 c#4@5 ~@3 [b3,e4]@32 ~@7 a#3@29 ~@23, ~@62 e3@37 ~@13]/7", // C# E5
  K: "[~@51 b4@31 ~@14, b2@16 d4@5 f#4@16 ~@11, c#4@22 b3@51 ~@23, ~@7 d3@65 ~@24, ~@5 f#3@19 ~@8]/6",
})).s("gm_acoustic_guitar_nylon").gain(0.43)

// bass · electric bass finger · "BASSE"
const bass = note(`<
  ~@61 A@2 B@2 C D E F G H I J K E L@2 M N O P Q R S T U@2 V@3 ~@2 A@2 B@2 C D E F G H I J K E L@2 M N O P Q R S T U@2
  W@2 X@3 Y@4 Z@2 AA@2 AB@2 AC AD AE@2 AF@2 AG@3 ~ G H I J K E L@2 M N O P Q R S T U@2 AH AI X@3 Y@4 Z@2 AA@2 AB@2 AC@2
  AE@2 AF@2 AJ@2 AK AL AI X@3 Y@4 Z@2 AA@2 AB@2 AC@2 AE@2 AF@2 AJ@2 AK AM X@4 Y@4 Z@2 AA@2 AB@2 AC@2 AE@2 AF@2 AG@3 ~ G
  H I J K E L@2 M N O P Q R S T U@2 AN@7
>`.pickRestart({
  A: "[e1 ~@2 e1 ~@2 e1@6 f#1 ~@2 f#1]/2", B: "[~ f#1@4 ~@3]/2", C: "g1@3 d2", D: "b2@2 d2 ~", E: "f#1@3 c#2",
  F: "a#2@2 c#2 ~", G: "e2@3 ~", H: "a1@3 ~", I: "d2@3 ~", J: "g1@3 ~", K: "c#2@3 ~", L: "[b1@3 b1@3 ~@2]/2",
  M: "b2 ~@2 e3 ~@3 g3", N: "f#3@2 d3 b2 e3 ~@2 a2", O: "~@3 d3 c#3@2 ~@2", P: "a2 b2@2 g2@2 g2 d3@2",
  Q: "e3 ~@2 e3 g3@2 f#3 d3", R: "b2@2 d3 b2 e3@2 c#3 b2", S: "~ f#2 e2@2 ~ f#2@2 b2", T: "c#3@3 a#2@2 g#2 f#2@2",
  U: "[~ c#2 f#2 c#2 g#2 c#2 a#2 a2@2 f#2@2 f#3 ~@4]/2", V: "[~@7 b1@12 ~@5]/3", W: "[~@11 d2 b2@2 d2@2, ~@7 g1@9]/2",
  X: "g1@3 d2 b2@2 d2@2", Y: "f#1@3 c#2 a#2@2 c#2@2", Z: "e1@3 b1 g2@2 b1@2", AA: "a1@3 a1 e1@3 e1",
  AB: "d2@3 d2 a1@3 a1", AC: "g1@3 d2 b2@3 d2", AD: "~@3 d2 b2@3 d2", AE: "c#2@3 c#2 g#1@3 g#1",
  AF: "f#1@3 c#2 a#2@3 c#2", AG: "[b1@3 ~@4 b1@12 ~@5]/3", AH: "~@7 g1", AI: "g2 d2 g1@3 ~ d2@2 b2@4 d2@4",
  AJ: "[b1@3 ~@4 b1@9]/2", AK: "b2 ~@2 b2@4 ~", AL: "~ g3 a3 ~ g3 ~ f#3 d3 d#3 ~ f#3 ~ d#3 ~ g2@2",
  AM: "~@2 b2 ~ b2 ~ a2 ~ b2 ~ f#2 ~ b1@4", AN: "[~ g2@12 f#2@16 b1@70 ~@13]/7",
})).s("gm_electric_bass_finger").gain(0.26)

// chords · piano
const piano = note(`<
  ~@59 A@2 B@4 C D E@2 F G H@2 I J K@2 L M N O P Q R S T@2 U@3 A@2 V@4 C D E@2 F G H@2 I J K@2 L M N O P Q R S W@2 X@5
  Y@4 Z@4 AA@4 AB@4 AC@2 AD@2 F G H@2 I J K@2 L M N O P Q R S W@2 AE@5 AF AG AH@2 AI AJ AK@2 AL@2 AM@2 AN@2 AO@2 AC@2
  AP@2 AQ AR@3 AF AG AS@2 AI AJ AT@2 AL@2 AM@2 AU@2 AV@2 AC@2 AW@2 AX@4 Y@4 Z@4 AA@4 AB@4 AC@2 AD@2 F G H@2 I J K@2 L M
  N O P Q R S AY@8 ~
>`.pickRestart({
  A: "[[d3,d5]@2 [f#3,f#5] [d3,d5] [e3,e5] [d3,d5] [b2,b4] [d3,d5]@2 [c#3,c#5] [a2,a4] [c#3,c#5]@2 [b2,b4] [g2,g4]@2]/2", // D F# D E D B D C# …
  B: "[e2@2 b2 [e4,f#4,a4] ~ b2 [e2,e4,f#4,a4]@6 f#2@2 c#3 [b3,c#4,f#4] ~ c#3 [f#2,b3,c#4,f#4]@8 ~@4 [a#3,f#4]@2, [e4,f#4,a4]@3 g3@2 ~@7 [b3,c#4,f#4]@3 f#3@2 ~@15]/4", // F#m7 Bsus2 F#sus4 D#m F#m7 Bsus2
  C: "[b3,g4]@3 [c#4,a4]@3 [d3,d4,b4]@2, g2@3 ~", D: "[e4,c#5]@3 ~ d3@2 [g4,e5]@2, b3 ~, ~@3 [f#4,d5]@3 ~@2",
  E: "[[f#4,d5]@3 ~@3 c#3@2 a#3@4 c#3@2 [a#3,c#4,f#4]@2, f#2@3 ~@5, ~@3 [e4,c#5]@8 ~@5]/2", // D F# C#m
  F: "[b3,d4,g4]@3 [c#4,e4,a4]@3 [b2,d4,f#4,b4]@2, e2@3 ~", G: "[e4,g4,c#5]@3 [f#4,a4,d5]@3 [g4,a#4,e5]@2, [a2,e3,a#3]",
  H: "[d5@2 e5 ~@3 [d3,f#3,b3,e4]@6 ~ e5@2 d5, a4@3 ~, [d3,f#3,b3,e4]@3 ~@5, ~@3 [c#5,f#5]@8 ~@5]/2", // Bm F#5
  I: "c#5@5 d5@5 e5@5 ~, [c#3,b3,f4,a#4]", J: "[e4,a4,d5] [g4,c#5], [f#2,e3,a#3]",
  K: "[[e4,c#5]@3 d#4@3 [b3,c#4,f#4]@8 ~@2, b2@3 [b2,f#3]@3 ~@2, ~@3 b4@12 ~]/2", L: "[b2,b4] ~@2 [e3,e5] ~@3 [g3,g5]",
  M: "[f#3,f#5]@2 [d3,d5] [b2,b4] [e3,e5] ~@2 [a2,a4]", N: "~@3 [d3,d5] [c#3,c#5]@2 ~@2",
  O: "[a2,a4] [b2,b4]@2 [g2,g4]@2 [g2,g4] [d3,d5]@2", P: "[e3,e5] ~@2 [e3,e5] [g3,g5]@2 [f#3,f#5] [d3,d5]",
  Q: "[b2,b4]@2 [d3,d5] [b2,b4] [e3,e5]@2 [c#3,c#5] [b2,b4]", R: "~ [f#2,f#4] [e2,e4]@2 ~ [f#2,f#4]@2 [b2,b4]",
  S: "[c#3,c#5]@3 [a#2,a#4]@2 [g#2,g#4] [f#2,f#4]@2", // C# A# G# F#
  T: "[~ [c#2,c#4] [f#2,f#4] [c#2,c#4] [g#2,g#4] [c#2,c#4] [a#2,a#4] [a2,a4]@2 [f#2,f#4]@2 [f#3,f#5] ~@2 [f#2,c#3,f#3,f#4,b4,c#5,f#5]@2]/2", // C# F# C# G# C# A# A F# …
  U: "[[g2,d3,g3,e4,g#4,b4,e5]@4 [a#2,f#3,a3,d4,f#4,a4,d5]@3 [b2,f#3,b3,e4,f#4]@6 ~ [b2,f#3,b3,c#4,f#4]@8 ~@2, ~@7 b4@12 ~@5]/3", // E7 D Bsus4 Bsus2
  V: "[e2@2 b2 [e4,f#4,a4] ~ b2 [e2,e4,f#4,a4]@6 f#2@2 c#3 [b3,c#4,f#4] ~ c#3 [f#2,b3,c#4,f#4]@10 ~@2 [a#3,f#4]@2, [e4,f#4,a4]@3 g3@2 ~@7 [b3,c#4,f#4]@3 f#3@2 ~@15]/4", // F#m7 Bsus2 F#sus4 D#m F#m7 Bsus2
  W: "[~ [c#2,c#4] [f#2,f#4] [c#2,c#4] [g#2,g#4] [c#2,c#4] [a#2,a#4] [a2,a4]@2 [f#2,f#4]@2 [f#3,f#5] ~@2 [f#3,f#5]@2]/2", // C# F# C# G# C# A# A F#
  X: "[[e3,e5]@8 [d3,d5]@6 g2@8 d3@2 b3@4 [d3,d4,e4,f#4]@4 [d4,e4,f#4]@4 ~@2 d3@2 ~@10 [d4,e4,f#4]@4 d3@2 [b3,d4,e4,f#4]@4 d3@4 ~@2 b4@3 ~ d3@2 ~@2 c#5@2 ~ b4@3, ~@14 b4@50 ~@5 c#5@3 ~@8, ~@11 [d4,e4,f#4]@3 ~@2 g2@3 ~@2 [d4,e4,f#4]@2 [d4,e4,f#4]@2 ~@5 [d4,e4,f#4]@4 ~@2 [b3,d5]@2 ~@2, ~@18 [d4,e4,f#4]@2 b3@2 d3@2 g2@3 ~@5 g2@3 ~@3 d3@2]/5", // E D Bm D Bm D
  Y: "[[f#2,d5]@3 c#3 a#3@2 c#3@2 f#2@3 c#3 a#3@2 ~ [d#4,f4] [d4,e4]@2 [d#4,f4] c#3 ~ [d#4,f4] c#3@2 f#2@3 c#3 a#3@2 c#3@2, ~@3 c#5@3 a#4@22 f#5@4, ~@12 [d4,e4]@3 ~@4 [d4,e4]@2 ~ [d4,e4]@6 ~@4, ~@14 c#3@2 f#2@3 ~ a#3@2 ~@10]/4", // D D#sus2 Dsus2 D#sus2 Dsus2
  Z: "[[e2,e5]@6 b2@2 g3@4 b2@4 e2@6 b2@2 g3@4 [b2,d4,e4]@4 [g3,b3,d4,e4,f#4]@12 ~@6 a4@3 b4@3 c#5@2 d5@3 e5@3, ~@3 d5@3 b4@18 ~@8, ~ a2, ~@11 [g3,b3,c#4,d#4,f#4]@4 ~]/4", // E E7 Gmaj7 B
  AA: "[d5@3 e5@3 [d3,f#3,b3,e4,a4,c#5,d5]@8 c#5@2 b4@3 c#5@3 ~@4 e5@3 d5@3, [d3,f#3,b3,e4,a4]@3 f#5@9 ~@4, ~@8 [g2,d3,b3,e4,g4]@3 [g2,d3,b3,e4,f#4,b4]@4 ~]/4", // Dmaj7 Bm7 Em7 Gmaj7
  AB: "[c#5@3 d5@3 [f4,a#4]@6 [g4,a#4]@4 [f#4,a4]@3 [f4,g#4]@3 ~@4 d5@3 c#5@3, [c#3,b3,f4,a#4]@3 e5@9 ~@4, ~@3 [c#3,b3]@4 ~ [f#2,e3,a#3]@3 [f#2,e3,a#3,e4,g4]@4 ~]/4", // A#5 Gm F#m Fm A#m C#7 F#7 Edim
  AC: "[[b2,f#3,e4,c#5]@3 [b2,f#3,d4,b4]@4 ~]/2", // Bsus4 Bm
  AD: "[[c5,d#5]@2 d#5 ~@3 b2@6 ~@2 [a#3,c#4,f#4]@2, [a3,d#4,g#4]@3 ~@5, ~@3 [c5,d#5,f#5]@9 ~@4]/2", // Cm F# G# Cdim
  AE: "[[e3,e5]@4 [d3,d5]@3 g2@4 d3 b3@2 [d3,d4,e4,f#4]@2 [d4,e4,f#4]@2 ~ d3 ~@5 [d4,e4,f#4]@2 d3 [b3,d4,e4,f#4]@2 d3@2 g2@3 d3 b3@2 d3@2, ~@7 b4@25 ~@8, ~@11 [d4,e4,f#4]@3 ~@2 g2@3 ~@2 [d4,e4,f#4]@2 [d4,e4,f#4]@2 ~@5 [d4,e4,f#4]@4 ~@6, ~@18 [d4,e4,f#4]@2 b3@2 d3@2 g2@3 ~@13]/5", // E D Bm D
  AF: "f#2@3 c#3 a#3@2 c#3@2", AG: "f#2@3 c#3 a#3@2 ~ [d#4,f4], ~@4 [d4,e4]@3 ~, ~@3 c#3",
  AH: "[[d4,e4]@2 [d#4,f4] c#3 ~ [d#4,f4] c#3@2 f#2@3 c#3 a#3@2 c#3@2, f#2@3 [d4,e4]@2 ~ [d4,e4]@6 ~@4, ~@2 a#3 ~@5]/2", // Dsus2 D#sus2 Dsus2
  AI: "e2@3 b2 g3@2 b2@2", AJ: "e2@3 b2 g3@2 [b2,d4,e4]@2", AK: "[[g3,a#3,c#4,e4,f#4]@3 [g3,a#3,c#4,f#4,a4]@4 ~, a2]/2",
  AL: "[[d3,f#3,b3,e4,a4]@3 [d3,f#3,b3,e4,a4,c#5,d5]@4 c#5]/2", // Bm7 Dmaj7
  AM: "[b4@3 c#5@3 [g2,d3,b3,e4,f#4,b4]@8 ~@2, [g2,d3,b3,e4,g4]@3 ~@5]/2", // Gmaj7 Em7
  AN: "[[c#3,b3,f4,a#4]@3 [f4,a#4]@3 [g4,a#4]@2, ~@3 [c#3,b3]@4 ~]/2", // A#m A#5 Gm C#7
  AO: "[[f#4,a4]@3 [f4,g#4]@3 [f#2,e3,a#3,e4,g4]@8 ~@2, [f#2,e3,a#3]@3 ~@5]/2", // F#m Fm Edim F#7
  AP: "[[c5,d#5]@2 d#5 ~@3 b2@6 ~@4, [a3,d#4,g#4]@3 ~@5, ~@3 [c5,d#5,f#5]@9 ~@4]/2", // Cm G# Cdim
  AQ: "~@3 d3 b3@2 [d3,d4,e4,f#4]@2, ~@3 [d4,e4,f#4]@3 ~@2", // D
  AR: "[[d4,e4,f#4]@2 ~ d3 ~@5 [d4,e4,f#4]@2 d3 [b3,d4,e4,f#4]@2 d3@2 g2@3 d3 b3@2 d3@2, g2@3 ~@2 [d4,e4,f#4]@2 [d4,e4,f#4]@2 ~@5 [d4,e4,f#4]@4 ~@6, ~@2 [d4,e4,f#4]@2 b3@2 d3@2 g2@3 ~@13]/3", // D Bm D
  AS: "[f#2@3 c#3 a#3@2 c#3@2 f#2@3 c#3 a#3@2 c#3@2, [e4,g4,a#4,d#5]@3 ~]/2", // D#
  AT: "[[g3,c#4,f#4,a#4]@3 [g3,c#4,f4,c5]@4 ~, a2]/2", // F# Csus4
  AU: "[[c#3,b3,f4,g4,a#4,d#5]@3 [f4,g4,a#4,c#5]@3 [g4,a#4]@2, ~@3 [c#3,b3]@4 ~]/2", // D#7 Gm7b5 Gm C#7
  AV: "[[f#2,e3,a#3,d4,a4]@3 [f#2,e3,a#3]@4 ~, ~@3 [d4,g4]@3 ~@2]/2", // D F#7 G5
  AW: "[[c5,d#5]@2 d#5 ~@11 f#5@2, [a3,d#4,g#4]@3 b2@5, ~@3 [c5,d#5,f#5]@11 ~@2]/2", // Cm G# Cdim
  AX: "[g2@6 d3@2 b3@4 ~@4 [d4,e4,f#4]@4 ~@2 d3@2 ~@10 [d4,e4,f#4]@4 d3@2 [b3,d4,e4,f#4]@4 d3@4 ~@2 b4@3 ~ d3@2 ~@2 c#5@2 ~ b4@3, [d4,e4,f#4]@6 [d3,d4,e4,f#4]@2 g2@3 ~@2 [d4,e4,f#4]@2 [d4,e4,f#4]@2 ~@5 [d4,e4,f#4]@4 ~@2 [b3,d5]@2 ~@2, e5@8 d5@6 b4@36 ~@3 c#5@3 ~@8, ~@10 [d4,e4,f#4]@2 b3@2 d3@2 g2@3 ~@5 g2@3 ~@3 d3@2]/4", // D Bm D Bm D
  AY: "[~@2 [c#2,c#4]@2 [f#2,f#4]@2 [c#2,c#4]@2 [g#2,g#4]@2 [c#2,c#4]@2 [a#2,a#4]@2 [a2,a4]@4 [f#2,f#4]@4 [f#3,f#5]@2 ~@4 [f#2,c#3,f#3,f#4,b4,c#5,f#5]@5 [g2,d3,g3,e4,g#4,b4,e5]@12 [a#2,f#3,a3,d4,f#4,a4,d5]@16 [b2,f#3,b3,e4,f#4]@35 ~@32, ~@61 b4@67]/8", // C# F# C# G# C# A# A F# …
})).s("gm_piano").gain(0.26)

// other · pad poly · "SYNTHE"
const pad_poly = note(`<
  ~@162 A B C D E F G ~ H I J K L M N O P Q R S T U V W X@2 Y Z@2 AA AB AC AD AE AF AG AH@2 AI AJ AK AL@2 AM AN@2 AO@2
  ~@49
>`.pickRestart({
  A: "~ f#5 d5 f#5 b4 e5 d5 b4", B: "a4@2 d5 f#4 ~ a4 e4 f#4", C: "d4@2 e4 ~ b3@2 d4 a3",
  D: "~@2 b4 a#4 f#4@2 ~@2 e4@2 b3@2 d4@2 f#4@2", E: "a#3@2 f#4 f#3 ~@4", F: "~@7 c#4",
  G: "a3 a#3 c#4 d#4 e4 a#4 c#5 f#4", H: "~ b3 d4 e4 f#4 b4 d5 e5", I: "f#5 b5 d6 e6 f#6 e6 d#6 d6",
  J: "c#6 c6 b5 a#5 ~ c#6 f#5 a#5", K: "~ c#5 a#4 ~@5", L: "~@5 d6 c#6 b5", M: "f#5@4 d5@2 ~@2 b4@4 d5@2 ~ e5",
  N: "f#5@6 ~ e5", O: "d5 b4 ~@6", P: "~ f4 g#4 a#4 b4 c#5 d5 f5", Q: "a#5 d6 ~ d6 a#5 f5 d5 c6",
  R: "~ c6 a5 g5 e5 d5 ~ a5", S: "e5@2 d5@2 a4@2 e5@2 ~@2 e5@2 d5@2 ~ e5, ~@7 a4",
  T: "~ e5 f#5@2 e5@2 d5@2 b4@2 a4@2 ~@2 d5@2, f#5 ~@7", U: "b4 f#4 e4@2 ~@3 b3", V: "d4 d#4 f4 f#4 g#4 a4 b4 d5",
  W: "b4@2 c5@2 d5@2 d#5@2 f5@2 f#5@2 g#5@2 ~ d6, ~@7 a5",
  X: "[e6@8 b5@2 a5@2 f#5@6 d5@2 ~ f5 f#5@2 ~@2 f#5@2 e5@2 d5@2, ~@10 b4 ~@5]/2",
  Y: "~ f5 f#5@2 ~@2 f#5@2 e5@2 d5@2 b4@2 f5@2, b4 ~@7", Z: "[f#5 d5 b4 f5 f#5 d5 b4 d#5@4 f#5 a#4@4]/2",
  AA: "~@5 f#5 e5 g5", AB: "f#5 d#5 a#4 f#5 d#5 g5 f#5 d#5", AC: "a#4 f#5 d#5 g5 f#5 d#5 a#4 a5",
  AD: "f#5 a5 f#5 d5 b4 a5 ~ a5", AE: "f#5 d5 b4 a5 f#5 d5 b4 a#5", AF: "f#5 a#5 f#5 c#5 a#4 a#5 f#5 c#5",
  AG: "b4@2 c6@2 a5@2 f5@2 c5@2 c6@2 a5@2 ~ c6, ~@7 f5", AH: "[c#6@3 a5 f#5@3 e5@3 ~@6]/2",
  AI: "~ b6 f#6 d6 b5 f#6 d6 b5", AJ: "a5@2 d6@2 b5@2 a5@2 e5@2 b5@2 a5@3 a6",
  AK: "a#6@4 g6 d#6 b5 ~ a#5@2 g#5@2 g5@2 f#5@2",
  AL: "[f5@2 e5@2 d#5@2 c#5@2 b4@2 c#5@2 ~ g6 a6@6 f#6 d6 a#5 ~ a5@2 a#5@2 a5@2 g5@2, ~@6 b4 ~@9]/2",
  AM: "a#5@2 a5@2 g5@2 f#5@2 d5@2 b4@2 f#5@2 ~ b5, ~@7 d5", AN: "[c#6@6 b5@6 f#5 ~ e5 ~]/2",
  AO: "[d#5@2 e5 f#5@2 d#5 b4@6 ~@4]/2",
})).s("gm_pad_poly").gain(0.26)

// drums · kick
const kick = s("bd").struct(`<
  ~@61 A B C D E@12 F G F G F G H I ~ D G D ~@3 A B C ~ E@15 J E K H I ~ D G L F@5 M G@2 M@2 F M@10 N D E@6 ~ O F@5 G P
  N E D G F@6 M G@2 M@2 F M@10 N E F@6 M G@2 M@2 F M@10 N E L F@5 M G@2 M@2 F M@10 N D E@6 ~ O F G F G F G H I ~ D ~@7
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@4 x ~@2 x", C: "~ x ~@2", D: "~@3 x", E: "x", F: "x!2", G: "x ~@3 x ~@2 x",
  H: "~ x!2 ~@2 x ~ x", I: "x ~@2 x ~ x!2 ~", J: "x ~ x!2 ~@4", K: "x ~@6 x", L: "~ x", M: "x ~@2 x!2 ~@3",
  N: "x ~@2 x ~@4", O: "~@3 x ~@4", P: "~ x!2 ~@2 x ~@2",
})).gain(0.26)

// drums · snare
const snare = s("sd").struct(`<
  ~@59 A ~@4 B C@11 D E F E F E F G H I E ~ J C A ~@3 K A C@11 D C L@4 C ~@2 I E ~ C@22 ~ B C@6 M C E M ~ N O P G ~ J E
  ~ C@23 Q C@23 Q C@22 ~ B C@6 M R E F E F E F G H I S ~@7
>`.pickRestart({
  A: "x", B: "x ~@2 x!2 ~@3", C: "~ x", D: "~@3 x!2 ~@3", E: "~@3 x ~@4", F: "x ~@2 x ~@2 x ~", G: "x ~@6 x",
  H: "~@5 x ~@2", I: "x!2 ~@6", J: "~ x ~@2 x ~@3", K: "~@15 x", L: "~@4 x ~@2 x", M: "~@3 x", N: "~@3 x ~@2 x ~",
  O: "x ~@2 x ~@4", P: "~@3 x ~ x!2 ~", Q: "~ x ~ x!2 ~@2 x", R: "~@7 x!2 ~@7", S: "~@5 x!2 ~@9",
})).gain(0.31)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@65 A@11 ~ B ~ B ~ B ~ C D ~@2 E ~ F ~@2 G H I J A@11 ~ K L@5 M D ~@2 E ~@22 N ~ A@6 O P B ~@3 B ~ Q R ~@26 B ~@23 B
  ~@22 N ~ A@6 O P B ~ B ~ B ~ C D ~@9
>`.pickRestart({
  A: "~@2 x ~@4 x", B: "~@3 x", C: "~ x ~ x!2 ~ x ~", D: "~@2 x ~ x ~@3 x ~@5 x!2", E: "~@2 x!2 ~ x!2 ~",
  F: "~@9 x!5 ~ x", G: "~ x!2 ~ x!2 ~@2", H: "~@5 x!2 ~", I: "x ~ x ~@5 x ~ x ~ x!2 ~@2", J: "~@4 x!2 ~@10", K: "~@7 x",
  L: "~ x ~@6", M: "~ x", N: "~ x!2 ~@2 x!3", O: "~ x!2 ~ x!2 ~ x", P: "~ x!2 ~@3 x!2", Q: "~@3 x!2 ~ x ~",
  R: "~ x!2 ~ x ~@3",
})).gain(0.15)

// drums · hihat
const hihat = s("hh").struct("<~@119 A@22 ~@18 B ~@2 A@23 C A@23 C A@22 ~@27>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "x", C: "~ x ~ x!2 ~ x ~",
})).gain(0.2)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@65 A ~ A ~ B C ~ B ~ B ~ A ~@8 D E ~@8 F A ~ A ~ B C ~ B ~ B ~ A ~@8 D E ~@25 A ~ A ~ B C ~ A ~@83 A ~ A ~ B C ~ A
  ~@8 D E ~@7
>`.pickRestart({
  A: "x", B: "~@3 x ~@4", C: "~@3 x", D: "~@6 x!2", E: "~ x ~@6", F: "~@7 x!2 ~@7",
})).gain(0.05)

// drums · open hat
const open_hat = s("oh").struct("<~@92 [~@3 x] ~ [~ x ~@2] ~@157 [~ x ~@11 x ~@2] [~@13 x ~@2] ~@5>").gain(0.1)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@65 A B A B C@2 B ~ B ~ D ~@20 A B A B C@2 B ~ B ~ D ~@9 E ~@26 A B A B C@2 B ~@4 C ~@4 F G ~@73 A B A B C@2 B ~@18
>`.pickRestart({
  A: "~@3 x", B: "~@3 x ~@4", C: "x", D: "~@3 x ~@2 x ~", E: "~@4 x!2 ~@2", F: "~@7 x", G: "~ x ~@6",
})).gain(0.05)

// drums · crash
const crash = s("cr").struct("<~@88 A ~@96 B ~@23 B ~@43 C ~@5>".pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@13 x ~@2",
})).gain(0.26)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@65 A B A C D A C B C B@2 ~@9 E ~@10 A B A C D A C B C B@2 ~@9 F ~@26 A B A C D A B ~@2 A G ~@80 A B A C D A B ~@9 E
  ~@8
>`.pickRestart({
  A: "~@3 x ~@4", B: "x", C: "x ~@2 x", D: "~@3 x", E: "~@2 x!4 ~@2", F: "~@2 x!2 ~@4", G: "~@3 x!2 ~@2 x",
})).gain(0.05)

// drums · ride
const ride = s("rd").struct(`<
  ~@61 A B C ~@23 D E ~@3 A B C ~@23 D F@22 G ~@19 H F@22 I ~ F@22 I ~ F@22 G ~@19 J ~@6
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@4 x ~@2 x", C: "~ x ~@2", D: "x ~@3 x ~@2 x", E: "~@3 x", F: "~ x!3", G: "x ~@2 x ~@4",
  H: "~@7 x", I: "~ x ~ x", J: "~@13 x ~@2",
})).gain(0.2)

// drums · cowbell
const cowbell = s("cb").struct(`<
  ~@77 A B A B A B C D ~@23 E F@4 G H I ~@35 A@2 J A K L C I ~@83 A B A B A B C D ~@9
>`.pickRestart({
  A: "x ~ x ~ x!2 ~ x", B: "~ x!2 ~ x!2 ~ x", C: "~@2 x ~@2 x ~@2", D: "x ~@2 x ~@4", E: "x ~@2 x",
  F: "x ~ x!2 ~ x!2 ~", G: "x ~ x!2 ~ x ~ x", H: "~ x!3 ~ x ~@2", I: "x ~@2 x ~@2 x ~", J: "x!4", K: "~@2 x ~ x!2 ~ x",
// … 7 more lines

More by Chick Corea