Strudelify

Steamroller

James Taylor

KeyG majorTempo107 bpm
0:00/0:00
// Steamroller — Taylor James
// 107 bpm, 12/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 50 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/6)

// 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 · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AA AE AF AG AH AI AJ AK@2 AL AM AN AO AP AQ AR AS AT@3
>`.pickRestart({
  A: "~@11 [d#3,g3,c#4] f4 ~@7 [d3,f#3,c4,e4]@15 ~ d3@4 f3@4 g3@2 ~@2, ~@36 c3 ~@11", // D#7 D7
  B: "[g2,d3]@4 ~@4 [g2,d3]@4 [g2,e3]@4 ~@4 [g2,e3]@4 [g2,f3]@4 ~@4 [g2,f3]@4 [g2,e3]@4 f3@4 [g2,d3]@3 ~", // G5 C G7 C G5
  C: "[c3,g3]@3 ~@5 [c3,g3]@4 [c3,a3]@4 ~@4 [c3,a3]@4 [c3,a#3]@3 a#3@4 c3@4 ~ [c3,a3]@4 a#3@3 ~ g2@4, ~@43 g3@3 ~@2", // C5 F C7 F
  D: "a#3@2 ~@6 g2@4 c#3@2 d3@2 [b3,f4]@3 ~ [b3,f4]@3 ~ [b3,f4]@4 d3@3 ~ [b3,f4]@3 ~ [b3,f4]@4 d3@3 ~ [b3,f4]@4, g2@7 ~@41, ~ b3@5 ~@18, ~ g4@3 ~@8", // Bdim
  E: "a#3 ~@7 g2@4 c#3 d3@3 [f3,a#3]@3 ~ [f3,a#3]@3 ~ [f3,a#3]@4 d3@4 [f3,a#3]@3 ~ [f3,a#3]@4 d3@4 [f3,a#3]@4, g2@7 ~@41, ~@2 b3@7 ~@39, ~@4 d4@9 ~@35", // A#5
  F: "[c3,g3]@4 ~@4 [c3,g3]@4 ~ c3@4 ~@3 [c3,a3]@4 ~ c3@3 a#3@3 ~ [c3,a#3]@4 ~ c3@3 ~@4 [c3,a3]@4, ~@12 a3@4 ~@8 a#3@3 ~@9 a3@4 a#3@7 ~", // C5 F C7 F
  G: "[c3,g3] ~ [c3,g3] [c3,a3] ~ [c3,a3] [c3,a#3] ~ [c3,a#3] c3 ~ c3, ~@3 a3, ~@40 a#3@7 ~", // C5 F C7
  H: "~@8 g2@4 a#2@2 b2@2 c3@3 ~ c#3@4 d3@4 f3@3 ~ d3@3 ~ b2@4 g3@4 g2@4, g2@7 ~@41, ~@4 b3@9 ~@35",
  I: "a#3 ~@3 g4@4 ~@4 [c#4,a#4]@2 [d4,b4]@2 [d4,b4]@4 [d4,b4]@4 [d4,b4]@4 [d4,b4]@4 [d4,b4]@3 ~ c3@4 c#3@3 ~ d3@3 ~, ~ g2@3 ~@4 g2@11 ~ g2@12 ~@16, ~@2 b3@7 ~@39", // F# G
  J: "f4@3 ~@5 c4@3 ~ d4@3 ~@2 f#3@3 d3@4 ~@8 a2@3 ~ c3@4 c#3@4 d3@4, d3@10 ~@2 d3@7 ~@5 [f#3,c4,d4]@11 ~@13, ~@4 d4@7 ~@5 [c4,d4]@5 ~@27", // D7 Csus2
  K: "f#3 ~@3 e4@8 ~ g3 g#3 ~ f4@8 a3@2 f#4 ~ g4@3 ~ a3@4 f4@3 ~@5 e4@4, c3@4 g2@7 ~@5, ~@2 g3@9 ~@3 a3@8 ~@2 c3@22 ~@2, ~@26 a#3@5 ~@9 g3@8",
  L: "g2@2 b3@2 g4@4 g2@4 b2@4 ~@4 b2@4 c3@3 ~@5 c3@4 c#3@3 ~@5 c#3@4, a#3 ~@47",
  M: "d3@3 ~@5 g2@3 ~ [a2,g3,c#4,f4]@2 ~@6 [d3,f#3,c4,e4]@12 ~ c3 d3@3 ~@3 d3@4 [f3,a#3]@3 ~, ~@37 [f3,a#3]@5 ~@6", // Aaug D7 A#5
  N: "[g2,d3]@4 ~@4 [g2,d3]@4 [g2,e3]@3 ~@5 [g2,e3]@4 ~@4 f3@4 [g2,f3]@3 ~@9 [g2,e3]@4, ~@24 g2@7 ~@5 [g2,e3]@7 ~@5, ~@5 f3", // G5 C G7 C
  O: "[c3,g3]@3 ~@5 [c3,g3]@4 [c3,a3]@3 ~@5 a3@4 a#3@3 ~ a#3@3 ~ a#3@3 ~@5 c3@4 a#3@4, ~@5 c3@3 c3@2 a3@2, ~@36 a#3@7 ~@5", // C5 F
  P: "a#3 ~ b3@3 ~@3 g2@3 ~ [a#2,f3,a#3,f4]@7 ~ [c3,a#3,e4]@3 ~ a#3 ~ b3@2 ~@4 c#3 ~@3 [f3,a#3]@6 ~@2 [f3,a#3]@2 ~@2, g2@5 ~@19 [g2,d4]@4 ~@5 d3@5 ~@5 d3@4 ~", // A#5 C7 A#5 G5
  Q: "~ a#3 b3@2 ~@4 g2@3 ~ [a#2,f3,a#3,f4]@8 [c3,a#3,e4]@3 ~ a#3 ~ b3 ~@5 c#3 ~@3 [f3,a#3]@6 ~@2 [f3,a#3]@3 ~, ~ [g2,d4]@4 ~@19 [g2,f3,d4]@4 ~@5 d3@7 ~@2 d3@4 ~@2", // A#5 C7 A#5 G5 G7
  R: "f#3@2 ~@2 e4@8 g3 ~ g#3 ~@5 a3@4 ~@4 g4@3 ~@5 f4@4 ~@4 d4@4, c3@11 ~ g2@10 ~@2 c3@24, ~@2 g3@5 ~@8 a3@4 ~@5 a#3@7 ~ a3@8 f3@8, ~@17 f4@7 ~@24",
  S: "~ e4 ~ f4 ~ e4 ~ d4 ~ e4 ~ d4, [c3,g3]@7 ~ [g2,a3]@7 ~ [c3,g3]@7 ~ [a#2,f3]@7 ~ [c3,g3]@7 ~ [a#2,f3]@7 ~", // C5 Gsus2 C5 A#5 C5 A#5
  T: "a#3 b3@3 g4@3 ~ g2@3 ~ b2@3 ~ c3@3 ~ c#3@4 d3@4 f3@4 d3@3 ~ b2@4 g3@4 g2@3 ~, g2 ~@5",
  U: "a#3 ~@7 g2@3 ~ [c#4,e4] [d4,f4]@3 [d4,f4]@3 ~ [d4,f4]@4 [c#4,e4] [d4,f4]@3 [d4,f4]@3 ~ [d4,f4]@2 [c#4,e4] ~ [c4,e4]@4 d4@4 g3@4, g2@4 g4@7 ~@37, ~ b3@7 ~@4 g2@11 ~ g2@21 ~@3", // C#m Dm C#m Dm C#m C
  V: "c3@4 d3@8 [f#3,c4,f4]@4 ~@4 [c4,f4]@4 ~@8 d3@4 d3@7 ~ [c3,c4]@3 ~, ~@16 d3@15 ~ f#3@15 ~, ~@24 d4@11 ~ d4@12, ~@7 c4@4 ~", // F F5 C
  W: "f#3 g3@3 e4@8 ~ g#3 ~@5 a3@3 ~@2 a3 ~@2 g4@3 ~@6 f4@3 ~@5 e4@3 ~, c3@10 ~@2 g2@12 c3@21 ~@3, ~@12 g3@2 a3@4 ~@7 a#3@5 ~@2 a3@7 ~ g3@7 ~, ~@15 f4@8 ~@25",
  X: "a#3@2 ~@2 g4@4 g2@3 ~@9 f#4@3 ~@9 f4@3 ~ g2@4 ~@4 d3@3 ~, g2@6 ~@6 f#4@7 ~@5 f4@7 ~@5 [c4,e4]@9 ~@3, ~ b3@3 ~@2 [e3,d4]@5 ~ [a2,c#4]@5 ~@7, ~@8 g4@6 g4@5 ~ g4@4", // C E7 A
  Y: "a#3@2 b3@2 ~@4 g2@3 ~ b2@3 ~ c3@4 c#3@2 ~@2 [d3,f#3,c4]@20 [g2,d3]@4, [g2,d4]@4 ~@20 f4@23 ~", // D7 G5
  Z: "[g2,d3]@3 ~@5 [g2,d3]@4 [g2,e3]@3 ~@5 [g2,e3]@4 [g2,f3]@3 ~@5 [g2,f3]@4 ~@4 f3@4 c3@3 ~, ~@36 [g2,e3]@7 ~@5", // G5 C G7 C
  AA: "[c3,g3]@3 ~@5 [c3,g3]@4 [c3,a3]@3 ~@5 [c3,a3]@4 [c3,a#3]@3 ~@5 [c3,a#3]@4 [c3,a3]@3 ~@5 [g2,d3]@4", // C5 F C7 F G5
  AB: "[g2,d3]@2 ~@6 [g2,d3]@4 [g2,e3]@3 ~@5 [g2,e3]@4 [g2,f3]@3 ~@5 [g2,f3]@4 [g2,e3]@3 ~@5 [g2,e3]@4", // G5 C G7 C
  AC: "[g2,d3]@4 ~@4 [g2,d3]@4 ~@8 e3@3 ~@9 e3@3 ~@9 e3@3 ~, ~@12 g2@11 ~ g2@10 ~@2 g2@11 ~, ~@12 e3@7 ~@5 e3@7 ~@5 e3@7 ~@5, ~@16 f3@10 ~@2 f3@11 ~ g3@7 ~", // G5
  AD: "[c3,g3]@3 ~@5 [c3,g3]@4 [c3,a3]@3 ~@5 [c3,a3]@4 [c3,a#3]@2 ~@6 [c3,a#3]@4 a3@4 ~@4 a3@3 ~, ~@36 c3@11 ~, ~@40 a#3@7 ~", // C5 F C7
  AE: "[g2,d3]@4 ~@4 g2@3 ~ b2@3 ~ c3@3 ~ c#3@4 ~@4 g3@4 d3@4 b2@4 g3@4 g2@4, ~@3 d3 ~@2", // G5
  AF: "g2@3 ~@9 [c4,e4]@3 ~@9 [b3,d4]@3 ~@13 c3@3 ~ c#3@3 ~, ~@8 g2@7 ~@5 g2@8 ~@20", // C Bm
  AG: "c4@4 ~@4 c4@3 ~ [f#3,c4]@4 c4@3 ~ [f#3,c4,d4]@4 [f#3,c4,d4]@4 [f#3,c4,d4]@3 ~@5 [d3,f#3,c4,d4]@3 ~ [d3,f#3,c4,d4]@7 ~, d3@11 ~@5, f4@3 ~ d4@7 ~ d4@8 ~@28", // F#dim D7
  AH: "~ c3@3 ~@9 d#3 e3@6 g3@3 ~ g3@2 ~@6 f#3 g3@3 ~ g3@3 b3@3 ~ g3@4, [g3,a#3,e4]@3 ~@34 f#3 ~@10", // Edim
  AI: "g3@3 ~@5 g2@4 b2@3 ~ c3@3 ~ c#3@4 d3@3 ~ f3@3 ~ d3@2 ~@2 b2@4 g3@4 g2@3 ~",
  AJ: "[g2,b3,f4]@8 g2@4 c3@3 ~ c#3@3 ~@5 [f#3,c4,f4]@23 ~, ~@5 d3@7", // G7 F
  AK: "[~@3 b3@4 ~ [g2,d3]@4 ~@4 f3@4 e3@2 ~@2 [g2,f3,b3,d4]@6 ~@6 [g2,f3,b3,d4]@7 ~@6 e4@13 ~@10 [a#3,d4]@4 [g3,c4]@5 ~@7 [f3,a#3]@4 [g3,c4]@4, g4@3 ~@21 [g3,a#3]@7 ~@17, a#3@2 ~@10 e3@7 ~@27 c3@15 ~@35, ~ g2@6 ~@6 g2@10 ~@73]/2", // G5 G7 A# C5 A#5 C5 Gm
  AL: "a#3@2 b3@5 ~@5 b2@4 c3@4 c#3@4 d3@3 ~ f3@3 ~ g3@7 ~ f3@4 d3@4, [g2,d4]@7 ~@41", // G5
  AM: "f3@26 ~@2 [f3,b3,f4]@4 [f3,b3,f4]@4 [f3,b3,f4]@3 ~ [f3,b3,f4]@3 ~ [f3,b3,f4]@3 ~", // Fdim
  AN: "[c3,g3]@4 ~@4 [c3,g3]@3 ~ [c3,a3]@3 ~@5 [c3,a3]@4 [c3,g3]@3 ~@5 [c3,g3]@4 [c3,a3]@3 ~@5 [c3,a3]@3 ~", // C5 F C5 F
  AO: "[c3,g3]@3 ~@5 g3@3 ~@9 a3@3 ~ [g3,e4]@10 ~@2 [c3,a3]@7 ~ [c3,g3]@4, ~@4 c3@13 ~@7, ~@12 g#3@2 ~@2 f4@7 ~@25, ~@13 a3@5 ~@30", // C5 C F C5
  AP: "g2@3 ~@9 [b3,g4]@4 ~@4 [a3,f4]@17 ~@3 f3@4 g3@4, ~ g2 ~@4", // Em Dm
  AQ: "g2@3 ~@9 [b3,g4]@4 ~@4 [a3,f4]@14 ~@6 c3@4 c#3@3 ~, ~ g2 ~@4", // Em Dm
  AR: "f4@3 ~@41 f#3@4, d3@47 ~, ~@4 d4@7 ~ d4@8 f#3@11 ~ f#3@11 ~@5, ~@8 c4@7 ~ c4@11 ~ c4@11 ~ c4@8, ~@24 d4@11 ~ d4@12",
  AS: "g3@4 ~@4 g3@3 ~ g3@2 g#3 ~ f4@4 a3@3 ~ g3@4 ~@4 g3@4 [c3,g3,e4]@10 ~@2, c3@22 ~@2 c3@11 ~@13, ~@4 e4@9 ~@2 a3@3 ~@10 e4@8 ~@12", // C
  AT: "[[g2,g3,b3,d4]@4 ~@16 f#4@3 ~@2 f4@6 ~@5 a2@9 ~@11 e4@5 ~@11 d3@52 ~@20, ~@12 [e3,d4]@12 g3@22 d3@16 ~@9 g2@48 ~@25, ~@12 f#4@7 ~@4 a2@12 ~@17 g4@9 ~@83, ~@16 g4@8 c#4@7 f4@15 ~@3 e4@6 ~@89, ~@16 c#4@7 ~ [f#3,c4]@7 ~@5 g3@23 ~@13]/3", // G E7 F#dim
})).s("gm_electric_guitar_jazz").gain(0.33).pan(0.6)

// bass · fretless bass · "FRETLESS"
const bass = note("<~@24 A B C D E F G H I J K H L M N H O F N H P J Q R S@2>".pickRestart({
  A: "~@11 g1", B: "g1@3 ~@5 g1@4 g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@3 ~@5 c2@4",
  C: "c2@3 ~@5 c2@4 c2@4 ~@4 c2@4 c2@4 ~@4 c2@4 c2@4 ~@4 g1@4",
  D: "g1@3 ~@5 g1@4 g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@4 e1@4 f1@4",
  E: "g1@4 ~@4 g1@4 g1@3 ~@5 g1@4 g1@3 ~@5 g1@4 b1@4 g1@4 b1@4", F: "c2 ~ c2!2 ~ c2!2 ~ c2!2 ~ c2",
  G: "c2 ~ c2!2 ~ c2!2 ~ c2!2 e1 f1", H: "g1 ~ g1!2 ~ g1!2 ~ g1!2 ~ g1",
  I: "g1@3 ~@5 g1@4 g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@4 ~@4 c2@4", J: "d2 ~ d2!2 ~ d2!2 ~ d2!2 ~ c#2",
  K: "c2 ~ c2!2 ~ c2!2 ~ c2!2 ~ g1", L: "g1 ~ c2 c#2 ~ d2 d2@3 f2 d2 g2",
  M: "g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@3 ~@5 g1@4 b1@4 ~@4 b1@4", N: "c2 ~ c2!2 ~ c2!2 ~ c2!2 f1 f#1",
  O: "g1@3 ~@5 g1@4 g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@4 a#1@4 b1@4",
  P: "g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@4 ~@4 g1@4 g1@3 ~ c2@4 c#2@4", Q: "c2 ~ c2!2 ~ c2!2 ~ c2!2 f2 f#2", R: "g2 ~@15",
  S: "[~@12 g1@23 ~@13]/2",
})).s("gm_fretless_bass").gain(0.49)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@24 A B C D E F G H I J@2 K L M N O P Q R S T U V W ~@2>".pickRestart({
  A: "~@36 e3@4 g3@2 ~@2 a3@3 ~", B: "a#3@6 ~@6 b3@6 ~@3 g3@2 ~@2 g3@5 ~@6 d#3@4 g3@2 ~@2 a3@2 ~@2",
  C: "a3@3 ~ a3@2 ~@2 g3@2 ~@3 a3@3 ~ g3@2 ~ e3@2 ~@3 e3@7 ~@5 d#3@4 g3@2 ~@2 a3@2 ~",
  D: "~ a#3@4 ~@7 a#3@4 ~@4 a3@2 ~@2 a3@4 ~@4 a3@2 ~@2 g3@2 ~@2 e3@2 ~@2 g3@2 ~@2",
  E: "a#3@3 ~ d4@2 ~@2 e4@2 ~@2 f4@2 ~@2 e4@3 ~ d4@3 ~ b3@4 ~@4 e4@4 b3@6 ~@6",
  F: "~@16 a#3@2 c4@2 ~@3 c4@2 ~ a#3 c4@2 ~ a#3 ~@3 d4@3 b3@2 g3@2 ~ a#3@5 ~",
  G: "~@15 g3 ~@2 a#3 ~ c4@2 ~@2 c4 ~ c4 ~ c4 ~@2 c4 ~ c4 ~ c4 ~@6 d4@2 ~ c4@2 ~",
  H: "a#3@4 g3@2 ~@2 f4@3 a#3@3 [g3,b3]@2 ~@2 f3@5 ~@25", // G
  I: "g4 ~ f4@2 d4 ~ c#4 ~ c4@2 a#3 ~ c4 c#4 ~@2 c4@2 a#3@2 c4@2 a#3@2 c4@2 ~@2 c4@2 a#3 ~ g3@3 ~ a#3@4 ~ d4@3 e4@2 ~@2, ~@15 d4@2 ~@10 d4@2 ~@19",
  J: "[e4@8 e4@4 ~ e4@7 f4@2 ~@3 e4@5 ~@2 d4@3 ~@10 f#4@8 a#4@2 ~@2 c5@2 ~ c5@3 a#4@2 c5@2 ~ c5@2 a#4@2 ~ c5@2 a#4@2 c5 ~@3 a#4@2 ~ c#5@4 ~@2 c5@5 ~, ~@40 c5 ~@7]/2",
  K: "a#4@2 g4@2 ~@2 a#4@3 g4@9 [c#4,d4]@2 ~ f4@2 ~ g4@2 f4@2 ~ d4@2 c#4@2 c4@2 c#4@2 ~ c#4@2 ~ c4@2 ~ c#4@2 ~@2", // Dmaj7
  L: "c#4@2 c4@2 ~ c#4@2 ~ c4@2 ~@2 a#3@3 ~@4 a#3@3 g3@12 ~@2 f#3 g3@3 a#3@4 g3@3 ~",
  M: "c#4 ~@3 b4@3 ~@13 f4@4 f4@4 ~@4 b4@4 f4@4 f4@4 b4@3 ~, ~ [d4,f4]@11 f4@8 ~@4 d4@12 ~@12, ~@8 b4@8 b4@8 b4@7 ~@5 b4@7 ~@5, ~@7 f4@2 ~@3", // Dm
  N: "e4@4 ~@4 a#4@4 e4@4 ~@4 a#4@4 e4@4 e4@4 e4@4 ~ e4@3 ~@4 a#4@4, a#4@7 ~@5 a#4@7 ~@5 a#4@8 a#4@11 ~@5, ~@4 e4@7 ~ c4@12 c4@11 ~ c4@12, ~@16 e4@8 ~@16 e4@7 ~",
  O: "[c#4,e4]@3 ~@5 f4@4 f4@4 ~@4 b4@4 f4@4 f4@4 [f4,b4]@4 f4@4 f4@3 ~ f4@3 ~, ~@2 b4@4 d4@17 ~, ~@12 b4@7 ~@5 b4@8 ~@4 b4@10 ~@2, ~@2 f4 ~@3", // C#m Fdim
  P: "[f#4,g4] [g#4,a4] ~@2 d5@3 ~ d5@4 d5@3 ~ d5@4 [a#4,d5]@4 [a#4,d5]@4 a#4@4 a#4@4 [a#4,d5]@3 ~ d5@3 ~ d5@3 ~, ~@2 a#4@10 a#4@8 ~@8 d5@8 ~@3 a#4@4 a#4@4 ~", // Gmaj7 Amaj7 A#
  Q: "~@4 e5@3 ~ e5@4 e5@7 ~ [a#4,e5]@4 a#4@3 ~ a#4@4 [a#4,e5]@4 [g4,e5]@7 ~ a#4@4, ~@4 a#4@7 ~ a#4@4 ~@4 g4@7 ~@9 a#4@4 ~@8, ~@3 e5 ~@2", // A#dim C
  R: "a#4@4 a#4@3 ~ [g4,a#4]@4 a#4@3 ~ a#4@3 ~ [g4,a#4,e5]@4 a#4@3 ~ a#4@3 ~ [g4,a#4]@4 a#4@4 a#4@4 e5@2 ~@2, e5@3 ~@3 e5@5 ~, g4@7 ~@5 [g4,e5]@8 ~@4 g4@7 ~@5 g4@7 ~@5", // Gm Edim Gm C
  S: "f4@4 f4@3 ~ f4@4 f4@4 f4@3 ~ [f4,b4]@4 [d4,b4]@8 [d4,f4,b4]@4 f4@4 f4@3 ~ [d4,f4,b4]@4, [d4,b4]@3 [d4,b4]@2 ~ f4 ~@2 [d4,b4]@2 ~", // Fdim G Bdim G
  T: "f4@4 f4@3 ~ f4@4 f4@3 ~ f4@3 ~ [d4,f4,b4]@4 f4@3 ~ f4@3 ~ [d4,f4]@4 f4@4 f4@4 b4 ~@3, [d4,b4]@12 [d4,b4]@7 ~@5 b4@11 ~@13, ~@24 d4@7 ~@5 [d4,b4]@8 ~@4", // Bdim Dm G
  U: "f#5@3 ~@5 c5@4 c5@4 c5@4 [a4,c5]@4 c5@3 ~ c5@4 [a4,c5]@4 c5@4 c5@4 c5@2 ~@2, a4@11 ~ a4@8 ~@4 a4@8 ~@4 a4@8 ~@4, c5@7 ~@41, ~@4 f#5@20 f#5@21 ~@3", // Am
  V: "a#4@4 a#4@4 [g4,a#4]@4 a#4@4 a#4@4 [g4,a#4]@4 a#4@4 a#4@4 [g4,a#4,e5]@4 a#4@3 ~ a#4@4 e5@2 ~@2, e5@12 e5@11 ~@13 e5@7 ~@5, g4@8 ~@4 g4@8 ~@4 [g4,e5]@8 ~@4 g4@11 ~", // Gm Edim C
  W: "[g4,b4] ~@15", // G
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.3)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@37 A B C ~ D E F G H ~ I ~@2>".pickRestart({
  A: "~@12 d4@11 ~@13 d4@11 [c#4,a#4]", B: "c4@3 ~@13", C: "b4@3 d4@7 ~@38, ~@3 f4@4 ~@41",
  D: "~@16 a#4@4 ~@20 a#4@3 ~ [g4,e5]@4, ~@3 g4@2 ~@7", E: "~@22 g4 ~", F: "~@20 d4@4 ~@4 f4@3 ~@17",
  G: "~@44 [d4,f4] ~@3", H: "~@22 a4 ~", I: "d4 ~@15",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.3)

// other · trumpet
const trumpet = note("<~@22 A@3 B C D E F G H I J K L M N ~@2 O P Q R S T U V W@2>".pickRestart({
  A: "[~@33 g4@85 ~@6 f5@3 ~ f5@3 ~ f5@3 ~ f5@3 ~ f5@3 ~]/3",
  B: "f#5@7 g5@15 ~@2 g5@5 ~@2 [d5,e5] [b4,c5] [g4,a4] ~@9 d5@4 ~", C: "c5@3 a#4 ~@8",
  D: "f#5@7 ~ g5@16 g5@8 f5 [c5,d5,e5] [a4,b4] ~@13", E: "~@12 e5@12 d5@12 b4@11 ~", F: "a4@7 g4@30 ~@11",
  G: "~@24 g#4 a4@4 ~@3 g4@7 ~ g4@3 ~ g4@3 ~", H: "b4@8 d5@16 ~@12 g5@3 ~@9",
  I: "e5@15 ~ d5@4 b4@4 d5@12 ~@12, d#5 ~@47", J: "~@4 a5@3 ~ a5@3 ~ a5@7 ~ a5@2 g#5@2 a5@4 a5@4 ~@16",
  K: "~@4 g5@3 ~ g5@3 ~ g5@7 ~ g5@2 f#5@2 g5@4 g5@3 ~@16 a#4", L: "b4@3 ~@4 g4@13 ~@28",
  M: "f4@3 ~@4 d4@17 ~@4 f5@3 ~ f5@3 ~ f5@3 ~ f5@3 ~ f5@3 ~, e4 ~@47", N: "g5@5 e5 d5 ~@41",
  O: "~@24 g5@3 ~ g5@3 ~ g5@3 g5@3 ~@2 g5@4 a5@3 ~", P: "f5@4 e5@20 e5@5 ~@11 e5@4 d#5@4", Q: "e5@2 g5 ~@5 a#4@8",
  R: "b4@4 d5 ~@11", S: "~@28 d5@4 e5@2 ~@2 g5@3 a5 [a#5,b5]@3 ~ g5@3 ~", T: "d6@6 c6@2 ~@10 a5@5 ~",
  U: "c6@11 ~ a5@2 c6 c6@3 ~@22 c6@3 ~ a#5@3 ~", V: "g5 ~@15", W: "[~@24 f5@47 ~@25]/2",
})).s("gm_trumpet").gain(0.44).pan(0.6)

// other · trumpet · soft notes
const trumpet_soft = note("<~@22 A ~@2 B ~ C ~@3 D ~@5 E ~@3 F ~@8>".pickRestart({
  A: "~@12 g4 ~@11", B: "~@30 [f5,g5] ~@17", C: "~@34 g4 f4 ~@12", D: "~@36 f#5 ~@11", E: "~@4 f5 ~@2 c5 ~@40",
  F: "~@28 d5 [b4,c5] a4 [f4,g4] e4 ~@15", // Cmaj7 Fsus2
})).s("gm_trumpet").gain(0.22).pan(0.6)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~@22 A@3 B C@2 D E F G H I J@2 K L M N O P Q@2 R S T U V@2>".pickRestart({
  A: "[~@24 g4@2 ~@6 g4@88 ~@3 [f4,d5]@3 ~@2 [f4,d5]@3 ~ [f4,d5]@3 ~ [f4,d5]@3 ~ [f4,d5]@3 ~]/3", // Dm
  B: "[f4,c#5]@7 [f4,d5]@15 ~@2 [f4,d5]@6 c5 b4 [g4,a4] [d#4,e4,f4] [c4,c#4,d4] ~@9 [f4,d5]@4", // C# Dm Gsus2 Dm
  C: "[[e4,c5]@12 [d4,a#4]@4 ~@15 g4@4 ~ g4 ~ g4 ~@9 f#5@7 [f4,d5,g5]@16 ~ [f4,d5,g5]@7 c5 [e4,a4,b4] [d4,e4,f4,g4] [c4,d4] b3 ~@12, ~@47 [e4,c#5]@8 ~@41]/2", // C Gm G7 Esus4 Em7 Csus2 C#m
  D: "~ [g4,c5,e5] [f4,b4,d5] [d4,f4,b4]", E: "~ a4@6 [a#3,e4,g4]@33 ~@8, [c4,f4]@7 ~@41",
  F: "~@24 [c4,a4]@6 ~ [a#3,g4]@8 ~ [a#3,g4]@3 ~ g4@4, ~@43 a#3@4 ~", // F D#
  G: "[b3,g4]@7 ~ g4@20 ~@8 [f4,b4,g5]@3 ~@9, ~@7 [b3,d5]@22 ~@19", // Em G7 Bm
  H: "[g4,e5]@15 ~ d5@4 [d4,b4]@4 [f4,d5]@12 ~@12, ~@15 f4@5 ~@28", // C G Dm
  I: "~@4 f5@3 ~ f5@3 ~ f5@7 f5@2 e5@3 f5@3 ~ f5@3 ~@17",
  J: "[~@4 e5@3 ~ e5@3 ~ e5@7 ~ e5@2 d#5@2 e5@3 ~ e5@3 ~@16 b4@5 ~@3 g4@15 ~@26]/2",
  K: "f4@2 ~@5 d4@15 ~@6 [d5,f5]@3 ~ [d5,f5]@3 ~ [d5,f5]@3 ~ [d5,f5]@3 ~ [d5,f5]@3 ~", // Dm
  L: "[b4,d5,g5]@5 c5 a4 [f4,g4] e4 ~@19 d4@4 d#4@4 e4@4 g4@2 ~@2 e4@2 d4@2", // G Fsus2
  M: "e4@4 g4@3 ~@17 d4@4 c4@12 a#3@3 c4@4 ~", N: "b3 g3@2 ~@3",
  O: "~@12 d5@3 ~ d5@3 ~ d5@4 d5@3 d5@3 ~@2 d5@3 d5@3 ~@5 e5@2 ~@3, ~@40 d5@5 ~@3",
  P: "d5@4 [c5,e5]@19 ~ c5@4 b4 [g4,a4] [e4,f4] d4 ~@8 [c5,e5]@4 [b4,d#5]@4", // C Gsus2 Fmaj7 C B
  Q: "[[c5,e5]@6 [e5,g5]@2 ~@16 e4@23 d4@13 [f4,b4]@2 ~@34, ~@2 g4@3 ~@3]/2", // C Em Fdim
  R: "~@28 [d4,d5]@3 [e4,e5]@3 ~@2 g4@2 ~@2 [b4,b5]@3 ~ g5@3 ~, ~@35 g5@3 [a4,a5]@2 ~@3 g4@3 ~@2, ~@39 [a#4,a#5]@2 ~@7", // D E B A A#
  S: "[d5,f#5,d6]@12 [c5,f#5,c6]@4 ~@20 [d5,f#5,a5]@11 ~", // D Cdim D
  T: "[e5,a#5,c6]@10 ~@2 a5 ~ [g5,a#5] ~ [g5,a#5]@2 ~@22 [e5,c6]@3 ~ [d5,a#5]@3 ~", U: "[b4,g5] ~@11",
  V: "[~@24 [b4,f5]@47 ~@25]/2", // Bdim
})).s("gm_synth_brass_1").gain(0.28).pan(0.6)

// other · trombone
const trombone = note("<~@22 A@3 B C D E F G H@2 I J K L M N O P Q R@2 ~ S T U V@2>".pickRestart({
  A: "[~@31 g4@88 ~@4 a4@4 ~ a4@3 ~ a4@3 ~ a4@3 ~ a4@3 ~]/3", B: "a#4@6 ~ b4@16 ~ b4@9 ~@11 f4@4",
  C: "e4@12 d4@4 ~@16 c4@4 c4 ~ c4 ~@9", D: "a#4@7 b4@16 ~ b4@11 ~@13", E: "~@12 f4@11 ~ f4@10 ~@2 e4@11 ~",
  F: "d4@3 ~@4 d4@29 ~@12", G: "~@24 e4@6 ~@2 d4@7 ~ d4@3 ~ d4@3 ~",
  H: "[d4@7 e4@17 ~@12 g4@3 ~@8 g4@15 ~@2 g4@4 e4@4 f4@5 d4 [b3,c4] ~@17]/2", // Cmaj7
  I: "~@4 d4@4 c4@4 f4@7 ~ f4@2 d4@2 c4@4 f#4@3 ~@17", J: "~@4 g4@3 ~ g4@3 ~ g4@6 ~ g4@3 f#4@2 g4@4 c5@3 ~@17",
  K: "~@24 b3@3 ~@4 g3@14 ~@3", L: "~@28 a4@3 ~ a4@3 ~ a4@3 ~ a4@3 ~ a4@3 ~", M: "b4@5 ~@43", N: "~@6 d4 c4@3 a#3 c4",
  O: "b3@7 ~ g3@16 ~@24", P: "~@12 a#3@3 ~@5 a#3@3 ~ a#3@3 ~ b3@3 ~ b3@3 ~ b3@3 ~ b3@3 c4@3 ~@2",
  Q: "a#4@4 a4@19 ~ e4@4 c4 [a3,b3] [f3,g3] e3 ~@8 a4@4 g#4@4", R: "[a4@6 c5@2 ~@16 e4@23 d4@13 g4@3 ~@33]/2",
  S: "f#5@11 ~ f#5@3 ~@21 d5@12", T: "e5@11 d5@2 ~ e5 e5@2 ~@23 c5@3 ~ a#4@3 ~", U: "g4 ~@11", V: "[~@24 g4@47 ~@25]/2",
})).s("gm_trombone").gain(0.28).pan(0.2)

// other · trombone · soft notes
const trombone_soft = note("<~@22 A ~@9 B ~@3 C ~@3 D E ~@8>".pickRestart({
  A: "~@12 g4 ~@11", B: "~@28 e4 ~@19", C: "b3@2 ~@6 g3@15 ~@25", D: "~@8 a#3 ~@15", E: "~@27 d4 ~@4 d3 ~@15",
})).s("gm_trombone").gain(0.16).pan(0.2)

// other · tenor sax
const tenor_sax = note("<~@22 A@3 B C D E F G H I J K L M N@3 O@2 P@2 Q@3 R S@2>".pickRestart({
  A: "[~@31 g3@85 ~@8 f#3@3 ~ f#3@3 ~ f#3@3 ~ f#3@3 ~ f#3@3 ~]/3", B: "g3@6 ~ g3@15 ~@2 g3@6 e3 [c3,d3] b2 a2 ~@9 g4@5",
  C: "e4@6 a#3 ~@17", D: "f#3@7 g3@16 ~ g3@8 ~ e3 d3 [b2,c3] a2 ~@11", E: "~@12 d4@11 ~ d4@12 ~ c4@10 ~",
  F: "a#3@5 ~@2 a#3@26 ~@2 e3@4 ~ g3@2 ~@2 a3@2 ~@2", G: "a#3@2 ~@3 a3@6 f3 e3 ~@19 a#2@7 ~ a#2@3 ~ a#2@4",
  H: "b2@6 ~@2 b2@16 ~@11 f3@3 ~@10", I: "f3@8 d3 ~ d3@2 f3@4 ~@8",
  J: "~@4 f#3@4 f#3@4 f#3@7 ~ f#3@2 f#3 f#3@4 f#3@3 ~@18",
  K: "~@4 a#3@3 ~ a#3@3 ~ a#3@7 ~ a#3@2 a3@2 a#3@3 ~ a#3@3 ~@17", L: "~@24 b3@2 ~@5 g3@13 ~@4",
  M: "f3@3 ~@5 d3@14 ~@6 c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@4, e3 ~@47",
  N: "[b2@5 ~@23 a#3@4 b3@3 c4@4 d4@2 ~@3 g3@2 ~ a#3@5 c4@2 ~@18 d3@4 c3@12 a#2@3 c3@4 b2@8 g2@16 ~@4 g4@2 ~ g4 ~@2 g4@2 e4@3 g4@2 ~ g4@2 ~ g4@2 e4@2, ~@23 a3 ~@48]/3",
  O: "[~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@3 ~ g4@2 g4@2 ~@4 f3@3 ~@2 f3@3 f3@3 ~ f3@3 ~ f3@4 e3@3 ~ c4@5 a#3@17 ~ [d3,e3] [f3,g3] [a3,a#3] c4@3 [a3,a#3] [e3,f3,g3] d3 [a#2,c3] ~@8 c4@3 b3@4 ~]/2", // Dsus2 Fsus2 A#maj7 Em A#sus2
  P: "[c4@6 a#3@3 ~@15 e3@23 d3@13 g3@2 ~@14 d4@4 e4@4 g4@4 b4 ~@3 g4@2 e4@2]/2",
  Q: "[g4@4 d4@38 ~@5 c4@11 ~@2 c4@4 ~@20 c4@7 ~@4 c4@12 ~ c4@2 c4 ~ c4 ~@23 c4@3 ~ a#3@3 ~]/3", R: "g3 ~@15",
  S: "[~@24 f3@47 ~@25]/2",
})).s("gm_tenor_sax").gain(0.24).pan(0.3)

// other · tenor sax · soft notes
const tenor_sax_soft = note("<~@22 A ~@2 B ~ C ~ D E ~@8 F G ~@9>".pickRestart({
  A: "~@12 g3 ~@11", B: "~@29 f3 ~@18", C: "~@16 f3 ~@7", D: "~@23 g3", E: "~@3 g3@2 ~@5 g3 ~@2 d3 ~@34",
  F: "~@6 e4 ~@5", G: "~@3 e4 ~@12",
})).s("gm_tenor_sax").gain(0.16).pan(0.3)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note("<~@22 A@3 B C@2 D E@2 F G H I J K L M ~ N O P Q R S T U V@2>".pickRestart({
  A: "[~@24 g3@2 ~@6 g3@87 ~@5 d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~]/3", B: "g3@24 g3@5 f3 e3 d3 c3 ~@10 f3@5",
  C: "[e3@12 c3@2 ~@33 f#3@8 g3@15 ~@2 g3@9 f3@2 [d3,e3] ~@12]/2", D: "~@12 f3@11 ~ f3@12 ~ e3@10 ~",
  E: "[c3@5 ~@3 c3@25 ~@3 e2@4 g2@2 ~@2 a2@3 ~ a#2@2 ~ g2@2 a2@6 ~ f2 e2 d2 ~@17 a#2@7 ~ a#2@2 ~@2 a#2@4, ~@47 g2@2 ~@10 g2@2 ~@35]/2",
  F: "g2@7 ~ g2@16 ~@12 g2@2 ~@10", G: "g2@15 ~ g2@3 ~ g2@3 ~ g2@12 ~@12",
  H: "~@4 d3@3 ~ d3@4 d3@8 d3@2 d3 ~ d3@4 d3@2 ~@18", I: "~@4 c3@3 ~ c3@3 ~ c3@6 ~ c3@2 a#2@3 c3@3 ~ c3@2 ~@18",
// … 40 more lines

More by James Taylor