Strudelify
Let's Dance cover art

One Way Wind

Let's Dance

Cats

KeyA majorTempo134 bpm
0:00/0:00
// Let's Dance — Cats
// 134 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(134/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D A E F G F H I J K L M L N O P Q R S F H T U V W F X F Y F Z F J F AA F AB A AC T AA A H T AD AE AF AG AH AI A
  AJ M AK M L AL AM A AN A AI AH AO T X AH AP AQ AR AS AT F AU AS D AQ AV AS AT F AW AX AY A AW AZ AT A H BA AT BB AW BC
  AM A BD M BE BF BG
>`.pickRestart({
  A: "a1@5 ~@3 a1 ~ a1@3 ~ e1 ~", B: "d2@5 ~ d2 ~@3 d2@3 ~ d2@2", C: "a1@5 ~ e1@2 a1 ~ a1@2 ~@2 a1 ~",
  D: "e1@4 ~@4 e1 ~ e1@2 ~@2 e1@2", E: "a1 ~ a1@2 ~@2 c#2@3 ~ d2@2 d#2@2 e2 ~", F: "a1@5 ~@3 a1 ~ a1@3 ~ a1 ~",
  G: "a1@5 ~@3 a1 ~ a1@2 ~@2 e1 ~", H: "a1 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1 ~", I: "e1@4 ~@4 e1 ~ e1@3 ~ b1@2",
  J: "e1@2 ~ e1 ~ e1 ~ e1", K: "e2@5 ~@3 b1 ~ b1@3 ~ b1 ~", L: "e2 ~ e2@3 ~ e2@2 ~@2 e2@2 ~@2 b1 ~",
  M: "e2@5 ~@3 e2 ~ e2@2 ~@2 b1 ~", N: "e2@8 e1 ~ e1@3 ~ e1 ~", O: "e2@3 ~@3 e2@2 ~@2 e2@3 ~ e1@2",
  P: "a1@5 ~@3 a1 ~ a1 ~@3 e1 ~", Q: "a1@5 ~ a1@3 ~ c#2@2 d2@2 e2@2", R: "a1@5 ~@3 a1 ~ a1@3 ~ e1@2",
  S: "a1 ~ a1@2 ~@2 a1@2 ~@2 a1@3 ~ e1@2", T: "d2@5 ~@3 d2 ~ d2@2 ~@2 a1 ~", U: "d2 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@2",
  V: "a1@4 ~@2 e1@2 a1 ~ a1@3 ~ a1 ~", W: "e1@2 ~ e1 ~ e1 f#1 e1", X: "d2 ~ d2@2 ~@2 d2@2 ~@2 f#2@2 g2@2 a2@2",
  Y: "e1@4 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~", Z: "e1 ~ e1@2 ~@2 e1@2 ~@2 e1@3 ~ e1@2",
  AA: "d2 ~ d2@2 ~@2 d2@4 f#2@2 g2@2 a2@2", AB: "e1@2 ~ e1 ~ e1 e2 e1", AC: "a1 ~ a1@3 ~ c#2@3 ~ d2@4 e2@2",
  AD: "d2@5 ~@3 d2 ~ d2@2 ~@2 d2 ~", AE: "e2@3 ~@13", AF: "e1 ~ e1 ~", AG: "e1@4 e2@4 e1@4 e2@3 ~",
  AH: "a1@5 ~@3 a1 ~ a1@3 ~@3", AI: "a1 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 e1 ~", AJ: "a1 ~ a1@3 ~ a1@2 ~@2 c#2@2 ~@2 d2@2",
  AK: "e2@5 ~ e2 ~@3 e2@2 ~@2 b1 ~", AL: "e2@7 ~ e1 ~ e1@3 ~@3", AM: "e1 ~ e1@2 ~@2 e1@2 ~@2 e1@3 ~ g#1 ~",
  AN: "a1 ~ a1@3 ~ a1@2 ~@2 c#2@2 d2@2 e2@2", AO: "a1 ~ a1@3 ~ a1@2 ~@2 a1@3 ~ c#2@2",
  AP: "e1 ~ e1@2 ~@2 e1 ~ e1 ~ e1@2 ~@2 e1 ~", AQ: "a1@5 ~@3 a1 ~ a1@5 ~", AR: "d2 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2 ~",
  AS: "a1@5 ~ e1 ~ a1 ~ a1@3 ~ a1 ~", AT: "e1 ~ e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~", AU: "e1 ~ e1@4 e2@3 ~ e1@4 e2@2",
  AV: "d2 ~ d2@2 ~@2 d2 ~@3 d2@4 e2@2", AW: "a1 ~ a1@3 ~ c#2@3 ~ d2@3 ~ d#2 ~", AX: "e2@5 ~ e2 ~ e2 ~ e2@3 ~ e2 ~",
  AY: "e2 ~ e2@2 ~@2 e2 ~@3 e2@4 e1@2", AZ: "e2@4 ~@2 e2 ~ e2 ~ e2@2 ~@2 b1 ~", BA: "e1@4 ~@4 e1 ~ e1@2 ~@4",
  BB: "a1@9 ~ a1@2 ~@2 e1 ~", BC: "e2@5 ~@3 e2 ~ e2@3 ~ b1@2", BD: "a1 ~ a1@2 ~@2 a1 ~@3 a1@3 ~ c#2@2",
  BE: "e2 ~ e2@3 ~ e1@2 ~@2 e1@2 ~@2 e1 ~", BF: "a1@2 ~@3 d2@3", BG: "a1 ~@3",
})).s("gm_electric_bass_finger").gain(0.54)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<A B C D E F ~@13 G@2 ~@2 H I ~@16 H J ~@60 K L>".pickRestart({
  A: "[c#4,e4]@3 ~ [b3,c#4,d#4,e4] ~ [c#4,e4]@5 ~ [b3,c#4,e4]@2 a3 ~, b3 ~@15", B: "b3 a3@6 ~, d4@15 ~, a3 ~@15",
  C: "[c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~ [b3,e4]@2 a3 ~, [b3,d#4] ~@3 b3 ~@11", // C#m E5 B
  D: "[b3,c#4,e4] ~ b3@7 ~ b3@2 c#4@2 e4 ~, ~@2 e4@11 ~@3", // C#m7
  E: "~@4 b3 c#4@2 ~ [c#4,e4]@3 ~ [b3,e4]@2 a3 ~, ~@4 e4@3 ~ b3 ~@7", F: "~ a4@7, b3@11 ~@5, ~ c#4@15",
  G: "[~@6 [f#4,a4]@4 e4 ~ b3@2 ~@2 a3@12 ~@4, ~@6 e4 ~@5 e4@17 ~@3, ~@14 c#4@15 ~@3]/2", // F#m
  H: "~@4 f#4@4 e4@2 ~@2 [c#4,e4]@2 b3 a3, ~@2 a4@3 ~@3, ~@4 e4 ~@7 b3 ~@3", I: "b3@2 a3@11 ~@3, d4@13 ~@3",
  J: "b3@2 a3@11 ~@3, d4@13 ~@3, a3 ~@15", K: "~@6 [a3,c#4] [b3,d4] [c#4,e4] ~ [d4,f#4]@4 ~@2", L: "[a3,c#4,a4]@13 ~@3",
})).s("gm_overdriven_guitar").gain(0.39).pan(0.3)

// chords · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note(`<
  A B C@8 D@2 E@6 F@6 G@2 H@4 I@7 J K L@3 G@2 M@2 G@2 N ~@14 O@4 G@2 P@3 B K Q R@2 K S@2 B R@2 T@2 U@2 T@2 U@2 T@2 U@2
  T@2 U@2 T@2 U@2 V@2
