Strudelify

Take On Me

Reel Big Fish

KeyG majorTempo169 bpm
0:00/0:00
// Take On Me — Reel Big Fish
// 169 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 158 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(169/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 · slap bass 1 · "Slap Bass 2"
const bass = note(`<
  ~@8 A@2 B C D@2 E@2 F G H I J K L K M K L I J K L N O P Q R S T U V W X Y Z AA AB@5 AC AD@4 AE@2 AF@2 AG AH AI AJ AK
  AL AM AN@3 AO@4 AP AQ AR AS AT@3 AU AV AW AX AY AZ@7 BA@2 ~@3 BB BC@2 BD@2 BE@2 BD@2 BF@2 BG@2 BE@2 BH@2 BI@2 BJ@2
  BK@2 BL BM BN BO BP BQ BR BS BT@2 BU BV BW@2 BX BY BZ@2 BR CA@2 CB CC CD@2 CE CC CF@2 CG@2 CH@2 CI@4 ~
>`.pickRestart({
  A: "[~@23 a2@3 ~@8 a1@3 ~@3 a1@2 ~ a1@2 ~ a2@2]/2", B: "~@2 a2@3 ~@2 a1@2 ~@7 a1@2 ~ a1@2 ~ a2@2",
  C: "~@10 a1@3 ~@4 a1@2 ~ a1@2 a2@2", D: "[~ a2@3 ~@3 a1@3 ~@13 a1@2 ~ a1@2 ~ a1@2 ~@13 d2@2 ~@2]/2",
  E: "[~@2 d2@2 ~@4 d2@2 ~ d2@8 ~@4 g1@2 ~ g1@2 ~ g1@2 ~@13 c2@2 ~@2]/2", F: "~@2 c2@2 ~@4 c2@2 ~ b1@9 ~@4",
  G: "a1@2 a1@2 ~ a1@2 ~@13 d2@2 ~@2", H: "~ d2 ~@2 d2 ~ d2@4 ~@2", I: "g1@2 ~ g1@2 ~ g1@2 ~@13 c2@2 ~",
  J: "~@3 c2@2 ~@4 c2@2 ~ b1@9 ~@3", K: "a1@2 ~ a1@2 ~ a1@2 ~@13 d2@2 ~", L: "~@3 d2@2 ~@4 d2@2 ~ d2@8 ~@4",
  M: "~@3 d2@2 ~@4 d2@2 ~ d2@9 ~@3", N: "~ g1@2 g1@2 ~ g1@2 ~@13 c2@2 ~", O: "~@3 c2@2 ~@5 c2@2 ~ b1@9 ~@2",
  P: "~ a1@2 ~ a1@2 ~ a1@2 ~@13 d2@2", Q: "~@4 d2@2 ~@4 d2@2 ~ d2@8 ~@3", R: "~ e2@2 ~ e2@2 ~ e2@2 ~@13 c2@2",
  S: "~@4 c2@2 ~@4 e3@3 d3@3 c3@3 b2@3 a2@2", T: "~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@4 ~@2 g1@4 ~",
  U: "~ f#1@4 ~@2 f#1@5 ~ f#1@4 ~@2 f#1@5", V: "~ e1@4 ~@2 e1@4 ~@2 e1@5 ~ e1@5",
  W: "~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2", X: "~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@5 ~ g1@5",
  Y: "~ f#1@4 ~@2 f#1@5 ~ f#1@5 ~ f#1@5", Z: "~ e1@4 ~@2 e1@5 ~ e1@5 ~ e1@5",
  AA: "~ c2@2 ~ c2@2 ~ c2 ~@2 c2 ~@2 c2@2 ~ c2@2 ~ c2@2 ~ c2@2",
  AB: "[~@2 g1@2 ~ g1@2 g1@2 ~@14 g1@2 ~ f#1@2 ~ f#1@2 ~ f#1@3 ~@12 f#1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~@13 c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ e2@2 ~ d2@2 ~ c2@2 ~ g1@4 ~@2 g1@4 ~@2 g1@3 ~@3 g1@4]/5",
  AC: "~@2 f#1@5 ~ f#1@4 ~@2 f#1@5 ~ f#1@4",
  AD: "[~@2 c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ d2@2 ~ d2 ~@2 d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ a1@2 ~ a1@2 ~ a1@2 ~@13 d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@8 ~@2]/4",
  AE: "[~@2 g1@2 ~ g1@2 ~ g1@2 ~@13 c2@2 ~@4 c2@2 ~@4 c2@2 ~ b1@9 ~]/2",
  AF: "[~@2 a1@2 ~ a1@2 ~ a1@2 ~@13 d2@2 ~@4 d2@2 ~@5 d2@2 ~ d2@8 ~]/2", AG: "~@3 g1@2 ~ g1@2 ~ g1@2 ~@13",
  AH: "c2@2 ~@4 c2@2 ~@4 c2@2 ~ b1@9", AI: "~@3 a1@2 ~ a1@2 ~ a1@2 ~@13", AJ: "d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@8 ~",
  AK: "~@3 e2@2 ~ e2@2 ~ e2@2 ~@13", AL: "c2@2 ~@4 c2@2 ~@4 e3@3 d3@3 c3@3 b2@3",
  AM: "a2@3 g1@2 ~ g1@2 ~ g1@4 ~@2 g1@4 ~@2 g1@3",
  AN: "[~@3 f#1@4 ~@2 f#1@5 ~ f#1@4 ~@2 f#1@5 ~ e1@4 ~@2 e1@4 ~@2 e1@5 ~ e1@6 c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~]/3",
  AO: "[c2@2 ~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@5 ~ g1@5 ~ f#1@4 ~@2 f#1@5 ~ f#1@5 ~ f#1@5 ~ e1@4 ~@2 e1@5 ~ e1@5 ~ e1@5 ~ c2@2 ~ c2@2 ~ c2@2 ~@2 c2@2 c2@2 ~@2 c2@2 ~ c2@2]/4",
  AP: "~ c2@2 ~ g1@2 ~ g1@2 ~ g1@2 ~@12", AQ: "~ g1@2 ~ f#1@2 ~ f#1@2 ~ f#1@3 ~@11",
  AR: "~ f#1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~@12", AS: "~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ e2@2 ~ d2@2",
  AT: "[~ c2@2 ~ g1@4 ~@2 g1@4 ~@2 g1@3 ~@3 g1@4 ~@2 f#1@5 ~ f#1@4 ~@2 f#1@5 ~ f#1@5 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2]/3",
  AU: "~ c2@2 ~ d2@2 ~ d2 ~@2 d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2", AV: "~ d2@2 ~ b1@2 ~@10 b0@2 ~@4 f#1@2",
  AW: "~ b0 ~@2 b1@2 ~ b1@2 ~@4 b0@2 ~@7 b1@2", AX: "~ b0 ~@2 f2@2 ~@10 f1@2 ~@4 c2@2",
  AY: "~ f1 ~@2 f2@2 ~ f2@2 ~@4 f1@2 ~@7 f2@2",
  AZ: "[~ f1 ~@2 b1@2 ~@11 b0@2 ~@4 f#1@2 ~ b0 ~@2 b1@2 ~ b1@2 ~@4 b0@2 ~@7 b1@2 ~ b0 ~@2 f2@2 ~@10 f1@2 ~@4 c2@2 ~ f1 ~@2 f2@2 ~ f2@2 ~@4 f1@2 ~@7 f2@2 ~ f1 ~@2 a2@2 ~@10 a1@2 ~@4 e2@2 ~ a1 ~@2 a2@2 ~ a2@2 ~@4 a1@2 ~@7 a2@2 ~ a1 ~@2 d2@2 ~@10 d1@2 ~@4 a1]/7",
  BA: "[~@2 d1 ~@2 d2 ~@2 d2 ~@2 d1@4 ~@2 d1@4 ~@2 d1@4 ~@21]/2", BB: "~@5 a1@2 ~ a1@2 ~ a1@2 ~@11",
  BC: "[~@2 d2@2 ~@4 d2@2 ~@4 d2@2 ~@2 d2@8 ~@4 g1@2 ~ g1@2 ~ g1@2 ~@10]/2",
  BD: "[~@3 c2@2 ~@4 c2@2 ~@4 c2@2 ~ b1@9 ~@3 a1@2 ~ a1@2 ~ a1@2 ~@10]/2",
  BE: "[~@3 d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@8 ~@4 g1@2 ~ g1@2 ~ g1@2 ~@10]/2",
  BF: "[~@3 d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@8 ~@4 a1@2 ~ a1@2 ~ a1@2 ~@10]/2",
  BG: "[~@3 d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@9 ~@3 a1@2 ~ a1@2 ~ a1@2 ~@10]/2",
  BH: "[~@3 c2@2 ~@4 c2@2 ~@4 c2@2 ~@2 b1@9 ~@3 a1@2 ~ a1@2 ~ a1@2 ~@9]/2",
  BI: "[~@4 d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@8 ~@4 g1@2 ~ g1@2 ~ g1@2 ~@9]/2",
  BJ: "[~@4 c2@2 ~@4 c2@2 ~@4 c2@2 ~ b1@9 ~@3 a1@2 ~ a1@2 ~ a1@2 ~@9]/2",
  BK: "[~@4 d2@2 ~@4 d2@2 ~@4 d2@2 ~ d2@8 ~@4 e2@2 ~ e2@2 ~ e2@2 ~@9]/2", BL: "~@4 c2@2 ~@4 c2@2 ~@4 e3@3 d3@3 c3@2",
  BM: "~ b2@3 a2@3 g1@2 ~ g1@2 ~ g1@4 ~@2 g1@4 ~", BN: "~ g1@4 ~@2 f#1@4 ~@2 f#1@5 ~ f#1@4 ~",
  BO: "~ f#1@5 ~ e1@4 ~@2 e1@4 ~@2 e1@5", BP: "~ e1@5 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2",
  BQ: "~ c2@2 ~ c2@2 ~@2 g1@2 g1@2 ~ g1@4 ~@2 g1@5", BR: "~@2 g1@5 ~ f#1@4 ~@2 f#1@5 ~ f#1@4",
  BS: "~@2 f#1@5 ~ e1@4 ~@2 e1@5 ~ e1@4",
  BT: "[~@2 e1@5 ~ c2@2 ~ c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~ c2@2 ~ c2 ~@2 c2@2 ~ g1@2 ~ g1@2 ~ g1@2 ~@8]/2",
  BU: "~@5 g1@2 ~ f#1@2 ~ f#1@2 ~ f#1@3 ~@7", BV: "~@5 f#1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~@8",
  BW: "[~@5 c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ e2@2 ~ d2@2 ~ c2@2 ~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@4]/2",
  BX: "~@2 g1@4 ~@2 f#1@4 ~@2 f#1@5 ~ f#1@4", BY: "~@2 f#1@5 ~ e1@4 ~@2 e1@4 ~@2 e1@4",
  BZ: "[~@2 e1@5 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@4]/2",
  CA: "[~@2 f#1@5 ~@2 e1@4 ~@2 e1@5 ~ e1@5 ~ e1@5 ~ c2@2 c2@2 ~@2 c2@2 ~ c2@2 ~ c2@2 ~]/2",
  CB: "c2@2 ~ c2 ~@2 c2@2 ~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@3", CC: "~@3 g1@4 ~@2 f#1@4 ~@2 f#1@5 ~ f#1@3",
  CD: "[~@3 f#1@5 ~ e1@4 ~@2 e1@4 ~@2 e1@5 ~ e1@5 ~ c2@2 ~ c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~]/2",
  CE: "c2@2 ~ c2@2 ~ c2@2 ~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@3",
  CF: "[~@3 f#1@5 ~ e1@4 ~@2 e1@4 ~@2 e1@5 ~ e1@5 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~]/2",
  CG: "[c2@2 ~ c2@2 ~ c2@2 ~ g1@2 ~ g1@2 ~ g1@4 ~@2 g1@5 ~ g1@5 ~ f#1@4 ~@2 f#1@5 ~ f#1@3]/2",
  CH: "[~@3 f#1@5 ~ e1@4 ~@2 e1@5 ~ e1@5 ~ e1@5 ~ c2@2 ~ c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~]/2",
  CI: "[~ c2@2 ~ c2 ~ c2@2 ~@2 g1@2 g1@2 ~@2 g1@4 ~@2 g1@4 ~@2 g1@4 ~@2 f#1@4 ~@2 f#1@5 ~ f#1@4 ~@2 f#1@5 ~ e1@4 ~@2 e1@4 ~@2 e1@5 ~ e1@5 ~@15]/4",
})).s("gm_slap_bass_1").gain(0.71)

