Strudelify

Stumblin' In

Quatro

KeyG majorTempo129 bpm
0:00/0:00
// Stumblin' In — Quatro
// 129 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(129/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 · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~ A B C@2 D E F G H I F J K L M@2 H E N@2 O@2 P@2 Q R S@2 T U V W X@2 Y@2 Z AA AB@2 Z AC AD@2 AE AF AG AH AI@2 AJ@2 AK
  AL AM@2 AN AO AP AQ AK AR AS@2 AT AU AV AW AX AO AY AZ BA AO BB BC BD BE BF BG BH AO BI@2 BJ E BK@2 BJ AF BL BM BN BO
  BP@2 BQ BR BS BT BU BV BW@2 BX BY BZ@2 CA CB CC@2 CD@2 CE CF CG CH CI@2 CJ@2 CK CL
>`.pickRestart({
  A: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5]@2 ~@2 [c5,e5]@2 e5 ~@3", B: "[f#4,a4]@2 ~@2 [f#4,a4] ~ [g4,b4]@2 ~@2 [a4,c5]@5 ~",
  C: "[[g4,b4]@3 ~ [g4,b4] ~ [g4,b4] ~@3 [a4,c5] ~@3 b4@8 g4@2 ~@2 b4@2 g4@2 ~@2, ~@14 g4@6 ~@4 d5@7 ~]/2", // G Am
  D: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5] ~@3 [c5,e5]@3 ~@3", E: "[f#4,a4]@3 ~ [f#4,a4] ~ [g4,b4]@2 ~@2 [a4,c5]@4 ~@2",
  F: "[g4,b4]@3 ~ [g4,b4] ~ [g4,b4]@2 ~@2 [g4,c5]@3 ~ [g4,b4] ~", G: "[g4,b4]@5 ~ [g4,b4] ~ [a4,c5] ~ [g4,b4]@5 ~",
  H: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5]@2 ~@2 [c5,e5]@3 ~@3", I: "[f#4,a4]@3 ~ [f#4,a4] ~ [g4,b4]@2 ~@2 [a4,c5]@5 ~",
  J: "[g4,b4]@6 g4@2 ~@2 b4@2 g4@3 ~, ~ d5", K: "[a4,c5]@4 ~@2 [a4,c5]@3 ~ [a4,c5] ~ [g4,b4]@2 ~@2",
  L: "[f#4,a4]@5 ~ f#4@4 ~@2 d5@3 ~, ~@5 f#4@2 ~", // F#m
  M: "[[g4,b4]@5 ~ b4@4 ~@4 d5@10 ~@2 g4@2 b4@2 ~@2, ~@6 g4@2 ~@2 g4@13 ~ d4@6 ~@2, ~@3 b4@3 ~@2]/2", // G
  N: "[[g4,b4]@3 ~ [g4,b4] ~ [g4,b4] ~@3 [f#4,a4]@2 ~@2 [g4,b4]@7 ~ [g4,b4] ~ [g4,b4] ~ [f#4,a4]@2 ~@2 [g4,b4] ~]/2", // G F#m G F#m G
  O: "[[a4,c5]@4 ~@2 [a4,c5] ~ [a4,c5] ~ g4@2 ~@2 [f#4,a4]@7 ~ [f#4,a4] ~ [f#4,a4] ~@3 [a3,d4]@3 ~, ~@10 b4 ~@21]/2", // Am F#m D5
  P: "[~@4 [d4,g4]@2 ~@2 [d4,g4]@2 ~@2 [d4,f#4] ~ [e4,g4]@8 e4 ~ [e4,g4]@3 ~ [e4,b4]@3 ~]/2", // G5 D Em E5
  Q: "[a4,c5]@3 ~ [a4,c5] ~ [a4,c5]@2 ~@2 [g4,b4]@3 ~ [f#4,a4] ~", // Am G F#m
  R: "[f#4,a4]@4 ~@2 [f#4,a4] ~ [g4,b4]@3 ~ [a4,c5]@3 ~", // F#m G Am
  S: "[[g4,b4]@5 ~ [g4,b4] ~ [g4,b4] ~ [a4,c5] ~@3 [g4,b4]@6 ~@2 [g4,b4]@4 g4@2 [g4,d5]@4]/2", // G Am G G5
  T: "[a4,c5]@3 ~ [a4,c5] ~ [a4,c5] ~@3 [g4,b4]@2 ~@2 [f#4,a4] ~", // Am G F#m
  U: "[f#4,a4]@5 ~ [f#4,a4]@3 ~@3 d4@2 ~@2, ~@12 a3 ~@3", // F#m
  V: "[d4,g4]@4 ~@2 [d4,g4] ~ [d4,g4]@2 [d4,g4] ~ f#4@2 d4 ~, ~@12 d4 ~@3", W: "e4@2 g4 [e4,g4,b4]@4 ~",
  X: "[[a4,c5]@2 ~@2 [a4,c5] ~ [a4,c5] ~@3 [g4,b4] ~@3 f#4@9 ~@3 f#4@2 ~@2 a4@2, ~@7 a4@7 d5@2]/2", // Am G
  Y: "[[g4,b4]@4 ~@2 [g4,b4] ~@9 [d4,b4]@2 ~@14, ~@5 d4@3 ~@8, ~@6 g4@3 ~@7]/2", // G
  Z: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5] ~@3 [c5,e5] ~@5", AA: "[f#4,a4]@2 ~@2 [f#4,a4] ~ [g4,b4]@2 ~@2 [a4,c5]@4 ~@2",
  AB: "[[g4,b4]@2 ~@2 [g4,b4] ~ [g4,b4] ~@3 [a4,c5] ~@3 [g4,b4]@6 ~@2 [g4,b4] ~ [g4,b4] ~ [a4,c5] ~@3 [f4,g4,a4,b4] ~]/2", // G Am G Am G7
  AC: "[f#4,a4]@2 ~@2 [f#4,a4] ~ [g4,b4] ~@3 [f#4,a4]@4 ~@2, ~@10 g#4 ~@5", // F#m G F#m
  AD: "[[g4,b4]@3 ~ [g4,b4] ~ [g4,b4]@2 ~@2 [g4,b4] ~ [g4,c5] ~ b4@8 g4@2 ~@4 g4@2 ~@2, ~@14 g4@5 ~@5 d5@7 ~, ~@26 b4@5 ~]/2", // G C5
  AE: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5] ~@3 [a4,c5]@5 ~", AF: "[f#4,a4]@3 ~ [f#4,a4] ~ [g4,b4] ~@3 [a4,c5]@4 ~@2",
  AG: "[g4,b4]@3 ~ [g4,b4] ~ [g4,b4] ~@3 [g4,c5]@3 ~ [g4,b4] ~", // G C5 G
  AH: "b4@6 ~@6 b4@2 g4 ~, g4@3 ~@3 g4@5 ~@5, ~@8 d5@7 ~",
  AI: "[~@4 [a4,c5] ~@3 [a4,c5] ~ [g4,b4] ~@3 [f#4,a4]@7 ~ a4@6 f#4@2 a4 ~, ~@22 f#4@3 ~@7]/2", // Am G F#m
  AJ: "[d4@4 g4@2 ~@4 g4@2 ~@4 d4@3 ~ d4@4 ~@4 d4@2 ~@2, ~@6 b4@8 g4@7 ~@5 g4@5 ~, ~@12 d4@4 b4@15 ~]/2",
  AK: "[a4,c5]@2 ~@2 [a4,c5] ~ [b4,d5] ~@3 [c5,e5]@2 ~@4", // Am Bm C
  AL: "[f#4,a4]@3 ~ [f#4,a4] ~ b4@2 ~@2 [a4,c5]@4 ~@2, ~@6 g4 ~@9", // F#m Am
  AM: "[[g4,b4]@3 ~ [g4,b4] ~ [g4,b4]@2 ~@2 [g4,b4] ~ [a4,b4,c5] ~ [g4,b4]@6 ~@2 [g4,b4]@4 g4@2 ~@2 b4 ~, ~@7 d5]/2", // G Am G
  AN: "~@2 [a4,c5] ~@3 [a4,c5] ~ [b4,d5] ~ a4@3 ~@3, ~@10 c5 ~@5", // Am Bm
  AO: "[f#4,a4]@3 ~ [f#4,a4] ~ [g4,b4] ~@3 [a4,c5]@5 ~", AP: "[g4,b4]@4 ~@2 [g4,b4]@3 ~ [g4,b4] ~ [g4,c5]@3 ~",
  AQ: "[g4,b4]@3 [g4,b4]@4 ~", AR: "[f#4,a4]@3 ~ [f#4,a4] ~ [g4,b4] ~@3 [a4,c5]@3 ~ [g4,b4] ~",
  AS: "[[g4,b4]@5 ~ [g4,b4] ~@3 [g4,b4] ~ [a4,c5] ~ [g4,b4]@7 ~ b4@4 g4@2 d5@2 b4 ~, ~@11 g4 ~@4]/2", // G Am G
  AT: "[a4,c5]@3 ~ [a4,c5] ~ [a4,d5] ~@3 [a4,c5]@4 ~@2", AU: "[f#4,a4]@5 ~ [f#4,a4]@8 ~@2",
  AV: "~@2 [d4,g4]@2 ~@2 [d4,g4] ~ [g4,b4]@3 ~ g4@2 b4 ~, ~@12 c5 ~@3", // G5 G
  AW: "[g4,b4]@5 ~ b4@4 g4 ~ [g4,b4] ~@3, ~@3 g4 ~@4", AX: "[a4,c5] ~@3 [a4,c5] ~ [b4,d5] ~@3 [c5,e5]@2 ~@4",
  AY: "[g4,b4]@4 ~@2 [g4,b4]@4 g4@2 d5@2 [g4,b4] ~", AZ: "[g4,b4]@4 ~@2 [g4,b4]@3 ~ [g4,b4] ~ [g4,d5] ~@3",
  BA: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5] ~@3 [c5,e5]@4 ~@2", BB: "[g4,b4]@4 ~@2 [g4,b4]@3 ~ [g4,b4] ~@3 [g4,b4] ~",
  BC: "~@2 [g4,b4] ~@3 [g4,b4] ~ [g4,b4]@7 ~", BD: "c5@6 a4@2 ~@2 c5@2 a4@3 ~, a4@4 ~@4 e5@7 ~",
  BE: "~@2 a4 ~@3 f#4 ~, ~ f#4@2 d5@4 ~, ~@5 a4@2 ~", BF: "~ d4 g4 d4 ~ g4 d4 g4, ~@8 b4@5 ~@3", BG: "d4 ~@7, g4 ~@15",
  BH: "[a4,c5]@3 ~ [a4,c5] ~ [b4,d5] ~@3 c5@2 ~@4, ~@10 e5 ~@5", // Am Bm
  BI: "[[g4,b4]@3 ~ [g4,b4] ~ [g4,b4] ~@3 [a4,c5] ~@3 b4@8 g4 ~ d5@4 b4@2 g4 ~, ~@14 g4@6 ~@4 g4@3 ~@5]/2", // G Am
  BJ: "[a4,c5]@2 ~@2 [a4,c5] ~ [b4,d5] ~@3 [c5,e5] ~@5", // Am Bm C
  BK: "[[g4,b4]@3 ~ [g4,b4] ~ [g4,b4]@2 ~@2 [g4,b4] ~ [a4,c5] ~ [g4,b4]@6 ~@2 g4@4 ~@2 g4@3 ~, ~@22 b4@9 ~]/2", // G Am G
  BL: "b4@6 g4@2 ~@2 b4@2 g4@3 ~, g4@4 ~@4 d5@7 ~", BM: "[g4,b4]@4 ~@2 [g4,b4]@2 ~@2 [g4,b4] ~ [a4,c5] ~ [g4,b4] ~",
  BN: "[a4,c5]@4 ~@2 [a4,c5]@2 ~@2 [a4,c5]@5 ~", BO: "[f#4,a4]@3 ~ [f#4,a4] ~@3 [f#4,a4]@5 ~@3",
  BP: "[[g4,b4]@4 ~@2 [g4,b4]@3 ~ [g4,b4] ~ [a4,c5] ~ [g4,b4]@7 ~ [g4,b4]@3 ~ [g4,b4] ~ [a4,c5] ~ [g4,b4] ~]/2", // G Am G Am G
  BQ: "[a4,c5]@2 ~@2 [a4,c5] ~ [a4,c5]@2 ~@2 [a4,c5] ~ g4@2 ~@2, ~@12 b4 ~@3", // Am
  BR: "[f#4,a4]@2 ~ [f#4,a4] ~ [f#4,a4]@2 ~", BS: "~@2 [d4,g4]@2 ~@2 [d4,g4] ~ [d4,g4]@7 ~",
  BT: "[e4,g4]@4 ~@2 g4@4 e4 ~ [e4,g4]@2 ~@2, ~@3 e4 ~@4", // Em
  BU: "[a4,c5]@2 ~@2 [a4,c5] ~ [a4,c5]@2 ~@2 [a4,c5] ~ [b4,d5] ~@3", // Am Bm
  BV: "[f#4,a4]@4 ~@2 a4@6 f#4@2 a4 ~, ~@3 f#4@2 ~@3", // F#m
  BW: "[[g4,b4]@5 ~ [g4,b4]@2 ~@2 [g4,b4] ~ [a4,c5] ~ b4@8 g4@2 ~@2 [g4,b4]@3 ~ [g4,b4] ~, ~@14 g4@6 ~@2 b4 ~@9]/2", // G Am G
  BX: "[a4,c5]@4 ~@2 [a4,c5] ~ [a4,c5] ~ [a4,c5]@2 ~@2 [a4,c5] ~", // Am
  BY: "~@2 [f#4,a4]@2 ~@2 [f#4,a4] ~ [g4,b4]@3 ~ [a4,c5]@2 ~@2", // F#m G Am
  BZ: "[[g4,b4]@4 ~@2 [g4,b4] ~ [g4,b4]@3 ~ [a4,c5] ~ [g4,b4]@8 ~@2 [g4,b4] ~ [a4,c5] ~@3 [g4,a4,b4] ~]/2", // G Am G Am G
  CA: "[a4,c5] ~ [a4,c5]@2 ~@2 [a4,c5] ~ [a4,c5] ~ [a4,c5]@2 ~@2 [a4,c5] ~", // Am
  CB: "~@2 [f#4,a4]@2 ~@2 [f#4,a4] ~ [g4,b4]@3 ~ [g4,c5]@2 ~@2", // F#m G C5
  CC: "[[g4,b4]@5 ~ [g4,b4] ~ [g4,b4] ~ [g4,c5]@3 ~ [g4,b4]@7 ~ g4@2 ~@2 b4@2 g4@3 ~, ~@24 d5@7 ~]/2", // G C5 G
  CD: "[[a4,c5]@5 ~ [a4,c5] ~ [a4,c5] ~ [g4,b4] ~@3 [f#4,a4]@6 ~@2 [f#4,a4] ~ [f#4,a4]@6 ~@2]/2", // Am G F#m
  CE: "~@2 [d4,g4]@3 ~ [d4,g4] ~@5 d4@2 ~@2, ~@8 b4@7 ~, ~@10 g4@5 ~", CF: "d4 ~@5 g4@4 e4@2 [e4,g4,b4] ~@3, b4@3 ~",
  CG: "~@2 [a4,c5] ~@3 [a4,c5] ~ [b4,d5]@2 ~@2 [c5,e5]@2 ~@2", // Am Bm C
  CH: "~@2 [f#4,a4]@2 ~@2 [f#4,a4] ~ [g4,b4] ~ [a4,c5]@5 ~", // F#m G Am
  CI: "[[g4,b4]@5 ~ [g4,b4] ~ [g4,b4] ~ [a4,c5] ~@3 [g4,b4]@7 ~ [g4,b4] ~ [g4,b4] ~ [a4,c5] ~@3 [g4,b4] ~]/2", // G Am G Am G
  CJ: "[[a4,c5]@4 ~@2 [a4,c5] ~ [a4,c5] ~ [g4,b4] ~@3 [f#4,a4]@6 ~@2 [f#4,a4] ~ a4@4 f#4@2 a4 ~, ~@12 f#4 ~@3]/2", // Am G F#m
  CK: "~@4 [g4,b4] ~@5 d4@2 g4@2 d4 ~", CL: "[d4,g4,b4]@11 ~@5",
})).s("gm_epiano1").gain(0.19).pan(0.7)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D A E F G H I J K H L M N O B P Q A R P D A S T K A U P V W X Y Z A B AA D A E F Q AB B AC V W AD AE AF W U P
  V AG AH AI AJ A AK P V W AL F V A AM T V O E F V A AH AN AO H B J D A U AA V A U AC AP W AL T K W AL AC V A U P V AQ U
  AA Q A AM F G A AH AC V A E P AR H U AS AT
>`.pickRestart({
  A: "a2@4 ~@2 a2 ~ a2@4 ~@4", B: "d2@4 ~@2 d2 ~ d2@5 ~@3", C: "g2@4 ~@2 g2 ~ g2@3 ~ f#2@4", D: "e2@4 ~@2 e2 ~ e2@7 ~",
  E: "d2@4 ~@2 d2 ~ d2@4 ~@4", F: "g2@4 ~@2 g2 ~ g2@4 f#2@3 ~", G: "e2@5 ~ e2 ~ e2@4 ~@4", H: "a2@4 ~@2 a2 ~ a2@5 ~@3",
  I: "d2@4 ~@2 d2 ~ d2@7 ~", J: "g2@5 ~ g2 ~ g2@3 ~ f#2@3 ~", K: "e2@4 ~@2 e2 ~ e2@5 ~@3",
  L: "d2@4 ~@2 d2 ~ e2@3 ~ f#2@3 ~", M: "g2@5 ~ g2 ~ g2@5 ~@3", N: "g2@4 ~@2 g2@3 ~ g2@2 d2@3 ~",
  O: "a2@5 ~ a2 ~ a2@5 ~@3", P: "g2@4 ~@2 g2 ~ g2@4 f#2@4", Q: "e2@5 ~ e2 ~ e2@5 ~@3", R: "d2@4 ~@2 d2 ~ d2@4 ~@2 d2 ~",
  S: "d2@4 ~@2 d2 ~ d2@3 ~ e2@4", T: "g2@5 ~ g2 ~ g2@4 f#2@3 ~", U: "d2@4 ~@2 d2 ~ d2@3 ~ e2@3 ~",
  V: "e2@4 ~@2 e2 ~ e2@4 ~@4", W: "a2@4 ~@2 a2 ~ a2@7 ~", X: "d2@5 ~ d2 ~ d2@4 f#2@3 ~", Y: "g2@4 ~@2 g2 ~ g2@3 ~ d2@4",
  Z: "g1@5 ~@11", AA: "g2@5 ~ g2 ~ g2@3 ~ f#2@4", AB: "a2@4 ~@2 a2 ~ a2@8", AC: "g2@5 ~ g2 ~ g2@4 f#2@4",
  AD: "d2@4 ~@2 d2 ~ d2@4 e2@3 ~", AE: "g2@5 ~ g2 ~ g2@4 d2@3 ~", AF: "g2@4 ~@2 g2@2 a2@2 g2@3 ~ g2 ~",
  AG: "a2@5 ~ a2 ~ a2@8", AH: "d2@5 ~ d2 ~ d2@4 e2@3 ~", AI: "g2@4 ~@2 g2 ~ g2@5 ~ d2@2",
  AJ: "g2@4 ~@2 g2@2 a2@3 ~ g2@3 ~", AK: "d2@5 ~ d2 ~ e2@3 ~ f#2@3 ~", AL: "d2@5 ~ d2 ~ d2@4 ~@4",
  AM: "d2@5 ~ d2 ~ d2@5 ~@3", AN: "g2@5 ~ g2@3 ~ g2 ~ d2@4", AO: "g1 ~@3", AP: "e2@4 ~@2 e2 ~ e2@8",
  AQ: "a2@5 ~ a2 ~ a2@4 ~@4", AR: "e2@5 ~ e2 ~ e2@7 ~", AS: "g2@5 ~ d2@3 ~ d2 ~ b1@3 ~", AT: "g1@11 ~@5",
})).s("gm_fretless_bass").gain(0.28)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A B C D A B C D A B C D A B E@2 A B C D A B C D A B C D A B C D A B C F G@2 C D A B H D A B C D I B J@2 A B C D A B
  K@2 A L C D A B C D A B C D A B C D A B M@2 A B C D A B C D A B C D A B C D A B H D A B C D A B H D A B C D A B C N A
  B H D A B O@2
