Strudelify
The narrow path cover art

1990 · Masterpeace

The narrow path

Anx

KeyC majorTempo202 bpm
0:00/0:00
// The narrow path — Anx
// 202 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 166 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(202/3)

// 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.

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A B C D E F G H I J K@4 L M ~@5 N O P@2 ~@4 Q R S@2 ~@4 N O P@2 ~@4 Q R S@2 ~@5 T U@2 ~@5 V W@2 X Y Z@2 AA O AB@2 ~@7
  AC AD AE AF@2 AG AH AI@2 B C D E F G H AJ ~@21 T U@2 ~@5 V W@2 X Y Z@2 AA O AK@2 AD AE AF@2 AG AH AL@2 X Y Z@2 AA O
  AK@2 AD AE AF@2 AG AM AN@2 ~ AO@3 AP
>`.pickRestart({
  A: "~@5 e5 ~@5 f5@2 ~@3", B: "g5@5 c6@2 ~@4 c6@2 ~@3", C: "e6@5 c6@6 g5@5", D: "a5@5 c6@2 ~@4 c6@2 ~@3",
  E: "f6@5 c6@5 ~ a5@5", F: "b5@5 d6 ~@5 d6@2 ~@3", G: "g5@5 a5@5 ~ b5@5", H: "c6@2 ~@3 g5 ~@2 f5 ~@2 e5 ~ d5 ~@2",
  I: "c5@2 ~@9 e6@5", J: "e6@10 ~ e6@5", K: "[f6@10 ~ e6@10 d6@20 ~@2 d6@11 ~@5 d6@5]/4", L: "e6@10 ~ d6@5",
  M: "d6@5 c6@11", N: "[c6,e6]@5 [b5,d6]@5 ~ [a5,c6]@5", O: "[g5,b5]@11 [f5,a5]@5", P: "[[e5,g5]@5 [d5,f5]@22 ~@5]/2",
  Q: "[b5,d6]@5 [a5,c6]@5 ~ [g5,b5]@5", R: "[f5,a5]@10 ~ [e5,g5]@5", S: "[[d5,f5]@5 [c5,e5]@21 ~@6]/2",
  T: "[f4,f5]@11 [e4,e5]@5", U: "[[e4,e5]@5 [d4,d5]@21 ~@6]/2", V: "[e4,e5]@11 [d4,d5]@5",
  W: "[[d4,d5]@5 [c4,c5]@21 ~ [c5,e5]@5]/2", X: "[c5,e5]@11 [c5,e5]@5", Y: "[d5,f5]@11 [e5,g5]@5",
  Z: "[[f5,a5]@5 [f5,a5]@21 ~ [f5,a5]@5]/2", AA: "[g5,b5]@11 [g5,b5]@5", AB: "[[f5,a5]@5 [e5,g5]@21 ~@6]/2",
  AC: "~@11 [g5,e6]@5", AD: "[g5,e6]@11 [g5,e6]@5", AE: "[a5,f6]@11 [g5,e6]@5",
  AF: "[[g5,e6]@5 [f5,d6]@21 ~ [f5,d6]@5]/2", AG: "[f5,d6]@11 [f5,d6]@5", AH: "[g5,e6]@11 [f5,d6]@5",
  AI: "[[f5,d6]@5 [e5,c6]@16 e5 ~@5 f5@2 ~@3]/2", AJ: "c5 ~@7", AK: "[[f5,a5]@5 [e5,g5]@21 ~ [g5,e6]@5]/2",
  AL: "[[f5,d6]@5 [e5,c6]@16 ~@6 [c5,e5]@5]/2", AM: "[g5,e6]", AN: "[f5,d6]", AO: "[c6@35 ~@8 g5@3 ~@2]/3",
  AP: "c6@3 ~@13",
})).s("gm_string_ensemble_1").gain(0.36)

// bass · acoustic bass
const bass = note(`<
  ~ A B C D E F G H@2 I J K L E M N@2 E D O N P Q R E L S T U V W X N E D O N P Q R U L S T U V W X N C M@2 Y L Z AA L E
  AB AC AD H E M AE AF AG AH AI AJ H X N I J K L E AK H@2 I J K L E M N A B C D E F G H@2 E D O N AL Q R U L S T U V W X
  N C M@2 Y L Z AA L E AB AC AD H E M AE AF AG AH AI AJ H X N I J K L E AK H AE AF AG AH AI AJ H X N I J K L AM@2 AN AO
  E X AP H
