Strudelify

Let Me Be the One

Carpenters

KeyE♭ majorTempo83 bpm
0:00/0:00
// Let Me Be the One — Carpenters
// 83 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 28, 4/4 at bar 29) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 11 "BRASS 1" brass section (copy of ch 7 "TRUMPET" trumpet)
// note: Full arrangement: all 49 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(83/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.

// chords · piano · "A.PIANO 1"
const piano = note("<A@4 B@3 C@8 D@4 E@4 F@6 G@3 H I J K L M N O P Q@2 R S T U V ~>".pickRestart({
  A: "[~@3 [c4,eb4]@12 [c4,eb4]@12 ~ [bb3,d4]@12 ~@6 ab2@6 [bb3,d4]@13 [bb3,d4]@12 [bb3,eb4]@13 [bb3,eb4]@12 [ab3,c4]@12 ~ c4@11 ~ [bb3,d4]@12 [bb3,d4]@12 ~ [d4,e4]@12 [d4,e4]@12 ~@7 [c2,c3]@8 ~, ~@3 ab2@43 ~@6 g2@25 c3@25 [f2,eb4]@25 g2@25 c3@31 ~@9, ~@40 [bb3,d4]@11 ~@63 ab3@12 ~@26 g3@6 ~@19 [g3,d4,e4]@15]/4", // Cm Bb Eb5 Ab Bb Dsus2 C F7 …
  B: "[[bb1,bb2]@9 ~@6 g3@6 [c4,eb4]@9 ~@3 [c4,eb4]@7 ~@11 g3@6 [bb3,d4]@6 f3@6 [bb3,d4]@6 f3@6 [bb3,d4]@6 g3@6 [bb3,db4,e4]@6 g3@6 [ab3,c4]@6 f3@5 ~ [ab3,c4]@6 f3@6 [ab3,c4,eb4]@6 f3@5 ~ [g3,ab3,c4]@3, ~@3 [ab1,ab2]@16 [g1,g2]@8 [c2,c3]@8 f2@13, ~@9 [c4,eb4]@11 ~@25 [c4,eb4]@11 ~@49 eb4@15 ~@24]/3", // Bb Cm Bb Bbdim Ab Abmaj7 Ab G …
  C: "[~@3 f3@2 ~@4 [f3,ab3,c4,eb4]@35 ~@3 [f3,ab3,bb3,d4]@9 ~@4 g3@6 ~@13 g3@6 [bb3,d4,eb4]@4 ~@6 [ab3,c4,eb4]@6 ~@3 bb3@6 c4@25 ~ f3@6 ~@13 f3@6 ~@19 f3@6 ~@19 g3@6 ~@19 f3@7 ~@19 f3@5 ~ g3@6 ~@13 g3@6 ~@6 [c2,c3]@8 ~ [bb1,bb2]@10 [c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 ~@6 g3@6 [bb3,d4]@6 f3@6 bb3@6 f3@6, ~@9 bb2@51 eb2@51 ~@31 f3@13 ~@12 f3@13 ~@6 c3@25 f2@25 ~ g2@26 ~@49 [ab1,ab2]@48 [g1,g2]@24, ~@60 [bb3,eb4]@12 ~ [bb3,eb4]@12 ~@25 ab2@51 g2@25 [bb3,eb4]@13 [bb3,eb4]@11 ~@2 c4@12 ~@13 [bb3,d4]@12 [bb3,d4]@12 ~ [d4,e4]@12 [d4,e4]@13 ~@61 [c4,eb4]@10 ~@14 d4@10 ~@2, ~@66 g3@13 ~@25 [g3,eb4]@32 [bb3,d4]@12 [bb3,d4]@12 ~ [bb3,d4]@12 ~ [bb3,d4]@13 ~@6 g3@12 ~@6 [ab3,eb4]@12 ~ [ab3,c4,eb4]@12 ~@32 g3@13 ~@6 [g3,d4,e4]@20 ~@77, ~@218 f3@12 ~@13 f3@13 ~@6 c3@31 ~@91]/8", // Fm7 Bb7 Ebmaj7 Ab C Bb Cm Bb …
  D: "[[bb3,db4,e4]@6 g3@6 [bb3,db4,e4]@6 g3@6 [ab3,c4,eb4]@6 f3@6 [ab3,c4,eb4]@6 f3@6 [ab3,c4,eb4]@6 f3@6 [ab3,c4,eb4]@6 f3@5 ~ [f3,c4,eb4]@36 ~ [bb3,d4]@12 ~@2 [bb3,eb4]@10 ~@3 [bb3,eb4]@6 g3@3 ~@3 [eb3,ab3,c4]@5 ~@5 [eb3,f3,ab3]@9 ~@6 eb2@19, [c2,c3]@24 f2@47 ab3@32 ~@64 [eb3,g3,bb3]@25, ~@72 bb2@49 ~@2 [eb2,g3]@17 ~@2 eb2@30 ~@20]/4", // Bbdim Ab F7 Bb Eb5 Ab Fm7 C …
  E: "[bb3@3 eb4@4 [a2,eb3,g3,c4]@12 [d2,gb3,a3,d4]@13 d4@12 [d4,g4,b4]@12 ~@20 a3@6 ~@19 a3@5 ~@7 a3@6 a3@6 a3@6 ~@7 a3@6 a3@6 a3@6 ~@19 a3@6 ~@6 g3@5, ~@32 g2@37 [g2,db4,e4,a4]@13 gb2@37 [gb2,d4]@13 ~@24 d4@13 ~@23, ~@32 [g3,b3]@25 [g4,b4]@25 ~@24 d4@12 ~@14 a4@25 ~@6 f3@19 ~@10, ~@57 [db4,e4]@12 ~@13 [db4,e4,a4]@12 [db4,e4,a4]@13 ~@25 e4@12 e4@12 a3@19 ~@17, ~@63 a3@12 ~@13 a3@13 ~@30 f2@37 ~ [f2,b3,d4]@12 [e2,b3,d4]@11]/4", // Am7b5 D G A7 D G Dbm A …
  F: "[~@8 g3@6 ~@7 e3@6 ~@6 g3@5 ~@45 eb3@6 ~@18 f3@5 ~@2 f3@6 f3@6 f3@6 ~ f3@6 [db2,f3,ab3,c4]@18 [c2,g3,bb3,eb4]@18 ~ bb1@25 eb2@24 ~ g3@6 ~@13 g3@7 ~@19 f3@6 ~@7 f3@4, ~@2 [b3,d4]@12 g3@19 ~@5 eb3@7 eb3@12 ~ eb3@12 eb3@12 ~@13 f3@12 ~@151 f3@13 ~@17, ~@14 c4@13 [e2,e3,c4]@12 eb2@37 [f3,c4]@12 ~ [ab3,c4]@12 [ab3,c4]@11 ~@2 bb3@12 bb3@12 ~@38 [ab3,db4,f4]@52 ~@5 g3@12 ~@43, ~@39 [g3,bb3]@12 [g3,d4]@11 ~@2 g3@25 f4@23 ~@114 [c4,eb4]@12 ~ [c4,eb4]@13 [bb3,d4]@13 ~@12 [bb3,d4,f4]@11, ~@40 d4@11 ~ bb3@11 ~ [a3,c4]@13 [eb2,a3]@12 d2@49 ~@88 ab2@38 ~ [ab2,bb3,d4,f4]@13 g2@10]/6", // Dbmaj7 Cm7 Bm C F5 Ab Db Gm …
  G: "[~@9 f3@6 ~@20 g3@6 ~@20 f3@6 ~@39 g3@6 ~ g3@6 ~@6 [c2,c3]@9 ~ [bb1,bb2]@9, ~@3 [bb3,d4,f4]@12 c3@26 [f2,eb4]@26 g2@26 c3@32 ~@19, ~@15 [bb3,eb4]@13 eb4@12 ~@40 d4@26 [d4,e4]@13 [g3,d4,e4]@19 ~@6, ~@22 g3@13 ~@6 [ab3,c4]@13 [ab3,c4]@13 [bb3,d4]@13 bb3@49 ~@15, ~@29 [bb3,g4]@12 ~@7 f3@13 ~@13 f3@13 f3@43 ~@14]/3", // C Bb F7 Eb5 Dsus2 Em7 Ab Bb …
  H: "[c4,eb4]@3 g3@3 ~@3 g3@3 [c4,eb4]@3 g3@3 [c4,eb4]@3 g3 ~@2, [ab1,ab2]@47 ~, g3@5 ~@7 [c4,eb4]@10 ~@26", // Cm Ab Cm
  I: "[bb3,d4]@6 f3@6 [bb3,d4]@6 f3@6 [g3,bb3,c4]@6 e3@5 ~ [bb3,db4,e4]@6 g3@6, [g1,g2] [c2,c3]", // Bb C7 Bbdim G C
  J: "[ab3,c4]@6 f3@6 [ab3,c4]@6 f3@6 [ab3,c4]@6 f3@6 [ab3,c4]@6 f3@5 ~, f2, eb4@20 ~@4 eb4@11 ~@13", // Ab
  K: "[ab3,c4,eb4]@6 f3@6 [ab3,c4]@5 ~ f3@6 [ab3,c4,eb4]@6 f3@6 ~@6 f3@4 ~@2, bb2@47 ~, ~@6 eb4@5 ~@7 [ab3,c4,eb4]@5 ~", // Ab
  L: "[bb3,eb4]@6 g3@5 ~ g3@5 ~ g3@4 ~@8 [c2,c3]@8 ~ [bb1,bb2]@9, eb2@9 ~@7, g3@5 ~@7 [bb3,eb4]@10 ~@2 [g3,bb3,eb4]@16 ~@8", // Eb5 C Bb Eb5 Eb
  M: "[c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [eb4,g4]@6 [ab3,c4]@5 ~, [ab1,ab2], g3@5 ~@31 c4@3 ~@9", // Cm Eb Ab
  N: "[bb3,d4]@3 f3@3 [bb3,d4]@3 f3@3 [bb3,d4]@3 g3@3 [bb3,db4,e4]@3 g3@2 ~, [g1,g2] [c2,c3], f3@5 ~@43", // Bb Bbdim G C
  O: "ab3@3 f3@3 [ab3,c4]@3 f3@3 [ab3,c4]@3 f3@3 [ab3,c4]@3 f3@2 ~, f2, [c4,eb4]@5 ~@7 eb4@6 ~@6", // Ab Cm
  P: "[ab3,c4,eb4] f3 ~@5 f2, bb2@5 ~, ~ [ab3,c4,eb4]@3", // Ab
  Q: "[[c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [c4,eb4]@4 ~@2 [f3,bb3,d4]@12 f3@6 [bb3,d4]@6 f3@6 [g3,bb3,db4]@6 e3@5 ~ [bb3,db4,e4]@6 g3@6, [ab1,ab2]@41 ~ [g1,g2]@30 [c2,c3]@24, g3 ~@23]/2", // Cm Bb Gdim Bbdim Ab G C
  R: "[ab3,c4]@3 f3@3 [ab3,c4]@3 f3@3 [ab3,c4]@3 f3@3 [ab3,c4]@3 f3@2 ~, f2, eb4@17 ~@7 eb4@12 ~@12", // Ab
  S: "[ab3,c4,eb4]@2 f3@2 ~@4 [ab3,eb4]@7 ~, bb2@23 ~, ~@6 [ab3,eb4]@3 f3@14 ~, ~@13 c4@8 ~@27", // Ab Ab5
  T: "[c4,eb4] g3 [c4,eb4] g3 [c4,eb4] g3 [c4,eb4] g3, [ab1,ab2]@47 ~, g3@5 ~@43", // Cm Ab
  U: "[bb3,d4] f3 [bb3,d4] f3 [g3,bb3,db4] e3 [bb3,db4,e4] g3, [g1,g2] [c2,c3]", V: "[ab3,c4]@7 ~@41, f2@47 ~, eb4 ~@3",
})).s("gm_piano").gain(0.38).pan(0.2)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<A@2 B C D ~@42 E F>".pickRestart({
  A: "[~@9 g3@12 g3@6 ~@7 f3@12 f3@6 ~@7 f3@12 f3@6 ~@6 g3@12 ~]/2", B: "g3@7 ~@5 f3@13 f3@7 ~@5 f3@11",
  C: "~@2 f3@6 ~@6 g3@12 ~ g3@6 ~@15", D: "~@27 g3@7 ~@5 g3@7 ~@2",
  E: "~@6 f3@6 [ab3,c4]@6 f3@6 [ab3,c4]@6 f3@6 [ab3,c4]@6 f3@5 ~, ~@2 eb4 ~", // Ab
  F: "~ [ab3,c4,eb4]@5 f3@6 bb3@3 [eb4,ab4,bb4]@2 bb3 ~ [eb4,ab4] ~ [ab4,bb4] eb4 [ab4,bb4] eb4 [ab4,bb4] eb4 bb4 [eb4,ab4] bb3 [ab4,bb4] eb4 [ab4,bb4] [bb3,eb4] ab4 bb4 ~ [eb4,ab4,bb4] ~ [ab4,bb4] [bb3,eb4] [ab4,bb4] [bb3,eb4] bb4 [eb4,ab4] bb3 bb4@2, bb2, ~@18 bb4@2 bb3@3 ~ bb3@3 ~@4 bb3@2 ~@3 bb3@2 bb3@2 ~@6 ab4 ~", // Ab Ebsus4 Ab5 Absus2 Ab5 Absus2 Eb5 Ebsus4 …
})).s("gm_piano").gain(0.11).pan(0.2)