>`.pickRestart({
  A: "[e4,a4,c5]@15 ~", B: "[d4,f#4,a4]@15 ~", C: "[d4,g4,b4]@15 ~", D: "[e4,g4,b4]@15 ~",
  E: "[~@24 f4@7 ~, [d4,g4,b4]@31 ~]/2", F: "[d4,g4,b4]@3 ~@13", G: "[[e4,a4,c5]@13 ~ [d4,f#4,a4]@17 ~]/2",
  H: "[d4,g4,b4]", I: "[e4,a4,c5]", J: "[[d4,g4,b4]@31 ~]/2", K: "[~@16 f4@15 ~, [d4,g4,b4]@31 ~]/2", L: "[d4,f#4,a4]",
  M: "[[d4,g4,b4]@19 ~@13]/2", N: "[e4,g4,b4]", O: "[[d4,g4,b4]@27 ~@5]/2",
})).s("gm_synth_strings_1").gain(0.09)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A@2 B@2 A@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@4 K@2 I@2 L@2 M@2 N O P@2 F@2 Q@2 F@2 R@2 S@2 T U@3 P@2 V@4 H@2 W@2 K@2
  X@5 Y L@2 Z AA@3 AB@2 AC O AD@2 AE@2 AF@2 AG@4 AH@2 AI@2 AJ O AK@2 K@2 AL@2 AM@6 AF@2 AN@2 AO@2 D@2 T AP AJ O AQ AR AJ
  AS@2 AT
>`.pickRestart({
  A: "[a3,a4]/2", B: "[[b3,b4]@31 ~]/2", C: "[b3,b4]/2", D: "[a4,a5]/2", E: "[[g4,g5]@23 [d4,d5]@4 ~ [e4,e5]@4]/2",
  F: "[[a4,a5]@7 [b4,b5]]/2", G: "[[g4,g5]@31 ~]/2", H: "[[a3,a4]@27 ~ [b3,b4]@4]/2", I: "[[g3,g4]@31 ~]/2",
  J: "[[a3,a4]@31 [g3,g4]@24 [d3,d4]@4 ~ [e3,e4]@4]/4", K: "[[a3,a4]@7 [b3,b4]]/2", L: "[[a3,a4]@31 ~]/2",
  M: "[[g3,g4]@21 ~@3 [b4,b5]@4 [d5,d6]@4]/2", N: "[c5,c6]@11 ~ [b4,b5]@4", O: "[a4,a5]", P: "[[g4,g5]@9 ~@7]/2",
  Q: "[[g4,g5]@23 ~ [d4,d5]@4 [e4,e5]@4]/2", R: "[g4,g5]/2", S: "[[a4,a5]@31 ~]/2", T: "[b4,b5]@3 [c5,c6]",
  U: "[[b4,b5]@15 [c5,c6]@12 [e5,e6]@4 [d5,d6]@8 ~ [b4,b5]@4 [a4,a5]@4]/3", // B C E D B A
  V: "[[a3,a4]@31 [g3,g4]@27 ~ [b3,b4]@4 ~]/4", W: "[[g3,g4]@15 ~]/2",
  X: "[[g3,g4]@31 [a4,a5]@26 ~ [g4,g5]@2 [f#4,f#5]@2 [g4,g5]@12 ~@6]/5", Y: "~@2 [g3,g4] [b3,b4]",
  Z: "[b3,b4]@3 [c4,c5]", AA: "[[b3,b4]@12 [g3,g4]@3 ~ a4@32, ~@15 a3@32 ~]/3",
  AB: "[[b3,b4]@11 ~ [b4,b5]@2 [d5,d6]@2]/2", AC: "[c5,c6]@11 [b4,b5]@4 ~", AD: "[[g4,g5]@19 ~@13]/2",
  AE: "[[a4,a5]@27 ~ [b4,b5]@4]/2", AF: "[[g4,g5]@6 [d4,d5] [e4,e5]]/2", AG: "[[a4,a5]@31 [g4,g5]@32 ~]/4",
  AH: "[[c5,c6]@7 [d5,d6]]/2", AI: "[[b4,b5]@7 [d5,d6]]/2", AJ: "[c5,c6]@3 [b4,b5]",
  AK: "[[g4,g5]@23 ~ [d3,d4]@4 [e3,e4]@4]/2", AL: "[[g3,g4]@27 ~ [b3,b4]@4]/2",
  AM: "[[a3,a4]@31 [g3,g4]@32 [a4,a5]@28 ~ [b4,b5]@4]/6", AN: "[[a4,a5]@6 [d5,d6] [b4,b5]]/2",
  AO: "[[g4,g5]@20 [b4,b5]@4 [a4,a5]@3 [g4,g5]@4 ~]/2", AP: "[b4,b5]", AQ: "[g4,g5]@3 [f#4,f#5]",
  AR: "[g4,g5] [a4,a5] [b4,b5] [d5,d6]", AS: "[[a4,a5]@15 [g4,g5]@10 [d4,d5]@3 [e4,e5]@4]/2", AT: "[g4,g5]@9 ~@7",
})).s("gm_string_ensemble_1").gain(0.16).pan(0.4)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@3 A@2 ~@2 B@2 ~@2 A@2 ~@26 A@2 ~@2 B@2 ~@2 A@2 ~@34 C@2 ~@2 D@2 ~@2 E@2 ~@2 F@2 ~@2 B@2 ~@2 B@2 ~@2 G@2 ~@2 H@2 ~@2
  I@2 ~@2 J@2 ~@2 K L