>`.pickRestart({
  A: "c3@3 ~@5", B: "c2@4 ~ d2@4 ~@2 e2@4 ~", C: "f2@5 ~@11", D: "c3@3 ~@2 b2@3 ~@3 a2@3 ~@2", E: "g2@5 ~@11",
  F: "g2@4 ~ a2@3 ~@3 b2@4 ~", G: "c3@3 ~@2 g2@3 ~@3 e2@4 ~", H: "c2 ~@3", I: "a2@5 ~@11",
  J: "d2@3 ~@2 a2@3 ~@3 g2@3 ~@2", K: "f2@3 ~@2 f2@3 ~@3 e2@3 ~@2", L: "d2@5 ~@11", M: "c2@3 ~@2 e2@3 ~@3 g2@3 ~@2",
  N: "c3 ~@3", O: "g2@3 ~@2 e2@3 ~@3 g2@3 ~@2", P: "g2@5 ~@6 a2@3 ~@2", Q: "d2@3 ~@2 f2@3 ~@3 e2@3 ~@2",
  R: "d2@3 ~@2 e2@3 ~@3 f2@3 ~@2", S: "g2@3 ~@2 f2@3 ~@3 e2@3 ~@2", T: "d2@4 ~ b1@4 ~@2 d2@3 ~@2", U: "g2 ~@3",
  V: "d2@5 ~@6 g2@4 ~", W: "c2@4 ~ e2@4 ~@2 f2@3 ~@2", X: "g2@3 ~@2 a2@3 ~@3 b2@3 ~@2", Y: "f2@3 ~@2 a2@3 ~@3 f2@3 ~@2",
  Z: "a2 ~@3", AA: "d2@3 ~@2 f2@3 ~@3 a2@3 ~@2", AB: "d2@3 ~@2 g2@4 ~@2 b2@3 ~@2", AC: "g2@4 ~ b1@4 ~@2 d2@3 ~@2",
  AD: "e2@3 ~@2 g2@3 ~@3 e2@3 ~@2", AE: "c2@5 ~@6 c2@3 ~@2", AF: "e2@6 ~@5 e2@3 ~@2", AG: "f2 ~@3",
  AH: "a2@3 ~@2 c3@3 ~@3 f2@3 ~@2", AI: "g2@4 ~@7 g2@3 ~@2", AJ: "g2@4 ~@7 d2@3 ~@2", AK: "c2@3 ~@2 g2@3 ~@3 g2@3 ~@2",
  AL: "g2@4 ~@7 a2@3 ~@2", AM: "g1@13 ~@3", AN: "g2@15 ~", AO: "~@5 e2@3 ~@3 f2@3 ~@2", AP: "c3@4 ~@7 g2@3 ~@2",
})).s("gm_acoustic_bass").gain(0.41)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A@2 B@2 C D E F A G H I J K L F A@5 M N O C@6 P D Q A@4 M N O R C@4 S P T Q B A U V@5 C@3 A@5 W X@2 C@2 A Y Z G H I
  J K AA AB A G H I J K A F A@2 B@2 C D E F Q A@4 M N O R C@4 S P T Q B A U V@5 C@3 A@5 W X@2 C@2 A Y Z G H I J K AA AB
  A W X@2 C@2 A Y Z G H I J AC@3 AD A Y AE F
>`.pickRestart({
  A: "~@5 [c4,e4,g4] ~@5 [c4,e4,g4] ~@4", B: "~@5 [c4,f4,a4] ~@5 [c4,f4,a4] ~@4",
  C: "~@5 [b3,d4,g4] ~@5 [b3,d4,g4] ~@4", D: "g3@5 a3@5 ~ b3@4 ~", E: "c4@2 ~@9 [c4,e4,g4] ~@4", F: "[c4,e4,g4] ~@7",
  G: "~@5 [c#4,g4,a4] ~@5 [c#4,g4,a4] ~@4", H: "d3@4 ~ a3@4 ~@2 g3@4 ~", I: "f3@4 ~ f3@4 ~@2 e3@3 ~@2",
  J: "d3@5 [d4,f4,a4] ~@5 [d4,f4,a4] ~@4", K: "~@5 [b3,d4,f4] ~@5 [b3,d4,f4] ~@4",
  L: "c3@5 [c4,e4,g4]@2 ~@4 [c4,e4,g4] ~@4", M: "~@5 [b3,d4,g4] ~@5 [c#4,e4,a4] ~@4", N: "d3@5 f3@4 ~@2 e3@4 ~",
  O: "d3@4 ~ e3@4 ~@2 f3@3 ~@2", P: "c3@4 ~ e3@4 ~@2 f3@4 ~", Q: "c4@5 [e4,g4] ~@5 [c4,e4,g4] ~@4",
  R: "g3@5 [b3,d4,g4] ~@5 [b3,d4,g4] ~@4", S: "[a3,d4,f4] ~@10 [b3,d4,g4]@2 ~@3", T: "g3@3 ~@2 a3@3 ~@3 b3@3 ~@2",
  U: "~@5 [c4,e4,g4] ~@5 [c#4,e4,a4]@2 ~@3", V: "~@5 [d4,f4,a4] ~@5 [d4,f4,a4] ~@4",
  W: "~@5 [d4,f4,a4]@4 ~@2 [c4,e4,g4]@2 ~@3", X: "~@5 [a3,c4,f4] ~@5 [a3,c4,f4] ~@4", Y: "g2@5 a2@5 ~ b2@4 ~",
  Z: "c3@5 [c4,e4,g4] ~@5 [c4,e4,g4] ~@4", AA: "[c4,e4,g4] ~@4 g3@3 ~@3 g3@4 ~", AB: "c3@3 ~@13", AC: "[b3,d4,g4]",
  AD: "~@5 e3@2 ~@4 f3@2 ~@3", AE: "c3@3 ~@8 [b3,d4,g4]@2 ~@3",
})).s("gm_electric_guitar_clean").gain(0.48)

