Strudelify
This Masquerade cover art

1973 · Now & Then

This Masquerade

Carpenters

KeyF minorTempo111 bpm
0:00/0:00
// This Masquerade — Carpenters
// 111 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "Strings R" synth strings 1 (copy of ch 7 "Strings L" string ensemble 1)
// note: Full arrangement: all 134 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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 · "Bass"
const bass = note(`<
  ~ A B C D E F G@2 H@2 I@3 J I K L@2 I@3 J K L M N O P@8 Q@8 R@7 S@2 T U V W@3 X@2 Y Z AA AB AC AD AE AF AG@2 AH@8 AI@3
  AJ AK@2 AL@4 AM@2 AN@8 AO@7 AP@4 AQ@6 AR@4 AS AT AU AV AW AX AY AZ@7
>`.pickRestart({
  A: "f2@9 ~@3 f2@19 ~", B: "eb2@9 ~@3 eb2@19 ~", C: "db2@10 ~@2 db2@19 ~", D: "d2@10 ~@2 d2@19 ~",
  E: "g2@10 ~@2 g2@19 ~", F: "c2@8 ~@4 c2@19 ~", G: "[f2@11 ~ f3@8 c3@8 bb2@22 ~@6 f1@8]/2",
  H: "[f2@11 ~ f3@8 c3@8 bb2@28 ~@8]/2", I: "f2@9 ~@3 f2@16 ~@4", J: "bb1@9 ~@3 bb1@16 ~@4", K: "db2@9 ~@3 db2@16 ~@4",
  L: "c2@9 ~@3 c2@16 ~@4", M: "f2@9 ~@3 f2@16 bb1@4", N: "f2@12 f3@8 c3@11 ~", O: "eb2@3 bb2@3 eb3@2",
  P: "[ab2@12 eb2@11 c2@8 db2@12 f2@10 ~@2 ab2@8 bb2@12 f2@12 bb2@8 eb2@8 ~@4 eb2@12 bb2@8 ab2@12 ~@3 b2@12 ~@4 db2@8 ~@4 db2@12 ~@4 ab2@4 db2@8 ~@4 db2@16 ~@4 d2@12 d2@16 ~@3 g2@3]/8",
  Q: "[~@9 g2@19 ~ c2@8 ~@4 c2@16 ~@4 c2@8 ~@4 c2@16 ~@4 bb2@11 f3@8 bb2@12 g2@12 d3@8 g2@12 c3@27 ~ g2@4 c2@32 f2@9 ~@3 f2@16 ~@3 f2@5]/8",
  R: "[~@7 f2@16 ~@4 f2@9 ~@3 f2@16 ~@4 bb1@9 ~@3 bb1@16 ~@4 f2@9 ~@2 f2@16 ~@4 db2@9 ~@3 db2@16 ~@4 c2@11 ~ c2@3 ~ c2@10 ~@2 c2@3 ~ c2@3 ~ c2@7 ~ c2@3 ~ c2@3 ~ c2@7 ~@4 f2@7]/7",
  S: "~@5 f2@16 ~@4 f2@7", T: "~@5 f2@16 ~@4 bb1@7", U: "~ bb1@4 ~ db2@2", V: "~ db2@4 ~ c2@2",
  W: "[~@4 c2@16 ~@4 f2@11 ~ f3@8 c3@6 ~ bb2@20 ~@8 f1@8 f2@9]/3", X: "[~@3 f3@8 c3@8 bb2@28 ~@8 f2@9]/2",
  Y: "~@2 f2@14 ~@6 f2@9 ~", Z: "~@2 f2@13 ~@7 f2@9 ~", AA: "~@2 f2@13 ~@7 bb2@9 ~", AB: "~@2 bb2@13 ~@6 f2@9 ~@2",
  AC: "~ f2@13 ~@7 db2@9 ~@2", AD: "~ db2@13 ~@7 c2@11", AE: "~@5 c2@12 ~@4 c2@8 ~@3",
  AF: "~@4 c2@4 ~@4 c2@3 ~@5 f2@9 ~@3", AG: "f2@13 ~@7 f2@9 ~@3",
  AH: "[f2@13 ~@6 bb1@9 ~@3 bb1@14 ~@6 db2@9 ~@3 db2@14 ~@6 c2@9 ~@3 c2@12 ~@8 f2@9 ~@2 f2@14 ~@2 bb1@4 f2@28 ~@4 eb2@8 ~@4 bb2@12 ~@4 g2@3 ~ ab2@8 ~@4 eb2@12 ~@3 c2@4 db2@8 ~@4 ab2@3]/8",
  AI: "[~@13 ab2@3 ~ bb2@8 ~@4 f2@12 ~@4 bb2@3 ~ eb2@8 ~@4 eb2@12 ~@8 ab2@12 ~@3]/3", AJ: "b2@3 ~ db2@2 ~@2",
  AK: "[db2@2 ~@2 db2@2 ~ db2@2 ~ db2 ~ d2@3 ~]/2",
  AL: "[d2@13 ~@2 g2@8 ~@4 g2@16 ~@4 c2@12 ~@4 c2@12 ~@4 c2@12 ~@4 c2@12 ~@4 bb2@8 ~@3 f3@3 ~@3]/4",
  AM: "[~ bb2@6 ~@2 d3@2 g3@2 d2@6 g2@4 c3@9, ~@14 g2@7 ~@43]/2",
  AN: "[~@10 g2@4 c2@31 f2@9 ~@3 f2@16 ~@4 f2@9 ~@3 f2@16 ~@4 f2@9 ~@3 f2@16 ~@4 bb1@9 ~@2 bb1@16 ~@4 f2@9 ~@3 f2@16 ~@4 db2@9 ~@3 db2@16 ~@4 c2@11 ~ c2@3 ~ c2@4]/8",
  AO: "[~@7 c2@3 ~ c2@3 ~ c2@7 ~ c2@3 ~ c2@3 ~ c2@7 ~@5 f2@9 ~@3 f2@16 ~@4 f2@9 ~@3 f2@16 ~@4 f2@9 ~@2 f2@16 ~@4 bb1@9 ~@3 bb1@16 ~@4 db2@9 ~@3 db2@16 ~@4 c2@9 ~@3 c2@10]/7",
  AP: "[~@10 f2@34 eb2@32 ~@5 db2@47]/4",
  AQ: "[~@4 c2@65 ~@4 f2@11 f2@19 ~ eb2@11 ~ eb2@19 ~ db2@11 ~ db2@19 ~ d2@9 ~@3 d2@12]/6",
  AR: "[~@7 ab2@11 ~ ab2@19 ~ c2@11 ~ c2@19 ~ f2@12 ~@4 f2@12 ~@3 bb2@12 ~@4 bb2@10]/4", AS: "~@6 f2@12 ~@3 f2@11",
  AT: "~@5 bb2@12 ~@4 bb2@11", AU: "~ f2@3 ~ f2 f2@2", AV: "bb2@14 ~ bb2@8 ~@4 bb2@5",
  AW: "~@3 f2@12 ~@3 f2@4 f2@8 ~@2", AX: "~@2 bb2@12 ~@3 bb2@4 bb2@8 bb2@3", AY: "~ f2@12 ~@3 f2@4 f2@8 ~@4",
  AZ: "[bb2@12 ~@4 bb2@4 bb2@7 bb2@4 f2@12 ~@4 f2@11 f2@4 bb2@8 ~@4 bb2@8 bb2@8 bb2@4 f2@12 ~@3 f2@12 bb2@4 bb2@12 ~@3 bb2@12 bb2@4 f2@12 ~@3 f2@12 f2@4 bb2@8 ~@4 bb2@7 bb2@8 ~@10]/7",
})).s("gm_electric_bass_finger").gain(0.26)

