Strudelify

Carolina in My Mind

James Taylor

KeyE majorTempo75 bpm
0:00/0:00
// Carolina in My Mind — James Taylor
// 75 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 electric guitar jazz (copy of ch 3 acoustic guitar steel)
// note: Full arrangement: all 77 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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 · piano
const piano = note(`<
  ~@11 A@4 B C D E@4 F G H D I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG ~ AH AI AJ AK AL AM@2 AN@2 AO@7
  AP@7 AQ@2
>`.pickRestart({
  A: "[f#4@3 g#4@14 ~@7 e4@3 f#4@10 ~@11 [a2,c#4]@18 a2@6 b2@12 ~@12 [c#3,c#4,e4]@24 [c#4,e4]@15 ~@9 f#4@32 ~@4 f#5@11 ~, e3@23 ~ d3@24 ~@36 c3@12 ~@24 [a2,a3]@24 [b2,b3]@48, [b3,e4]@19 ~@5 [a3,d4]@14 ~@4 [e3,b3,e4]@25 ~@5 [f#3,d#4]@17 ~ g#3@29 ~@19 a4@10 ~@29 f#4@13 ~@2, ~@144 d#4@37 ~@11]/4", // A C#m A B E5 D5 E5 D#m
  B: "a4@7 ~@2 a4@3 [g#3,b3,e4,g#4]@12, [a3,c#4,e4] ~", // E A
  C: "~@6 b3@6 ~@6 [e4,g#4]@6 ~@18 a3@5 ~, [c#3,c#4,e4,g#4] f#3@2 [b2,c#4,d#4,f#4], ~@2 a#3@3 a3@2 ~, ~@18 c#4@17 ~@13, ~@24 [e4,f#4]@11 ~@13", // E C#m B Esus2
  D: "[e3,g#3,b3,e4] [c#3,c#4,e4,g#4] [f#3,a3,c#4] [b2,a3,b3,e4]", // E C#m F#m Esus4
  E: "[[g#3,b3,e4]@31 ~@17 f#4@3 g#4@14 ~ b3@5 ~ e4@3 f#4@10 ~@5 b3@5 ~ [a2,c#4]@18 [a2,e3,c#4]@6 b2@12 ~@12 [c#3,c#4,e4]@24 [a3,c#4,e4]@17 ~ a3@6, e3@36 ~@6 b5@12 ~@41 e3@16 ~@9 [f#3,d#4]@17 ~@55, ~@48 e3@23 ~ d3@24 ~@36 c3@12 ~@24 a2@24, ~@48 [b3,e4]@18 ~@6 [a3,d4]@14 ~@9 a3@20 ~@23 g#3@29 ~@25]/4", // E A C#m A D#m E5 D5
  F: "f#4@16 ~@5 f#4@3, [b2,b3], d#4@36 f#5@11 ~, ~@33 f#4@8 ~@7", // B
  G: "c#5@8 ~ c#5@3 e4@8 ~ f#4@3, [a3,e4,a4] [g#3,g#4,b4]", // A5 G#m
  H: "~@6 b3@6 ~@6 [c#4,e4,g#4]@6 ~@18 a3@5 ~, [c#4,e4,g#4]@17 ~@7 [c#4,e4,f#4]@11 ~@13, c#3 f#3@2 [b2,c#4,d#4,f#4], ~@2 a#3@3 a3@2 ~", // C#m F#7 B
  I: "[g#3,b3,e4]@31 ~@11 b3@4 ~@2, e3@3 ~", J: "[e3,g#3,b3,e4]@2 [a2,e3,a3,c#4] [f#2,e3,a3,c#4]",
  K: "f#3@33 ~@3 f#5@10 ~@2, b2, b3@43 ~@5, d#4@32 ~ f#4@10 ~@5",
  L: "[a3,c#4]@17 ~ [a3,e4]@5 ~ [b3,d#4]@18 [b3,b4]@6, [a2,e3] [b2,f#3]", // A A5 B A5 B5
  M: "[f#2,c#4,e4,a4]@24 [d#4,f#4,b4]@19 ~@5, ~ b2", N: "e3 d#3 [c#3,c#4,e4,g#4] [b2,b3,d#4,g#4], [b3,e4,g#4]@23 ~@25",
  O: "a2@12 g#2@12 ~@6 a#3@5 ~ [b2,a3,b3,d#4,f#4]@12, [c#4,e4,a4]@11 ~ [f#2,c#4,e4,f#4]@6 ~@6", // B7 A F#7
  P: "[g#3,b3,e4]@11 ~ [c#4,e4,g#4]@11 ~ [a3,c#4]@11 ~ [a3,b3,e4]@11 ~", // E C#m A Asus2
  Q: "~@8 e5@7 ~, [g#3,b3,e4]@31 ~@17, ~@21 b4@23 ~@4", // E
  R: "f#4@3 g#4@14 e4@5 ~@2 e4@6 d4@11 ~ a3@5 ~, [b3,e4]@19 ~@5 [f#3,a3]@15 ~@9", // E5 F#m
  S: "[b3,e4]@24 [f#3,d#4]@17 ~@4 g#5@3, c#4@19 ~@23 f#4@6", // E5 D#m
  T: "[c#5,e5]@18 e4@5 ~ a4@12 e4@6 c#4@6, g#4@17 ~@7 c#5@24, ~@24 e4@11 ~@13", // C#m
  U: "f#4@19 ~@5 c#5@3 ~@9 f#4@11 ~, b3@15 ~, d#4@37 ~@11, ~@21 f#4@9 b4@16 ~@2, ~@24 b4@3 d#5@16 ~@5",
  V: "a4@14 ~@4 a4@6 [b3,e4,g#4]@21 ~@3, [c#4,e4]@23 ~@25", // E C#m
  W: "~@6 b3@6 ~@6 [e4,g#4]@6 ~@18 a3@5 ~, [c#4,e4,g#4]@17 ~ c#4@4 ~@2 [c#4,e4,f#4]@10 ~@2 [c#4,d#4,f#4]@12, ~@2 a#3@3 a3@2 ~", // E C#m F#7 D#m7
  X: "[g#3,b3,e4]@11 ~ [c#4,e4,g#4]@11 ~ [a3,c#4]@11 ~ [b3,e4]@11 ~, ~@35 a3@11 ~@2", Y: "[g#3,b3,e4]@31 ~@17",
  Z: "[c#4,e4,a4]@12 [c#4,e4,a4]@11 ~ [d#4,f#4,b4]@11 ~ [d#4,f#4,b4]@12", // A B
  AA: "[c#4,e4,g#4]@19 ~@5 c#5@22 ~@2, ~@7 g#4@6 ~@3", // C#m
  AB: "[b3,d#4,g#4]@17 ~ [b3,d#4,g#4]@5 ~ [c#4,f#4,a4]@16 ~@2 [g#3,b3,e4]@4 ~@2", // G#m F#m E
  AC: "c#4@4 ~@3 a4 [d#4,f#4,b4]@7 ~, [e3,a3]@23 ~@25, ~@12 a4@6 e4@5 ~@25, ~@5 c#4@2 ~@9", // B A5
  AD: "[f#4,a4,d5]@22 ~@2 [e4,a4,c#5]@23 ~", AE: "f#4@3 ~@21 b5@22 ~@2, [e4,b4]@47 ~, ~@3 g#4@43 ~@2",
  AF: "e4@3 f#4@21 [a3,c#4,e4]@22 ~@2, [a3,d4] ~", AG: "[f#3,a3,c#4,e4]@23 ~ [b3,e4,f#4,b4]@23 ~", AH: "~@21 b3@2 ~",
  AI: "[g#3,b3,e4]@21 ~@3 [e3,a3,c#4]@10 ~@2 [e3,a3,c#4]@11 ~", // E A
  AJ: "f#3@33 ~@3 f#5@10 ~@2, b3@43 ~@5, d#4@32 ~ f#4@10 ~@5",
  AK: "[a3,c#4]@17 ~ [a3,e4]@5 ~ b3@16 ~@2 b4@5 ~, e3@22 ~@2 [f#3,d#4]@21 ~@3, ~@41 b3@6 ~", // A A5 D#m
  AL: "[c#4,e4,a4]@24 [d#4,f#4,b4]@19 ~@5", // A B
  AM: "[[b3,e4,g#4]@23 [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@5 ~ [b3,d#4,f#4]@11 ~, ~@35 [d#4,g#4]@11 ~@25 [c#4,e4]@11 ~ a3@12 ~, ~@72 f#4@11 ~@13]/2", // E C#m A B G#5 C#m
  AN: "[[g#3,b3,e4]@22 ~@2 [a3,c#4,e4]@11 ~ e4@10 ~@2 c#4@23 ~ [f#3,b3,d#4]@23 [b3,e4], ~@35 [g#3,b3]@11 ~ [f#3,a3]@24 ~@25]/2", // E A B E5 G#m F#m
  AO: "[a4@6 g#4@16 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@5 ~ [b3,d#4,f#4]@11 [b3,e4,g#4]@23 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@5 ~ [b3,d#4,f#4]@11 [b3,e4,g#4]@23 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@5 ~ [b3,d#4,f#4]@11 [b3,e4,g#4]@23 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4], ~@35 [d#4,g#4]@11 ~@25 c#4@11 ~ a3@12 ~@73 [e4,f#4]@11 ~@48 [d#4,g#4]@11 ~@25 c#4@11 ~ a3@12 ~@49, ~@72 [e4,f#4]@11 ~@48 [d#4,g#4]@11 ~@25 c#4@11 ~ a3@12 ~@73 [e4,f#4]@11 ~@48 [d#4,g#4]@11 ~@2]/7", // C#m A B E C#m A B E …
  AP: "[~@30 a#3@5 ~ [b3,d#4,f#4]@11 [b3,e4,g#4]@23 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@5 ~ [b3,d#4,f#4]@11 [b3,e4,g#4]@23 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@5 ~ [b3,d#4,f#4]@11 [b3,e4,g#4]@23 ~ [c#4,e4,g#4]@11 ~@2 b3@10 ~ [c#4,e4,a4]@22 ~@9 a#3@6 [a3,b3,d#4,f#4]@12, ~@23 c#4@11 ~ a3@12 ~@73 [e4,f#4]@11 ~@48 [d#4,g#4]@11 ~@25 c#4@11 ~ a3@12 ~@73 [e4,f#4]@12 ~@12, ~@24 [e4,f#4]@11 ~@48 [d#4,g#4]@11 ~@25 c#4@11 ~ a3@12 ~@73 [e4,f#4]@11 ~@48 [d#4,g#4]@11 ~@25 c#4@12 ~@13]/7", // B E C#m A B E C#m A …
  AQ: "[~@2 [g#3,b3,e4]@55 ~@39]/2", // E
})).s("gm_piano").gain(0.44).pan(0.6)