// chords · flute
const flute = note(`<
  ~@8 A B C D@2 E F G@2 H I J@2 K L M@2 N@2 O@2 P Q R@2 S@4 T U@3 V@4 P W@3 X Y Z AA@3 ~@2 AB@3 AC AD@2 ~ AE AF AG@3
  AH@2 AI@2 AJ AK@3 AL AM@3 AN AO@3 AP AQ@3 ~@24 X Y Z AA@3 ~@2 AB@3 AC AD@2 ~ AE AF AG@3 AH@2 AI@2 AJ AK@3 AL AR@3 AS
  AG@3 AH@2 AI@2 AJ AT@3 AP AU AV@2 AW@4 ~
>`.pickRestart({
  A: "~@10 [e4,g4]@5 ~", B: "~ [e4,g4]@10 [e4,g4]@5", C: "~ [f4,a4]@9 ~ [e4,g4]@4 ~",
  D: "[[e4,g4]@5 ~ [d4,f4]@19 ~@2 [d4,f4]@4 ~]/2", E: "[d4,f4]@9 ~@2 [d4,f4]@5", F: "[e4,g4]@10 ~ [d4,f4]@4 ~",
  G: "[[d4,f4]@5 ~ [c4,e4]@13 ~@13]/2", H: "g4@6 e4@4 g4@5 ~", I: "c5@10 e5@5 ~", J: "[d5@5 c5@24 ~@3]/2",
  K: "e5@6 d5@5 c5@5", L: "~ b4@9 a4@5 ~", M: "[g4@3 f4@11 ~@2]/2", N: "[f4@5 d4@5 f4@5 b4@10 ~ d5@4 ~@2]/2",
  O: "[c5@5 b4@22 ~@5]/2", P: "d5@5 c5@5 ~ b4@5", Q: "a4@10 g4@5 ~", R: "[f4@3 e4@10 ~@3]/2",
  S: "[g4@5 e4@5 g4@5 c5@11 e5@5 d5@3 ~@3 c5@22 ~@5]/4", T: "e5@5 d5@5 c5@5 ~", U: "[b4@10 a4@5 g4@6 f4@16 ~@11]/3",
  V: "[f4@5 d4@5 f4@5 b4@10 ~ d5@5 c5@6 b4@18 ~@9]/4", W: "[a4@10 g4@5 f4@6 e4@17 ~@10]/3", X: "e4@5 e4@4 ~ e4@4 ~@2",
  Y: "f4@10 ~ a4@5", Z: "g4@10 e5@5 ~", AA: "[e5@10 f5@5 e5@6 ~ d5@24 ~@2]/3",
  AB: "[f4@5 ~ f4@4 ~ f4@2 ~ g4@12 a4@5 b4@11 d5@4 ~@2]/3", AC: "d5@10 ~ e5@5", AD: "[d5@6 c5@21 ~@5]/2",
  AE: "~@11 e4@5, ~@10 c5@5 ~, ~@11 d4@3 ~@2", AF: "[e4,c5]@9 ~@2 c5@5, ~@10 e4@5 ~",
  AG: "[[f4,d5]@10 [g4,e5]@3 [a4,f5]@7 ~ [a4,f5]@18 ~@3 [a4,f5]@6]/3", // Dm C Dm
  AH: "[[b4,g5]@9 ~@2 [b4,g5]@8 ~@2 [b4,g5]@4 ~@2 [a4,f5]@4 ~]/2", AI: "[[a4,f5]@4 ~ [g4,e5]@17 ~@5 e5@4 ~]/2",
  AJ: "e5@9 ~@2 e5@5", AK: "[f5@10 e5@2 ~ e5@7 ~ d5@19 ~@2 d5@4 ~@2]/3", AL: "d5@9 ~ d5@4 ~@2",
  AM: "[e5@10 ~ d5@3 d5@7 c5@13 ~@8 [e5,g5]@5 ~]/3", AN: "[e5,g5]@10 ~ [e5,g5]@4 ~",
  AO: "[[f5,a5]@10 ~ [e5,g5]@2 ~ [e5,g5]@6 ~ [d5,f5]@19 ~@2 [d5,f5]@4 ~@2]/3", AP: "[d5,f5]@9 ~ [d5,f5]@5 ~",
  AQ: "[[e5,g5]@9 ~@2 [d5,f5]@2 [d5,f5]@6 ~@2 [c5,e5]@14 ~@13]/3", AR: "[e5@10 ~ d5@3 d5@7 c5@13 ~@8 [e4,c5]@6]/3",
  AS: "c5@9 ~ [e4,c5]@5 ~", AT: "[f5@10 e5@2 ~ e5@7 ~ d5@19 ~@2 [d5,f5]@4 ~@2]/3", AU: "[e5,g5]@15 ~",
  AV: "[d5,f5]@15 ~", AW: "[[c5,e5]@49 ~@15]/4",
})).s("gm_flute").gain(0.64)