// bass · fretless bass · "FRETLESS"
const bass = note("<~@3 A B C D E@2 F@5 G H I@3 J@8 K@5 L M N O P Q R S T U V W X Y Z AA ~>".pickRestart({
  A: "~@13 c3@3", B: "bb2@8 ~ ab2@20 ~ ab2@3 eb2@2 ~@4 ab1@9", C: "~@3 ab2@6 g2@16 ~@5 d2@3 c2@3 ~@3 c2@8 ~",
  D: "~@3 g2@4 ~@2 f2@15 ~@3 c2@7 ~@5 f1@6 ~@3", E: "[~@3 c2@3 ~@3 bb1@18 ~ ab2@19 eb2@13 eb2@36]/2",
  F: "[~@2 eb2@12 ab2@25 ~ ab2@5 ~ ab2@19 g2@24 ~ c2@25 f2@25 ~ g2@25 c2@31 c3@9 ~ bb2@8 ~ ab2@21 ab2@3]/5",
  G: "eb2@2 ~@4 eb2@4 ~@5 eb2 ~@2 eb2@3 ab2@3 g2@12 ~@6 f2@3 d2@3",
  H: "c2@2 ~@4 c2@6 ~@3 c2 ~@2 g2@3 c2@3 f2@6 c2@2 ~@4 f1@8 ~ f1@3",
  I: "[~@6 f1@12 c2@5 ~ bb1@18 ab2@32 ~ eb2@18 ~ eb2@29 ~@2 eb2@19]/3",
  J: "[bb2@3 eb3@3 ~ a2@12 d2@11 ~@2 g2@37 g2@12 ~ gb2@36 ~ gb2@12 f2@36 ~@2 f2@11 ~ e2@37 ~ e2@12 eb2@36 ~ eb2@12 ~ d2@50 db2@18 c2@18 ~ bb1@12 ~ eb3@3]/8",
  K: "[~@9 eb2@25 ab2@36 ~@3 ab2@13 g2@25 ~ c2@20 ~@5 f2@25 ~ g2@26 c2@30 ~@2 c3@9 ~ bb2@8 ~]/5",
  L: "ab2@11 ~ eb2@6 c2@3 ab1@3 ~@6 ab1@16 ~@2", M: "f2@12 d2@5 ~ d2@3 c2@3 ~@6 c2@8 ~@4 g2@6",
  N: "f2@4 ~@2 f1@3 ~@3 f1@5 ~ f1 ~@2 f1@26 ~", O: "bb1@6 ab2@3 ~@3 ab2@5 ~ f2@3 bb2@4 ~@5 bb2@13 ~@5",
  P: "db3@28 ~@2 bb2@6 ~@3 bb2@8 ~", Q: "ab2@11 ~ eb2@6 c2@3 ab1@8 ~ c2@6 db2@6 eb2@6",
  R: "g2@3 f2@3 d2@2 ~@4 g1@6 d2@2 ~ d2@3 ~@6 bb2@12 g2@6", S: "f2@11 ~ f2@4 ~@2 f2@2 ~ f2@3 ~@6 f2@11 ~ f2@2 ~@4",
  T: "bb2@13 ~@2 ab2@3 f2@3 bb1@4 ~@5 bb1@2 ~@4 bb1@2 ~@4 bb1@2 ~@4",
  U: "gb2@3 ab2@2 ~ ab2 ~@2 ab2@2 ~ ab2@3 eb2@2 ~ ab1@3 ab2@3 ~@6 ab2@8 ~@4 g2@6",
  V: "~@6 g2@3 ~@3 d3@6 db3@3 c3@3 ~@6 g2@9 c2@8 ~", W: "f2@6 c2@3 ~@3 f1@5 ~ c2@3 f2@6 c2@2 ~ f2@5 ~ c2@6 f2@6",
  X: "ab2 a2 bb2@2 ~@2 eb3@10", Y: "ab2@3 eb3@6 b2@3 c3 ~@2 g2@3 eb2@3 c2@6 ab1@3 c2@6 db2@6 ab2@6",
  Z: "g2@3 ~@3 f2@3 ~@3 d2@4 ~@2 g1@3 c2@4 ~@2 c3@8 ~ g2@6 gb2@6", AA: "f2 eb3@3 c3@2 ~@10",
})).s("gm_fretless_bass").gain(0.44)