// other · overdriven guitar · "Elec Guitar 1"
const overdriven_guitar = note(`<
  ~@4 A@5 ~ B@3 C D E F G H I J K L M N ~@24 O P Q R ~@24 S T U V W@2 ~@2 X Y@2 Z@3 AA@2 AB AC@4 AD@2 AE AF AG AH AI AJ
  AK AL AM ~@49
>`.pickRestart({
  A: "[~@80 g4@39 ~, ~@23 [c5,e5,a5]@96 ~, ~@12 [c6,e6]@47 ~, ~@71 b4@18 ~@31]/5", B: "[~@23 b3@9 b4@9 g4@26 ~@4 e5]/3",
  C: "~@2 e5@2 ~ c5@2 ~ a4@2 ~@4 a4@2 ~@4 d5@2 ~@2", D: "~@2 d5@2 ~@4 d5@2 ~ f#5 ~@2 f#5@2 ~ g5@2 ~ a5@2 ~ g5",
  E: "~@2 g5@2 ~ g5@2 ~ d5@2 ~@4 c5 ~@5 e5@2 ~@2", F: "~@2 e5@2 ~@4 e5@2 ~ d5@2 ~ d5@2 ~ e5 ~@2 d5@2 ~ e5",
  G: "~@2 e5@2 ~ c5@2 ~ a4 ~@5 a4@2 ~@4 d5@2 ~@2", H: "~@2 d5@2 ~@4 d5@2 ~@2 f#5@2 ~ f#5 ~@2 g5 ~@2 a5@2 ~",
  I: "g5 ~@2 g5@2 ~ g5 ~@2 d5 ~@5 c5 ~@5 e5 ~@2", J: "~@3 e5@2 ~@4 e5@2 ~ d5 ~@2 d5@2 ~ e5@2 ~ d5@2 ~",
  K: "e5 ~@2 e5@2 ~ c5@2 ~ a4@2 ~@4 a4@2 ~@4 d5@2 ~", L: "~@3 d5@2 ~@4 d5@2 ~ f#5@2 ~ f#5@2 ~ g5@2 ~ a5@2 ~",
  M: "g5 ~@2 g5@2 ~ g5 ~@2 e5@2 ~@4 c5 ~@5 e5@2 ~", N: "~@3 e5@2 ~@4 e5@2 ~ d5@2 ~ d5@2 ~ d5 ~@5",
  O: "~ g4@4 ~@3, ~ [b4,d5,g5]@6 ~@5", P: "~ [f#5,a5]@4 ~@3, ~ [a4,d5]@6 ~@5", Q: "~ [c5,e5]@4 ~@3, ~ [g5,c6]@6 ~@5",
  R: "~ [f#5,d6]@4 ~@3, ~ [d5,a5]@6 ~@5", S: "~@5 [g4,g5]@12 ~@7, ~ [b4,d5]@3 ~@2",
  T: "~@5 [f#5,a5]@12 ~@7, ~ [a4,d5]@3 ~@2", U: "~@5 [c5,e5]@12 ~@7, ~ [g5,c6]@3 ~@2",
  V: "~@5 [f#5,d6]@12 ~@7, ~ [d5,a5]@3 ~@2", W: "[~ [f#4,f#5]@4 ~@3, ~ d5@6 ~@5, ~@5 b4@24 ~@19]/2",
  X: "~@4 f#5 ~ f5 e5 ~ d#5 d5 ~ d#5 e5 ~ f5 ~ f#5 f5 ~ e5 d#5 d5 ~",
  Y: "d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5",
  Z: "[d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ [b4,b5]@12 [b4,f#5,b5] f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5, ~@32 [c5,c6]@26 ~@7 [g4,g5]@7]/3", // B B5 C G
  AA: "[d#5 ~ e5 f5 ~@2 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 d#5 ~ d5 d#5 ~ e5 f5 ~ f#5 f5 ~ e5 ~ d#5 d5, ~@5 [g4,f#5,g5]@2 ~ [a4,a5]@38 ~@2]/2", // Gmaj7 A
  AB: "d#5 ~ e5 ~ f5 e5 ~@2 e5@2 ~ c5@2 ~ a4@2 ~@4 a4@2 ~@2",
  AC: "[~@2 d5@2 ~@4 d5@2 ~@4 d5@2 ~ f#5@2 ~ f#5@2 ~ g5@2 ~ a5@2 ~ e5 ~@2 e5@2 ~ c5@2 ~ a4@2 ~@4 a4@2 ~@2]/2",
  AD: "[~@2 d5@2 ~@4 d5@2 ~@4 d5@2 ~@2 f#5 ~@2 f#5@2 g5@2 ~@2 a5@2 ~ g5 ~@2 g5@2 ~ g5 ~@2 d5@2 ~@4 c5 ~@2]/2",
  AE: "~@3 e5@2 ~@4 e5@2 ~@4 e5@2 ~ d5@2 ~ d5@2 ~", AF: "e5@2 ~ d5@2 ~ e5 ~@2 e5@2 ~ c5@2 ~ a4 ~@5 a4@2 ~",
  AG: "~@3 d5@2 ~@4 d5@2 ~@4 d5@2 ~ f#5@2 ~ f#5 ~@2", AH: "g5@2 ~ a5@2 ~ g5 ~@2 g5 ~@2 g5 ~@2 d5 ~@5 c5 ~@2",
  AI: "~@3 e5 ~@5 e5 ~@5 e5@2 ~ d5 ~@2 d5@2 ~", AJ: "e5@2 ~ d5@2 ~ e5 ~@5 c5@2 ~ a4@2 ~@4 a4@2 ~",
  AK: "~@3 d5@2 ~@4 d5@2 ~@4 d5@2 ~@4 f#5@2 ~", AL: "g5@2 ~ a5@2 ~ g5 ~@2 g5@2 ~ g5 ~@8 c5 ~@2",
  AM: "~@18 d5@2 ~ d5@2 ~",
})).s("gm_overdriven_guitar").gain(0.55).pan(0.3)