// other · clarinet
const clarinet = note(`<
  A B C D E F G H I J K L M N O P Q ~@2 R S T ~ U V W X Y Z AA ~ AB AC T ~ AD S T ~ U V W X Y Z AA ~ AB AC AE@2 AF AG
  AH@2 AI AJ AK AL AM AN AO AP AQ@2 ~@7 AR J K L M N O P AS J K L M N O P AT ~@10 AD S T ~ U V W X Y Z AA ~ AB AC AE@2
  AF AG AH@2 AI AJ AK AL AM AN AO AP AQ@2 ~@7 AR J K L M N O P Q ~@7 AR J K L M N AU AV@2 A B AW AX Q
>`.pickRestart({
  A: "~@5 e5@2 ~@3 f5@5 ~", B: "g5 ~@2 e5 ~ g5 ~@2 e5 ~ g5 ~@3 e5 ~", C: "g5@5 e5@2 ~@4 g5@5",
  D: "a5 ~@2 f5 ~ a5 ~@3 f5 ~ a5 ~@2 f5 ~", E: "a5@5 ~ f5 ~@4 a5@5", F: "b5 ~@2 g5 ~ b5 ~@3 g5 ~ b5 ~@2 g5 ~",
  G: "g5@5 a5@5 b5@5 ~", H: "c6 ~@4 g5 ~@2 f5 ~@2 e5 ~ d5 ~@2", I: "c5 ~@4 g5@3", J: "g5@10 ~ g5@5", K: "a5@11 g5@5",
  L: "e5@2 ~ d5 ~ f5 ~ e5 ~@2 d5 ~@2 c5 ~ b4", M: "~@2 a4 ~@2 b4 ~@2 c5 ~ d5@2 ~ e5 ~@2", N: "f5@10 ~ f5@5",
  O: "g5@2 ~ f5 ~ g5@2 ~ f5 ~@2 e5 ~ d5 ~@2", P: "d5@2 ~ c5@2 b4@2 ~ c5@2 ~ e5@2 g5@2 ~", Q: "c6 ~@7",
  R: "d6@2 ~ c6 ~ b5 ~@2 a5 ~@2 g5 ~ f5 ~@2", S: "e5 ~@2 c5 ~ g5@2 ~ f5 ~@2 e5@2 d5 ~@2", T: "c5@9 ~@7",
  U: "d5 ~@2 a4 ~ g5@2 ~ f5 ~@2 e5 ~@2 f5 ~", V: "d5@2 ~ d5 ~ f5@2 ~@2 f5 ~ a5@2 ~ a5 ~", W: "d6 ~@7",
  X: "~@15 [a5,b5]", Y: "c6 ~@2 b5 ~ a5 ~ g5 ~@2 f5 ~@2 e5 ~ d5", Z: "~@2 g5@2 ~ f5@2 ~ e5 ~ d5@2 ~ c5@2 ~",
  AA: "b4 ~@3", AB: "g4@2 ~ e4 ~ c5@2 ~ g4 ~ e5@2 ~ c5 ~@2", AC: "g5@2 ~ a5 ~ g5@2 ~ f5@2 ~ e5@2 ~ d5@2",
  AD: "~@3 c6 ~ b5 ~@2 a5 ~@2 g5 ~ f5 ~@2", AE: "c5", AF: "e5@11 g5@5", AG: "g5@2 ~ a5 ~ g5 ~@3 e5 ~ c#5 d5 ~ e5 ~",
  AH: "[d5@3 c#5@2 d5@2 ~ e5@2 ~ f5@2 g5@2 f5@12 e5@5]/2", AI: "e5@2 ~ e5@2 d5@11, ~ f5 ~@6",
  AJ: "~@3 e5 ~ f5 ~@2 e5 ~ f5@2 ~@2 e5 ~, d5@11 ~@5", AK: "d5@5 d5@5 d5@5 ~",
  AL: "g5@2 ~ b5 ~ g5 ~@2 d5 ~ b4@2 ~ d5@2 ~", AM: "g5@11 d5@5", AN: "b5@2 ~ a5 ~ g5 ~@2 f5 ~@2 e5@2 ~ d5@2",
  AO: "d5 ~ d5 c5 ~ b4@2 ~ c5@2 d5@2 ~ e5@2 ~, ~ e5@2 ~@13", AP: "d5@11 e5@5",
  AQ: "[d5@2 ~ d5@2 c5@22 ~@5, ~ e5 ~@14]/2", AR: "~@5 g5@3", AS: "c6@2 ~@9 g5@5", AT: "c6 ~@4 e5@2 ~@4 f5@5", AU: "g5",
  AV: "f5@15 ~", AW: "g5@5 a5@5 ~ b5@5", AX: "c6 ~@9 g5@2 ~@4",
})).s("gm_clarinet").gain(0.48).pan(0.3)