// other · piano · "Grand Piano"
const piano = note(`<
  ~@4 A@2 B@2 C D ~@8 E@2 ~@10 F@2 ~ G H@2 ~@10 I@2 ~@11 J@4 K L@3 M N@6 O@3 ~@18 P Q ~@37
>`.pickRestart({
  A: "[~@8 ab5@4 ~ bb5@2 ab5, ~ c4@2 g4@2 c5@2 g5@2 ~@7, ~ f4 ab4 f5 ~@4]/2",
  B: "[~ b5@2 bb5@2 ~ bb5@13 ~@13 f5@32, bb5@2 ~@3 ab5@2 ~@13 ab5@11 gb5@4 ~@29, ~@29 g5@4 ~@31]/2",
  C: "~@2 d6 db6 c6@2 b5@2 bb5@2 ab5@2 g5@2 d5@2 d5@2 f5@2 ab5@2 f5@2 bb5@2 b5@2 bb5@2 ab5@2", D: "f5 ~",
  E: "[~@4 db6@4 c6@4 g5@4 db5@4 c5@4 ab4@4 bb4@3 ~ c5@16 ~@16, ~@31 b4@4 ~@29]/2",
  F: "[~@3 db5@4 f5@4 ab5@4 c6@4 bb5@4 f5@4 db5@4 ~ eb5@8 ~@24, ~@15 b5 ~@15 d5@2 ~@31]/2",
  G: "~@7 f5@2 ab5@2 c6@2 eb6@3", H: "[~@2 db6@8 c6@4 bb5@4 ab5@4 f5@4 eb5@4 e5 f5@16 ~@17]/2",
  I: "[~@3 bb5@4 ab5@3 ~ bb5@4 ab5@4 f5@4 eb5@4 ~ f5@10 ~@26, ~@2 a5@2 ~@6 a5@2 ~@15 e5@2 ~@35]/2",
  J: "[~@27 db5 d5 f5 ab5 c6@2 bb5@2 ab5@2 f5@2 d5@2 db5@2 d5@2 c5@2 bb4@2 ab4@2 g4@2 ab4@2 f4@11 g4@8 ab4@4 bb4@4 c5@8 gb5 g5@7 f5@8 c5@8 ~ b4 bb4 a4 ab4@10]/4",
  K: "~ bb4@2 c5@2 ab4@4 f4@7",
  L: "[~@2 g4 ab4 bb4 ~ c5@2 db5@2 d5@2 ~ ab5@2 c6@2 bb5@2 ab5@2 g5@2 ab5@2 g5@2 f5@2 c5@12 c6@2 ab5@2 bb5@2 g5@2 ab5@2 f5@2 g5@2 eb5@2 f5@2 db5@2 b4@10 db5@2 eb5@2 f5@2 g5@2 f5@2 eb5@2 db5@2 c5@11, ~@6 f5 ~@41]/3",
  M: "~ gb5 g5@3 gb5 g5@3 c5@8 c6@8 ~ eb6@2 [c6,db6]@2 bb5@2, ~@25 db6@2 ~@5", // Dbmaj7
  N: "[ab5@2 g5@2 bb5@2 ab5@2 g5@2 f5@2 e5@2 f5@2 db5@2 c5@2 f5@2 f5 ~@5 f5@10 g4@4 ab4@2 f5@2 c5@2 ab5@2 f5@2 gb5@2 g5@2 e5@2 c5@2 g4@12 ~@2 gb5@2 g5@2 f5@2 eb5@2 c5@2 f5@2 c5@2 e5@2 eb5@10 c5 ~ db5 ~@3 d5 ~@3 eb5 ~@2 c5@2 db5@2 d5@2 c5@2 bb4@2 f4@2 f5@6 f6@12 f5@2 g5@2 ab5@4 bb5 b5 eb6 g6 ~@13 a6@2 ~ g6@2 f6@6 e6@2 e6@2 db6@2 c6@2 bb5@2 ab5@2 g5, ~@72 e5@2 ~@93 ab6@2 ~ ab6@2 ~@20, ~@73 f5@2 ~@80 bb6@20 ~@17]/6",
  O: "[~ f5@2 ~ f5@2 ~ db5@2 c5@2 bb4@2 ab4@2 g4@2 ab4@2 f4@15 eb4@2 c4@2 bb3@2 ab3@2 f3@2 eb3@2 f3@2 c3@2 f2@32 ~@14, ~@3 e5@2 ~ e5@2 ~@88]/3",
  P: "~@20 c6@4 bb5@3 ~@5, ~@20 b5 ~@11", Q: "ab5@4 g5@3 ~ f5@8 ~@16",
})).s("gm_piano").gain(0.35).pan(0.7)

