Strudelify

Take Me Don't Break Me

Arabesque

KeyD majorTempo184 bpm
0:00/0:00
// Take Me Don't Break Me — Arabesque
// 184 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 162 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(184/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D A E F G H@2 I@2 J@2 K L M@2 N@2 O@2 P Q R B S D T U S F V W X D Y Z ~@2 R AA AB AC AD AE C@2 AF AG AF F X AH ~
  AI AJ AK R@2 AL AM AN ~ AO B AP AQ R AR F AS H@2 N@2 J@2 AT AU M@2 AV@2 J@2 AW L R AX D F A B D F AY AQ X AQ X AZ ~@2
  AO B BA BB R B BC BD AF AQ X BE X Z ~ BF BG AK R E BH BI BJ ~ BK B F C R B D AQ X F X F X BL ~@2 R B C F BK AX F@2 BM
  D X D X Z ~ BN BO ~
>`.pickRestart({
  A: "d2@2 d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 a1@2", B: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 d2@2",
  C: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1 ~", D: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1@2",
  E: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 a1 ~", F: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1@2",
  G: "a1@2 a#1@3 ~ b1@3 ~ c2@3 ~ c#2 ~", H: "[d2@13 ~ d2@2]/2", I: "[f2@27 ~ f2@4]/2", J: "[g1@13 ~ g1@2]/2",
  K: "a#1@7 ~", L: "a1@2 ~@2 a1 ~ a1@2 ~@2 a1 ~ a1@3 ~", M: "[d2@27 ~ d2@4]/2", N: "[f1@13 ~ f1@2]/2", O: "[g1@15 ~]/2",
  P: "a1@5 ~@3 a1@6 ~@2", Q: "a1@3 ~ a1@2 a1@2 ~@2 a1 ~ a1@3 ~", R: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 a1@2",
  S: "a1@2 a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1 ~", T: "d2@2 d2@2 b1@2 a1@2 d2 ~ d2 ~ b1@2 a1@2",
  U: "d2 ~ d2 ~ b1@2 a1 ~ d2 ~ d2 ~ b1@2 b1 ~", V: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@2 ~@2",
  W: "a1@2 a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1@2", X: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@2 d1@2",
  Y: "g1 ~ g1@2 e1@2 d1 ~ g1 ~ g1@2 e1@2 d1@2", Z: "a1 ~ a1@5 ~", AA: "d2 ~ d2@2 b1@2 a1 ~ d2 ~ d2@2 b1@2 a1@2",
  AB: "a1@2 a1 ~ f#1@2 e1 ~ a1 ~ a1@2 f#1 ~ e1 ~", AC: "a1 ~ a1 ~ f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1@2",
  AD: "d2 ~ d2@2 b1@2 a1 ~ d2 ~ d2 ~ b1@2 a1 ~", AE: "d2 ~ d2 ~ b1 ~ a1 ~ d2 ~ d2 ~ b1 ~ d2@2",
  AF: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@2 d1 ~", AG: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 a1@2",
  AH: "a1@2 ~@2 a1@5 ~@7", AI: "d2@4 e2@4 f2@4 f#2@3 ~", AJ: "g2 ~ g2@2 e2@2 d2 ~ g2@2 g2@2 e2@2 d2@2",
  AK: "g2 ~ g2@2 e2@2 d2@2 g2 ~ g2@2 e2@2 g2@2", AL: "g2 ~ g2@2 e2@2 d2@2 g2 ~ g2@2 e2@2 d2@2",
  AM: "g2 ~ g2@2 e2@2 d2 ~ g2 ~ g2@2 e2@2 d2 ~", AN: "a2 ~@7", AO: "d2!2 b1 a1 d2!2 b1 a1",
  AP: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1 ~ f#1@2 e1 ~", AQ: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 a1@2",
  AR: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2 ~ b1@2 a1 ~", AS: "a1 a#1@2 b1@2 c2@2 c#2, ~@14 d#2 ~", AT: "a#1",
  AU: "a1@2 ~@2 a1@2 a1@2 ~@2 a1 ~ a1@4", AV: "[f1@27 ~ f1@4]/2", AW: "a1@4 ~@4 a1@5 ~@3",
  AX: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 d2 ~", AY: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@3 ~", AZ: "a1 ~ a1@6",
  BA: "a1 ~ a1@2 f#1@2 e1@2 a1@2 a1@2 f#1@2 e1@2", BB: "a1@2 a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 a1@2",
  BC: "a1 ~ a1 ~ f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1 ~", BD: "a1 ~ a1 ~ f#1@2 e1 ~ a1 ~ a1@2 f#1@2 a1@2",
  BE: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 a1 ~", BF: "d2 e2 f2 f#2", BG: "g2!2 e2 d2 g2!2 e2 d2",
  BH: "g2 ~ g2@2 e2 ~ d2@2 g2 ~ g2@2 e2@2 d2@2", BI: "g2 ~ g2 ~ e2@2 d2 ~ g2 ~ g2 ~ e2@2 d2@2", BJ: "a1 ~@3",
  BK: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2 ~ b1@2 a1@2", BL: "a1@2 ~@2 a1@11 ~", BM: "g1 ~ g1@2 e1@2 d1@2 g1@2 g1@2 e1@2 d1@2",
  BN: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", BO: "d1@3 ~ d1@3 ~@9",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C@2 B D C E F@2 G@2 H@2 I J K@2 L@2 H@2 M N B O C@2 B@2 C@2 P C P C P Q ~@2 B@2 C@2 B@2 C@2 P C P C P R ~ S P@2 B
  D T U V ~ B@2 C@2 W D C X F@2 Y@2 H@2 Z AA F@2 AB@2 H@2 AC N B@2 C@2 B@2 AD C P C P C P AE@2 ~ B@2 C AF B@2 AG C P C P
  C P Q ~ S AH P B@2 AI P AJ ~ B@2 C@2 B@2 C@2 P C AK C P Q ~@2 B@2 C@2 B@2 C@2 P C P C P AE@2 AL AM@2
>`.pickRestart({
  A: "[d4,a4] ~ [d4,a4] ~ [d4,b4]@2 [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~", // D5 G D5 G D5
  B: "[d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~", // D5 G D5 G D5
  C: "[a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // A5 D A5 D A5
  D: "[d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,b4] ~", // D5 G D5 G
  E: "[a3,e4] ~ [a#3,f4]@3 ~ [b3,f#4]@3 ~ [c4,g4]@3 ~ [c#4,g#4] ~", F: "[[d4,a4]@27 ~ [d4,a4]@4]/2",
  G: "[[f3,c4]@27 ~ [f3,c4]@3 ~]/2", H: "[[g3,d4]@26 ~@2 [g3,d4]@3 ~]/2", I: "[a#3,f4]@15 ~",
  J: "[a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@3 ~ [a3,e4] ~ [a3,e4]@4", K: "[[d4,a4]@27 ~ [d4,a4]@4, g4 ~@31]/2",
  L: "[[f3,c4]@27 ~ [f3,c4]@4]/2", M: "[a3,e4]@4 ~@4 [a3,e4]@5 ~@3",
  N: "[a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@2 ~@2", // A5
  O: "[d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4]@2 [d4,b4] ~", // D5 G D5 G
  P: "[g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", Q: "[a3,e4] ~@3 [a3,e4]@12",
  R: "[a3,e4] ~ [a3,e4]@6", S: "[d3,d4] [e3,e4] [f3,f4] [f#3,f#4]",
  T: "[g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,e4] ~", // G5 C G5 C
  U: "[g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", V: "[a3,e4]@3 ~@13",
  W: "[d4,g4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~", // Dsus4 D5 G D5 G D5
  X: "[a3,e4] ~ [a#3,f4]@4 [b3,f#4]@3 ~ [c4,g4]@3 ~ [c#4,g#4]@2", Y: "[[f3,c4]@26 ~@2 [f3,c4]@3 ~]/2",
  Z: "[a#3,f4]@7 ~", AA: "[a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@3 ~ [a3,e4] ~ [a3,e4]@3 ~", AB: "[[f3,c4]@13 ~ [f3,c4]@2]/2",
  AC: "[a3,e4]@3 ~ [a3,e4]@3 ~", // A5
  AD: "[a3,d4,e4] ~ [a3,d4,e4] ~ [a3,f#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // Asus4 D A5 D A5
  AE: "[[a3,e4] ~ [a3,e4]@7 ~@7]/2", // A5
  AF: "[a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4,f#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // A5 D F#m7 A5 D A5
  AG: "[a3,e4] ~ [a3,e4] ~ [a3,f#4,g#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // A5 D A5 D A5
  AH: "[g3,d4,e4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", // Em7 G5 C G5 C G5
  AI: "[g3,d4,e4] ~ [f#3,g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", AJ: "[a3,e4] ~@7",
  AK: "[g3,d4] ~ [g3,d4] ~ [g3,a3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", // G5 A7 G5 C G5
  AL: "[a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@4", AM: "[[d3,a3,d4]@2 ~@2 a3@7 ~ a3 ~@19, ~@4 [d3,d4]@15 ~@13]/2",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@7 A B@2 C@4 D E B@2 F@2 G@2 H I ~@15 J K@2 ~@13 L M@2 N O P Q R ~@8 S B@2 F@2 G@2 T U V@2 F@2 G@2 W X Y@2 ~@13 J Z@2
  AA@2 Z@2 AB@2 AC AD AE AF AG AH ~ L AI@6 AJ ~@16 J AK@2 AA@2 AL@2 AM@3 AF AE AF AG AN ~ AO AP ~
>`.pickRestart({
  A: "[a2,e3]@2 [a#2,f3]@4 [b2,f#3]@3 ~ [c3,g3]@3 ~ [c#3,g#3]@2", B: "[d3,a3]/2", C: "[[f2,c3] [g2,d3]]/4",
  D: "[a#2,f3]", E: "[a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@4", F: "[f2,c3]/2", G: "[g2,d3]/2",
  H: "[a2,e3]@6 ~@2 [a2,e3]@5 ~@3", I: "[a2,e3]@2 ~@2 [a2,e3] ~ [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@4",
  J: "~@2 a3 b3@2 a3 f#3@2", K: "[d3@15 ~]/2", L: "[d2,d3] [e2,e3] [f2,f3] [f#2,f#3]",
  M: "[[g2,g3]@10 c#4@2 d4@2 ~@10 d4@7 ~, ~@14 g4@17 ~]/2", N: "~@4 [a4,d5]@2 ~@2 [a4,d5]@3 ~ b4 ~ [a4,d5]@2",
  O: "~@2 [a4,d5]@2 b4 ~ [a4,d5] ~ d4 ~ d4 ~ e4 ~ f#4 ~", P: "~@2 [a4,d5]@2 ~@2 b4 ~ [a4,d5]@4 b4 ~ [b4,e5]@2",
  Q: "~@2 [a4,d5]@2 ~@2 b4 ~ [a4,d5] ~ [a4,d5]@2 b4@2 a4 ~", R: "[a3,a4]@3 ~@13",
  S: "[a2,e3] [a#2,f3]@2 [b2,f#3]@2 [c3,g3]@2 [c#3,g#3]", T: "f3@7 ~, a#2@5 ~@3",
  U: "[a2,e3]@2 ~@2 [a2,e3]@2 [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@4", V: "[d2,d3]/2", W: "[a2,e3] ~ [a2,e3] ~",
  X: "[a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@2 ~@2 [a2,e3] ~ [a2,e3]@4", Y: "[[d2,d3]@11 ~@5]/2",
  Z: "[d3@10 a3 b3@2 a3 f#3@2]/2", AA: "[a2@10 a3 b3@2 a3 f#3@2]/2", AB: "[a2@10 e3 f#3@2 e3 d3@2]/2", AC: "g2",
  AD: "a2", AE: "[g2,d3]", AF: "[a2,e3]", AG: "[g2,d3,g3]", AH: "[a2,e3,a3]@2 ~@2 [a2,e3,a3]@3 ~@9",
  AI: "[g3@10 a#3@2 b3@2 [c#4,g4]@2 ~@2 g4@12 ~@4 [a4,d5] ~@5 [a4,d5]@5 ~@5 [a4,d5] ~@5 [a4,d5]@8 a#4@2 b4@2 d5@2 a#4@2 b4@2 d5@2 a#4@2 b4 ~ d5@2 a#4 ~ b4@2 e5@2 ~@2 d5@2 ~@4, g2@31 ~@65, ~@9 d4@38 ~]/6", // C#dim D5
  AJ: "[g#4,a4,d5] ~@7", AK: "[d3@19 ~ a3@2 b3@4 a3@2 f#3@4]/2", AL: "[~@10 a3 b3@2 a3 f#3@2, d3@29 ~@3]/2",
  AM: "[~@10 e3 f#3@2 e3 ~@2 g2@8, a2@2 ~, ~@7 d3@5]/3", AN: "[a2,e3,a3] ~ [a2,e3,a3]@6", AO: "[a2,a3]",
  AP: "[d2,d3]@3 ~ [d2,d3]@9 ~ d2 ~", // D
})).s("gm_overdriven_guitar").gain(0.48).pan(0.7)

// chords · piano · "A.PIANO"
const piano = note(`<
  A@2 B@2 C@2 D E F@2 G@2 H@2 I J K@2 L@2 M@2 N O P@2 Q@2 R@2 S@2 T U V W X Y@2 ~ Z@2 Q@2 K@2 AA@2 AB AC AD AE AF AG@2
  AH AI@2 AJ AK@2 AL AM ~ AN@2 AA@2 AO@2 AP@2 AQ@2 AR@2 AS@2 AT AU AV@2 AW@2 AX@2 AY AZ BA@2 Q@2 BB@2 BC@2 BD BE BF D BG
  BH@2 ~ BI@2 BJ@2 BK@2 BL@2 BM BN BO BP BQ BR ~ BS BT@6 BU ~ BV@2 BW@2 K@2 BX@2 BF BY BZ CA CB Y@2 CC CD@2 CE@2 CF@2
  CG@2 CH AC CI CJ CI CK@2 ~ CL@2
>`.pickRestart({
  A: "[[f#4,a4]@29 ~@3, [d3,d4]@27 ~@5]/2", B: "[[c#4,e4,a4]@13 ~@3, a3@3 ~]/2", C: "[[d3,d4,f#4,a4]@25 ~@7]/2",
  D: "[a3,c#4,e4,a4]@11 ~@5", E: "[a2,a3] [a#2,a#3]@2 [b2,b3]@2 [c3,c4]@2 c#3, ~@14 c#4 ~", F: "[d3,d4]/2",
  G: "[[f3,c4]@15 ~, a3@7 ~]/2", H: "[[g2,g3]@31 ~, [b3,d4]@29 ~@3]/2", I: "[a#2,f3,a#3,d4]@15 ~, e3 ~@15",
  J: "[a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@2 ~@2", // A
  K: "[[d3,a3,d4,f#4]@15 ~]/2", L: "[[f2,a3,c4,f4]@15 ~]/2", M: "[[g2,g3,b3,d4]@31 ~]/2",
  N: "[a2,a3,c#4,e4]@5 ~@3 [a2,a3,c#4,e4]@6 ~@2", // A
  O: "[a2,a3,c#4,e4]@2 ~@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@2 ~@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4]@2 ~@2, ~@12 e4 ~@3", // A
  P: "[[a3,d4,f#4]@31 ~, d3@29 ~@3]/2", Q: "[[a2,a3,c#4,e4]@15 ~]/2", R: "[~ c#3 ~@30, d3, [a3,d4,f#4]@15 ~]/2",
  S: "[[a3,c#4]@7 ~, e4@15 ~, a2@3 ~]/2", T: "[g3,b3,d4,g4]@7 ~", U: "[a3,c#4,e4]@15 ~", V: "[g3,g4]@7 ~, [b3,d4]@3 ~",
  W: "[a3,c#4]@7 ~, [e4,a4]@3 ~", X: "[g3,d4,g4]@7 ~, b3@3 ~", Y: "[[a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@9 ~@5]/2",
  Z: "[[d3,a3,d4,f#4]@31 ~]/2", AA: "[[a2,a3,c#4,e4]@13 ~@3]/2", AB: "[g2,g4]@15 ~, [b3,d4]@13 ~@3",
  AC: "[a2,a3,c#4,e4]@7 ~", AD: "[g2,b3,d4,g4]@11 ~@5", AE: "[a3,c#4,e4]@13 ~@3, [a2,a4]@11 ~@5",
  AF: "[b3,d4,g4]@5 ~@3, g3 ~", AG: "[[a2,a3,c#4,e4,a4] ~ [a2,a3,c#4,e4,a4]@11 ~@3]/2",
  AH: "[d3,d4] [e3,e4] [f3,f4] f#3, ~@6 f#4 ~", AI: "[~@18 g5!2 ~@4 [d5,g5]@4 ~@4, g3@31 ~, g4@27 ~@5, ~@9 d5 ~@6]/2",
  AJ: "~@2 f6 ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~", // Dm
  AK: "[d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~", // Dm
  AL: "[d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [a5,d6] ~ d6 ~ a5 ~", AM: "~ [a5,b5] ~@14",
  AN: "[[a3,d4,f#4]@29 ~@3, d3@31 ~]/2", AO: "[[d3,f#4]@15 ~, [a3,d4]@7 ~]/2", AP: "[[a2,a3,c#4,e4]@21 ~@11]/2",
  AQ: "[[d3,d4]@15 ~]/2", AR: "[[f2,f3,a3,c4]@15 ~]/2", AS: "[[g2,g3]@7 ~, [b3,d4]@13 ~@3]/2",
  AT: "[a#2,f3,a#3,d4]@13 ~@3", // A#
  AU: "[a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2, ~@12 a2 ~@3", // A
  AV: "[~ c#4 ~@30, [d3,a3,d4,f#4]@29 ~@3]/2", AW: "[[c3,a3,c4,f4]@15 ~, f2@7 ~]/2",
  AX: "[[g2,g3,b3]@7 ~, [d3,d4]@15 ~]/2", AY: "[a2,e3,a3,c#4,e4]@6 ~@2 [a2,e3,a3,c#4,e4]@5 ~@3",
  AZ: "[a2,a3,c#4,e4]@2 ~@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~", // A
  BA: "[~ d3@31, [a3,d4,f#4]@31 ~, ~ c#4 ~@30]/2", BB: "[~ d#4 ~@30, [d3,a3,d4,f#4]@31 ~]/2",
  BC: "[~ c#4@28 ~@3, [a3,e4]@15 ~, a2@25 ~@7]/2", BD: "[g3,b3,d4]@7 ~, g4@3 ~", BE: "~ a3@12 ~@3, [c#4,e4,a4]@13 ~@3",
  BF: "[b3,d4,g4]@11 ~@5, g3@15 ~", BG: "[b3,d4,g4]@13 ~@3, g2@15 ~, f2 ~@15",
  BH: "[[a2,a3,c#4,e4,a4]@2 ~@2 [a2,a3,c#4,e4,a4]@25 ~@3]/2", BI: "[[d3,f#4], [a3,d4]@15 ~]/2",
  BJ: "[[a2,a3,c#4,e4]@31 ~]/2", BK: "[[d3,f#4]@31 ~, [a3,d4]@29 ~@3]/2", BL: "[[a3,e4]@15 ~, [a2,c#4]@7 ~]/2",
  BM: "[g3,g4]@15 ~, [b3,d4]@13 ~@3", BN: "[a3,c#4]@13 ~@3, e4@15 ~", BO: "[b3,d4,g4]@13 ~@3, g2",
  BP: "[c#4,e4,a4]@13 ~@3, a2@15 ~", BQ: "[b2,d4,g4,b4]@11 ~@5", BR: "[a2,c#4,e4,a4]@2 ~@2 [a2,c#4,e4,a4]@11 ~",
  BS: "[d3,d4]@4 [e3,e4]@3 ~ [f3,f4]@4 [f#3,f#4]@4", // D E F F#
  BT: "[g4@13 ~@5 d5 ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ d5@2 ~@2, d4@95 ~, g3@5 ~@11]/6", // Dm
  BU: "a4@5 ~@11", BV: "[[d3,a3,f#4]@31 ~, d4@29 ~@3]/2", BW: "[[a2,a3,c#4,e4]@29 ~@3]/2", BX: "[[a2,a3,c#4,e4]@7 ~]/2",
  BY: "[a3,c#4,e4,a4]@3 ~", BZ: "[b3,d4,g4]@3 ~, g3", CA: "[a3,c#4,e4,a4]@13 ~@3", CB: "[b3,d4,g4]@3 ~, g3@7 ~",
  CC: "~@12 [a2,a4]@3 ~", CD: "[[d3,d4]@3 ~@13 [a3,f#4]@15 ~, ~ d3@7, ~@2 d4@13 ~]/2",
  CE: "[[a2,a3,c#4,e4]@2 ~@7 f#4 ~@22, ~ [a2,e4]@3, ~@4 [a3,c#4]@11 ~]/2", // A A5 A
  CF: "[[d3,a3,d4,f#4]@3 ~@5 [d3,f#4]@24, ~@4 a3@11 ~, ~@2 d4@5 ~]/2", // D
  CG: "[~ a2@2 ~@5 [a3,c#4]@20 ~@4, [a3,c#4,e4]@3 ~@5 a2@17 ~@7, ~ f#4 ~@6 e4@22 ~@2]/2", // A
  CH: "[b3,d4,g4]@13 ~@3, g2@15 ~", CI: "[g2,b3,d4,g4]@7 ~", CJ: "[a2,a3,e4]@7 ~, c#4@3 ~",
  CK: "[[a3,c#4,e4] ~ [a2,a3,c#4,e4]@9 ~@5, a2 ~@31]/2", CL: "[[d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4]@19 ~@9, ~ f#4 ~@6]/2",
})).s("gm_piano").gain(0.54).pan(0.4)

// other · drawbar organ · "ELEC ORGAN"
const drawbar_organ = note(`<
  A B C@2 D E F G H ~@15 I B J@2 K B J@2 ~@6 L M N B O@2 P@2 Q@2 ~@7 R S ~@3 T@2 ~@2 I B U@2 K V W G X ~@15 Y@2 Z@2 AA@2
  AB@2 ~@6 AC AD N B O@2 K B AE@2 ~@7 R AF@2 AG AH AI AJ AK ~ AL@2 AE@2 I B AE@2 ~@6 L AM K B AN@2 I B AO@2 ~@10
>`.pickRestart({
  A: "a5@7 ~ a5@7 ~", B: "~@2 a5 b5@2 a5 f#5@2", C: "[e5@9 ~@7]/2", D: "a5@7 ~ a5@5 ~@3",
  E: "~@2 b5 d6@2 b5 a5@2, ~@3 a5@2 ~@11", F: "e5@13 ~@3", G: "a4 a#4@2 b4@2 c5@2 c#5", H: "d5@3 ~@5", I: "a5@3 ~ a5@4",
  J: "[e5@7 ~ e5@13 ~@11]/2", K: "a5@7 ~ a5@8", L: "~ d6 b5 a5", M: "d6@4 a5@2 b5@3 ~ a5@2 f#5@2 ~@2", N: "d5@7 ~ a5@8",
  O: "[e5@7 ~ e5@10 ~@14]/2", P: "[a5@6 ~@2 a5@11 ~ a5@2 b5@4 a5@2 f#5@4]/2", Q: "[e5@7 ~ e5@15 ~@9]/2",
  R: "d5 e5 f5 f#5", S: "g5", T: "[~@4 f5@2 ~@2 f5@2 d5 ~@3 f5@4 d5 ~@3 f5@4 d5 ~ f5@2 ~@2]/2",
  U: "[e5@7 ~ e5@21 ~@3]/2", V: "~ a5 b5 d6@2 b5 a5@2", W: "e5@7 ~ e5@6 ~@2", X: "d5@3 ~",
  Y: "[a5@7 ~ a5@11 ~ a5@2 b5@4 a5@2 f#5@4]/2", Z: "e5/2", AA: "[a5@7 ~ a5@10 ~@2 a5@2 b5@4 a5@2 f#5@3 ~]/2",
  AB: "[e5@3 ~ e5@9 ~@3]/2", AC: "~@5 d6@3 b5@4 ~ a5@3", AD: "d6@2 a5 b5@2 a5 f#5 ~", AE: "[e5@7 ~ e5@22 ~@2]/2",
  AF: "g5/2", AG: "f5 d5 ~ d5 f5 d5 ~ d5", AH: "f5@2 d5@2 f5@2 d5@2 f5@2 d5@3 ~ d5@2",
  AI: "f5@2 d5@2 ~@2 d5@2 f5@2 d5@3 ~ d5@2", AJ: "f5@2 d5@2 f5@2 d5@2 f5@2 d5@3 ~ d5 ~", AK: "a5 ~@7",
  AL: "[a5@7 ~ a5@10 ~@2 a5@2 b5@4 a5@2 f#5@4]/2", AM: "d6@4 a5@2 b5@4 a5@2 f#5@3 ~", AN: "[e5@7 ~ e5@20 ~@4]/2",
  AO: "[e5@7 ~ e5@16 ~@8]/2",
})).s("gm_drawbar_organ").gain(0.42).pan(0.6)

// other · alto sax
const alto_sax = note(`<
  ~@26 A B ~@2 C D ~@7 E F ~ G H ~@2 A I ~@7 J K ~@33 A L ~@2 A B ~@7 E M ~ A N ~@2 A N O ~@6 J P ~@9 Q R ~@2 S@2 ~@7 E
  T ~ A U ~@2 V W ~@7 X Y ~
>`.pickRestart({
  A: "~@4 a3@2 ~@2 a3@5 ~@3", B: "a3@2 ~@2 a3 ~ a3@2 ~@2 a3 ~ a3@3 ~", C: "~@4 a3@3 ~ a3@4 ~@4",
  D: "a3@3 ~ a3 ~ a3@3 ~ a3 ~ a3@3 ~", E: "~@2 a4 b4@2 a4 f#4@2", F: "d4@7 ~", G: "~@2 a3 ~ a3@2 ~ a3",
  H: "~@2 a3 ~ a3@3 ~ a3@5 ~@3", I: "a3@3 ~ a3 ~ a3@8 ~@2", J: "d4 e4 f4 f#4", K: "g4@3 ~, f#4 ~@15",
  L: "a3@3 ~ a3 ~ a3@3 ~ a3 ~ a3@4", M: "d4@13 ~@3", N: "a3@2 ~@2 a3 ~ a3@3 ~ a3 ~ a3@4", O: "a3 ~@15", P: "g4@7 ~@9",
  Q: "~@3 a3@3 ~@2 a3@4 ~@2 a3@2", R: "~@2 a3 ~ a3@3 ~ a3@3 ~ a3@3 ~",
  S: "[~@4 a3@2 ~@2 a3@4 ~@2 a3@4 ~@2 a3 ~ a3@3 ~ a3 ~ a3@4]/2", T: "d4@15 ~", U: "a3@2 ~@2 a3 ~ a3@2 ~@2 a3 ~ a3@4",
  V: "~@2 a3 ~ a3@3 ~", W: "a3@2 ~@2 a3 ~ a3@3 ~ a3 ~ a3@3 ~", X: "a4", Y: "d4@2 ~@2 d4@3 ~@9",
})).s("gm_alto_sax").gain(0.5).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A@8 B ~ B ~ B ~ B@2 A@21 C ~ D A@13 C B A@7 B ~ A@8 B ~ B ~ B ~ B@2 A@21 C ~@2 A@13 C ~ A@7 B ~ A@13 C ~@2 A@13 C ~@2
  C ~
>`.pickRestart({
  A: "x!2", B: "x", C: "x!2 ~@2", D: "~@3 x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  A@7 B C D ~ D ~ E ~ F A@3 G A G A F A@3 G A@3 H A@4 I ~@2 F A@7 H A@4 I ~@2 J A@6 ~ E A@7 K ~ E ~ D ~ D ~ F A@7 F A@7
  H A@4 I ~@2 F A@7 H A@4 I ~@2 L A@6 ~ D A@7 H A@5 ~@2 F A@7 H A@5 ~@2 M C ~
>`.pickRestart({
  A: "~ x ~ x", B: "x!2 ~ x ~ x ~ x", C: "x", D: "~@11 x!2 ~@3", E: "~@5 x!2 ~", F: "x ~ x!2 ~ x!2 ~",
  G: "~@4 x ~@6 x!2 ~@3", H: "~@2 x ~@2 x!3", I: "~@2 x ~@2 x!2 ~", J: "x ~ x!5 ~ x!3 ~ x ~@3",
  K: "x ~@2 x ~@2 x ~@3 x ~@3 x ~", L: "x ~ x!4 ~ x!4 ~ x ~@3", M: "x!2 ~ x!4 ~ x!4 ~ x!2 ~",
// … 18 more lines