// chords · accordion
const accordion = note(`<
  ~@9 A@4 B@2 C@2 ~@32 D E F G H@2 ~@2 I J K L M@3 N O P Q@2 R S T@2 U V W@2 X Y Z AA U V Q@2 X Y Z ~@25 D E F G H@2 ~@2
  I J K L M@3 N O P Q@2 R S T@2 U V W@2 X Y Z AA O P Q@2 R S T@2 U V W@2 X AB@3 ~ AC AD AE AF
>`.pickRestart({
  A: "[e4@8 a#4@8 [f4,a4]@13 ~@3, g4@33 ~@31]/4", B: "[d4@16 g#4@15 ~, f4]/2", C: "[[e4,g4]@19 ~@13]/2",
  D: "[c4,e4]@4 ~ [c4,e4]@5 ~ [c4,e4]@4 ~", E: "[d4,f4]@10 ~ [f4,a4]@4 ~", F: "[e4,g4]@10 ~ [g4,e5]@5",
  G: "[g4,e5]@9 ~@2 [a4,f5]@5", H: "[[g4,e5]@4 ~ [f4,d5]@27]/2", I: "[d4,f4]@5 [d4,f4]@4 ~@2 [d4,f4]@4 ~",
  J: "[e4,g4]@10 ~ [f4,a4]@5", K: "[g4,b4]@11 [f4,d5]@4 ~", L: "[f4,d5]@10 ~ [g4,e5]@5",
  M: "[[f4,d5]@5 [e4,c5]@29 ~@14]/3", N: "~@11 [c4,e4]@5", O: "[c4,e4]@9 ~@2 [c4,e4]@5", P: "[d4,f4]@10 ~ [e4,g4]@5",
  Q: "[[f4,a4]@5 [f4,a4]@20 ~@2 [f4,a4]@5]/2", R: "[g4,b4]@9 ~@2 [g4,b4]@4 ~", S: "[g4,b4]@10 ~ [f4,a4]@5",
  T: "[[f4,a4]@5 [e4,g4]@19 ~@3 [e4,g4]@4 ~]/2", U: "[e4,g4]@10 ~ [e4,g4]@5", V: "[g4,a#4]@10 ~ [g4,a#4]@5",
  W: "[[f4,a4]@23 ~@4 [f4,a4]@5]/2", X: "[f4,a4]@9 ~@2 [f4,a4]@4 ~", Y: "[f4,g#4]@9 ~@2 [f4,g#4]@5",
  Z: "[e4,g4]@4 ~ [e4,g4]@11", AA: "~@11 [e4,g4]@4 ~", AB: "[f4,g#4]", AC: "g4 ~@2 e4@2 g4 ~@2 e4 ~@2 g4 ~ e4 ~@2",
  AD: "g4@5 a4@5 ~ b4@5", AE: "c5@2 ~@9 g4@2 ~@3", AF: "c5 ~@7",
})).s("gm_accordion").gain(0.48)