// chords · epiano1 · "Electric Piano"
const epiano1 = note(`<
  ~ A B A C D E F@2 G@2 H I J K H L M@2 H I J K N O@3 P Q R S T U V W X Y@6 Z AA AB AC AD AE AF AG@2 AH AI AJ AK AL AM@3
  AN@8 AO AP@6 AQ@7 AR@6 AS AT@5 AU AV AW AX AY AZ BA@6 BB@2 BC@3 BD@8 BE BF BG BH@2 BI@2 BJ BK BL@2 BM BN BO BP@2
>`.pickRestart({
  A: "~@8 [f3,ab3,c4,f4]@11 ~ [f3,ab3,c4,f4]@11 ~", B: "~@8 [eb3,ab3,c4,f4]@11 ~ [eb3,ab3,c4,f4]@11 ~",
  C: "~@8 [a3,c4,f4]@11 ~ [a3,c4,f4]@11 ~", D: "~@8 [b3,d4,f4,ab4]@11 ~ [ab3,b3,d4,f4]@11 ~",
  E: "~@8 [bb3,db4,e4]@11 ~ [bb3,db4,e4]@11 ~, ~@2 c3@2 ~ c3@2 ~", // Bbdim
  F: "[~@8 f4@11 ~ [ab3,c4,f4]@8 [f3,bb3,d4,f4]@23 ~ f4@11 ~]/2", G: "[f4@4 ~ [ab3,c4,f4]@2 [f3,bb3,d4,f4]@7 ~@2]/2",
  H: "~@8 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~", I: "~@8 [ab3,c4,e4]@11 ~ [ab3,c4,e4]@11 ~",
  J: "[ab3,c4,eb4] ~@7 [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@11 ~", K: "~@8 [f3,bb3,d4]@11 ~ [f3,bb3,d4]@11 ~",
  L: "~@8 [f3,b3,eb4]@11 ~ [f3,b3,eb4]@11 ~", // Fm7b5
  M: "[~@8 [f3,g3,c4]@11 ~ c4@8 c4@8 [e3,bb3,c4]@8 [e3,bb3,c4]@8 [e3,bb3,c4]@12, ~@20 [f3,g3]@11 ~@33]/2", // Fsus2 C7 Fsus2
  N: "~@8 [f3,ab3,b3,db4]@15 ~ [f3,ab3,b3,db4]@8", // Db7
  O: "[~@8 [f3,g3,c4]@11 ~@41 f5@32 ~@4, ~@20 ab3@11 ~@5 c4@40 ~@20, ~@7 f3@12 ~@5, ~@11 f4@10 ~@3, ~@7 c5@4 ~]/3", // Fsus2
  P: "~@2 [gb3,bb3,eb4]@3 [gb3,bb3,eb4]@3", Q: "~@8 [gb3,ab3,c4,eb4]@12 [gb3,ab3,c4,eb4]@11 [f3,ab3,c4]",
  R: "~@7 [f3,ab3,c4]@12 [f3,ab3,c4]@12 [f3,ab3,c4]", S: "~@7 [f3,ab3,c4]@12 [f3,ab3,bb3]@12 ~",
  T: "~@7 [gb3,bb3,eb4]@12 [gb3,bb3,eb4]@12 ~", U: "~@6 [gb3,ab3,c4,eb4]@12 [gb3,ab3,c4,eb4]@12 [f3,ab3,c4] ~",
  V: "~@6 [f3,ab3,c4]@12 [f3,ab3,c4]@12 [f3,ab3,c4] ~", W: "~@3 [f3,ab3,c4]@6 [f3,ab3,bb3]@6 ~",
  X: "~@3 [f3,a3,c4]@6 [f3,a3,c4]@6 ~", // F
  Y: "[~@5 [f3,b3,eb4]@12 [f3,ab3,b3,eb4]@12 [g3,a3,d4]@8 [g3,a3,d4]@8 ~@4 [g3,a3,d4,e4]@8 ~@4 [g3,a3,d4]@8 [g3,a3,d4]@8 ~@4 [g3,a3,d4]@12 [f3,bb3,d4]@11 [f3,bb3,d4]@16 ~@4 [f3,b3,d4]@12 [f3,b3,d4]@16 ~@4 [f3,g3,c4]@32 ~@4]/6", // Fm7b5 Gsus2 Bb Bdim Fsus2
  Z: "c4 gb4 bb4 c5 f5 gb5 [bb5,db6] ~", AA: "~@4 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@5",
  AB: "~@3 [ab3,c4,e4]@11 ~ [ab3,c4,e4]@11 ~ [ab3,c4,eb4] ~@4", AC: "~@3 [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@11 ~@6",
  AD: "~@3 [f3,bb3,d4]@11 ~ [f3,bb3,d4]@11 ~@6", AE: "~@2 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@7",
  AF: "~@2 [f3,b3,eb4]@11 ~ [f3,b3,eb4]@11 ~@7", // Fm7b5
  AG: "[~@2 [f3,g3,c4]@11 ~ c4@8 c4@8 [e3,bb3,c4]@8 [e3,bb3,c4]@8 [e3,bb3,c4]@12 ~@6, ~@14 [f3,g3]@11 ~@39]/2", // Fsus2 C7 Fsus2
  AH: "~ [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@8", AI: "~ [ab3,c4,e4]@11 ~ [ab3,c4,e4]@11 ~ [ab3,c4,eb4] ~@6",
  AJ: "~ [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@11 ~@8", AK: "[f3,bb3,d4]@11 ~ [f3,bb3,d4]@11 ~@9",
  AL: "[f3,ab3,b3,db4]@15 ~ [f3,ab3,b3,db4]@8 ~@8", // Db7
  AM: "[[f3,g3,c4]@11 ~@25 f4@15 [f3,bb3,d4]@32 ~@4 [ab3,c4]@8 f3, ~@12 ab3@11 ~@5 c4@24 ~@31 f4@12 ~, ~@20 f3@31 ~@45]/3", // Fsus2 Bb Ab
  AN: "[~@11 [ab3,c4]@8 [f3,bb3,d4]@32 ~@11 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@9 [ab3,c4,e4]@11 ~ [ab3,c4,e4]@11 ~ [ab3,c4,eb4] ~@7 [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@11 ~@9 [f3,bb3,d4]@11 ~ [f3,bb3,d4]@11 ~@8 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@9 [f3,b3,eb4]@11 ~ [f3,b3,eb4]@11 ~@9 [f3,g3,c4]@3]/8", // Ab Bb Fm Abaug Ab Bb Fm Fm7b5 …
  AO: "~@9 c4@8 c4@8 [e3,bb3,c4]@7, ~@9 [f3,g3]@11 ~@12", // C7 Fsus2
  AP: "[[e3,bb3,c4]@8 [e3,bb3,c4]@12 ~@8 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@9 [ab3,c4,e4]@11 ~ [ab3,c4,e4]@11 ~ [ab3,c4,eb4] ~@7 [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@11 ~@8 [f3,bb3,d4]@11 ~ [f3,bb3,d4]@11 ~@9 [f3,ab3,b3,db4]@15 ~ [f3,ab3,b3,db4]@8 ~@8 [f3,g3,c4]@5]/6", // C7 Fm Abaug Ab Bb Db7 Fsus2
  AQ: "[~@46 f5@32 ~@12 [gb3,bb3,eb4]@12 [gb3,bb3,eb4]@12 ~@8 [gb3,ab3,c4,eb4]@12 [gb3,ab3,c4,eb4]@11 [f3,ab3,c4] ~@7 [f3,ab3,c4]@12 [f3,ab3,c4]@12 [f3,ab3,c4] ~@7 [f3,ab3,c4]@12 [f3,ab3,bb3]@12 ~@8 [gb3,bb3,eb4]@7, ~@7 ab3@11 ~@5 c4@32 ~@169, ~@15 f3@32 ~@177, ~@15 f4@20 ~@77, ~@21 c5@16 ~@75]/7", // Ebm Ab7 Fm Bb7 Ebm
  AR: "[~@5 [gb3,bb3,eb4]@12 ~@7 [gb3,ab3,c4,eb4]@12 [gb3,ab3,c4,eb4]@12 [f3,ab3,c4] ~@7 [f3,ab3,c4]@12 [f3,ab3,c4]@12 [f3,ab3,c4] ~@7 [f3,ab3,c4]@12 [f3,ab3,bb3]@12 ~@8 [f3,a3,c4]@12 [f3,a3,c4]@12 ~@7 [f3,b3,eb4]@12 [f3,ab3,b3,eb4]@12 [g3,a3,d4]@8 [g3,a3,d4]@8 ~]/6", // Ebm Ab7 Fm Bb7 F Fm7b5 Gsus2
  AS: "~@3 [g3,a3,d4,e4]@8 ~@4 [g3,a3,d4]@8 [g3,a3,d4]@8 ~", // Gsus2
  AT: "[~@3 [g3,a3,d4]@12 [f3,bb3,d4]@11 [f3,bb3,d4]@16 ~@4 [f3,b3,d4]@12 [f3,b3,d4]@16 ~@4 [f3,g3,c4]@32 ~@4 c4@4 gb4@4 bb4@4 c5@4 f5@3 gb5@4 [bb5,db6]@4 ~@8 [ab3,c4,f4]@11]/5", // Gsus2 Bb Bdim Fsus2 Bbm Fm
  AU: "~ [ab3,c4,f4]@11 ~@9 [ab3,c4,e4]@11", AV: "~ [ab3,c4,e4]@11 ~ [ab3,c4,eb4] ~@7 [ab3,c4,eb4]@11",
  AW: "~ [ab3,c4,eb4]@11 ~@8 [f3,bb3,d4]@11 ~", AX: "[f3,bb3,d4]@11 ~@9 [ab3,c4,f4]@11 ~",
  AY: "[ab3,c4,f4]@11 ~@9 [f3,b3,eb4]@11 ~", AZ: "[f3,b3,eb4]@11 ~@9 [f3,g3,c4]@11 ~",
  BA: "[c4@7 c4@8 [e3,bb3,c4]@8 [e3,bb3,c4]@8 [e3,bb3,c4]@12 ~@8 [ab3,c4,f4]@11 ~ [ab3,c4,f4]@11 ~@9 [ab3,c4,e4]@11 ~ [ab3,c4,e4]@11 ~ [ab3,c4,eb4] ~@6 [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@11 ~@9 [f3,bb3,d4]@11 ~ [f3,bb3,d4]@11 ~@9 [f3,ab3,b3,db4]@14, [f3,g3]@11 ~@4 c5@16 ~@161]/6", // C7 Fm Abaug Ab Bb Db7 Fsus2
  BB: "[~@2 [f3,ab3,b3,db4]@8 ~@8 [f3,g3,c4]@11 ~@9 f3@25 ~, ~@30 ab3@11 ~@23]/2", // Db7 Fsus2
  BC: "[~@39 ab4@10 ~@7 f5@40, ~@2 f3@3 ~@11, ~@16 ab3@18 ~ f4@14 f4@44 ~@3, ~@21 c4@19 ~@14 c5@42, ~@25 eb4@19 ~@8 ab4@44]/3",
  BD: "[~@20 eb5@56 ~@4 [f3,ab3,c4,f4]@11 ~ [f3,ab3,c4,f4]@11 ~@9 [eb3,ab3,c4,f4]@11 ~ [eb3,ab3,c4,f4]@11 ~@9 [f3,ab3,c4,f4]@11 ~ [f3,ab3,c4,f4]@11 ~@9 [ab3,b3,d4,f4]@11 [ab3,b3,d4,f4]@11 ~@9 [f3,ab3,b3,db4]@15 ~ [f3,ab3,b3,db4]@8 ~@8 [f3,g3,c4]@11 ~ ab3@5, ~@2 c3@7 bb4@29 ~@90, ~@8 e3@7 e4@59 ~@182, ~@10 bb3@61 ~@185, ~@13 c4@60 ~@183]/8", // Fm Fm7 Fm Abdim Db7 Fsus2
  BE: "~@15 [ab3,c4]@16 ~, ~@3 f3@20 ~@9", BF: "~ [f3,bb3,d4]@10 ~@2 [f3,ab3]@3",
  BG: "~@6 [c3,f3,ab3]@2 ~@9 [ab2,c3,f3]@8 [f3,ab3,c4]@7", // Fm
  BH: "[~ f3@16 f3@8 ~@4 f4@11 [f3,ab3,eb4] ~@7 [f3,ab3,eb4] ~@7 [f3,ab3,eb4] ~@7, ~ [bb3,d4]@20 ~@4 f3@8 ~@31, ~@28 eb4@3 ~@33]/2", // Fm7 Bb
  BI: "[[f3,ab3,eb4] ~@6 [bb3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4]@6 ~@2 [bb3,d4]@3 ~@5 [bb3,d4]@2 ~@5 [f3,ab3,eb4] ~@7 [f3,ab3,eb4]@8 [f3,ab3,eb4] ~@7 [f3,ab3,eb4] ~, ~@3 f3@31 ~@12 g4@12 ~@6]/2", // Fm7 Bb Fm7
  BJ: "~@6 [f3,ab3,eb4] ~@6 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@7 [f3,bb3,d4] ~@2", // Fm7 Bb
  BK: "~@9 [f3,ab3,eb4]@11 [f3,ab3,eb4]@7 ~ [f3,bb3,d4] ~@3", // Fm7 Bb
  BL: "[~@4 [f3,bb3,d4]@8 [f3,bb3,d4]@8 [f3,bb3,d4]@7 [f3,bb3,d4]@2 ~@2 f4@2 ~@18 ab3@12 ~, ~@39 [ab3,eb4,f4]@12 ~@13, ~@47 f3@16 ~]/2", // Bb Fm7
  BM: "~@2 [f3,bb3,d4]@3 ~@5 [f3,bb3,d4]@3 ~@5 [f3,bb3,d4]@2 ~@6 [f3,bb3,d4]@4 ~@2", // Bb
  BN: "~@5 [f3,ab3,eb4]@11 ~ [f3,ab3,eb4]@7 ~ [f3,bb3,d4]@2 ~@5", // Fm7 Bb
  BO: "~ [f3,bb3,d4]@7 [f3,bb3,d4]@8 [f3,bb3,d4]@8 [f3,bb3,d4]@2 ~@2 f4@2 ~@2", // Bb
  BP: "[~@15 ab3@12 ~@4 [f3,bb3,d4]@3 ~@5 [f3,bb3,d4]@3 ~@4 [f3,bb3,d4]@2 ~@16, ~ [ab3,eb4,f4]@3 ~@12, ~@11 f3@16 ~@37]/2", // Bb Fm7
})).s("gm_epiano1").gain(0.12).pan(0.3)

