Strudelify

One Way Wind

Cats

KeyE majorTempo108 bpm
0:00/0:00
// One Way Wind — Cats
// 108 bpm, 4/4, key E 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 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): STEEL GTR.
setcpm(108/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.

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D@2 E C D@2 F G H I J K L I M N O M P N Q R S M T M@2 U V M I U W X Y K U W D E C D Z B C D@2 X O L AA AB O AC
  M X AD G M@2 AD AE AF AG M T M I U V M AH U W AI AD AJ U@3 W M AK U AL I M U AM I AK AN AM AK AO
>`.pickRestart({
  A: "e2@4 ~@2 e2 ~ b1@3 ~ e2@3 ~", B: "a1@4 ~@2 a1 ~ e2@4 a1@3 ~", C: "b1@4 ~@2 b1 ~ f#2@4 b1@3 ~",
  D: "e2@4 ~@2 e2 ~ b1@4 ~@2 b1 ~", E: "a1@4 ~@2 a1 ~ e2@4 a1@4", F: "e2@4 ~@2 e2 ~ e2@4 ~@2 e2 ~",
  G: "a1@4 ~@2 a1 ~ a1@8", H: "b1@4 ~@2 b1 ~ b1@4 ~@2 b1 ~", I: "e2@4 ~@2 e2 ~ e2@3 ~ b1@3 ~", J: "e2@4 ~@2 e2 ~ e2@8",
  K: "a1@4 ~@2 a1 ~ a1@4 ~@2 a1 ~", L: "b1@4 ~@2 b1 ~ b1@7 ~", M: "e2@4 ~@2 e2 ~ e2@4 b1@3 ~",
  N: "g#1@4 ~@2 g#1 ~ g#1@7 ~", O: "a1@4 ~@2 a1 ~ a1@7 ~", P: "e2@4 ~@2 e2 ~ e2@3 ~ b1@4", Q: "a1@4 ~@2 a1 ~ a1@6 ~@2",
  R: "a1@4 ~@2 a1 ~ a1@3 ~ e2@4", S: "g1@4 ~@2 g1 ~ g1@7 ~", T: "e2@4 ~@2 e2@6 b1@3 ~", U: "b1@4 ~@2 b1 ~ b1@3 ~ f#2@4",
  V: "b1@4 ~@2 b1 ~ b1@3 ~ c#2@3 ~", W: "b1@4 ~@2 b1 ~ c#2@3 ~ d#2@3 ~", X: "e2@4 ~@2 e2 ~ e2@4 b1@4",
  Y: "g#1@4 ~@2 g#1 ~ g#1@3 ~ d#2@4", Z: "e2@4 ~@2 e2 ~ b1@4 e2@4", AA: "e2@5 ~ e2 ~ e2@4 b1@3 ~",
  AB: "e2@4 ~@2 e2 ~ e2@3 ~ e2@2 b1@2", AC: "b1@4 ~@2 b1 ~ b1@4 c#2@3 ~", AD: "g#1@4 ~@2 g#1 ~ g#1@4 ~@2 g#1 ~",
  AE: "a1@4 ~@2 a1 ~ a1@4 e2@4", AF: "a1@4 ~@2 a1 ~ a1@5 ~ a1 ~", AG: "g1@4 ~@2 g1 ~ g1@5 ~ g1 ~",
  AH: "e2@4 ~@2 e2 ~ e2@4 b1@2 ~@2", AI: "e2@4 ~@2 e2 ~ e2@5 ~ e2 ~", AJ: "a1@4 ~@2 a1 ~ a1@3 ~ e2@3 ~",
  AK: "e2@4 ~@2 e2 ~ e2@3 ~ b1@2 ~@2", AL: "b1@4 ~@2 b1 ~ f#2@4 b1@4", AM: "b1@4 ~@2 b1 ~ b1@3 ~ f#2@3 ~",
  AN: "b1@3 ~@3 b1 ~ b1@3 ~ f#2@4", AO: "e2@3 ~@3 e2@10",
})).s("gm_fretless_bass").gain(0.33).pan(0.2)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A B C D@3 E F@3 B G@4 H@3 I J K@3 L@2 M N@2 O@2 P@2 N@2 Q@2 A I B P@2 R B E O@2 B E S@3 T E N@2 B E N@2 I B O@2 U
  L@2 V N@4 W@4 X@3 Y Z@5 AA@4 N@2 P@2 N@2 Q@2 N@2
>`.pickRestart({
  A: "[b3,e4,g#4]@15 ~", B: "[c#4,e4,a4]@15 ~", C: "[b3,d#4,f#4]", D: "[[b3,g#4]@31 ~ [c#4,a4]@15 ~, e4@47 ~]/3",
  E: "[b3,d#4,f#4]@15 ~", F: "[b3,e4,g#4]/3", G: "[[d#4,f#4]@16 g#4@31 ~ [c#4,a4]@15 ~, b3@47 ~@17, ~@16 e4@47 ~]/4",
  H: "[[d#4,f#4]@15 ~ [e4,g#4]@32, b3]/3", I: "[b3,d#4,g#4]@15 ~", J: "[c#4,e4,a4]",
  K: "[e4@31 ~ d#4@15 ~, [b3,g#4]@47 ~]/3", L: "[[c#4,e4,a4]@31 ~]/2", M: "[b3,d4,g4]", N: "[[b3,e4,g#4]@31 ~]/2",
  O: "[b3,e4,g#4]/2", P: "[[b3,d#4,f#4]@31 ~]/2", Q: "[b3,d#4,f#4]/2", R: "[b3,e4,g#4]", S: "[[b3,e4,g#4]@47 ~]/3",
  T: "[c#4,e4,a4]@15 ~, b3 ~@15", U: "[b3,d#4,g#4]@7 ~", V: "[b3,d4,g4]@15 ~",
  W: "[[b3,d#4,f#4]@31 [b3,e4,g#4]@31 ~@2]/4", X: "[[b3,d#4,f#4]@31 [b3,e4,g#4]@16 ~]/3", Y: "[b3,d#4,g#4]",
  Z: "[[c#4,e4,a4]@14 ~ [b3,d#4,f#4]@63 ~@2]/5", AA: "[[b3,e4,g#4]@30 ~ [b3,d#4,f#4]@32 ~]/4",
})).s("gm_synth_strings_1").gain(0.1).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G D H I J K D L M N O P Q R H S T U V W A X Y Z AA AB AC AD AE AF AG AH B AI AF AJ J N AK AL AM AN AO AP
  AQ F AR AS AT AU AV AW AK AX M AY AZ BA BB BC BD AL AD BE E BF BG O H BH N BI BJ AU K BK BL G H BM BN BO AD AK AF BP
  BQ@2 BN BK BQ BR