// chords · string ensemble 1 · "String Sect 3"
const string_ensemble_1 = note(`<
  ~@8 A@8 B@3 C D E F E F G H I J G H K L M N O P Q@5 R S@7 ~@3 T@6 U@8 V@8 W@3 ~@5 X ~ Y@2 Z@7 ~@3 AA@2 AB@8 AC@6 AD@8
  AE@4 AF@8 AG@6 AH@2 AI@8 AJ@4 AK@5
>`.pickRestart({
  A: "[~@23 [e3,a3,c4]@96 [a4,c5,e5]@24 [a4,d5,f#5]@24 [b4,d5,g5]@24 [c5,e5,g5]]/8", // Am D G C
  B: "[~@23 [a4,c5,e5]@24 ~ f#5@24, ~@47 [a4,d5]@24 ~]/3", C: "[b4,d5,g5]", D: "[c5,e5,g5]", E: "[a4,c5,e5]",
  F: "[a4,d5,f#5]", G: "[a3,c4,e4]", H: "[a3,d4,f#4]", I: "[g3,b3,d4]", J: "[g3,c4,e4]", K: "~ b3@23, [g3,d4]",
  L: "~ [g3,c4,e4]@23", M: "~ [a3,c4,e4]@23", N: "~ [a3,d4,f#4]@23", O: "~ [b3,e4,g4]@23", P: "~ [c4,e4,g4]@23",
  Q: "[~ [b3,g4]@24 [a3,f#4]@24 [b3,e4,g4]@48 [d4,g4,b4]@23, ~ d4@48 ~@71]/5", R: "~ [f#4,a4,d5]@23",
  S: "[~ [g4,b4,e5]@48 ~ [b2,b3]@24 [d3,d4]@24 [e3,e4]@48 ~@22]/7", // Em B D E
  T: "[~ [a3,c4,e4]@12 [a3,d4,f#4]@12 [g3,b3,d4]@12 [g3,c4,e4]@12 [a3,c4,e4]@12 [a3,d4,f#4]@11]/6", // Am D G C Am D
  U: "[~ [g3,b3,d4]@8 [g3,c4,e4]@8 [a3,c4,e4]@8 [a3,d4,f#4]@8 [b3,e4,g4]@8 [c4,e4,g4]@8 [b3,g4]@8 [a3,f#4]@7, ~@49 d4@15]/8", // G C Am D Em C Em D
  V: "[~@3 [b3,e4,g4]@48 [d4,g4,b4]@24 [f#4,a4,d5]@24 [g4,b4,e5]@48 ~ [b2,b3]@24 [d3,d4]@20]/8", // Em G D Em B D
  W: "[~ [e3,e4]@12 ~@5]/3", X: "~@2 [f4,a4]@9 ~", Y: "[~@4 b3 ~@11 f#3@12 d4@18 ~ f#4, ~ [b1,b2]@11, ~@7 b3@41]/2",
  Z: "[~@5 [f1,f2,c4,f4]@48 [a1,a2,c4,e4,a4]@48 [d2,d3,d4,f#4,a4]@48 ~@19]/7", // F5 Am D
  AA: "[~@5 [a4,c5,e5]@24 [a4,d5,f#5]@19]/2", // Am D
  AB: "[~ [b4,d5,g5]@4 [c5,e5,g5]@4 [a4,c5,e5]@4 [a4,d5,f#5]@4 [b4,d5,g5]@4 [c5,e5,g5]@4 [a4,c5,e5]@4 [a4,d5,f#5]@3]/8", // G C Am D G C Am D
  AC: "[~ [a4,c5,e5]@4 [a4,d5,f#5]@4 [a3,c4,e4]@4 [a3,d4,f#4]@4 [g3,b3,d4]@4 [g3,c4,e4]@3]/6", // Am D Am D G C
  AD: "[~@7 [a3,c4,e4]@24 [a3,d4,f#4]@24 [g3,b3,d4]@24 [g3,c4,e4]@24 [a3,c4,e4]@24 [a3,d4,f#4]@24 [b3,e4,g4]@24 [c4,e4,g4]@17]/8", // Am D G C Am D Em C
  AE: "[~@7 [b3,g4]@24 [a3,f#4]@24 [b3,e4,g4]@41, ~@7 d4@48 ~@41]/4", // Em D Em
  AF: "[~ g4@3 [f#4,a4,d5]@3 [g4,b4,e5]@6 [b2,b3]@3 [d3,d4]@3 [e3,e4]@5, ~@7 [d4,b4]@24 ~@161]/8", // D Em B D E G
  AG: "[~ [b3,g4]@3 [a3,f#4]@3 [b3,e4,g4]@6 [d4,g4,b4]@3 [f#4,a4,d5]@2, ~ d4@6 ~@11]/6", // Em D Em G D
  AH: "[~@3 b4@13, ~ [g4,e5]@5]/2", // C
  AI: "[~@3 [b3,g4]@8 [a3,f#4]@8 [b3,e4,g4]@16 [b3,g4]@8 [a3,f#4]@8 [b3,e4,g4]@13, ~@3 d4@16 ~@16 d4@16 ~@13]/8", // Em D Em D Em
  AJ: "[~@3 [d4,g4,b4]@8 [f#4,a4,d5]@8 [g4,b4,e5]@13]/4", // G D Em
  AK: "[~@5 [b3,g4]@12 [a3,f#4]@12 [b3,e4,g4]@24 ~@7, ~@5 d4@24 ~@31]/5", // Em D Em
})).s("gm_string_ensemble_1").gain(0.15).pan(0.6)