// chords · epiano1 · "Electric Piano" · soft notes
const epiano1_soft = note(`<
  ~@5 A ~@5 B C ~ D B E F ~ B C ~ D G F ~@17 H I ~ J K L M ~ N O ~ P Q R ~@4 S T ~ U V W X ~ Y Z ~ AA AB AC ~@18 AD AE ~
  AF AG AH AI ~ AJ AK ~ AL AM AN ~@10 AO AP ~@16
>`.pickRestart({
  A: "[b3,d4,f4,ab4] ~@31", B: "[ab3,c4,f4] ~@31", C: "[ab3,c4,e4] ~@31", D: "[f3,bb3,d4] ~@31", E: "[f3,b3,eb4] ~@31",
  F: "[f3,g3,c4] ~@31", G: "[f3,ab3,b3,db4] ~@31", H: "~@28 [ab3,c4,f4] ~@3", I: "~@27 [ab3,c4,e4] ~@4",
  J: "~@27 [f3,bb3,d4] ~@4", K: "~@27 [ab3,c4,f4] ~@4", L: "~@26 [f3,b3,eb4] ~@5", M: "~@26 [f3,g3,c4] ~@5",
  N: "~@25 [ab3,c4,f4] ~@6", O: "~@25 [ab3,c4,e4] ~@6", P: "~@25 [f3,bb3,d4] ~@6", Q: "~@24 [f3,ab3,b3,db4] ~@7",
  R: "~@24 [f3,g3,c4] ~@7", S: "~@23 [ab3,c4,f4] ~@8", T: "~@22 [ab3,c4,e4] ~@9", U: "~@22 [f3,bb3,d4] ~@9",
  V: "~@21 [ab3,c4,f4] ~@10", W: "~@21 [f3,b3,eb4] ~@10", X: "~@21 [f3,g3,c4] ~@10", Y: "~@20 [ab3,c4,f4] ~@11",
  Z: "~@20 [ab3,c4,e4] ~@11", AA: "~@19 [f3,bb3,d4] ~@12", AB: "~@19 [f3,ab3,b3,db4] ~@12", AC: "~@19 [f3,g3,c4] ~@12",
  AD: "~@13 [ab3,c4,f4] ~@18", AE: "~@13 [ab3,c4,e4] ~@18", AF: "~@13 [f3,bb3,d4] ~@18", AG: "~@12 [ab3,c4,f4] ~@19",
  AH: "~@12 [f3,b3,eb4] ~@19", AI: "~@12 [f3,g3,c4] ~@19", AJ: "~@11 [ab3,c4,f4] ~@20", AK: "~@11 [ab3,c4,e4] ~@20",
  AL: "~@10 [f3,bb3,d4] ~@21", AM: "~@10 [f3,ab3,b3,db4] ~@21", AN: "~@10 [f3,g3,c4] ~@21",
  AO: "~@7 [f3,ab3,b3,db4] ~@24", AP: "~@7 [f3,g3,c4] ~@24",
})).s("gm_epiano1").gain(0.07).pan(0.3)