>`.pickRestart({
  A: "[e3,a3,c#4]", B: "[f#3,a3,d4]@15 ~", C: "[[a3,c#4]@15 ~ [g#3,b3]@14 ~@2 [a3,c#4]@94 ~@2, e3]/8",
  D: "[[g#3,b3,d4]@15 ~]/2", E: "[[g#3,b3,e4]@95 ~]/6", F: "[[e3,a3,c#4]@47 ~]/6", G: "[[f#3,a3,d4]@15 ~]/2",
  H: "[[a3,c#4]@15 ~ b3@16 c#4@15 ~ [f#3,d4]@15 ~, e3@47 ~@17, ~@16 g#3@14 ~@2 a3@31 ~]/4", // A D
  I: "[[a3,c#4]@15 ~ b3@16 [a3,c#4]@14 ~@2 [g#3,e4]@15 ~ [a3,c#4]@15 ~ b3@16 [a3,c#4]@15 ~, e3@55 ~, ~@16 g#3@14 ~@17 b3@16 ~@17 g#3@14 ~@18]/7", // A C#m A
  J: "[f#3,a3,d4]@7 ~, d#4 ~@15", K: "[e3,a3,c#4]@15 ~",
  L: "[[g#3,b3]@15 ~ a3@23 ~ g3@6 ~@2, e3@23 ~, ~@16 c#4@31 ~]/3", M: "[a3@23 ~ g3@6 ~@2, [e3,c#4]@31 ~]/2",
  N: "[g#3,b3,e4]@3 ~@5", O: "[[e3,a3,c#4]@63 ~]/4", P: "[[a3,c#4]@15 ~ b3@16 [a3,c#4]@15 ~, e3@47 ~, ~@8 g#3@7 ~@9]/3",
  Q: "[e3,g#3,b3]@15 ~", R: "[[a3,c#4]@15 ~ b3@16, e3@15 ~, ~@8 g#3@7 ~]/2",
  S: "[[g#3,b3]@14 ~@2 [a3,c#4]@15 ~, e3@15 ~]/2", T: "[[e3,a3,c#4]@15 ~]/2", U: "[[e3,g#3,b3]@15 ~]/2",
  V: "[e3,a3,c#4]@3 ~@5", // A
})).s("gm_synth_strings_2").gain(0.3)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@26 A B@2 C D@3 ~ E B@2 C F@4 G@2 H I J@2 K ~ L ~@18 E B@2 C M@3 ~ E B@2 C N@4 F@12 O@7 P
>`.pickRestart({
  A: "a5@11 ~ a5 b5 c#6 d6", B: "e6/2", C: "f#6", D: "e6/3", E: "a5@13 b5 c#6 d6", F: "[e6@31 ~]/4",
  G: "[f#6@30 g#6 f#6]/2", H: "e6", I: "f#6 e6@15", J: "f#6/2", K: "e6@3 ~@13",
  L: "[e4,g#4,e5] ~@3 [e4,g#4,e5] ~@3 [e4,e5]@2 ~@2 [e4,g#4,e5]@2 ~@2, ~@8 g#4 ~@7", M: "[e6@43 ~@5]/3",
  N: "[e6@55 ~@9]/4", O: "[e6@101 ~@11]/7", P: "[c#6,a6] ~@3",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A B C D@3 E A@2 C F G H I@2 J K L@2 A M A N@2 O@2 P Q M R A S@2 T U V@2 R W X@2 Y Z@4 AA AB AC AD AE@5 AF AG AH AI@3
  AJ@8 AK@4 AL@3 AM@2 AN@2 AO AP@5 AQ@7 AR@8 AS@3 AT
>`.pickRestart({
  A: "~@4 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@2", // A
  B: "~@4 [a2,f#3,a3,d4,f#4]@4 ~@2 [a2,f#3,a3,d4,f#4]@3 ~ [a2,f#3,a3,d4,f#4]@2, ~@14 c#4 ~", // D
  C: "~@4 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@2", // A
  D: "[~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,g#3,b3,e4]@2 ~@4 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@5 ~@3 [a2,e3,a3,c#4,e4]@4, ~@7 e3@2 ~@15]/3", // E A
  E: "~@2 [a2,e3,a3,c#4,e4]@2 ~ [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4]", // A
  F: "~@2 e3 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@2", // E
  G: "~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@2", // E
  H: "~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ e2 ~ [e2,b2,e3,g#3,b3,e4]@4", // E
  I: "[~@4 [e2,b2,e3,g#3,b3,e4]@4 ~@2 [e2,b2,e3,g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@4 ~@2 b3 ~ b2@2 b2@2, ~@14 [e2,b2,e3]@3 ~@11 [e2,e3,g#3,b3,e4]@4]/2", // E E5 E
  J: "~@4 [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@2", // E
  K: "~@4 [e2,b2,e3,g#3,b3,e4]@5 ~@3 [g#3,e4] ~ [g#3,e4] ~, ~@3 [e2,b2,e3], ~@6 b3 ~", // E C#m E5
  L: "[~@4 [b2,g#3,b3,e4] ~ [g#3,b3,e4] ~ b2 ~ [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,g#3,b3,e4]@2 ~@4 [a2,e3,a3,c#4,e4]@5 ~ [a2,c#4,e4] ~ [a2,e3,a3,c#4,e4]@4, ~@2 [e2,e3]@2 ~@3 e3@2 ~@7]/2", // E A E
  M: "~@4 [a2,e3,a3,c#4,e4]@5 ~@3 [a2,e3,a3,c#4,e4]@4", // A
  N: "[~@4 [e3,a3,c#4,e4]@6 ~@2 [a2,e3,a3,c#4,e4]@7 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,g3,c#4,e4]@2 ~@2 [a2,e3,g3,c#4,e4]@2, ~ a2 ~@6]/2", // A A7
  O: "[~@4 [a2,d3,a3,d4,f#4]@4 ~@2 a2 ~ [a2,d3,f#4]@7 ~ [a2,d3,a3,d4,f#4]@4 ~@2 [a2,d3,a3,d4,f#4]@3 ~ [a2,d3,a3,d4,f#4]@2, ~@12 [a3,d4]@5 ~@15]/2", // D D5
  P: "~@4 [a3,c#4,e4]@5 ~@3 [a2,e3,a3,c#4,e4]@4, ~@4 [a2,e3]@7 ~@5", // A A5
  Q: "~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,g#3,b3,e4]@2 ~@2 [e2,e3,g#3,b3,e4]@2", // E
  R: "~@4 [a2,f#3,a3,d4,f#4]@4 ~@2 [a2,f#3,a3,d4,f#4]@3 ~ [a2,f#3,a3,d4,f#4]@2", // D
  S: "[~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ e2 ~ [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,g#3,b3,e4]@2 ~@4 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@2, ~@7 e3@2 ~@7]/2", // E A
  T: "~@2 [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@2", // E
  U: "~@4 [a2,e3,a3,c#4,e4]@5 ~ a2 ~ [a2,e3,a3,c#4,e4]@4", // A
  V: "[~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,g#3,b3,e4]@2 ~@4 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3] ~ [a2,e3,c#4,e4] ~ [a2,e3,c#4,e4]@2, ~@7 e3@2 ~@5 a3@2]/2", // E A A5 A
  W: "~@4 [a2,e3,a3,c#4,e4]@5 ~ e3 ~ [a2,e3,a3,c#4,e4]@4", // A
  X: "[~@4 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,g#3,b3,e4]@3 ~@3 [a2,e3,a3,c#4,e4]@5 ~@3 [a2,e3,a3,c#4,e4]@4, ~@14 e3@5 ~@13, ~@14 f2 ~@17]/2", // E A
  Y: "~@4 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,g3,a3,c#4,e4]@3 ~ [a2,e3,g3,a3,c#4,e4]@2", // A A7
  Z: "[~@4 [a3,d4,f#4]@7 ~ [a2,d3,a3,d4,f#4]@7 ~ [a2,d3,a3,d4,f#4]@5 ~ [a2,d3,a3,d4,f#4]@3 ~ [a2,d3,d4,f#4]@3 ~ e3 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@2, ~@4 [a2,d3,f#3]@5 ~@21 a3@4 ~@30]/4", // D A D
  AA: "~@4 [d3,a3,d4,f#4]@5 ~@3 [d3,a3,d4,f#4]@4, ~@6 a2 ~", // D
  AB: "~@4 [d3,a3,d4,f#4]@4 ~@2 [d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4] ~, ~@10 f4 ~@5", AC: "[e3,g#3,b3,e4] ~",
  AD: "[e2,b2,e3,g#3,b3,e4]@5 ~@3", // E
  AE: "[[e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,e3,g#3,b3,e4] ~ [g#3,b3,e4] ~ [a2,b2,a3,c#4,e4] ~ a2 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@2, ~@7 e3@2 ~@31]/5", // E A
  AF: "~@4 [e2,b2,e3,g#3,b3,e4]@4 ~@2 [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4] ~", // E
  AG: "[e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4] ~", // E
  AH: "[e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@2", // E
  AI: "[[g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@4 ~@2 [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,g#3,b3,e4]@2 ~@4 [e2,b2,e3,g#3,b3,e4]@4 ~@2 [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@2, ~@15 e3@2 ~@7]/3", // E
  AJ: "[~@4 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [e3,e4]@2 ~@4 [d3,f#3,a3,d4,f#4]@4 ~@2 [a2,d3,a3,d4,f#4]@3 ~ [a2,d3,a3,d4,f#4]@4 ~@2 [a2,d3,a3,d4,f#4]@4 ~@2 [a2,d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4]@2, ~@36 [a2,e3]@4 ~@54 a2@10 ~@2 g#2 ~@19 a2 ~, ~@94 a3@5 ~@29, ~@94 c#4 ~@33]/8", // A E D A5
  AK: "[[a2,e3]@3 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [a3,c#4]@2 ~@4 [e2,b2,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 ~@4 [a2,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@3 ~ [e3,a3,c#4,e4] ~ f#3@3 ~ [d3,f#3,a3,d4,f#4]@4 ~@2 [a2,d3,a3,d4,f#4]@3 ~ [a2,d3,a3,d4,f#4]@2, ~@14 e3@9 ~@3 e2@4 e3@10 ~@24, ~@14 e4 ~@15 b2 ~@15 a2@10 ~@8]/4", // A5 A E A D
  AL: "[~@4 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a3,e4] ~ [b2,g#3,b3,e4] ~ [b2,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,b3,e4]@4 [b2,g#3,b3,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ e3@2, ~@14 e3@7 ~@5 g#3@2 ~@2 e3@5 ~@13, ~@16 e2@5 ~@27]/3", // A A5 E E5 E A
  AM: "[[e2,b2,g#3,b3,e4] ~ [e2,b2,e3,b3,e4]@4 g#3 ~ [e2,b2,e3,g#3,b3,e4] ~ [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,g#3,e4] ~ [a3,c#4,e4] ~@3 [a2,e3,a3,c#4,e4]@5 ~ [e3,a3,c#4,e4]@4 a2@2, ~@2 g#3@3 ~@9 e3@5 ~@11 a3 ~, ~@14 b3@2 a2@3 ~@7 a2@2 ~@4]/2", // E E5 E A
  AN: "[~@4 [e3,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@2 ~@2 [b2,g#3,b3,e4] ~ [a3,c#4,e4] ~@3 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@4 a3 ~, ~@4 g#2@3 ~@3 e2@4 e3@4 ~@14, ~@16 a2@3 ~@13]/2", // E A
  AO: "[d3,f#3,a3,d4,f#4] ~@3 [a2,d3,a3,d4,f#4]@4 ~@2 [a2,d3,a3,d4,f#4]@3 ~ [a2,d3,a3,d4,f#4] ~", // D
  AP: "[[a2,e3,a3,c#4,e4] ~@3 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@3 ~ a3 ~ [e2,b2,g#3,b3,e4] ~@3 [e2,b2,e3,g#3,b3,e4]@4 ~@2 [e2,b2,g#3,b3,e4]@4 [b2,g#3,b3,e4] ~ [a2,a3,c#4,e4] ~@3 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 a3 ~@5 [b2,e3,g#3,b3,e4]@3 ~@3 [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@2, ~@14 e3@4 ~@8 e3@2 ~@2 e3@4 ~@28 e3@5 ~@13, ~@64 e2@7 ~@9]/5", // A E A E
  AQ: "[~@4 [b2,e3,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@3 ~ [g#3,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@3 ~ e3@5 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@3 ~ [b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@4 ~@2 [e2,b2,g#3,b3,e4]@4 [g#3,b3,e4]@2 a2@3 ~ [a2,e3,a3,c#4,e4]@3 ~@3 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~@3 [a2,e3,a3,e4]@3 ~ [a2,e3,a3,e4]@2, ~@4 e2@10 e3@5 ~@33 [f2,c3]@3 ~@3 e2@8 ~@46, ~@14 b3@2 ~@30 a3 ~@27 e3@2 ~@2 e3@5 ~@29]/7", // E C#m A E A A5 F5
  AR: "[~@4 [e2,b2,g#3,b3,e4]@4 ~@2 [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@3 ~ [b2,g#3,b3,e4]@3 ~@3 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@4 [b2,g#3,b3,e4]@3 ~@3 [e2,b2,e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [e2,b2,e3,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@3 ~ [b2,g#3,b3,e4]@3 ~@3 [a2,e3,a3,c#4,e4]@2 ~@4 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@2 ~@2 [a2,e3,a3,c#4,e4]@2, e3@4 ~@9 e2@3 ~@16 e2@4 ~@9 e2@3 ~@16, ~@30 e3@5 ~@27 e3@9 ~@23 e3@5 ~@29]/8", // E A E A
  AS: "[~@4 [e2,g#3,b3,e4]@3 ~@3 [e2,b2,e3,g#3,b3,e4]@2 ~@2 [e2,b2,e3,g#3,b3,e4]@5 ~ [b2,e3,g#3,b3,e4]@4 ~@2 [b2,e3,g#3,b3,e4]@3 ~ [b2,g#3,b3,e4] ~ [a2,a3,c#4,e4]@3 ~@7 [a2,d3,f#3,a3,d4,f#4]@5 ~, e3@7 ~@13 e2@10 e3@5 ~@13]/3", // E A D
  AT: "[a2,e3,a3,c#4,e4]@9 ~@7", // A
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.6)

// chords · brass section · "BRASS 1"
const brass_section = note("<~@50 A B@2 C D E@2 F@2 G H I@2 ~@22 J@2 K L J@2 M N J@2 O P H@2 Q@2 R S T U>".pickRestart({
  A: "~@3 e4", B: "[[b4,d5]@6 [a4,c#5] ~ [a4,c#5]@15 ~@3 [b4,d5]@2 ~ [b4,d5]@2 ~]/2",
  C: "[b4,d5]@2 ~ [a4,c#5]@2 ~ [a4,c#5] ~ [a4,c#5]@2 ~ [g#4,b4]@2 ~ [g#4,b4] ~", // Bm A G#m
  D: "[g#4,b4]@3 [a4,c#5]@2 ~ [a4,c#5] ~ [a4,c#5]@3 [g#4,b4]@3 [f#4,a4] ~", // G#m A G#m F#m
  E: "[[g#4,b4] [a4,c#5] [g#4,b4] f#4 [g#4,b4]@23 ~@5, ~@4 a4 ~@27]/2", // G#m A G#m
  F: "[[b4,d5]@3 [a4,c#5]@3 [b4,d5]@2 [a4,c#5]@3 [g#4,b4]@3 [b4,d5]@16 ~@2]/2", // Bm A Bm A G#m Bm
  G: "[b4,d5]@3 [a4,c#5]@2 ~ d5@2 [a4,c#5]@3 [g#4,b4]@3 [a4,c#5]@2, ~@5 b4@2 ~@9", // Bm A G#m A
  H: "[b4,d5]@3 [a4,c#5]@3 [b4,d5]@2 [a4,c#5]@3 [g#4,b4]@3 [a4,c#5]@2", // Bm A Bm A G#m A
  I: "[[b4,d5]@6 [a4,c#5] [g#4,b4] [a4,c#5]@24]/2", J: "[e5@31 ~]/2",
  K: "[c#5,e5]@2 ~ [d5,f#5]@2 [c#5,e5]@2 ~ f#5@2 [c#5,e5]@3 [d5,f#5]@2 ~, ~@7 d5@3 ~@6", // C#m D C#m D
  L: "[c#5,e5] [b4,d5] [a4,c#5]@12 ~@2", // C#m Bm A
  M: "[c#5,e5]@3 [d5,f#5]@2 ~ e5@2 [d5,f#5]@2 ~ [c#5,e5]@2 ~ [d5,f#5] ~, ~@5 c#5@2 ~@9", // C#m D C#m D
  N: "[c#5,e5] [d5,f#5] [c#5,e5] [b4,d5] [a4,c#5]@11 ~", // C#m D C#m Bm A
  O: "[c#5,e5]@3 [d5,f#5]@2 ~ e5@2 [d5,f#5]@3 [c#5,e5]@3 [d5,f#5]@2, ~@5 c#5@2 ~@9", // C#m D C#m D
  P: "[c#5,e5] [d5,f#5] [c#5,e5] [b4,d5] [a4,c#5]@9 ~@3", Q: "[[b4,d5]@6 [a4,c#5] [g#4,b4] [a4,c#5]@16 ~@8]/2",
  R: "[b4,d5]@2 ~ [a4,c#5]@2 ~ [b4,d5]@2 [a4,c#5]@2 ~ [g#4,b4]@3 c#5@2, ~@14 a4 ~", // Bm A Bm A G#m
  S: "[b4,d5]@2 ~ [a4,c#5]@3 [b4,d5]@2 [a4,c#5]@2 ~ [g#4,b4]@3 [a4,c#5] ~", // Bm A Bm A G#m A
  T: "[a4,c#5]@5 ~ [a4,c#5] [b4,d5] [c#5,e5] ~ [d5,f#5]@3 ~@3", U: "[c#5,a5]@9 ~@7",
})).s("gm_brass_section").gain(0.5)

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

// drums · snare
const snare = s("sd").struct(`<
  A@5 B A@27 B A@7 C A@5 D ~ E F A@11 B A@13 D A@7 G A@3 H A@3 I A@3 J A@3 I A@2 K ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~@4 x ~@3 x!3 ~ x!4", D: "~@2 x ~@2 x!3", E: "x!2", F: "x ~@3 x ~@3 x!3 ~@5",
  G: "~@4 x ~@5 x ~ x ~ x!2", H: "~@4 x ~@3 x!3 ~@5", I: "~ x!2 ~ x!2 ~@2", J: "~@4 x!3 ~@9", K: "~@4 x!2 ~@10",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@50 A ~@37 A ~@7 A ~@3 B ~@4>".pickRestart({
  A: "~@15 x", B: "~@7 x",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<A@41 B A@6 C D E A@45 F A@3 G A@2 H C>".pickRestart({
  A: "x!8", B: "x!6 ~@2", C: "x", D: "x!2", E: "x!4", F: "x!6 ~ x", G: "x!4 ~ x ~ x", H: "x ~@4 x ~@2",
})).gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@50 A ~@37 A ~@3 A ~@3 B ~@3 C ~@2 D ~>".pickRestart({
  A: "~@7 x", B: "~@6 x!2", C: "~@5 x!2 ~", D: "~@3 x ~@4",
})).gain(0.72)

// drums · high tom
const high_tom = s("ht").struct("<~@50 A ~@37 A ~@3 B ~@3 C ~@3 D ~@4>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~@3 x", C: "~@4 x!2 ~@2", D: "~@3 x!2 ~@3",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct("<A ~@19 A ~@13 A ~@7 A ~@8 A ~@25 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~ B A>".pickRestart({
  A: "x", B: "x ~@4 x ~@2",
})).gain(0.64)

// drums · cowbell
const cowbell = s("cb").struct("<[x!4]!48 x [x!2] [x!4]!28 [x ~ x!3 ~ x ~] [x!4]!24 x!2>").gain(0.64)

stack(
  bass, overdriven_guitar, synth_strings_2, string_ensemble_1, electric_guitar_clean, brass_section, kick, snare,
  low_tom, hihat, mid_tom, high_tom, crash, cowbell
)

More by Cats