>`.pickRestart({
  A: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  B: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
  C: "[f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  D: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  E: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  F: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~", // A
  G: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
  H: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  I: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  J: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
  K: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
  L: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  M: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
  N: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  O: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  P: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  Q: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4] ~", // G#m
  R: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
  S: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  T: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4] ~", // G#m
  U: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
  V: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~", // A
  W: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@2 ~@2 [g3,b3,d4,g4] ~", // G
  X: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2", // E
  Y: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  Z: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  AA: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
  AB: "[f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
  AC: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2", // E
  AD: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  AE: "[a3,b3,c#4,d#4,e4,a4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // A B
  AF: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
  AG: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  AH: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~", // G#m
  AI: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
  AJ: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  AK: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  AL: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  AM: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
  AN: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
  AO: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2", // E
  AP: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  AQ: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  AR: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
  AS: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  AT: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  AU: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
  AV: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  AW: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [f#3,c#4,f#4,g#4,a4] ~", // E F#m
  AX: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~", // G#m
  AY: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  AZ: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  BA: "[g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4] ~", // G#m
  BB: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
  BC: "[a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
  BD: "[g3,b3,d4,g4]@4 [g3,b3,d4,g4] ~ [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4] ~", // G
  BE: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
  BF: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  BG: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
  BH: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
  BI: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
  BJ: "[g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~", // G#m
  BK: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
  BL: "[f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  BM: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  BN: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  BO: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
  BP: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
  BQ: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
  BR: "[g#3,b3,e4,g#4]@5 ~ [g#3,b3,e4,g#4]@8 ~@2", // E
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.3)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@2 A B C ~ D ~ C E@2 ~ F C@2 G H I ~ J ~ E C ~ K D L ~ M C N O P Q C R S T ~ A H S ~@2 H U V A B W I ~ D H V@2 ~@2 X
  U ~ G Y Z AA ~@3 V C N ~@2 AB I E AB H V AC ~ F H ~@2 E N S B C U S P N@2 S H N ~
>`.pickRestart({
  A: "~ [a3,c#4,e4,a4] ~@6", B: "~@4 [f#3,b3,d#4,b4] ~@3", C: "~@4 [g#3,b3,e4,g#4] ~@3",
  D: "~ [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~", E: "~ [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,g#4] ~@3",
  F: "~ [f#3,b3,d#4,b4] ~@4 [f#3,b3,d#4,b4] ~", G: "~@5 [a3,c#4,e4,a4] ~@2", H: "~ [f#3,b3,d#4,b4] ~@6",
  I: "~@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4] ~", J: "~@5 [g#3,b3,d#4,g#4] ~@2",
  K: "~ [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~@3", L: "~@6 [g3,b3,d4,g4] ~", M: "~@14 [g#3,b3,e4,g#4] ~",
  N: "~ [g#3,b3,e4,g#4] ~@6", O: "~@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4] ~", P: "~@6 [f#3,b3,d#4,b4] ~",
  Q: "~@8 [g#3,b3,e4,g#4]@2 ~@4 [g#3,b3,e4,g#4] ~", R: "f#3 ~@7 [f#3,b3,d#4,b4]@2 ~@6",
  S: "~ [f#3,b3,d#4,b4] ~@2 [f#3,b3,d#4,b4] ~@3", T: "~ [g#3,b3,e4,g#4] ~@3 [g#3,b3,e4,g#4] ~@2",
  U: "~ [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4] ~", V: "~@6 [g#3,b3,e4,g#4] ~",
  W: "~@2 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", X: "~@8 [g#3,b3,e4,g#4]@2 ~@4 [g#3,b3,e4] ~",
  Y: "~@5 [g#3,b3,e4,g#4] ~@2", Z: "~ [g#3,b3,e4,g#4] ~@4 [g#3,b3,e4,g#4] ~",
  AA: "~ [g#3,b3,d#4,g#4] ~@3 [g#3,b3,d#4,g#4] ~@2", AB: "~ [f#3,b3,d#4,b4] ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4] ~",
  AC: "~ [g#3,b3,d#4,g#4] ~@6", // G#m
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.3)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_3 = note("<A B C D E F G H I J ~@31 A K C D E F G H I J ~@48>".pickRestart({
  A: "~@3 f#4", B: "g#4@8 ~@2 g#4 ~ g#4@4", C: "a4@13 ~ g#4 [g#4,a4]", D: "f#4 g#4 a4 b4 c#5 d#5 c#5 d#5",
  E: "e5@10 b4@2 c#5 b4 a4@2", F: "g#4@9 ~ g#4 ~ g#4@3 ~", G: "a4@15 ~",
  H: "e5@2 d#5@2 c#5@2 d#5@2 c#5 [c#5,d#5] b4@2 c#5@2 d#5@2", I: "e5@9 ~ b4@2 c#5 b4 a4@2", J: "g#4 ~",
  K: "g#4@9 ~ g#4 ~ g#4@4",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_4 = note(`<
  ~ A B C A D ~ E A ~ D A F G H A I A J K L ~ B M N ~@2 A@2 D@2 E ~ A ~ O ~@2 O N P ~ A Q D ~ A ~ E ~ A R ~@2 S ~ A O
  ~@2 O A@2 ~@2 A B T A ~ D U O ~ V ~@2 W ~ C A X Y Z E AA ~ D AB ~@3 E ~@2 D ~@2 AC
>`.pickRestart({
  A: "~ e4 ~@6", B: "~@6 e4 ~", C: "~@6 d#4 ~", D: "~@6 b3 ~", E: "~ d#4 ~@6", F: "~@4 d#4 ~@3", G: "~@2 e4@3 ~@11",
  H: "~@3 e4", I: "~@4 d#4 ~ d#4 ~", J: "~@4 g#4@2 b3 ~", K: "~@2 d#4@3 ~@11", L: "~ e4 ~@4 c#4 ~", M: "~ d#4@2 ~@5",
  N: "~@6 c#4 ~", O: "~ d#4 ~@4 b3 ~", P: "~@8 f#4@5 ~@3", Q: "~@2 e4@2 ~@6 e4@3 ~@3",
  R: "~@2 e4@3 ~@7 b3@2 ~@2, ~@4 g#4@3 ~", S: "~@4 e4 ~@3", T: "~ b3 ~@6", U: "~@4 e4 ~ e4 ~", V: "~ e4@2 ~@5",
  W: "~@4 f#4@2 b3 ~", X: "~@4 f#4@3 ~", Y: "~@8 f#4@3 ~@5", Z: "~@4 f#4 ~ f#4@2", AA: "~@4 a4 ~@3",
  AB: "~ d#4 ~@4 d#4 ~", AC: "~@2 e4@2 b3 ~@3 b3@6 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.7)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@18 A B C D E F G C E H ~ I@2 J@2 I@2 J@2 H B C K@2 ~@17 L M N O@2 P Q N ~@3 R I S@2 R I T@2 U M N V W X Y R Z V AA
  AB R V AC AD R V AE R AF
>`.pickRestart({
  A: "[e4,e5]@15 ~", B: "[d#4,d#5]", C: "[c#4,c#5]", D: "[b3,b4]@15 ~", E: "[b3,b4]", F: "[g#3,g#4]@15 ~", G: "[a3,a4]",
  H: "[e4,e5]", I: "[e5,e6]@3 [b4,b5]@2 [g#4,g#5] [f#4,f#5] [e4,e5]", J: "[[b4,b5]@21 ~ [f#4,f#5]@6 [d#4,d#5]@3 ~]/2",
  K: "[b4,b5]@3 [f#4,f#5]@2 [d#4,d#5] [c#4,c#5] [b3,b4]", L: "[e5,e6]@15 ~", M: "[d#5,d#6]", N: "[c#5,c#6]",
  O: "[b4,b5]/2", P: "[g#4,g#5]@15 ~", Q: "[a4,a5]", R: "[e5,e6]@5 ~ [b4,b5]@4 [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2",
  S: "[[b4,b5]@11 [f#4,f#5]@3 [d#4,d#5]@2]/2", T: "[[b4,b5]@21 ~ [f#4,f#5]@6 [d#4,d#5]@4]/2", U: "[e5,e6]",
  V: "[b4,b5]@15 ~", W: "[b4,b5]@6 [f#4,f#5]@4 [d#4,d#5]@2 [c#4,c#5]@2 [b3,b4] ~",
  X: "[b4,b5]@6 [f#4,f#5]@4 [d#4,d#5]@2 [c#4,c#5] ~ [b3,b4] ~", // B F# D# C# B
  Y: "[b3,b4]@4 ~@2 [d#4,d#5]@3 [f#4,f#5] ~@2 [f#4,f#5] [b4,b5] [d#5,d#6] ~", // B D# F# B D#
  Z: "[e5,e6]@2 ~ [b4,b5]@2 [g#4,g#5] [f#4,f#5] [e4,e5]", // E B G# F# E
  AA: "[b4,b5]@5 ~ [f#4,f#5]@4 [b4,b5] ~ [b4,b5] [d#5,d#6] [f#5,f#6] ~", // B F# B D# F#
  AB: "[e5,e6]@5 ~ [b4,b5]@3 ~ [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2", // E B G# F# E
  AC: "[b4,b5]@5 [f#4,f#5]@4 ~ [b4,b5] ~ [b4,b5] [d#5,d#6] [f#5,f#6] ~", // B F# B D# F#
  AD: "[e5,e6]@5 ~ [b4,b5]@3 [g#4,g#5]@2 ~ [f#4,f#5]@2 [e4,e5]@2", // E B G# F# E
  AE: "[b4,b5]@6 [f#4,f#5]@3 ~ [b4,b5] ~ [b4,b5] [d#5,d#6] [f#5,f#6] ~", AF: "[e5,e6]@3 ~@3 [e5,e6]@4 ~@6",
})).s("gm_string_ensemble_1").gain(0.16)

// other · tremolo strings · "TREMOLOSTR" · B E B G# E B E B …
const tremolo_strings = note(`<
  ~@28
  [[b3,b4]@6 [e4,e5]@5 ~ [b3,b4] [g#4,g#5] [e4,e5] [b4,b5]]
  [[e5,e6]@5 ~@11]
  ~@37
  [[b4,b5]]
  [[g#4,g#5]]
  [[b3,b4]@6 [e4,e5]@5 ~ [b3,b4] [g#4,g#5] [e4,e5] [b4,b5]]
  ~@29
>`).s("gm_tremolo_strings").gain(0.21)

// drums · kick
// … 32 more lines

More by Cats