// other · flute
const flute = note("<~ A@2 B C ~@70 D E F G@4 H@2 I ~@27 J@4 ~@2 K@2 L M N O P Q@2 R@2 S@2 T U@2>".pickRestart({
  A: "[~@8 f4@4 g4@4 ab4@4 bb4@8 c5@8 ~ g5@7 f5@8 c5@11 ~, ~@18 gb5 ~@13]/2", B: "ab4@3 bb4 c5 ab4@2 f4",
  C: "~@2 e4 d4 c4 ~ b3 a3 g3 ~ f3 ~@21", D: "~@22 f6@2 ~@2 eb6 ~@3 ab6 ~",
  E: "f6@2 ~@2 eb6 ~ c6@2 ~@2 ab5 ~ c6 ab5 f5 ~ eb5 ~ gb5@7 ~ ab5@3 ~ f5 ~",
  F: "~@2 gb5@3 ~ ab5 ~@3 bb5@3 ~ c6@13 ~@3 c6 ~",
  G: "[~@2 eb6@4 db6@2 ~ bb5@2 ~@2 c6 ~@3 bb5@3 ~@5 ab5@24 ~@4 bb5 ~@7 ab5@8 bb5 ~@3 ab5 ~@3 bb5 ~@3 c6@3 ~ f5 ~@3 gb5 ~@3 ab5@12 ~@4 ab5@3 ~ bb5@3 ~ ab5 ~@2 bb5@3 ~ ab5@2 ~@2, ~@4 c6 ~@59]/4",
  H: "[a5@2 ~@2 db6 ~ a5@2 ~@2 db6 ~ a5@2 b5@2 c6@8 ab5@2 ~@2 f5@16 ~@4 f6@3 ~ eb6 ~@3 ab6@2 ~@2 f6 ~ eb6 ~]/2",
  I: "c6@3 ~ ab5 ~ f5@2 ~@2 eb5 ~ c5 ~ ab4 a4@2 ab4 [gb4,g4] ~@13", // Gmaj7
  J: "[~@16 f4@4 g4@4 ab4@4 bb4@8 c5@8 gb5 g5@7 f5@8 c5@11 ~ ab4@12 bb4@4 c5@4 ab4@8 f4@6 e4 d4 c4 ~ b3 a3 g3 ~ f3 ~@13]/4",
  K: "[~@15 f4@4 f4@4 b4@3 bb4@19 ~ ab4@2 ~@6 ab4@3 ~ bb4@3 ~@3]/2", L: "~@2 b4@4 bb4@7 ~ ab4@4 ~@14",
  M: "~@9 f6@2 e6 ~ eb6 ~@3 ab6@2 ~@2 f6 ~@3 eb6 ~ c6 ~@2 ab5 ~",
  N: "bb5 ~@3 b5@7 ~ b5@2 ~@2 b5@2 ~@2 b5@2 bb5 ~@3 ab5@3 ab5 bb5 ab5",
  O: "~ eb5@2 f5@11 ~ eb5@3 ~ f5 ~ g5 ~@10, f5 ~@15", P: "~@14 g4 ab4 b4 eb5 g5@2 f5@2 bb5@2 ab5@2 g5@2 f5@2 eb5@2",
  Q: "[b4@2 bb4@2 [a4,bb4] ~ ab4@2 bb4@2 ~ ab4@2 bb4@2 c5@2 eb5@2 f5@2 g5@2 ab5@2 bb5@2 c6@2 d6@2 eb6@2 f6@12 eb6@2 c6@2 ~@15, ~@5 g4 ~@26]/2", // Bbmaj7
  R: "[~@4 c6 ~ b5 ~@3 bb5 ~ ab5@3 ~ f5@9 eb5@2 c5@4 f5@2 g5@2 eb5@2 c5@2 ab4@8 ~@2 g4 ab4@2 ~ eb5@2 g5@2 ~ f5@2 g5 f5 eb5@2, ~@52 c5@2 ~@3 eb5@2 ~@5]/2",
  S: "[d5@2 ~@16 c5 f5 ab5 c6 ab5@2 f5@2 eb5@2 c5@2 f5@11 ab5@2 c6@2 b5@2 bb5@2 ~@2 ab5@3 ~ f5@2 ab5@3 ~@3 ab5]/2",
  T: "~@4 ab5@2 ~@4 b5 ~@5 b5@2 ~@4 ab5 ~@3 f5@2 ab5@3 ~",
  U: "[~@2 f5@3 ~ eb5@2 f5@3 ~@2 eb5@2 ~@2 c5@2 b4@2 bb4@2 ab4@2 f4 ~ ab4@2 ~@2 ab4@3 ~@3 b4 ~@5 b4@16 ~@5]/2",
})).s("gm_flute").gain(0.33).pan(0.4)