>`.pickRestart({
  A: "[~@4 g3@2 a3@2 g3@2 f#3 ~@3 e3@9 ~@9]/2", B: "[~@4 g3@2 a3@2 g3@2 f#3 ~@3 e3@8 ~@10]/2",
  C: "[~@4 g3@2 a3@2 g3@2 f#3 ~@3 e3@7 ~@11]/2", D: "[~@2 g3 a3 g3 f#3 ~ e3@4 ~@5]/2",
  E: "[~@4 g3@2 a3@2 g3@2 f#3@3 ~ e3@7 ~@11]/2", F: "[~@4 g3@2 a3@2 g3@2 f#3 ~@3 g3@8 ~@10]/2",
  G: "[~@4 g3 ~ a3@2 g3 ~ f#3 ~@3 g3@10 ~@8]/2", H: "[~@4 g3 ~ a3@2 g3 ~ f#3 ~@3 e3@8 ~@10]/2",
  I: "[~@4 g3@2 a3@2 g3@2 f#3 ~@3 e3@10 ~@8]/2", J: "[~@4 g3@2 a3@2 g3 ~ f#3 ~@3 g3@9 ~@9]/2",
  K: "~@4 g3 ~ a3@2 g3@2 f#3@5 ~", L: "g3",
})).s("gm_electric_guitar_jazz").gain(0.31).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@52 A B C D@2 E F G H ~@64>".pickRestart({
  A: "~@8 [g4,b4]@2 ~ [a4,c5]@2 [b4,d5]@2 ~", B: "[c5,e5]@5 ~ [c5,e5] ~ [c5,e5]@2 ~ [b4,d5]@2 ~ [b4,d5]@2",
  C: "[b4,d5]@2 ~ [a4,c5]@2 ~ [a4,c5] ~ [a4,c5]@3 ~ [g4,b4]@2 [a4,c5]@2", // Bm Am G Am
  D: "[[b4,d5]@4 ~@2 [c5,e5] ~ [b4,d5] ~ [a4,c5]@2 ~@2 [g4,b4]@10 ~@2 [a4,c5]@2 ~ [b4,d5]@2 ~]/2", // Bm C Bm Am G Am Bm
  E: "[c5,e5]@5 ~ [c5,e5] ~ [c5,e5]@2 ~ [b4,d5]@2 ~ [b4,d5] ~", // C Bm
  F: "[b4,d5] ~@2 [a4,c5]@2 ~ [a4,c5] ~ [a4,c5]@3 ~ [g4,b4] ~ [a4,c5]@2", // Bm Am G Am
  G: "[b4,d5]@5 ~ [b4,e5] ~ [b4,d5]@4 [b4,e5]@3 ~", H: "[d5,g5]@9 ~@7",
})).s("gm_overdriven_guitar").gain(0.27)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E B C D E B C D E B C F E B C D E B C D E B C D E B C D E B G H A B C D E B C D E B C D E B C I E B C D E B
  J F E B C D E B C D E B C D E B C D E B K H A B C D E B C D E B C D E B C D E B C D A B C D E B C D E B C D E B C D E
  B C D E B F L
>`.pickRestart({
  A: "[e3,a3,c4,e4]@4 [e3,a3,c4,e4] ~ [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4] ~", // Am
  B: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~ [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] ~", // D
  C: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~", // G
  D: "[e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4] ~ [e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4] ~", // Em
  E: "[e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4] ~ [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@2 [e3,a3,c4,e4] ~", // Am
  F: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4] ~", // G
  G: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 ~@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4] ~", // G
  H: "[d3,g3,b3,g4]@3 ~@13", // G
  I: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 ~@2 [d3,g3,b3,g4]@2 ~@2 [d3,g3,b3,g4] ~", // G
  J: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4] ~", // G
  K: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@3 ~ [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4] ~", // G
  L: "[d3,g3,b3]@3 ~, g4", // G
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!16 [x ~@2 x!2 ~@3]!19 x [x ~@2 x!2 ~@3]!43 x [x ~@2 x!2 ~@3]!43 x>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~ A@7 B A@7 C A@19 ~ A@43 ~ A@43 ~>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~ x ~@2",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~ A@7 B A@7 C D A@18 E A@43 E A@43 ~>".pickRestart({
  A: "x!8", B: "x!6 ~ x", C: "x!4 ~@4", D: "~ x!7", E: "~@5 x ~@2",
})).gain(0.15)

// … 15 more lines

More by Quatro