// bass · fretless bass · "FRETLESS" · soft notes
const bass_soft = note(`<
  ~@47
  [~@18 f2@2 ~ f2@5 ~@4 eb3@9 c3@8 ~]
  [bb2@3 f3@5 ~ bb2@6 f2@8 ~ bb1@6 bb2@3 f2@6 bb1@3 f2@5 ~]
>`).s("gm_fretless_bass").gain(0.11)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@4 A@7 B@4 C D@2 E@4 F@6 ~@4 G H I J K L M N O P@2 Q R S T U ~>".pickRestart({
  A: "[~@9 [c4,eb4]@6 ~@6 [c4,eb4]@6 ~@6 [c4,eb4]@6 ~@12 g3@6 [bb3,d4]@6 f3@6 [bb3,d4]@6 f3@6 ~@6 g3@6 [bb3,db4,e4]@6 g3@6 [ab3,c4,eb4]@6 f3@6 [g3,ab3,c4]@6 f3@6 [ab3,c4,eb4]@6 f3@6 [g3,ab3,c4]@6 f3@5 ~ [f3,ab3,c4,eb4]@35 ~@3 [f3,ab3,bb3,d4]@10 ~@3 [g3,bb3,eb4]@23 ~@2 [bb3,d4,eb4]@3 ~@7 [ab3,c4,eb4]@3 ~@6 bb3@7 c4@23 ~@2 [f3,bb3,d4]@23 ~@2 [bb3,d4]@6 f3@7 [bb3,d4]@6 f3@6 [bb3,eb4]@6, ~@9 g3@5 ~ g3@10 ~@2 g3@10 ~@2 g3@10 ~@199 [g3,eb4]@31 ~@57, ~@45 [c4,eb4]@11 ~@25 [bb3,d4]@10 ~@245]/7", // Cm Bb Bbdim Ab Abmaj7 Ab Abmaj7 Fm7 …
  B: "[g3@7 [bb3,eb4]@6 g3@6 ~ ab3@6 f3@6 [ab3,c4]@7 f3@6 [bb3,d4]@6 f3@6 [bb3,d4]@7 f3@4 ~@21 g3@5 ~ [g3,d4,e4]@18 ~@7 [c4,eb4]@6 ~@6 [c4,eb4]@6 ~@6 [c4,eb4]@6 g3@6 ~@6 g3@6 [bb3,d4]@6 f3@6 bb3@6 f3@6, ~@19 eb4@15 ~@36 [d4,e4]@11 ~@2 [d4,e4]@11 ~@62 [c4,eb4]@10 ~@14 d4@11 ~, ~@19 c4@9 ~@48 g3@12 ~@32 g3@5 ~ g3@10 ~@2 g3@10 ~@44]/4", // Eb5 Ab Bb Em7 Cm Bb Dsus2 Cm
  C: "[bb3,db4,e4] g3 [bb3,db4,e4] g3 [ab3,c4,eb4] f3 [ab3,c4,eb4] f3", // Bbdim Ab
  D: "[[ab3,c4,eb4]@6 f3@6 ~@6 f3@5 ~ c4@36 ~ d4@12 ~@2 [g3,bb3,eb4]@13 [bb3,eb4]@6 g3@2, ~@12 [ab3,c4,eb4]@11 [f3,eb4]@40 ~@33, ~@23 ab3@34 ~@4 bb3@7 ~@28]/2", // Ab Eb Eb5 Ab F7
  E: "[~@4 [eb3,ab3,c4]@4 ~@6 [eb3,f3,ab3]@9 bb3@23 ~@2 bb3@3 eb4@3 ~ [eb3,c4]@12 [gb3,a3,d4]@10 ~@3 [g3,b3,d4]@11 ~ [d4,g4,b4]@11 ~@2 [db4,e4,g4,b4]@6 a3@6 [db4,e4,a4]@7 a3@5 ~ [db4,e4,a4]@6 a3@6 ~@7 a3@6 d4@6 a3@5 ~ a3@5 ~ a3@7 ~@6 a3@5 ~, ~@23 [eb3,g3]@29 ~@3 g3@8 ~@79 [db4,e4,a4]@11 ~@14 d4@10 ~@3 [e4,a4]@12]/4", // Ab Fm7 Cm D G Dbm7b5 A Eb …
  F: "[e4@6 a3@5 ~ [a3,d4]@7 f3@6 b3@6 a3@4 ~@2 [b3,d4]@7 g3@6 [b3,d4]@6 g3@5 ~ [g3,c4]@7 e3@5 ~ e3@6 g3@4 ~@3 d4@5 eb3@6 ~@7 eb3@6 [g3,a3,c4]@6 eb3@6 [f3,a3,c4]@7 eb3@5 ~ [ab3,c4,f4]@6 f3@6 [ab3,c4]@6 f3@5 ~@2 bb3@6 f3@5 ~ bb3@6 f3@6 ~ [f3,ab3,c4]@18 [g3,bb3,eb4]@17 ~@2 [ab3,db4,f4]@52 ~@12, a3@5 ~@20 d4@11 ~@39 c4@10 eb3@6 ~@71 f3@5 ~@7 f3@5 ~@109, ~@86 g3@8 ~@5 [g3,bb3,d4]@11 ~@178, ~@87 bb3@7 ~@194]/6", // D5 Bm C5 Am7 F Fm Ab Fm …
  G: "[c4,eb4] g3 [c4,eb4] g3 [c4,eb4] g3 [c4,eb4] g3, g3 ~@11", // Cm
  H: "[bb3,d4]@6 f3@6 [bb3,d4]@6 f3@5 ~ [g3,bb3,c4]@6 e3@6 [bb3,db4,e4]@6 g3@6", // Bb C7 Bbdim
  I: "[ab3,c4]@6 f3@6 [ab3,c4]@6 f3@6 [ab3,c4]@6 f3@6 [ab3,c4]@6 f3@5 ~, eb4@13 ~@11 eb4@12 ~@12", // Ab
  J: "[ab3,c4,eb4]@3 f3@3 [ab3,c4,eb4]@3 f3@3 [ab3,c4,eb4]@3 f3@3 [ab3,c4,eb4]@3 f3@2 ~", // Ab
  K: "[bb3,eb4]@3 g3@3 ~@3 g3@2 ~ [g3,bb3,eb4]@7 ~@5, g3@2 ~@4 [bb3,eb4]@5 ~@13", // Eb5 Eb Eb5
  L: "[c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [c4,eb4]@6 g3@4 ~@2 [c4,eb4,g4]@6 [ab3,c4]@5 ~, g3@5 ~@43", // Cm Ab
  M: "[bb3,d4] f3 [bb3,d4] f3 [bb3,d4] g3 [bb3,db4,e4] g3, f3@5 ~@43", // Bb Bbdim
  N: "[ab3,c4,eb4]@3 f3@3 [ab3,c4,eb4]@3 f3@3 [ab3,c4,eb4]@3 f3@3 [ab3,c4]@3 f3@2 ~", // Ab
  O: "[ab3,c4,eb4]@6 f3@6 ~@6 f3@29 ~, ~ [ab3,c4,eb4]@3", // Ab
  P: "[[c4,eb4]@6 ~@6 [c4,eb4]@6 g3@6 [c4,eb4]@6 g3@6 [c4,eb4]@3 ~@3 [f3,bb3,d4]@12 f3@6 [bb3,d4]@6 f3@4 ~@2 [g3,bb3,db4]@6 e3@6 [bb3,db4,e4]@6 g3@6, g3@5 ~ g3@10 ~@80]/2", // Cm Bb Gdim Bbdim
  Q: "[ab3,c4]@6 f3@6 [ab3,c4]@6 f3@6 ~@6 f3@6 [ab3,c4]@6 f3@5 ~, eb4@11 ~@13 [ab3,c4,eb4]@10 ~@14", // Ab
  R: "[ab3,c4,eb4] f3 [ab3,c4,eb4] ~ [ab3,c4,eb4]@4, ~@3 f3@5", // Ab
  S: "[c4,eb4] g3 [c4,eb4] g3 [c4,eb4] g3 ~ g3, g3@2 ~@16 [c4,eb4]@5 ~", // Cm
  T: "[bb3,d4]@6 f3@6 [bb3,d4]@6 f3@6 [g3,bb3,db4]@6 e3@5 ~ [bb3,db4,e4]@6 g3@5 ~", U: "[ab3,c4] ~@5",
})).s("gm_epiano1").gain(0.33).pan(0.9)