// other · flute · soft notes
const flute_soft = note("<~@82 A ~ B ~@35 C ~ D E ~@2 F ~@5 G ~>".pickRestart({
  A: "~ b5 ~@2 b5 ~@11", B: "~@19 f4 [eb4,e4] d4 db4 ~@9", C: "~@17 f4@15", D: "~@14 bb5 ~@3 bb5 ~@13",
  E: "~@25 eb5@4 ~@3", F: "~@4 bb5@3 ~", G: "f5 ~@31",
})).s("gm_flute").gain(0.13).pan(0.4)

// chords · string ensemble 1 · "Strings L"
const string_ensemble_1 = note(`<
  ~ A@2 B@2 ~@22 C D@7 ~@3 E@4 F@5 ~@2 G@6 ~@2 H@4 ~@7 I@5 ~@19 J@5 ~@2 K@6 ~@7 L@5 ~@17
>`.pickRestart({
  A: "[f4 eb4, f5]/2", B: "[db4@2 d4 ~, f5@3 ~]/2", C: "[db4,gb4]",
  D: "[c4@31 [ab3,c4]@32 bb3@32 [db4,gb4]@32 f4@15 eb4@16 [ab3,db4]@55 ~@11, f4@95 ~@32 c4@31 f4@63 ~@3]/7", // Ab Gb5 Db5
  E: "[~ g5@4 e5@4 g5@4 e5@4 d5@4 c5@4 g4@4 bb4@31 b4@32 c5@36]/4", F: "[~@28 f5@31 e5@32 eb5@32 d5@32 ~@5]/5",
  G: "[~@30 db6@4 c6@4 g5@4 db5@4 c5@3 g4@4 c4@4 f4@32 e4@32 eb4@32 [bb3,d4]@32 ~@7, ~@57 c4@95 ~@40]/6", // Bb
  H: "[~@27 f5@4 d5@4 c5@4 bb4@4 ab4@4 g4@4 ab4@4 f4@48 ~@25]/4",
  I: "[~@20 f5@32 e5@32 eb5@31 d5@32 ~@13, ~@20 ab4@63 ~ ab4@63 ~@13]/5", J: "[~@13 f5@32 e5@32 eb5@32 d5@32 ~@19]/5",
  K: "[~@15 db6@4 c6@4 g5@4 db5@4 c5@4 g4@4 c4@4 f4@32 e4@32 eb4@31 [bb3,d4]@32 ~@22, ~@43 c4@95 ~@54]/6", // Bb
  L: "[~@9 [ab3,c4,f4]@127 ~@24]/5", // Fm
})).s("gm_string_ensemble_1").gain(0.05).pan(0)