// drums · kick
const kick = s("bd").struct("<~ A@6 B A@87 B A@65 C A@2 B A>".pickRestart({
  A: "x", B: "x ~@10 x ~@4", C: "~@5 x ~@5 x ~@4",
})).gain(0.3)

// drums · clap
const clap = s("cp").struct(`<
  A B@6 C D B@7 D B@15 E B@14 E B@16 E B@7 E B@7 D B@7 ~ B@6 C D B@15 E B@15 E B@15 D B@13 ~@3 A B@2 C D
>`.pickRestart({
  A: "~@15 x", B: "~@5 x ~@5 x ~@4", C: "x ~@10 x ~@4", D: "x", E: "x ~@4 x ~@5 x ~@3 x",
})).gain(0.3)

// drums · clap · soft notes
const clap_soft = s("cp").struct(`<
  A ~@7 B ~@6 C B ~@15 D ~@14 D C ~@15 D ~@7 D ~@6 C B ~@3 C ~@2 C ~@8 B ~@15 D ~@15 D ~@7 C ~@6 C B ~@7 C ~@8 A ~ C ~@2
>`.pickRestart({
  A: "~@13 x!2 ~", B: "~@13 x!3", C: "x", D: "~@4 x ~@8 x!2 ~",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@6 B C A@7 C A@63 C A@7 ~ A@6 B C A@15 D A@15 D A@3 E A@11 C A@13 ~@4 A@2 B F
>`.pickRestart({
  A: "x ~@4 x ~@5 x ~@4", B: "~@3 x ~@9 x ~@2", C: "~@3 x ~@12", D: "x ~@4 x ~@10", E: "x ~@2 x ~ x ~@5 x ~@4",
  F: "~@3 x ~@4",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<A ~@6 B A ~@7 A ~@63 A ~@14 B A ~@15 C ~@15 C ~@15 A ~@13 A@4 ~@2 B A>".pickRestart({
  A: "x", B: "x ~@10 x ~@4", C: "~@11 x ~@4",
})).gain(0.25)

// drums · crash
const crash = s("cr").struct("<~@88 x ~@77>").gain(0.25)

stack(
  string_ensemble_1, bass, electric_guitar_clean, flute, clarinet, accordion, kick, clap, clap_soft, hihat, open_hat,
  crash
)