// chords · epiano1 · "E.PIANO 1" · soft notes · Ab Ab5 Absus2 Eb5 Absus2 Eb5 Absus2 Eb5 …
const epiano1_soft = note(`<
  ~@47
  [eb4 f3 [ab3,c4] f3 [ab3,c4] f3 [ab3,c4] f3, ~@12 eb4@5 ~@7]
  [[ab3,c4,eb4]@6 f3@6 ~ bb3@2 [eb4,ab4] ~ bb3 [ab4,bb4] [bb3,eb4] [ab4,bb4] eb4 [ab4,bb4] eb4 [ab4,bb4] ~ bb3 [ab4,bb4] ~ [ab4,bb4] bb3 [ab4,bb4] bb3 [ab4,bb4] ~ bb3 [ab4,bb4] bb3 [ab4,bb4] ~ [ab4,bb4] [bb3,eb4] [ab4,bb4] [bb3,eb4] [ab4,bb4] [bb3,eb4] ~@2, ~@15 bb4@2 ~@4 bb3@3 ~ eb4@2 eb4@4 ~ eb4@4 eb4@2 eb4@2 ~@8, ~@28 bb3@2 ~@9 bb3@2 ~@7]
>`).s("gm_epiano1").gain(0.05).pan(0.9)

// other · clarinet
const clarinet = note("<~@4 A@4 ~@5 B@5 ~@14 C D@3 ~ E F@3 G@4 C H@3>".pickRestart({
  A: "[~@9 f4@4 g4@3 g4@2 ~ g4@3 g4@5 f4@3 f4@7 ~ g4@16 ~@4 f4@3 g4@2 ~ g4@2 g4@3 g4@6 f4@3 f4@9 g4@7 g4@5 ab4@3 ~ g4@8 eb4@3 ~ c4@2 eb4@6 bb3@3 c4@7 ~ bb3@4 bb3@51 ~@3]/4",
  B: "[~@24 f4@4 g4@3 g4@2 g4@3 g4@6 f4@3 f4@7 g4@16 ~@4 f4@3 ~ g4@2 g4@2 ~ g4@3 g4@5 f4@3 ~ f4@8 g4@7 g4@6 ab4@3 g4@9 eb4@3 c4@3 eb4@6 bb3@3 c4@7 ~ bb3@4 bb3@51 ~@36]/5",
  C: "f4@4 g4@3 g4@2 ~ g4@3 g4@5 f4@3 f4@7 ~ g4@19",
  D: "[~ f4@3 g4@2 ~ g4@2 g4@3 g4@6 f4@3 f4@9 g4@7 g4@6 ab4@3 g4@9 eb4@3 c4@3 eb4@5 bb3@3 ~ c4@7 bb3@4 bb3@44 ~@19]/3",
  E: "f4@4 g4@3 g4@2 ~ g4@3 g4@5 f4@3 f4@7 ~ g4@18 ~",
  F: "[~ g4@3 g4@2 ~ g4@2 g4@3 g4@6 f4@3 f4@9 g4@7 g4@6 ab4@3 g4@9 eb4@3 c4@3 eb4@5 bb3@3 ~ c4@7 bb3@4 bb3@52 ~@11]/3",
  G: "[f4@4 g4@3 g4@2 ~ g4@3 g4@5 f4@3 f4@7 ~ g4@14 g4@9 g4@2 ~ g4@2 g4@3 g4@6 f4@3 f4@9 g4@7 g4@6 ab4@3 g4@9 eb4@3 c4@3 eb4@5 bb3@3 ~ c4@7 bb3@4 bb3@52 ~@11]/4",
  H: "[~ f4@3 g4@2 ~ g4@2 g4@3 g4@6 f4@3 f4@9 g4@7 g4@6 ab4@3 g4@9 eb4@3 c4@3 eb4@5 bb3@3 ~ c4@7 bb3@4 bb3@51 ~@12]/3",
})).s("gm_clarinet").gain(0.32).pan(0.6)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@9 A@5 B@4 C D@8 ~@5 E F G H ~ E F G H E F G H E I ~@2>".pickRestart({
  A: "[~@15 [c4,eb4,g4]@24 [bb3,d4,f4]@51 [g3,bb3]@25 [f3,c4]@25 ~ g3@24 ~ [e4,g4]@45 ~@29, ~@90 eb4@49 ~ f4@25 c4@47 ~@28, ~@141 d4@68 ~@31]/5", // Cm Bb Gm F5 Em
  B: "[~@6 c4@5 [eb4,eb5]@6 ~ g4@5 [f4,f5]@36 ~ [e4,e5]@11 ~ eb5@29 ~ g5@6 [eb4,eb5]@6 [c4,c5]@5 ~ bb4@38 ~@34, ~@5 c5@6 ~@6 g5@6 ~@48 eb4@30 g4@6 ~@12 bb3@38 ~@35]/4", // Eb F E Eb C
  C: "~@35 bb3@6 eb4@6 f4",
  D: "[~@6 [g4,eb5]@13 d5@6 c5@6 ~ g4@25 ~@12 a4@12 e4@24 ~ d4@25 e4@25 ~@13 g4@11 ~ d4@25 c4@24 ~ d4@24 ~@13 f4@12 ~@26 bb3@24 ~ c4@18 [g3,bb3,eb4,g4]@17 f4@18, ~@19 gb4@12 b4@37 ~@13 a4@49 ~ a4@38 ~@12 g4@49 g4@37 ~@14 f4@49 ~@54, ~@57 e4@24 ~@75 d4@24 ~@75 c4@24 ~ c4@25 ~@25 [f3,ab3,f4]@19 ~@35]/8", // Cm Eb Fm
  E: "~@30 c4@5 ~ eb4@5 ~ g4@5 ~, ~@29 c5@6 eb5@6 g5@6 ~", F: "[f4,f5]@3 [e4,e5]",
  G: "[eb4,eb5]@5 [g4,g5] [eb4,eb5] [c4,c5]", H: "[bb3,bb4]@3 ~", I: "[f4,f5]@3 e4",
})).s("gm_string_ensemble_1").gain(0.33)