// other · orchestral harp · "Harp"
const orchestral_harp = note("<~@39 A B ~ C@2 ~@44 D@3 E@2 ~@41>".pickRestart({
  A: "~ bb4@3 f5@4 [bb4,bb5]@16 ~@8, ~ f4@2 ~@5", B: "[g4,g5] d5 [g4,g5]@4 ~@2",
  C: "[c4 gb4 bb4 c5 f5 gb5 [bb5,db6] [f5,ab5,c6]@4 ~@5]/2", // Bbm Fm
  D: "[~@19 bb4@3 f5@4 [bb4,bb5]@16 ~@8 [g4,g5]@4 d5@4 [g4,g5]@16 ~@22, ~@11 f4@4 ~@33]/3", // Bb G
  E: "[~@18 c4@4 gb4@4 bb4@4 c5@4 f5@3 gb5@4 [bb5,db6]@4 [f5,ab5,c6]@16 ~@3]/2", // Bbm Fm
})).s("gm_orchestral_harp").gain(0.13).pan(0.8)

// other · pad new age · "Synthe Sound"
const pad_new_age = note("<~@106 A@3 ~@25>".pickRestart({
  A: "[~@7 c4@71 ~@18]/3",
})).s("gm_pad_new_age").gain(0.15)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@7 B A ~ C@15 D E F G@3 H@2 I J K@2 L M@2 N@2 O P@3 Q@3 R S@3 T@3 U V W X Y@3 Z AA@3 AB@3 AC AD@2 AE AF AG AH AI AJ
  AK AL AM AN AO AP AQ AR AS AT AU AV AW@3 AX AY@3 P@3 AZ Q@3 BA BB BC ~@3 BD BE@3 BF@2 BG BH BI BJ BK BL BM BN BO BP BQ
  BR BS BT BU BV
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "~ x!2 ~ x!2 ~ x", C: "x ~@2 x!2 ~@3", D: "x", E: "x ~@2 x ~@3 x",
// … 144 more lines

More by Carpenters