// other · piano · "Doctor Solo"
const piano = note("<~@12 A@2 B@2 C@2 D E F G H I J ~@68 K L@4 M@2 N O P Q R S T U N V ~@48>".pickRestart({
  A: "[~@23 [e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@3 ~@3 [a4,a5]@3 ~@3 [d5,d6]@3 ~]/2", // E C A D
  B: "[~@2 [d5,d6]@3 ~@3 [d5,d6]@3 [f#5,f#6]@2 ~ [f#5,f#6]@3 [g5,g6]@3 [a5,a6]@3 [g5,g6]@2 ~ [g5,g6]@3 [g5,g6]@2 ~ [d5,d6]@3 ~@3 [c5,c6]@2 ~@4 [e5,e6]@3 ~]/2", // D F# G A G D C E
  C: "[~@2 [e5,e6]@3 ~@3 [e5,e6]@3 [d5,d6]@3 [d5,d6]@3 [e5,e6]@2 ~ [d5,d6]@3 [e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@2 ~@4 [a4,a5]@3 ~@3 [d5,d6]@3 ~]/2", // E D E D E C A D
  D: "~@2 [d5,d6]@3 ~@3 [d5,d6]@3 ~ [f#5,f#6]@2 [f#5,f#6]@2 ~@2 [g5,g6]@2 [a5,a6]@3 ~", // D F# G A
  E: "[g5,g6]@2 ~ [g5,g6]@2 ~ [g5,g6]@2 ~ [d5,d6]@2 ~@4 [c5,c6]@2 ~@4 [e5,e6]@2 ~", // G D C E
  F: "~@3 [e5,e6]@2 ~@4 [e5,e6]@3 [d5,d6]@2 ~ [d5,d6]@3 [e5,e6]@2 ~ [d5,d6]@3", // E D E D
  G: "[e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@3 ~@3 [a4,a5]@3 ~@3 [d5,d6]@3", // E C A D
  H: "~@3 [d5,d6]@3 ~@3 [d5,d6]@3 [f#5,f#6]@2 ~ [f#5,f#6]@3 [g5,g6]@3 [a5,a6]@3", // D F# G A
  I: "[g5,g6]@2 ~ [g5,g6]@3 [g5,g6]@2 ~ [e5,e6]@3 ~@3 [c5,c6]@2 ~@4 [e5,e6]@3", // G E C E
  J: "~@3 [e5,e6]@3 ~@3 [e5,e6]@3 [d5,d6]@3 [d5,d6]@3 [d5,d6]@2 ~@4", // E D
  K: "~@5 [e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@3 ~@3 [a4,a5]@3 ~", // E C A
  L: "[~@2 [d5,d6]@3 ~@3 [d5,d6]@3 ~@3 [d5,d6]@3 [f#5,f#6]@2 ~ [f#5,f#6]@3 [g5,g6]@3 [a5,a6]@3 [e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@3 ~@3 [a4,a5]@3 ~]/2", // D F# G A E C A
  M: "[~@2 [d5,d6]@3 ~@3 [d5,d6]@3 ~@3 [d5,d6]@3 [f#5,f#6]@2 ~ [f#5,f#6]@3 [g5,g6]@3 [a5,a6]@3 [g5,g6]@2 ~ [g5,g6]@3 [g5,g6]@2 ~@2 [d5,d6]@2 ~@4 [c5,c6]@2 ~]/2", // D F# G A G D C
  N: "~@3 [e5,e6]@3 ~@3 [e5,e6]@3 ~@3 [e5,e6]@2 ~ [d5,d6]@3 [d5,d6]@3", // E D
  O: "[e5,e6]@2 ~ [d5,d6]@3 [e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@2 ~@4 [a4,a5]@3", // E D E C A
  P: "~@3 [d5,d6]@3 ~@3 [d5,d6]@3 ~@3 [d5,d6]@3 [f#5,f#6]@3 [f#5,f#6]@2 ~", // D F#
  Q: "[g5,g6]@2 ~ [a5,a6]@2 ~ [g5,g6]@2 ~ [g5,g6]@2 ~ [g5,g6]@2 ~ [d5,d6]@2 ~@4 [c5,c6]@2 ~", // G A G D C
  R: "~@3 [e5,e6]@2 ~@4 [e5,e6]@2 ~@4 [e5,e6]@3 [d5,d6]@2 ~ [d5,d6]@3", // E D
  S: "[e5,e6]@3 [d5,d6]@3 [e5,e6]@2 ~ [e5,e6]@3 [c5,c6]@3 [a4,a5]@3 ~@3 [a4,a5]@3", // E D E C A
  T: "~@3 [d5,d6]@3 ~@3 [d5,d6]@3 ~@3 [d5,d6]@3 [f#5,f#6]@2 ~ [f#5,f#6]@3", // D F#
  U: "[g5,g6]@3 [a5,a6]@3 [g5,g6]@2 ~ [g5,g6]@2 ~ [g5,g6]@2 ~ [e5,e6]@3 ~@3 [c5,c6]@2 ~", V: "[d5,d6] ~@11",
})).s("gm_piano").gain(0.38).pan(0.6)