// bass · fretless bass
const bass = note(`<
  ~@3 A B C D E F G H I J K L M N O P Q R S T U V O W X Y Z AA AB AC AD AE AF AG S AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT O AU AV AW AX AY AZ@7 BA BB@4 BC@6 BD@2
>`.pickRestart({
  A: "e2@2 a1 g#1", B: "f#1@3 c#2 b1@4", C: "a1@3 c#2 b1@3 g#1", D: "f#1@18 c#2@5 ~ b1@18 d#2@6",
  E: "e2@12 d#2@12 c#2@11 ~ b1@12", F: "a1@12 g#1@12 f#1@11 ~ b1@12", G: "e2@12 c#2@11 ~ f#1@12 b1@12",
  H: "e1@24 e2@17 ~ b1@6", I: "e2@12 d2@11 ~", J: "a1@23 ~ b1@12 c2@12", K: "c#2 a1", L: "b1@6 f#1 ~@2 f#1@3 b1@12",
  M: "a1@4 g#1@3 b1", N: "c#2@4 f#2@4 f#1@4 b1@3 ~", O: "e2 c#2 f#1 b1", P: "e2@9 b1@2 ~ e1@10 ~@2",
  Q: "e2@4 d2@2 f#2 g#2", R: "a2@23 ~ b2@12 c3@12", S: "c#3 a2", T: "b2@6 f#2 ~@2 f#2@3 b1@12",
  U: "a1@23 ~ g#1@18 b1@6", V: "c#2 f#2 f#1 b1", W: "e1@35 ~@7 b1@3 c#2@3", X: "e2@5 ~ e2@2 a1@4 f#1@4",
  Y: "b1@18 f#1@6 b1@12 c#2@5 ~ b1@6", Z: "a1@4 b1@3 g#1", AA: "f#1@12 c#2@12 b1@16 ~@2 b1@3 c#2@3",
  AB: "e2 d#2 c#2 b1", AC: "a1@4 g#1@4 f#1@4 b1@3 ~", AD: "e2@11 ~ c#2@12 f#1@12 b1@12", AE: "e1@11 ~ e1@12",
  AF: "e3 d3", AG: "a2@6 b2@6 c#3@6 a2@5 ~ b2@6 c#3@6 d#3@6 c3@6", AH: "b2@6 f#2 ~ b1@8", AI: "a1@24 g#1@17 b1@6 ~",
  AJ: "c#2@12 f#2@12 f#1@11 ~ b1@12", AK: "e2@12 c#2@12 f#1@11 b1@12 ~", AL: "e1@13 ~@2 e1@3 f#1@3 g#1@3", AM: "a1 b1",
  AN: "c#2@3 g#2 c#3@4", AO: "g#2@5 ~ g#2@2 f#2@6 g#2@2", AP: "a2@16 ~@2 a2@3 a#2@3 b2@17 ~ c#3@6",
  AQ: "d3@24 a2@12 f#2@11 ~", AR: "e2@24 e1@23 ~", AS: "d3@24 c#3@23 ~", AT: "f#2@23 ~ b1@20 ~@4",
  AU: "e1@12 e2@9 b1@2 ~", AV: "e2@8 ~ e2@3 a1@6 f#1@6", AW: "b1@18 f#2@5 ~ b1@18 f#1@6", AX: "a1@8 ~ a1@3 b1@9 g#1@3",
  AY: "f#1@3 c#2 b1@2 c#2 d#2",
  AZ: "[e2@12 d#2@11 c#2@12 b1@12 a1@12 g#1@12 f#1@12 ~ b1@11 e2@12 g#1@12 a1@11 ~ g#1@12 f#1@18 c#2@6 ~ b1@18 f#2@5 e2@12 d#2@12 c#2@12 b1@12 a1@12 g#1@12 f#1@12 b1@12 e2@12 d#2@12 ~ c#2@11 b1@12 ~]/7",
  BA: "a1@11 g#1@12 f#1@12 b1@9 ~@4",
  BB: "[e2@12 d#2@11 c#2@11 ~ b1@12 a1@12 g#1@12 ~ f#1@11 b1@12 e2@12 d#2@12 c#2@12 b1@12 a1@12 g#1@12 f#1@8 ~ b1@6 ~ f#2@3 b2@2 f#2@3 ~]/4",
  BC: "[e2@11 d#2@12 c#2@12 b1@9 e1@3 a1@12 g#1@9 e1@3 f#1@6 g#1@3 a1@3 b1@6 c#2@3 d#2@3 e2@12 d#2@12 c#2@12 b1@12 a1@12 g#1@12 f#1@12 b1@12 e2@12 d#2@12 c#2@12 b1@12 a1@12 g#1@12 f#1@9 ~ b1@15]/6",
  BD: "[~ e2@58 ~@37]/2",
})).s("gm_fretless_bass").gain(0.49)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@7 B@3 C D@2 E@2 F G H I J@2 E@2 F G H I K@4 L@2 M N ~@7 O P Q R@2 S@2 T@2 U C V@4 W@3 X@8 Y@7 Z@2
>`.pickRestart({
  A: "[~@48 f#4@3 ~@18 b3@2 ~@7 e4@6 ~@30 a3@3 ~@15 e4@6 a3@3 ~@9 [e4,g#4]@5 ~ [e4,g#4]@6 ~@42 a3@6 ~@18 c#4@3 ~@9 a2@17 ~ c#3@6 ~@6 f#3@2 ~@4 c#4@3 ~@3 f#3@2 ~@10 a3@2 ~ [a3,c#4]@3 ~@6 c#3@5 ~@7 b3@2 ~ [b3,e4]@2 ~ b3@5 ~ b3@6, ~@45 b3@6 g#4@18 ~@3 a4@24 a4@24 ~@24 e3@23 ~@31 e3@12 e3@21 d#4@6 c#4@29 ~@10 b3@13 ~@11 [a3,c#4]@15 ~@21, ~@48 e3@18 e3@15 ~@3 a3@17 ~ a3@12 ~@3 a3@8 ~ a3@11 ~ f#3@8 ~@19 e4@10 ~@2 e4@11 ~ e4@9 ~@24 f#4@21 ~@36 d#4@10 ~@35 e4@11 ~, ~@54 b3@14 ~@4 a2@10 ~@2 g#2@11 ~ f#2@18 f#2@5 ~ [b2,a4]@25 ~@23 a2@11 ~ g#2@11 ~ f#2@21 ~@3 b2@24 ~@24 b2@24 f#2@17 ~@7 b2@24, ~@60 e4@15 ~@15 e4@17 ~ e4@23 ~@10 [a3,e4]@8 ~@13 b3@6 ~@6 b3@11 ~ b3@5 ~@22 a3@5 ~ b3@5 ~ b3@8 ~ b3@7 ~@31 f#3@9 ~@4 f#3@15 ~@36]/7", // E A E5 A B7 A5
  B: "[~@34 [b3,g#4] ~@3 [b3,e4] ~@3 [a3,c#4] ~@3 [a3,c#4]@2, e3@9 g#4@8 ~@4 f#4@7 ~@4 e4@9 ~@4 d#4@8 ~ a3@12 e3@11 ~ e3@7 ~@5 d#3@6 e3@11 ~@25 b2@12, ~@6 b3@11 ~ b3@11 b3@12 ~ f#3@14 ~ c#4@11 b3@9 ~@4 a#3@5 ~@7 a3@7 ~@5 [b3,g#4]@6 ~@6 [b3,e4]@6 ~@6 [a3,c#4]@8 ~@7, ~@12 d#3@11 ~ c#3@12 b2@12 a2@11 ~ g#2@12 f#2@11 ~ b2@12 ~@12 c#3@10 ~@2 f#2@12 ~@12]/3", // E E5 A E E5 A
  C: "~@9 f#4@3 g#4@3 ~@9 f#4@3 ~@3 b3@6 ~@3 c#3@8 ~, e3@21 e4@19 ~@8, ~@6 b3@9 f#4@8 e3@16 ~@9, ~@9 e4@9 b3@9 g#4@8 ~ b2@7 ~@5",
  D: "[~@15 g#4@9 ~@6 f#3@5 ~ a3@5 ~@19 e3@5 ~ [e3,a3,c#4]@6 ~@18 [f#3,a3,d#4]@6, e3@2 d3@2 a2@2 b2 c3, ~@6 b3@18 ~@12 [f#3,d4]@12 ~@30 [f#3,b3,d#4]@11 ~@7, ~@12 e4@12 ~@18 a3@17 ~@37]/2", // A D#dim D B
  E: "[~@18 c#3@5 ~@19 a2@5 ~@10 f#4@4 ~@2 [c#4,f#4]@6 ~@3 c#4@3 d#4@3 ~@6 [c#4,f#4]@3 d#4@8 ~, c#3@17 ~@7 a2@17 ~@7 b2@47 ~, ~@6 g#3@8 ~ g#3@7 ~@8 e3@17 ~@4 f#3@45, ~@9 c#4@13 ~@14 c#4@17 ~ b3@14 ~ b3@9 c#4@5 ~@13, ~@36 a3@13 ~@23 f#4@9 b3@15]/2", // F#5
  F: "~@6 c#4@5 ~ c#4@11 ~@7 e4@5 ~@7 [g#3,b3]@6, a2@23 ~ g#2@23 ~, ~@6 [e3,a3]@21 ~@3 [g#3,b3]@11 ~@7, ~@36 e4@11 ~", // G#m A5 G#m
  G: "~@6 [a#3,c#4]@2 ~@2 f#2 ~@3 b2@2, c#3@12 f#2@18 ~@3 b2@8 ~@7, ~@3 g#3@11 ~ f#3@8 ~ [f#3,a3,c#4]@11 ~ [f#3,d#4]@10 ~@2, ~@6 c#4@11 ~@31", // A#m F#m D#m
  H: "~@5 [e3,a3,c#4] ~ [f#3,a3], e3@11 ~ c#3@12 f#2@12 b2@12, ~@3 b3@13 ~@2 [g#3,c#4,e4]@10 ~@20, ~@3 e4@5 ~@16", // A F#m C#m
  I: "~@3 f#4 g#4 ~@3 f#4 ~ b3@2 b2 c#3@2 b2, e3@7 e4@8 ~, ~@6 b3@9 f#4@8 e3@16 ~@9, ~@9 e4@9 b3@9 g#4@8 ~@13",
  J: "[~@15 g#4@9 ~@6 f#3@5 ~ a3@5 ~@19 e3@5 ~ [e3,a3,c#4]@6 ~@18 [f#3,b3,d#4]@6, e3@2 d3@2 a2@2 b2 c3, ~@6 b3@18 ~@12 [f#3,d4]@12 ~@30 [f#3,b3,d#4]@11 ~@7, ~@12 e4@12 ~@18 a3@17 ~@37]/2", // A B D B
  K: "[~@6 e4@6 e4@5 ~ [b3,e4]@6 ~@6 e3@6 f#2@6 f#3@4 ~@11 b3@2 ~ c#4@3 d#4@3 f#3@3 f#3@2 ~@4 [b3,c#4,f#4]@10 ~@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,f#4]@3 ~@18 a2@5 ~@13 c#4@2 ~ d#4@3 ~@24 f#2@4 ~@20 f#3@5 ~, e3@28 ~@2 [a3,c#4]@11 ~ [a3,c#4]@10 ~@2 f#3@12 c#4@6 f#3@23 ~@7 e3@20 ~@4 f#3@11 ~ c#4@14 ~@4 [a3,c#4]@14 ~@10 [b3,d#4]@11 ~, ~@6 g#4@11 ~ g#4@3 ~@3 a2@11 ~@13 b2@24 ~@24 a2@17 ~@7 b2@24 c#3@21 ~@3 b2@24, ~@59 b3@15 ~@19 c#4@14 ~ [a3,c#4]@17 ~@7 f#4@12 ~@6 f#3@17 ~@7 f#3@11 ~@7, ~@33 b3@2 ~ f#2@4 ~@8]/4", // E5 Bsus2 B5 A B A
  L: "[~@23 a3, e3@9 g#4@8 ~@4 f#4@7 ~@4 e4@9 ~@4 d#4@8 ~ a3@12 e3@11 ~ e3@6 b2@12, ~@6 b3@11 ~ b3@10 ~ b3@10 ~@3 f#3@14 ~ c#4@11 b3@9 ~@4 a#3@5 ~@3 d#3@6 ~, ~@12 d#3@11 ~ c#3@12 b2@12 a2@11 ~ g#2@12 f#2@11 ~@13]/2",
  M: "~@6 [b3,g#4]@3 ~@9 [b3,e4]@3 ~@9 [a3,c#4]@3 ~@8 [a3,c#4]@5 ~@2, e3@9 [b3,g#4]@6 ~@6 [b3,e4]@6 ~@6 [a3,c#4]@7 ~@8, ~@6 c#3@5 ~ f#2@6 b2@6", // E E5 A E E5 A
  N: "~@9 f#4@3 g#4@3 ~@3 e4@2 ~ f#4@3 [e3,g#4]@23 ~, e3@23 ~@25, ~@6 b3@9 f#4@5 ~ e4@24 ~@3, ~@9 e4@8 ~ b3@9 ~@21", // E
  O: "~@12 f#4@2 ~@10 a4@3 g#4@3 ~@2 e4@3 ~ f#4@3 g#4@9, ~@9 b3@6 g#4@6 e4@9 f#4@5 e4@12 ~, ~@2 e4 b3@5",
  P: "~@42 b2@5 ~, ~@6 a2@15 ~@3 b2@17 ~@7, ~@9 e3@13 ~@8 f#3@15 ~@3, ~@12 a3@13 ~@11 [b3,d#4]@11 ~, ~@15 c#4@13 ~@20", // B
  Q: "[c#4,e4]@14 ~@4 d#4@3 ~@3 c#4@20 ~@4, c#3@23 ~, g#3@29 ~@19, ~@3 c#4 ~@4, ~@21 e4@22 ~@5", // C#m
  R: "[~@18 g#2@6 ~@18 f#2@3 ~@3 e3@12 ~@3 c#3@3 ~@3 c#3@3 c#3@17 ~@7, g#2@17 ~@7 f#2@17 ~@6 a2@13 ~@36, ~@3 b3@9 ~@3 f#3@7 ~@11 e3@4 ~@11, ~@12 [d#4,g#4]@15 ~@9 [a3,c#4]@11 ~ [a3,c#4]@21 ~@27]/2", // G#5 A
  S: "[~@18 d3@5 ~@19 a2@3 ~@3 b2@5 ~@13 f#4@3 g#4@3 ~@6 b3@6 b3@11 ~, d3@17 ~@7 a2@16 ~@35 e4@19 ~@2, ~@6 f#3@16 ~@8 e3@23 ~ e3@17 ~ e3@24, ~@12 a3@21 ~@3 [a3,c#4]@16 ~@11 b3@14 ~@19, ~@12 d4@13 ~@47 f#4@18 ~@6]/2", // A
  T: "[~@18 a3@6 ~@54 a3@5 ~ a3@3 b3@9, d3@24 c#3@41 ~ b2@30, ~@6 a3@11 ~@13 a3@11 ~ a3@11 ~ a3@11 a3@7 f#3@24, ~@12 f#4@15 ~@9 e4@10 ~@2 [c#4,f#4]@11 ~ e4@15 ~@21]/2", // F#5
  U: "~@18 e4@2 ~@10 [a3,c#4]@3 ~@8 c#4@7, e3@11 ~ c#3@10 ~@2 f#2@12 b2@12, ~@5 b3@3 ~ [b3,e4]@8 b3@3 ~ [b3,e4]@8 ~@4 [a3,c#4]@7 ~ a3@4 ~@3, ~@2 g#4@3 ~@11", // A E5 A
  V: "[~@6 e4@6 e4@5 ~ [b3,e4]@6 ~@6 e3@6 f#2@6 f#3@4 ~@11 b3@2 ~ c#4@3 d#4@2 ~ f#3@3 f#3@2 ~@4 [b3,c#4,f#4]@10 ~@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 ~@22 a2@5 ~@13 c#4@2 ~ d#4@3 ~@24 f#2@4 ~@20 f#3@5 ~, e3@28 ~@2 [a3,c#4]@11 ~ [a3,c#4]@10 ~@2 f#3@11 c#4@6 ~ f#3@21 f#4@5 ~@4 e3@20 ~@4 f#3@11 ~ c#4@14 ~@4 [a3,c#4]@14 ~@10 [b3,d#4]@11 ~, ~@6 g#4@11 ~ g#4@3 ~@3 a2@11 ~@13 b2@24 ~@20 b3@3 ~ a2@17 ~@7 b2@24 c#3@21 ~@3 b2@24, ~@59 b3@15 ~@18 c#4@14 ~@2 [a3,c#4]@17 ~@7 f#4@12 ~@6 f#3@17 ~@7 f#3@11 ~@7, ~@33 b3@2 ~ f#2@4 ~@8]/4", // E5 Bsus2 A B A
  W: "[~@102 b3@5 [b3,e4,g#4]@6 b3@5 ~@20 [g#3,b3,e4]@6, e3@9 g#4@8 ~@4 f#4@7 ~@4 e4@9 ~@3 b3@8 ~ a3@12 e3@11 ~ e3@8 ~@4 d#3@6 e3@24 ~@6 [e3,a3,c#4]@10 ~@9, ~@6 b3@11 ~ b3@11 b3@12 f#3@14 ~ c#4@11 ~ b3@9 ~@4 a#3@5 ~@6 a3@7 ~@2 e4@6 ~@6 e4@3 ~@28, ~@12 d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@11 b2@12 ~@24 a2@12 g#2@12 ~]/3", // E A
  X: "[~@41 f#3@5 ~@79 e3@4 ~@11 a3@3 ~@78 e3@4 ~@11 a3@3 ~@78 e3@4 ~@11 a3@3 ~@45 d#4@4, f#2@12 f#2@11 ~ b2@23 ~@9 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@3 d#4@8 ~@4 c#4@11 ~ b3@9 ~@4 a#3@5 ~@15 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@12 a3@12 e3@11 ~@7 b2@12 ~@6 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@12 a3@12 e3@11 ~@7 b2@12 ~@6 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@7, ~@5 [f#3,a3,c#4]@12 ~ [f#3,a3,c#4]@10 ~ f#3@11 ~@7 e3@12 ~ d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@11 b2@12 ~@9 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@3 d#4@8 ~@4 c#4@11 ~ b3@9 ~@4 a#3@5 ~@3 d#3@6 e3@12 ~ d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@11 ~@21 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@7, ~@35 [b3,d#4]@11 ~@7 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@12 a3@12 e3@11 ~@13 d#3@6 e3@12 ~ d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@11 ~@21 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@3 d#4@8 ~@4 c#4@11 ~ b3@9 ~@4 a#3@5 ~@3 d#3@6 e3@12 ~ d#3@11 c#3@12 ~ b2@12]/8", // F#m B
  Y: "[~@29 e3@4 ~@11 a3@3 ~@78 e3@4 ~@11 a3@3 ~@78 e3@4 ~@11 a3@3 ~@78 e3@4 ~@12 a3@3, a2@8 c#4@11 ~ b3@9 ~@4 a#3@5 ~@3 d#3@6 e3@12 ~ d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@11 b2@12 ~@9 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@3 d#4@8 ~@4 c#4@11 ~ b3@9 ~@4 a#3@5 ~@15 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@14 ~ c#4@11 ~ b3@9 ~@4 a#3@5 ~@4 d#3@6, ~@5 a3@12 e3@11 ~@7 b2@12 ~@6 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@12 a3@12 e3@11 ~@13 d#3@6 e3@12 ~ d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@11 b2@12 ~@9 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@3 d#4@8 ~ a3@12 e3@11 ~@8 b2@12, ~@12 g#2@12 f#2@11 ~@21 g#4@8 ~@5 f#4@7 ~@4 e4@9 ~@3 d#4@8 ~@4 c#4@11 ~ b3@9 ~@4 a#3@5 ~@15 b3@11 ~ b3@10 ~@2 b3@10 ~@2 f#3@12 a3@12 e3@11 ~@13 d#3@6 e3@12 ~ d#3@11 c#3@12 ~ b2@12 a2@11 ~ g#2@12 f#2@12 ~@12]/7",
  Z: "[~@2 [e3,g#3]@55 ~@39]/2", // E
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.4)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@27 A@2 B C ~@2 D@2 ~@18 A@2 E C ~ F@4 ~@15>".pickRestart({
  A: "[[a3,c#4,f#4] [b3,e4,g#4]@2 [b3,e4,g#4]@3 [g#3,b3,e4]@2 [a3,c#4,e4]@3 [g#3,b3,e4] [a3,c#4,e4]@2 [g#3,b3,e4] [g#3,c#4,e4]@2 [f#3,b3,d#4]@9 ~@6]/2", // F#m E A E A E C#m B
  B: "~@2 [a3,c#4,e4]!2 [a3,c#4,e4]@2 [g#3,c#4,e4] [g#3,c#4,e4]@2 [f#3,b3,d#4]@5 ~@2", // A C#m B
  C: "[a3,c#4,f#4]!2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [g#3,c#4,e4] [g#3,c#4,e4]@2 [f#3,b3,d#4]@5 ~@2", // F#m C#m B
  D: "[[g#3,b3,e4]@9 [g#3,b3,e4]@3 [b3,e4,g#4]@6 [a3,b3,e4]@3 [a3,c#4,f#4]@9 g#3@3 f#3@3 e3@3 f#3@6 e3@26 ~@25, ~@10 [b3,e4]@5 ~@17]/2", // E Asus2 F#m E5
  E: "~@2 [a3,c#4,e4]!2 [a3,c#4,e4]@2 [g#3,c#4,e4] [g#3,c#4,e4]@2 [f#3,b3,d#4]@6 ~", // A C#m B
  F: "[~@47 [g#3,b3,e4]@9 [g#3,b3,e4]@3 [b3,e4,g#4]@9 [a3,b3,e4]@3 [a3,c#4,e4]@9 b3@3 [g#3,e4]@3 [f#3,c#4]@3 [e3,b3]@6 [c#4,e4]@18 [b3,e4]@6 [b3,e4]@6 f#3@6 e3@6 [a3,b3]@6 a3@6 g#3@30 ~@13, ~@83 b3@6 ~@6 a3@30 [a3,d#4]@12 e3@42 ~@13, ~@143 b3@36 ~@13]/4", // E Asus2 A C#m F#5 E5 C#m E5 …
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@12 A@6 ~@4 B@4 ~@16 C@7 ~@15 D@2 E ~@10>".pickRestart({
  A: "[~@47 e5@47 ~ b4@46 ~@2 e5@47 ~ f#5@10 ~@2 f#5@12 e5@24 e5@46 ~@3]/6",
  B: "[~@5 f#4@4 g#4@3 b4@2 ~@4 d#5@29 e5@46 ~@2 f#5@10 ~@2 f#5@12 e5@24 e5@46 ~@3]/4",
  C: "[~@46 c#5@23 ~ d#5@23 ~@2 g#4@43 ~@5 g#4@23 f#4@18 ~@7 c#4@11 ~ b3@10 ~@3 d#4@15 ~@8 a5@47 ~ e5@42 ~@7]/7",
  D: "[~@29 b3@3 c#4@2 ~ e4@3 f#4@3 e4@3 ~ f#4@2 g#4@6 b4@3 ~@3 b4@11 ~@2 c#5@11 ~ g#4@12]/2", E: "f#4@19 ~@29",
})).s("gm_electric_guitar_jazz").gain(0.36).pan(0.4)

// other · fiddle
const fiddle = note("<~@19 A B C ~@5 D E F G H I J ~@8 K@4 ~@6 L@2 M N@2 O@3 P@3 Q R S@8 T U V@2>".pickRestart({
  A: "e4 f#4", B: "a3@23 b3@13 c4@11 ~", C: "c#4@3 ~", D: "e5", E: "f#5@23 ~ f#5@24", F: "e5 d#5", G: "e5@6 d#5@5 ~",
  H: "g#5@12 f#5@12 e5@11 d#5@12 ~", I: "c#5@12 b4@12 a#4@12 a4@11 ~", J: "e5@13 ~@11",
  K: "[~@47 a5@24 f#5@24 c#5@46 ~@2 b4@24 a4@24 ~]/4", L: "[~@47 e5@49]/2", M: "f#5!2",
  N: "[e5@23 d#5@24 e5@24 ~ d#5@20 ~@4]/2", O: "[g#5@12 f#5@11 e5@12 d#5@12 c#5@12 b4@12 a#4@12 a4@11 ~ e5@26 ~@23]/3",
  P: "[~@47 e5@24 c#5@24 a4@12 ~ b4@27 d#5@3 e5@3 f#5@3]/3", Q: "g#5@23 c#5@12 b4@12 a4",
  R: "~@11 b4@27 d#5@3 e5@3 ~ f#5@2 g#5",
  S: "[~@23 e5@24 c#5@24 ~ a#4@11 b4@6 ~ e5@2 f#5@3 g#5@24 ~ e5@23 c#5@24 ~ a#4@11 b4@6 e5@3 f#5@3 g#5@24 e5@24 c#5@24 a#4@12 b4@6 e5@3 f#5@3 g#5@24 e5@24 c#5@24 ~ a#4@11 b4@6 e5@3 ~ f#5@2 g#5]/8",
  T: "~@23 e5@24 ~", U: "c#5@24 a#4@11 ~ b4@6 e5@3 f#5@3", V: "[~ g#5@57 ~@38]/2",
})).s("gm_fiddle").gain(0.13).pan(0.6)

// other · electric guitar jazz
const electric_guitar_jazz_2 = note("<~@12 A@6 ~@4 B@2 C D ~@16 E@3 F@2 G H ~@28>".pickRestart({
  A: "[~@47 b4@47 ~ d#4@48 c#5@23 ~ b4@23 ~ c#5@11 ~ c#5@11 ~ c#5@24 b4@46 ~@3]/6", B: "[~@47 c#5@46 ~@3]/2",
  C: "c#5@11 ~ c#5@11 ~ c#5@24", D: "b4@23 ~", E: "[~@47 a4@24 b4@24 e4@45 ~@4]/3",
  F: "[d#4@24 c#4@18 ~@5 c#4@24 d#4@17 ~@8]/2", G: "d5@23 c#5@25", H: "b4@41 ~@7",
})).s("gm_electric_guitar_jazz").gain(0.34).pan(0.4)

// other · fiddle
const fiddle_2 = note("<~@27 A@5 B C ~@18 D@7 C ~ E@2 ~ F G@2 H@2 I@4 J@2 K@2>".pickRestart({
  A: "[b4@23 c#5@12 b4@12 ~@45 b4@3 ~ c#5@23 b4@24 c#5@25 b4@21 ~@2 g#5@24 ~ e5@24, ~@47 d#5@50 ~@143]/5", B: "c#5 e5",
  C: "b4@37 ~@11",
  D: "[~@47 b4@24 c#5@12 b4@12 ~@45 b4@3 ~ c#5@23 b4@23 ~ c#5@24 b4@21 ~@3 g#5@24 e5@24 c#5@25 e5@24, ~@95 d#5@50 ~@191]/7",
  E: "[e5@11 d#5@12 c#5@12 b4@12 a4@12 g#4@12 f#4@20 ~@5]/2", F: "~@12 g#4@11 f#4@20 ~@5",
  G: "[~@11 f#5@24 ~ d#5@23 b4@12 f#4@24 ~]/2", H: "[~@11 f#5@24 d#5@23 ~ b4@12 f#4@16 ~@9]/2",
  I: "[~@11 f#5@24 d#5@24 b4@12 f#4@24 ~]/2", J: "[~@11 f#5@24 d#5@24 b4@12 f#4@25]/2", K: "[~ e5@55 ~@40]/2",
})).s("gm_fiddle").gain(0.13).pan(0.6)

// chords · bandoneon
const bandoneon = note("<~@33 A@3 B C D@2 E F@2 ~@34>".pickRestart({
  A: "[~@71 b4@13 a4@11 ~ g#4@24 [d3,f#4,d5,f#5]@24, ~@47 e3@72 ~@25, ~@59 e5@60 ~@25, ~@5 b3@5 ~@2]/3", // D
  B: "c#5 e5 [b4,d#5] [c5,f#5], a4 ~", C: "g#5@23 ~ a5@24, [c#5,e5]",
  D: "[[b4,d#5,f#5]@47 ~@24 [b4,g#5]@24 ~, ~@47 [c#5,a5]@24 ~@25, ~@48 e5@47 ~]/2", E: "g#5 f#5 e5 d#5, e5@24 f#5@23 ~",
  F: "[b4@11 ~ c#5@11 a4@13 b4@12 g#5@35 ~@13, e5@41 ~@7]/2",
})).s("gm_bandoneon").gain(0.18).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A@7 B A@3 C A@3 C D E D B F D@2 G H I D@2 J K H G ~@8 D L H L H G ~@4 E M D E N O P Q R S T U V W X Y Z AA AB AC
  AD AE ~@2
>`.pickRestart({
  A: "x!2", B: "x ~@6 x!2 ~@7", C: "x ~@6 x ~@8", D: "x ~@2 x!2 ~@3", E: "x ~@5 x ~ x ~@6 x", F: "x ~@7 x ~@6 x",
  G: "x ~@4 x ~@2 x ~@7", H: "x ~@2 x!2 ~@2 x", I: "x ~@3 x ~@2 x", J: "x!4", K: "x!3 ~", L: "x",
  M: "x ~@6 x ~@2 x ~@5", N: "x ~@11 x ~@11 x ~@10 x ~@11 x", O: "~@11 x ~@11 x ~@11 x ~@11 x", P: "~@3 x!2 ~@3",
  Q: "x ~@17 x ~ x ~@3 x ~@22 x", R: "~@20 x ~@2 x ~@8 x ~@11 x ~@2 x", S: "~@8 x ~@11 x ~@2 x ~@8 x ~@14 x",
  T: "~@8 x ~@11 x ~@2 x ~@8 x ~@11 x ~@2 x", U: "~@8 x ~@11 x ~@2 x ~@6 x ~@2 x ~@7 x ~@6", V: "x ~@6 x!2 ~@2 x ~@3 x",
  W: "x ~@2 x ~@3 x!2 ~@2 x ~@4", X: "x ~@7 x ~@12 x ~@2 x ~@8 x ~@11 x ~@2", Y: "x ~@7 x ~@20 x ~@18",
  Z: "x ~@19 x ~@3 x ~@7 x ~@12 x ~@2", AA: "x ~@7 x ~@11 x ~@2 x ~@6 x ~@2 x ~@14",
  AB: "x ~@7 x ~@11 x ~@2 x ~@8 x ~@11 x ~@3", AC: "x ~@7 x ~@11 x ~@3 x ~@8 x ~@14",
  AD: "x ~@8 x ~@11 x ~@2 x ~@8 x ~@10 x ~@3", AE: "x ~@7 x ~@11 x ~@2 x ~@24",
})).gain(0.44)

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

// drums · low tom
const low_tom = s("lt").struct("<~@35 [~ x ~ x]!8 ~@21 [~@38 x ~@6 x ~@2] ~@3 [~@7 x] ~@8>").gain(0.33)

// … 33 more lines

More by James Taylor