// other · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@9 A@4 ~@5 B ~@27 C D E>".pickRestart({
  A: "[~@15 c5@24 bb4@25 ~ d5@25 bb4@25 ab4@19 c5@6 ~ bb4@25 ~@26]/4", B: "~@35 g3@7 ~@6", C: "~@3 e5",
  D: "[eb4,eb5]@5 [g4,g5] [eb4,eb5] [c4,c5]", E: "[bb3,bb4]@3 ~",
})).s("gm_string_ensemble_1").gain(0.16)

// chords · trumpet
const trumpet = note("<~@4 A B C@2 ~@5 D E F G@2 ~@14 H I J@2 ~ H I K@2 H I K@2 H I ~@2>".pickRestart({
  A: "~@21 [c5,eb5,g5]@3 ~@15 [c5,eb5,g5]@4 ~@5", B: "~@9 [bb4,d5,f5] ~@5 [bb4,db5,e5]",
  C: "[~@21 [c5,eb5]@3 ~@6 [ab4,c5]@3 ~@6 [eb4,ab4,bb4]@56 ~]/2", D: "~@12 [c5,eb5,g5] ~@3",
  E: "~@6 [c5,eb5,g5]@4 ~@32 [bb4,d5,f5]@3 ~@3", F: "~@12 [bb4,db5,e5]@4 ~@20 [c5,eb5]@3 ~@6 [ab4,c5]@3",
  G: "[~@3 [eb4,ab4,bb4]@25 ~@20]/2", H: "~@12 [c5,eb5,g5]@3 ~@15 [c5,eb5,g5]@4 ~@14",
  I: "~@18 [bb4,d5,f5]@3 ~@15 [bb4,db5,e5]@4 ~@8", J: "[~@4 [c5,eb5] ~@2 [ab4,c5] ~@2 [eb4,ab4,bb4]@16 ~@6]/2",
  K: "[~@12 [c5,eb5]@3 ~@6 [ab4,c5]@3 ~@6 [eb4,ab4,bb4]@49 ~@17]/2", // Cm Ab Ebsus4
})).s("gm_trumpet").gain(0.29).pan(0.4)