// other · harpsichord · "Harpsichord 2"
const harpsichord = note(`<
  ~@21 A B C D E F G H E F I J K L M N ~@16 O P Q R O S T U V W X Y Z ~@43 AA AB AC AD AE AF AG AH AI AF AJ AK AL ~@36
>`.pickRestart({
  A: "[e5,e6]@7 ~", B: "[f#5,f#6]", C: "[g5,g6]@11 ~", D: "[a5,a6]",
  E: "a2 ~@2 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~@2 c3 ~@2 a2 ~@2",
  F: "d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@2 a3 ~@2 f#3 ~@2 d3 ~@2",
  G: "g2 ~@2 g2 ~@2 b2 ~@2 d3 ~@2 g3 ~@2 d3 ~@2 b2 ~@2 g2 ~@2",
  H: "g2 ~@2 g2 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 e3 ~@2 c3 ~@2 g2 ~@2",
  I: "g2 ~@2 g2 ~@2 b2 ~@2 d3 ~@3 g3 ~ d3 ~@3 b2 ~ g2 ~@2", J: "~ g2 ~ g2 ~@3 c3 ~ e3 ~@3 g3 ~@2 e3 ~@2 c3 ~@2 g2 ~",
  K: "~ a2 ~@2 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~@2 c3 ~@2 a2 ~",
  L: "~ d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@2 a3 ~@2 f#3 ~@2 d3 ~",
  M: "~ e3 ~@2 e3 ~@2 g3 ~@2 b3 ~@2 e4 ~@2 b3 ~@2 g3 ~@2 e3 ~",
  N: "~ c3 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 c4 ~@2 g3 ~@2 e3 ~@2 c3 ~",
  O: "~@2 a2 ~@2 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~@2 c3 ~@2 a2",
  P: "~@2 d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@2 a3 ~@2 f#3 ~@2 d3",
  Q: "~@2 g2 ~@2 g2 ~@2 b2 ~@2 d3 ~@2 g3 ~@2 d3 ~@2 b2 ~@2 g2",
  R: "~@2 g2 ~@2 g2 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 e3 ~@2 c3 ~@2 g2",
  S: "~@2 d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@3 a3 ~ f#3 ~@3",
  T: "d3 ~@2 g2 ~@2 g2 ~@2 b2 ~@2 d3 ~@2 g3 ~@2 d3 ~@2 b2 ~@2",
  U: "g2 ~@2 g2 ~@2 g2 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 e3 ~@2 c3 ~@2",
  V: "g2 ~@2 a2 ~@2 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~@2 c3 ~@2",
  W: "a2 ~@2 d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@2 a3 ~@2 f#3 ~@2",
  X: "d3 ~@2 e3 ~@2 e3 ~@2 g3 ~@2 b3 ~@2 e4 ~@2 b3 ~@2 g3 ~@2",
  Y: "e3 ~@2 c3 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 c4 ~@2 g3 ~@2 e3 ~@2", Z: "c3 ~@23",
  AA: "~@6 a2 ~@2 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~@2", AB: "c3 ~@2 a2 ~@2 d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@2 a3 ~@2",
  AC: "f#3 ~@2 d3 ~@2 g2 ~@2 g2 ~@2 b2 ~@2 d3 ~@2 g3 ~@2 d3 ~@2",
  AD: "b2 ~@2 g2 ~@2 g2 ~@2 g2 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 e3 ~@2",
  AE: "c3 ~@2 g2 ~@2 a2 ~@3 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~",
  AF: "~ c3 ~@2 a2 ~@2 d3 ~@2 d3 ~@2 f#3 ~@2 a3 ~@2 d4 ~@2 a3 ~",
  AG: "~ f#3 ~@2 d3 ~@2 g2 ~@2 g2 ~@2 b2 ~@2 d3 ~@2 g3 ~@2 d3 ~",
  AH: "~ b2 ~@2 g2 ~@2 g2 ~@2 g2 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 e3 ~",
  AI: "~ c3 ~@2 g2 ~@2 a2 ~@2 a2 ~@2 c3 ~@2 e3 ~@2 a3 ~@2 e3 ~",
  AJ: "~ f#3 ~@2 d3 ~@2 e3 ~@2 e3 ~@2 g3 ~@2 b3 ~@2 e4 ~@2 b3 ~",
  AK: "~ g3 ~@2 e3 ~@2 c3 ~@2 c3 ~@2 e3 ~@2 g3 ~@2 c4 ~@2 g3 ~", AL: "~ e3 ~@2 c3 ~@19",
})).s("gm_harpsichord").gain(0.54).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  A B@4 C D@12 E F@13 G H@4 I@8 J K L M N@10 O P@5 Q@8 R S T U V W@8 X Y@6 ~@3 Z Y@3 AA AB@12 AC AD@7 AE I@4 AF AG@2 AH
  AI@2 AG AJ AG@6 AK Q@12 AL U@2 AM ~
>`.pickRestart({
// … 73 more lines

More by Reel Big Fish