// chords · trumpet · soft notes
const trumpet_soft = note("<~@47 A@2>".pickRestart({
  A: "[~@12 [c5,eb5]@3 ~@6 [ab4,c5]@3 ~@6 [eb4,ab4,bb4]@49 ~@17]/2", // Cm Ab Ebsus4
})).s("gm_trumpet").gain(0.16).pan(0.4)

// chords · soprano sax · "SOPRAN SAX"
const soprano_sax = note("<~@15 A@3 ~@16 B@2 ~@3 B@2 ~@2 B@2 ~@4>".pickRestart({
  A: "[~@45 g4@8 ~ f4@6 eb4@5 ~ [bb3,c4]@3 g4@7 ~ f4@3 ~ [bb3,c4,f4]@22 ~@41, ~@23 [bb3,c4]@4 ~@21]/3", // Bbsus2
  B: "[~@22 g4@8 f4@6 eb4@5 ~ [bb3,c4]@3 [bb3,c4]@8 f4@3 ~ [bb3,c4,f4]@21 ~@18, ~@45 g4@7 ~@44]/2", // Bbsus2
})).s("gm_soprano_sax").gain(0.22)

// chords · soprano sax · "SOPRAN SAX" · soft notes
const soprano_sax_soft = note("<~@16 A@2 ~@17 B ~@4 B ~@3 B ~@4>".pickRestart({
  A: "[~@33 ab3@22 ~@41]/2", B: "~@3 ab3@7 ~@6",
})).s("gm_soprano_sax").gain(0.13)

// other · orchestral harp · "HARP" · Fmaj7 Gsus2 Cmaj7 Dsus2 Fsus2 Cmaj7 Dsus2
const orchestral_harp = note(`<
  ~@19
  [~@20 c3 d3 [e3,f3] [g3,a3] [b3,c4] [d4,e4] [f4,g4] a4 [b4,c5] [d5,e5] f5 g5 ~@16]
  ~@29
>`).s("gm_orchestral_harp").gain(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B C D E F G H I J K L M N O P Q R S T U V W X ~@4 Y Z AA AB AC AD Z AE AF AG AH AI AJ ~ Z AE AF AK
>`.pickRestart({
  A: "~@13 x ~@2", B: "x ~@2 x ~@7 x ~ x ~@2", C: "x ~@2 x!4 ~@4 x ~ x ~@2", D: "~ x ~ x ~ x ~@3 x ~@3 x ~@2",
  E: "~ x ~ x ~@12", F: "~@12 x ~@21 x ~@2 x ~@6 x ~@3", G: "~@2 x ~@5 x ~@6 x ~@21 x ~@2 x ~@5 x ~",
  H: "~@11 x ~@5 x ~@24 x ~@5", I: "~ x ~@11 x ~@5 x ~@25 x ~@2", J: "~@3 x ~@18 x ~@24 x", K: "~@5 x ~@9 x ~@8 x ~@23",
  L: "x ~ x ~@2 x ~@2 x!4 ~@4", M: "x ~@2 x ~@2 x ~ x ~ x ~@4 x", N: "~ x ~@2 x ~@3", O: "~@27 x ~@18 x ~",
  P: "~@4 x ~@6 x ~@11 x ~@5 x ~@18", Q: "x ~@6 x ~@5 x ~@12 x ~@5 x ~@15", R: "~@21 x ~@12 x ~@13",
  S: "~@23 x ~@12 x ~@11", T: "~@25 x ~@11 x ~@10", U: "~@9 x ~@3 x ~@2", V: "~@28 x ~@12 x ~@6",
  W: "~@18 x ~@24 x ~@4", X: "~@13 x ~@18 x ~@15", Y: "~@29 x ~@9 x ~@8", Z: "x ~@7 x ~ x ~@2 x ~@2",
  AA: "x!4 ~@4 x ~@7", AB: "x!2 ~ x ~ x ~ x", AC: "~@3 x!5", AD: "~@10 x ~@2 x ~@2", AE: "x!4 ~@6 x ~@2 x ~@2",
  AF: "x!2 ~@3 x ~ x", AG: "x ~@4 x!3", AH: "x ~@3 x ~@2 x", AI: "~ x ~@8 x ~@2 x ~@2", AJ: "x!2 ~@3 x ~@2",
  AK: "x ~@8 x ~@4 x ~@9",
})).gain(0.44)

// drums · rim
const rim = s("rim").struct("<~@8 A B C D E ~@4 F G H I J K B L M ~@23>".pickRestart({
  A: "~@25 x ~@22", B: "~@2 x ~@24 x ~@20", C: "~@2 x ~@12 x ~@8", D: "~@7 x ~@24 x ~@15", E: "~@9 x ~@25 x ~@12",
  F: "~@5 x", G: "~@17 x ~@24 x ~@5", H: "~@19 x ~@24 x ~@3", I: "~@21 x ~@24 x ~", J: "~@23 x ~@24",
  K: "x ~@24 x ~@22", L: "~ x ~@5 x ~@4", M: "~@5 x ~@24 x ~@17",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@3 A B C D ~@6 E F G ~@15 H I J K L M I N O P Q N@2 ~ F N ~@2>".pickRestart({
  A: "~@13 x ~@2", B: "x ~@2 x ~@3 x ~@2 x ~@4 x", C: "~@2 x ~@4 x ~@2 x ~ x ~@3", D: "x ~@6 x ~@2 x ~ x ~@3",
  E: "~@5 x ~@9 x ~@8 x ~@11 x ~@11", F: "~@4 x ~@2 x ~@4 x ~@2 x", G: "~ x ~@2 x ~@2 x ~@4 x ~@2 x",
  H: "~@29 x ~@9 x ~@8", I: "x ~@3 x ~@2 x ~ x ~@2 x ~@2 x", J: "~@4 x ~@2 x ~ x ~ x!3 ~@2",
  K: "~@4 x ~@2 x ~ x ~@2 x ~ x ~", L: "~@4 x!4", M: "~@10 x ~@2 x ~@2", N: "~@4 x ~@2 x ~ x ~@2 x ~@3",
  O: "~@4 x ~@2 x ~@2 x ~ x ~@2 x", P: "~@2 x ~@3 x!2 ~@8", Q: "~@4 x ~@2 x ~ x ~@4 x ~",
})).gain(0.44)

// drums · snare · soft notes
// … 65 more lines

More by Carpenters