Strudelify
September Morn cover art

September Morn

September Morn

Neil Diamond

KeyE♭ majorTempo64 bpm
0:00/0:00
// September Morn — Neil Diamond
// 64 bpm, 4/4, key Eb 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 (2/4 at bar 1, 4/4 at bar 1, 2/4 at bar 29, 4/4 at bar 29, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 9 "Steel Guitar" acoustic guitar steel (copy of ch 8 "Nylon Guitar" acoustic guitar nylon)
// note: Full arrangement: all 62 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(64/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
const piano = note("<A@7 B@5 C D E F G@2 H I J K L@4 M N@7 O@5 P@3 Q@6 R S@2 T@2 U@7 V@2>".pickRestart({
  A: "[~@47 bb5@5 ~@6 a5@6 ~@7 g5@6 ~@6 f5@4 ~@8 eb5@6 ~@61 c5@23 ~@6 ab4@6 ~@24 g3@12 ~@6 [g3,bb3]@5 ~@6 g4@6 [c4,f4]@12 ~@7 f3@6 ~@24 [eb3,d4]@12 eb3@12 [eb3,bb4]@6 eb4, ~@39 f3@13 bb5@12 [eb3,eb5]@23 ab4@20 db5@5 g3@25 g4@49 ~@11 c5@12 bb4@47 [f2,ab4]@24 ~ bb2@18 bb3@18 ~@19, ~@40 [c4,f5]@25 [bb3,a5]@23 ab3@22 c3@50 [eb3,eb4] ab2@48 d3@18 ~@17 [d3,g3,eb4]@12 f3@18 ~@13 f3@17 ~ [eb2,g4]@24 ~@7, ~@40 a5@2 c6@24 ~@11 g5@11 db5@13 eb5@12 [c4,bb4]@73 ~@17 d4@36 d4@18 ~@24 d4@23 ~@25 eb4@3 ~@4, ~@41 f4@25 eb4@23 f5@24 c5@23 e4@25 [ab3,ab4]@24 d3@24 g4@36 bb3@12 ~@36 f4@13 ~@30]/7", // Gm F5 Ebmaj7 Eb5 Eb Fm F5 Bbmaj7 …
  B: "[~@11 bb4@6 ~@17 eb3@6 ~@19 eb5@6 ~@18 db3@6 ~@18 db5@6 ~@18 eb3@5 ~@18 eb4@6 [bb2,f3,eb4]@28 [bb2,d4]@27 ~@25, ~@5 g4@12 b4@36 [db4,b4]@12 db5@42 ~@6 b4@35 [eb3,f4]@12 bb3@55 ~@25, ~@17 ab2@23 ~@25 gb2@25 ~@11 [b3,bb4]@13 ~@11 ab3@12 gb3@25 ~@78, ~@23 eb3@11 ~@7 [db3,f4]@24 ~@6 db3@12 ~@6 [b2,eb4]@25 ~@5 eb3@12 ~@5 a2@25 ~@79, ~@29 [ab3,gb4]@12 ~@6 ab3@18 ~@12 [gb3,f4]@13 ~@5 gb3@18 ab2@25 ~@4 gb4@19 ~@79]/5", // Bbsus4 Bb Db7 Ebsus2 Bmaj7 Db B Ab7 …
  C: "bb3@2 ~ bb2, [eb2,eb3,eb4], ~ [f3,bb3,f4]", // Eb Bb5
  D: "~@3 bb4 [bb3,eb4]@2 eb4@2, [bb2,db4,f4,c5] [eb2,ab4], ~@12 f3@13 ~@23", // Eb5 Bbm Ab5
  E: "[ab2,ab3,c4,eb4]@4 ~@3 eb4, ~ ab2, ~@5 eb3@3, ~@3 ab3", // Ab
  F: "~@11 ab4@12 ~@13 f4@12, [b2,bb4]@24 [db3,g4]@23 ~, ~@6 eb3@18 ~@6 f3@17 ~", // Bmaj7 Dbdim
  G: "[~@17 eb2@7 ~@42 ab3@6 ~@18 bb2@5 ~, g4@13 ~@2 g4@6 g4@3, eb2@17 ~@7 c3@18 c4@18 c4@12 [bb3,d4]@23 ~, ~ g3@4 eb3@3 f3@4 ~@4, ~@12 bb3@12 c4@12 g3@12 f2@17 f2@7 bb2@18 ~@6]/2", // Bb
  H: "eb3@6 ~@11 eb4@4 ~@22 bb5@3 b5 ~, eb2@11 eb5 d5@12, eb4@17 ~@4 f5@3 ~@6 eb5@18, bb3@12 bb3@11 ~@12 c4@13, ~@6 eb3@17 c3@17 g5@8",
  I: "~@2 [ab3,c4,f4]@2 ~@3 ab5, c6@3 c6, [f2,f3]@24 [bb2,f3,bb3]@23 ~", // Fm F Bb5
  J: "[eb3,g3,d4]@3 [eb3,g3,d4]@3 g3@3 ~@2 eb5, bb5@24 c5@23 ~, ~@36 [c3,eb3,g3]@11 ~, ~@40 bb5@7 ~", // Ebmaj7 Cm
  K: "f3@12 [c3,f3,ab3]@12 ~ [f3,ab3]@11 ~@6 f5@6, ab5@2 bb2!2, ~@25 d6@23, ~@37 f3@11", // Fm
  L: "[[eb3,g3,g5]@12 [f3,ab3,ab5]@12 [gb3,a3,a5]@12 ~@12 [eb4,ab4,b4]@12 ~@6 ab2@6 [db4,b4]@12 ~@6 f4@5 ~ gb4@12 ~@6 gb2@6 bb4@12 eb4@6 b2@6 b3@12 b3@11 ~ eb4@12 eb4@12, ~@36 [g3,bb3,bb5]@36 ~@23 bb4@13 ~@24 bb4@12 ~@48, ~@48 ab3@24 ~@12 [ab3,b4]@12 ~@24 [gb3,gb4]@23 ~@49, ~@48 ab2@18 ~@6 [db3,f4]@18 ~@5 gb2@19 ~@6 b2@17 ~@7 [ab2,ab4]@23 ~ [a2,a4]@24, ~@60 [eb4,b4]@12 ~@12 db4@24 [db4,gb4,bb4]@13 ~@17 eb4@18 ~@36]/4", // Eb Fm Gbm Abm Db7 Gm Abm Gb …
  M: "[bb2,bb3,d4,f4,bb4]@47 ~", // Bb
  N: "[~@28 bb3@24 ~@12 bb2@12 ~@18 bb4@6 [bb3,eb4]@12 eb4@12 ~@42 eb4@6 ~@18 b3@6 ~@12 f4@12 ~@18 eb2@6 ~@42 [f2,ab3]@6 ~@18 bb2@5 ~ [eb3,eb4,g4]@11 ~ [f3,f4,ab4]@8, ~@28 [eb2,g3,eb4]@48 c5@24 [eb2,ab4]@25 ~@23 ab2@24 [b2,bb4]@24 [db3,g4]@23 ~ eb2@18 ~@6 c3@18 c4@18 c4@12 [bb3,d4]@23 ~@21, ~@52 [eb3,bb3,f4]@25 [bb2,db4,f4]@25 ~@22 [ab2,eb4]@25 ~@11 ab3@13 ~@4 gb3@19 ~@6 ab3@17 ~@7 g3@24 eb3@18 f3@24 ~@12 eb4@11 ~@21, ~@89 f3@13 ~@23 [ab3,c4]@27 ~@2 eb3@19 ~@11 ab4@13 ~@23 g4@52 ~@8 g4@35 ~@21, ~@232 bb3@12 c4@12 g3@12 f2@17 ~@7 bb2@18 ~@26]/7", // Eb5 Fm Eb Fm Eb Ab5 Bmaj7 Dbdim …
  O: "[~@4 [gb3,gb4,a4]@12 [g3,g4,bb4]@4 g2@4 bb2@4 [ab3,b3,eb4,ab4]@12 ~ [b3,eb4,ab4]@12 [db3,ab3,b3,f4]@12 ~@4 ab2@3 a2@4 [db4,f4]@12 [gb3,bb3,db4,f4]@12 [gb3,bb3,b3,eb4]@12 ~@5 gb2@3 g2@4 ab4@6 eb3@3 f3@3 gb3@6 [eb3,ab4]@6 ~@18 eb4@5 ~@2 bb4@12 ~ bb4@7 ~@6 c3 [c3,c4,c5]@27 ~@13, ~@28 b2@42 ~@6 bb2@44 ~@4 [ab2,b3]@23 ~ [a2,gb3,c4,ab4]@23 d4@13 ~ [d4,f4]@13 e4@28 ~@14, ~@40 ab3@12 ~@13 [ab3,b3,f4]@8 ~@40 [gb3,bb3,b3,eb4]@9 ~@33 gb4@17 [bb2,f4]@14 bb2@13 g4@29 ~@12, ~@161 f4@11 [f3,bb3]@30 ~@38, ~@193 bb4@9 ~@38]/5", // Gbm Gm Abm Db7 Db Gbmaj7 Bmaj7 Ab5 …
  P: "[~@14 f3@6 ~@12 c4@6 ~@18 f3@5 ~@19 c4@6 ~@18 f3@5 ~@7 bb3@6 ~@12 bb3 ~@5 bb3@4, ~@14 [f2,f5,a5,c6]@24 ~@12 [c4,a4]@11 ~@7 c4@12 ~@6 [c5,f5]@12 [c5,f5,a5]@11 ~@19 f4@16, ~@10 f3@9 f3@9 ~@3 [c3,g5,d6]@12 f3@9 ~@3 [bb2,d5,f5,c6]@12 ~@5, ~@26 [f4,a4]@12 [g4,c5]@23 ~ eb5@12 [g4,c5,eb5]@12 bb5@23 ~@25 [bb4,d5]@10, ~@92 f4@17 ~@13 bb3@12 ~@10]/3", // F F5 F Csus2 Bb F C5 Cm …
  Q: "[~@8 bb3@6 ~@12 bb5@12 eb4@2 ~@16 eb3@6 ~@18 f3@6 ~@18 d3@6 ~@18 g3@6 ~@18 c3@5 ~ [f2,f3,c5,f5]@14 ~@10 c3@8 c3@8 c5@8 [f4,a4,c5]@12 [f4,a4,c5]@12 [f4,a4,c5]@12 [f4,a4,c5]@12 [eb4,g4,d5]@12 [eb4,g4,d5]@12 [eb4,a4,c5]@10, ~ [f4,bb4,d5]@6 [db4,f5,c6]@12 [bb4,eb5,a5]@12 bb5@12 [d5,g5]@12 [bb4,d5]@3 d4@9 c3@9 ~@23 [c3,c6]@28 ~@17, ~@50 [eb4,g5]@12 f3@18 ~@6 d3@12 a4@12 g4@24 [a4,c5]@12 [a4,c5]@11 a4@14 ~@11 a4@24 ~@82, ~@62 [c5,f5]@12 [c5,f5,a5]@13 ~@11 f5@36 e5@24 ~@24 a5@72 ~@34, ~@34 f4@9 ~@3 d4@9 g3@6 [f4,bb4,d5]@6 ~@3 c4@9 ~@16 [bb4,bb5]@32 ~@17]/6", // F5 F Ebmaj7 Adim Bb Dbmaj7 Eb G5 …
  R: "~ [eb4,a4,c5]@6 [d4,f4,c5]@6 [d4,f4,c5]@6 [d4,f4,c5]@5", // Adim Dm7
  S: "[~@2 [d4,f4,c5]@9 ~@3 [db4,f4]@12 [db4,f4,bb4]@12 db4@12 [db4,g4]@12 ~ [c4,f4]@12 [c4,f4,a4]@12 [d4,f4,a4]@9, ~@14 c5@24 [f4,a4]@24 ~ bb4@26 ~@7]/2", // Dm7 Db Bbm Dbdim F5 F Dm F
  T: "[~ [d4,f4,a4]@4 [d4,f4,bb4]@4 [d4,f4,bb4]@4 [c4,e4]@4 [c4,e4,g4]@4 [c4,f4,a4]@4 [c4,f4,a4]@4 [d4,f4,a4]@3, ~@13 a4@8 ~@11]/2", // Dm Bb C F Dm
  U: "[~@3 [d4,f4]@12 [d4,f4,bb4]@12 ~@12 [c4,e4]@12 c4@12 ~@24 d4@24 bb3@27 f4@34 ~@8 bb5@6 ~@7 a5@5 ~@8 g5@6 ~@7 f5@5 ~@7 eb5@6 ~@7 db5@5 ~@7 c5@6 ~@7 bb4@6 ~@47 c6@14, ~@3 a4@30 g3@30 [f3,a4]@18 c3@3 db3@88 [f3,c4,f4]@2 a5@13 bb5@11 eb3@26 ab4@26 [g4,db5]@26 ~@15 a5@15 [g5,bb5]@14 a5@16, ~@15 g3@12 f4@12 [c3,a4]@12 e4@60 [d4,g4]@88 [bb3,bb4,eb5]@26 db5@19 ~@5 [g2,g3,e4]@27 [c2,c3,a4,c5]@60, ~@27 bb4@36 f4@24 [d3,a4]@86 f5@27 [eb4,a5]@26 ~@11 eb5@12 ~@14 c5@13 ~@15 f5@45, ~@27 d4@24 g4@12 c4@48 f3@27 [c3,bb3]@36 c6@26 ~@12 g5@13 [db3,ab3,db4,f5]@25 ~@25 [e4,g4]@61]/7", // Dm Bb C F F5 Gdim Gm F …
  V: "[~@5 c5@88 ~@3, f2@23 ~, ~@2 [c3,c4]@91 ~@3, ~ [f3,f4]@30 ~, ~@4 a4@89 ~@3]/2", // C F
})).s("gm_piano").gain(0.46).pan(0.4)

// chords · piano · soft notes
const piano_soft = note("<~ A@2 B@4 C ~@4 D E F ~ G H ~@2 I J ~ K L M ~ N@2 O@2 P@2 ~@2 Q ~@26>".pickRestart({
  A: "[~@16 bb4@23 ~ db4@24 g4@25 ~@7, ~@39 db3@26 ~@31]/2",
  B: "[~@41 ab3@24 g3@12 ~@12 [g3,bb3]@6 ~@11 g2@6 ~@12 [c4,f4]@12 ~ bb3@18 bb2@5 ~@13 [bb3,d4]@12 ~@7, ~@65 g2@41 ~@86, ~@78 bb3@11 ~@103, ~@83 d3@17 ~@92]/4", // Gm F5 Bb
  C: "~@5 eb3@3 ~@16", D: "~@18 bb2@17 ~@13", E: "~@3 bb3, ~@5 eb3@3", F: "~@18 eb3@7 ~@23, ~ g4@3", G: "eb3@25 ~@23",
  H: "~ ab3@2 ~@5", I: "~@2 [c3,eb3] ~", J: "[c3,ab3]@12 ~@25 ab3@11", K: "~@13 ab4@12 ~@17 db3@6", L: "~@2 eb4 ~",
  M: "~@12 eb4@11 ~@13 a3@12", N: "[~@46 bb2@17 ~@33]/2",
  O: "[~@16 bb3@12 ~@18 eb3@7 ~@43, ~@11 eb3@18 ~@11 g4@37 ~@19]/2", P: "[~@28 eb3@25 ~@29 ab3@12 ~@2]/2",
  Q: "~@17 db3@8 ~@3 [gb3,bb3]@12 ~@8", // Gb
})).s("gm_piano").gain(0.31).pan(0.4)

// bass · fretless bass · "Bass"
const bass = note("<~@12 A B C D E F E G H I J K L M N@2 O@2 P@6 ~@3 Q@3 R@5 S@3 T@2 U@5 ~@5>".pickRestart({
  A: "eb2@13 ~@5 eb2 ~@5 eb2@14 ~@4 eb2@6", B: "bb2@13 ~@5 bb2@6 eb2@15 ~@3 eb2@6",
  C: "ab2@13 ~@5 ab2@3 ~@3 ab2@14 ~@4 eb2@6", D: "ab2@7 ~@2 ab2@3 db2@7 ~@2 db2@3", E: "eb2@7 ~@2 eb2@3 c2@7 ~@2 c2@3",
  F: "f2@7 ~@2 f2@3 bb1@7 ~@2 bb1@3", G: "f2@13 ~@5 f2@6 bb1@24", H: "eb2@3 bb2 c3@3 c2", I: "f2 bb1",
  J: "eb2 f2 gb2 g2", K: "ab2@24 db2@23 ~", L: "gb2@12 b1@11 ~", M: "ab2 a2",
  N: "[bb2@25 bb1@28 ~@23 eb2@13 ~@5 eb2 ~]/2",
  O: "[~@4 eb2@14 ~@4 eb2@6 bb2@13 ~@5 bb2@6 eb2@15 ~@3 eb2@6 ab2@13 ~@5 ab2@2]/2",
  P: "[~@2 ab2@7 ~@2 eb2@3 ab2@7 ~@2 ab2@3 db2@7 ~@2 db2@3 eb2@7 ~@2 eb2@3 c2@7 ~@2 c2@3 f2@7 ~@2 f2@3 bb1@7 ~@2 bb1@3 eb2@6 f2@6 gb2@6 g2@6 ab1@12 ~@22]/6",
  Q: "[~@14 f2@13 ~@5 f2 ~@5 f2@15 eb2@3 f2@3 eb2@3 c2@13 ~@5 c2@6 f2@17 ~ f2@6 bb1@12 ~@6 bb1@3 ~@3 bb1@10]/3",
  R: "[~@2 bb1@6 f2@6 bb1@14 ~@4 bb1@6 eb2@15 ~@3 eb2@6 f2@15 ~@3 c2@3 db2@3 d2@15 ~@3 d2@6 g2@14 ~@4 g2@6 c2@14 ~@4 c2@6 f2@12 ~@12 c3@6 ~@2 c3@6 ~@2 c3@6 ~@2 f2@12 ~@6 f2@3 ~@3 f2@10]/5",
  S: "[~@8 f2@3 ~@3 f2@15 ~@3 f2@4 ~@2 f2@5 ~ f2@3 g2@3 a2@11 ~ bb2@13 ~@5 bb2@5 ~ bb2@14 ~@4 bb2@6 eb2@14 ~@4 eb2@3 ~@3 eb2@10]/3",
  T: "[~@2 eb2@6 ~ eb2@5 ~ c2@17 ~ c2@5 ~ d2@15 ~@3 d2@5 ~ g2@14 ~@4 g2@6 c2@9]/2",
  U: "[~@3 c2@8 ~@4 f2@13 ~@5 c2@3 db2@3 d2@14 ~@4 d2@6 g2@15 ~@3 g2@6 c2@17 ~ c2@6 f2@14 ~@4 c2@3 db2@3 d2@24 g2@20 a2@4 bb2@3 c3@36 ~@18]/5",
})).s("gm_fretless_bass").gain(0.57)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note("<~@7 A@5 B@3 C D E@3 ~@2 F G H I J K@5 L M@8 N@6 O@8 P@2 ~ Q@4>".pickRestart({
  A: "[~@17 [ab3,eb4,gb4]@23 ~@2 ab3@23 ~@24 [b3,eb4]@22 ~@8 eb3@6 gb3@6 eb3@5 ~@6 gb3@6 f3@6 ~ eb3@6 ~ eb4@25 d4@44 ~@9, ~@17 b3@47 ~ [gb3,bb3]@47 ~ [ab3,b3]@23 c4@23 ~@2 bb2@70 ~@9, ~@40 db4@48 ~@25 eb4@45 ~@4 bb3@69 ~@9, ~@41 f4@48 ~@48 a3@26 ~@77]/5", // Ab7 B Gb Abm
  B: "[g4@47 f4@25 g4@12 ~@12 g3@48, bb3@91 ~@53, ~@7 eb4@5]/3", C: "[bb3,gb4] b3, ~@24 g4@19 ~@5",
  D: "f4@12 eb4@11 ~ f4@12 g4@11 ~, bb3@19 ~@4 g3@24 ~",
  E: "[eb4@24 g4@24 ~@18 d4@6 eb4@12 bb3@11 ~ ab3@31 ~@17, ab3@21 ~@3 bb3@40 ~@31 c4@32 ~@17, ~@48 eb4@17 ~@79, ~@59 g3@37 ~@48]/3",
  F: "g6 ab6 a6 bb6", G: "b6@15 ~", H: "bb6@15 ~", I: "ab6@5 gb6 f6 eb6", J: "bb5@13 ~@3",
  K: "[~@28 g4@48 f4@24 g4@13 ~@11 g3@47 ~ [bb3,gb4]@24 b3@24 [bb3,eb4]@20, ~@28 bb3@91 ~@121, ~@113 eb4@58 ~@25 g4@19 ~@25]/5", // Ebm Eb5
  L: "~ d4@3 eb4@3 [f3,c4]@5, ~ g3@6 ~@5", // F5
  M: "[~@4 [f3,d4]@24 g5@6 eb5@5 ~ ab5@6 f5@6 a5@6 gb5@6 bb5@6 g5@6 ~ [eb4,ab4]@22 [db4,f4]@21 ~@4 [db4,f4]@23 [b3,eb4]@21 ~@4 [ab3,b3,eb4]@24 ~@6 gb5@6 f5@6 eb5@6 [bb3,d4,f4]@23 ~@5 [g3,d4,e4,c6]@54 c6@48 d6@34, ~@28 [bb3,eb4]@11 [c4,f4]@13 [c4,gb4]@12 [d4,g4]@12 b5@43 ~@53 ab5@31 ~@17 bb5@28 ~@136, ~@77 ab3@43 ~@4 [gb3,bb5]@44 ~@28 [a3,c4,gb4]@25 ~@163]/8", // Dm Ab5 Db B Abm Bb C Eb5 …
  N: "[~@3 c6@17 a5@6 bb5@6 c6@7 f5@47 g5@24 a5@19 g5@6 f5@23 d5@23 ~ c5@21 ~@3 a4@11 ~@13 a5@8 bb5@8 c6@8 c6@24 g6@10]/6",
  O: "[~@2 a6@12 bb6@25 a6@29 bb6@6 c7@6 f6@66 ~@5 c6@2 ~ f6@2 g6@2 a6 bb6@17 a6@7 g6@6 f6@6 e6@6 d6@6 c6@84 ~ bb5@5 a5@7 f5@80, ~@148 f5@3 ~@233, ~@149 bb5@4 d6@2 ~@229]/8",
  P: "[~@2 e5@6 d5@6 ~ f5@59 ~@22]/2", Q: "[~@35 a5@144 ~@13]/4",
})).s("gm_string_ensemble_2").gain(0.35).pan(0.8)

// other · synth brass 2 · "Synth Brass"
const synth_brass_2 = note("<~@12 A B C D ~ E ~@9 F@4 ~@8 G H I J@2 K@2 L M N O P@2 Q@2 R@3 ~@5>".pickRestart({
  A: "~@11 bb3@13 f4@11 g4@13", B: "f4@24 ~@12 eb4@11 ~", C: "c4@37 ~@11", D: "eb4 b3", E: "eb4 ~",
  F: "[~@28 bb3@24 f4@11 g4@13 db4@33 ~@3 eb4@11 ~ c4@37 ~@31]/4", G: "~@25 c4@13 g4@10", H: "~ a4@6 c4@12 ~@5",
  I: "~@2 f4@11 ~ d4@34", J: "[~@7 f4@12 db4@12 c4@17]/2", K: "[~ g3@6 f3@12 c4@12 f3@6 ~@11]/2", L: "~@13 c4@6 g4@5",
  M: "~ a4@6 g4@17", N: "~ f4@6 d4@6 f4@6 c5@5", O: "~ bb4@6 f4@17", P: "[~@2 g4@13 ~ a4@23 c4@23 ~ f4@24 a4@9]/2",
  Q: "[~@4 c4@11 f4@24 d4@36 bb4@6 a4@6 f4@9]/2", R: "[~@3 d4@12 c4@20 ~@4 d4@24 f4@27 a4@17 ~ c4@18 ~@18]/3",
})).s("gm_synth_brass_2").gain(0.33).pan(0.3)

// other · synth brass 2 · "Synth Brass" · soft notes
const synth_brass_2_soft = note("<~@16 A B C ~@35 D ~ E ~@5>".pickRestart({
  A: "bb3@17 ~@7", B: "~ g4", C: "eb4@23 ~@25", D: "~@9 db4 ~@2", E: "~@5 f4@3",
})).s("gm_synth_brass_2").gain(0.17).pan(0.3)

// chords · string ensemble 2 · "Slow Strings"
const string_ensemble_2_2 = note("<~@7 A@5 B C D@2 E F G H ~@2 I J K L M@5 N@6 O P@8 Q@2 R@8 ~ S T@4>".pickRestart({
  A: "[~@17 ab2@44 ~@3 gb2@24 b2@26 ab2@23 a2@24 bb2@70 ~@9]/5", B: "eb3@47 ~", C: "db3@24 eb3@23 ~",
  D: "[c3@41 ~@6 b2@24 ~ f3@24]/2", E: "~ c3, eb3", F: "~ bb2, f3", G: "eb3 c3", H: "f2@5 ~@3",
  I: "~ [eb3,bb3,eb4]@11 [f3,c4,f4]@11 ~ [gb3,c4,gb4]@12 [g3,d4,g4]@12", J: "~ ab2@23 [db3,f3]@20 ~@4, ~ b3@41 ~@6",
  K: "gb2@24 eb3@17 ~@7, bb3@5 ~, db3@5 ~@7", L: "[b2,ab3]@23 a3@24 ~",
  M: "[[d3,bb3]@61 ~@15 eb3@47 ~ db3@24 eb3@23 ~ c3@42 ~@5 b2@21]/5", // Gm
  N: "[~@4 f3@23 ~ eb3@24 c3@24 ab2@24 b2@24 eb3@11 f3@13 gb3@12 g3@12 gb3@18 eb3@6 ~ f3@21 ~@2 f3@18 db3@6 eb3@22 ~@2 eb3@5 ab2@3 bb2@3 b2@6 ab2@3]/6",
  O: "~@3 gb3@7 f3@6 eb3@6 b2@6 bb2@20",
  P: "[~@7 c3@52 ~@4 a3@46 ~ [g3,bb3,eb4]@24 [a3,c4,f4]@24 ~ [f3,a3]@44 ~@3 [f3,ab3,db4]@24 ~ eb3@24 [f3,a3,c4]@23 [a3,d4,f4]@24 [bb3,d4]@24 ~@6 g4@17 [a3,f4]@14 ~@11 [c3,bb3,f4]@7 ~ [c3,bb3,f4]@2, ~@62 [c4,f4]@47 ~@49 d4@48 ~@24 [g3,db4]@25 ~@47 a4@30 ~@52, ~@326 [g3,e4]@23 ~@35]/8", // Eb F Db F Dm Bb Dm Fsus4 …
  Q: "[~@6 [c3,bb3,f4]@6 ~@26 a4@12 [a3,c5]@12 ~ [eb4,d5]@33, ~@14 f4@49 ~@33, ~@14 c4@37 ~@11 g4@34, ~@14 f3@30 ~@19 bb3@29 ~@4]/2", // Fsus4 Am Ebmaj7
  R: "[~@2 [a3,f4,c5]@13 [f3,a4]@45 ~@37 g4@14 ~ [c4,f4]@23 ~@24 f4@24 ~ bb4@5 a4@12 g4@6 ~ f3@23 ~@24 [g3,bb3]@24 ~@2 g3@18 ~@4 f4@49 ~@32, ~@2 eb4@9 ~@4 d4@47 g3@49 ~ a3@42 ~@125 c4@19 ~@5 c4@24 ~@57, ~@62 db4@45 ~@28 d4@48 ~@24 c4@24 d4@49 ~@104, ~@62 a4@35 ~@15 a4@47 ~@120 [e4,a4]@24 ~@81, ~@63 f4@49 ~@71 e4@21 ~@3 f4@73 ~@104]/8", // F F5 Gm A5
  S: "~@27 f4@4 ~ f4@6 eb4@6 eb4@4", T: "[~@2 db4@6 ~ db4@6 c4@6 ~ c4@6 bb3@8 c4@150 ~@6]/4",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.2)

// chords · string ensemble 2 · "Slow Strings" · soft notes
const string_ensemble_2_soft = note("<~@19 A ~@3 B C D ~@19 E ~@2 F@2 ~ G@3 H@3 ~@5>".pickRestart({
  A: "eb3@31 ~@17", B: "eb3@23 ~@25", C: "~@23 b2@18 ~@7", D: "~@22 c3@21 ~@5", E: "~@13 c4@14 ~@21",
  F: "[~@5 bb3@15 ~@12]/2", G: "[~@39 c4@23 ~@2 a3@47 ~@33, ~@15 g3@29 ~@100]/3",
  H: "[~@64 bb3@26 c4@31 ~@23, ~@15 a3@48 g3@59 ~@22, ~@39 d4@52 ~@53]/3",
})).s("gm_string_ensemble_2").gain(0.2).pan(0.2)

// chords · orchestral harp · "Harp"
const orchestral_harp = note("<~@22 A@2 ~@14 B ~@23>".pickRestart({
  A: "[~@24 ab5@5 ~@19, ~@37 ab2@2 ab3@2 eb4@2 b3@2 ab4@2 eb5@2 ~@47, ~@19 eb3 b3 ab4 eb4 b4 ~@24]/2",
  B: "~@17 e3@2 ~@6 e4@2 ~@6 [g4,c5]@2 ~@5 c6@7 ~, ~@15 e2@2 ~@3 c4@2 g2@2 c4@2 ~@2 [g3,c4]@2 c5@2 [c4,e4]@2 ~ e5@2 [e4,g4]@2 g5@2 ~@7, ~@16 c3@2 ~ g3@2 e4@2 [e3,g3]@2 ~@2 [c3,g4]@2 [e4,g4]@2 e3@2 ~@3 g3@2 [c5,e5]@2 ~@8", // C5 C Em C5 Em C
})).s("gm_orchestral_harp").gain(0.21).pan(0.2)

// chords · acoustic guitar nylon · "Nylon Guitar"
const acoustic_guitar_nylon = note("<~@12 A B@3 C@2 D ~@8 E@4 F@3 G ~@4 H@2 I@2 J K@2 L@4 M@7 N@3 O@2>".pickRestart({
  A: "~ [eb4,g4]@17 [eb3,g3,bb3,eb4]@6 ~ g4@11 ~ g4@11, [eb3,g3,bb3]@3 ~ eb3@3 ~, ~@12 [g3,bb3,eb4]@6 [g3,bb3,eb4]@5 ~", // Eb
  B: "[~@13 bb3@5 [f3,bb3]@5 ~@2 ab4@10 ~ [eb4,g4]@8 ~@22 [g3,c4]@5 ~ [g3,c4,eb4,g4]@15 ~@9 [gb3,eb4,bb4]@11 ~ [eb4,ab4]@10 ~@2 [eb4,g4]@12 [b3,eb4,f4]@10 ~@2, db4@17 ~@7 [bb3,eb4]@11 bb3@8 ~@5 [g3,c4]@18 ~@29 eb3@18 ~@31, bb3@12 f3@5 ~@30 ab2@40 ~@57, ~ f4@17 ~@30 eb4@23 ~@24 b3@12 [gb3,b3]@8 ~@4 b3@12 ~@13, ~@49 g4@23 ~@72]/3", // Bb5 Eb C5 Cm Ebm Ab5 Eb Fm7b5 …
  C: "[~ g4@11 [eb4,g4]@6 g3@5 ~ g3@12 g3@10 ~@2 [ab3,eb4]@12 [f3,ab3,eb4]@9 ~@3 [f3,bb3,d4]@12 ~ d4@9 ~@2, [eb3,g3,bb3]@18 ~@29 f3@12 ~@12 bb2@18 ~@7, eb4@11 ~@13 [c4,eb4,g4]@16 ~@8 ab4@16 ~@8 [f4,bb4]@16 ~@8, ~@28 [f3,bb3]@3 ~]/2", // Eb Ab5 Fm7 Bb Eb Cm Bb5
  D: "~@13 [g3,bb3]@9 ~@2 [c4,eb4,g4]@11 ~ [c4,eb4,g4]@11 ~, eb4 ~, [eb3,g3,bb3]@12 eb3@9 ~@3 [c3,g3]@23 ~, ~ g4@17 ~@30", // Gm Cm Eb C5
  E: "[~@47 bb3@5 ~ eb4@11 [g3,bb3,eb4]@11 ~@2 f4@16 ~@2 f4@4 ~@2 ab4@10 ~ [eb4,g4]@10 ~@3 [eb4,g4]@17 ~ g4@5 [g3,c4,eb4]@12 ~ eb4@10 ~ [b3,eb4,bb4]@10 ~@2 [b3,eb4,ab4]@8, ~@28 [eb3,eb4]@23 ~ eb3@18 ~@6 [f3,bb3,db4]@16 ~@2 [f3,bb3,db4]@4 ~@26 [ab2,g3,c4]@17 ~@51, ~@28 bb3@15 ~@3 g3@5 ~ [g3,bb3]@11 ~@37 [bb3,eb4]@11 bb3@10 ~@21 [g3,c4,eb4]@5 ~@13 [g3,c4]@11 ~@21, ~@29 g4@23 ~ g4@17 ~@78 g4@19 ~@25]/4", // Eb Cm Bmaj7 Abm Eb Bbm Abmaj7 Gm …
  F: "[~@5 g4@10 ~ [eb4,f4]@11 ~@2 [eb4,g4]@17 ~ g4@5 [g3,c4,eb4,g4]@11 ~@2 g4@10 ~@2 ab4@16 ~@2 ab4@5 ~ [f4,bb4]@11 ~ bb4@10 ~@2 [eb4,g4]@10 ~@2 ab4@7, ~@4 [b3,eb4]@11 b3@10 ~@3 [eb3,g3]@21 ~@27 [f3,ab3,eb4]@17 ~ [f3,ab3,eb4]@5 ~ f3@18 ~@6 [eb3,bb3]@11 ~ [f3,ab3,eb4]@8, ~@28 bb3@17 ~ [g3,bb3,eb4]@5 ~@13 [g3,c4,eb4]@10 ~@26 [bb3,d4]@11 ~ [bb3,d4,f4]@11 ~@21]/3", // Ebsus2 Eb Cm Bb5 Eb B Eb Fm7 …
  G: "~@5 a4@10 ~@2 [g4,bb4]@11 ~@20, ~@3 gb3@11 ~@2 [g3,d4]@12 ~@20, ~@2 [c4,eb4]@5 ~@17", // Gm G5 Cm
  H: "[~@33 c4@5 ~ [c4,f4]@11 [a3,c4,f4]@11 ~@2 g4@16 ~@2 g4@4 ~@2 bb4@9, ~@14 f3@23 ~ f3@18 ~@6 [g3,c4,eb4]@16 ~@2 [g3,c4,eb4]@4 ~@12, ~@14 c4@16 ~@2 a3@5 ~ a3@11 ~@37 [c4,f4]@10, ~@15 [f4,a4]@23 ~ a4@17 ~@40]/2", // F5 F Cm F5 F
  I: "[~@2 [c4,f4,a4]@10 ~@3 [f4,a4]@17 ~ a4@5 ~@13 f4@10 ~@2 c5@10 ~ [db4,f4,bb4]@10 ~@3 a4@9, ~@14 [bb2,a3,d4]@17 ~ [a3,d4,f4]@5 ~ [a3,d4,f4]@12 [a3,d4]@11 ~ [db4,f4]@11 ~@13 [db4,f4]@10, ~@39 a4@19 ~@38]/2", // F Bbm Bbmaj7 Dm D5 Db
  J: "~@2 [db4,f4,g4]@10 ~@3 [f4,a4]@17 ~ [f4,a4]@5 ~ a4@9, ~@14 [f3,a3]@21 ~@13, ~@14 c4@17 ~ [a3,c4]@5 ~ [a3,d4,f4]@10", // Gm7b5 F Am Dm
  K: "[~@3 a4@10 ~@2 [f4,bb4]@17 ~ bb4@5 ~ [e4,g4,c5]@11 ~ [g4,c5]@10 ~@2 [f4,a4]@23 ~@10, ~@2 [a3,d4,f4]@10 ~@2 [g3,bb3]@17 ~ [g3,bb3,f4]@5 ~ g3@18 ~@6 [f3,c4]@23 ~@11, ~@38 c4@11 ~ [c4,e4]@11 ~@35]/2", // Bb5 C C5 F Dm Gm Gm7 F5 …
  L: "[~@14 [f3,a3,f4]@12 ~ c4@5 ~@3 f4@3 [c4,f4]@3 ~ [c4,f4]@2 [c4,f4,a4]@6 ~ [f4,a4]@5 ~ a4@4 ~@2 [eb4,g4]@11 ~ eb4@5 ~ g3@2 ~ f3@2 eb4@3 ~@6 c5@3 [eb4,a4]@6 ~ [c3,f3,c4]@5 ~ [f4,a4]@11 ~ [f4,a4]@8 ~ f4@2 f4 f4@2 [f4,a4]@3 [f4,a4]@6 [f4,a4]@11 ~@2 c5@9 ~@2 [f4,bb4]@11 ~@2 a4@9, ~@26 a4@6 a3@6 a3@18 [f3,a3]@6 [bb3,d5]@12 bb3@5 ~ [c3,bb3]@6 f3@18 ~@6 bb2@36 ~@11 f3@20 ~@5 [eb3,db4,f4]@10, ~@26 [f3,a3]@5 ~ f3@17 ~@2 c4@12 ~@17 eb4@3 ~@3 c4@6 c4@12 ~@6 [a3,d4]@12 d4@9 ~@3 d4@6 d4@12 ~@6 [ab3,db4,f4]@11 [ab3,db4]@11 ~@12, ~@27 f4@8 a4@5 ~ a4@3 ~@12 f4@3 ~@16 [g4,d5]@8 [g4,b4]@2 ~@4 [eb4,a4]@9 ~@6 a4@5 ~@22 a4@3 a4@2 ~@56, ~@89 c5@5 ~@4 c5@11 ~@83]/4", // F F5 F Eb Ebdim F5 F Bb5 …
  M: "[~@3 g4@12 ~ [c4,f4]@11 ~ [c4,f4,a4]@5 [c4,f4]@3 f4@3 [d4,f4]@3 f4@2 ~ [a3,d4,f4]@6 ~ [d4,f4,a4]@5 ~ [a3,d4,a4]@4 ~@2 [d4,g4]@12 ~@6 g3@5 ~@4 c4@2 ~ [g3,e4]@5 ~ [c3,c4,e4]@11 ~ f4@11 ~ c4@5 [f3,c4]@3 ~ c4@2 ~ f4@2 f4@3 ~ d4@5 ~ [f4,a4]@5 [a3,d4,f4]@5 ~@2 d4@11 [g3,bb3,d4]@6 ~ bb3@2 [bb3,d4]@3 c4@2 ~ c4@2 ~ [g3,c4,e4]@6 ~ e4@5 ~ e4@5 ~ [c4,f4]@11 ~@9 f4@3 ~@13 d4@5 ~ d3@5 ~ g4@12 ~@8 [d3,g3]@6 ~@2 a4@23 ~@12 a4@17, ~@2 [eb3,db4,f4]@13 c3@20 ~@4 a3@6 d3@15 ~@3 g3@18 d3@5 ~@7 [c3,c4]@6 ~@12 [a3,c4]@12 [a3,a4]@7 ~@5 [d3,a4]@6 [d3,a3,f4,a4]@6 [d3,a3,d4]@6 ~@6 d3@18 d3@11 ~ d3@13 ~@18 [c4,f4]@6 a3@4 ~@8 a3@11 a3@5 ~ [g3,bb3,d4]@13 g3@7 ~@8 [g3,e4]@23 ~@11 f3@18 ~, ~@15 a3@12 a3@5 ~ a3@5 ~ a4@12 a3@6 f4@5 ~ bb3@12 ~ [bb3,d4,g4]@8 ~@4 g3@6 ~@5 g3@11 ~ f3@18 a3@6 ~ a3@5 ~@18 [g3,bb3]@11 ~@7 g3@6 g3@6 ~@6 [g3,c4]@6 [g3,c4]@5 ~ [f3,a3]@12 [f3,a3]@6 f3@2 ~@4 [d3,a3,d4]@6 ~@45 c3@25 ~@29, ~@124 f4@8 [f4,a4]@3 d4@3 ~@81 a4@13 [f4,a4]@11 ~ [f4,a4]@10 ~@15 [d4,g4]@11 ~@38 [c4,f4]@18]/7", // F5 F F5 Dm D5 G5 C F5 …
  N: "[~ f3@5 ~@3 g4@18 eb3@5 ~@3 f4@21 ~@4 bb4@21 ~@5 a4@44 ~@14, ~@6 eb3@19 ~@7 db3@22 ~@29 [c3,g3]@48 ~@13, ~@7 bb3@20 ~@6 ab3@22 ~@3 [bb3,db4]@22 ~@4 c4@46 ~@14, ~@8 eb4@21 ~@5 db4@23 ~@2 e4@20 ~@6 e4@44 ~@15]/3", // C5 Bbm
  O: "[~@8 a4@14 ~ f2@3 a2@3 c3@3 ~ f3@4 e3@4 c3@4 ~ d3@5 a2@6 c3@34 ~@5, ~ f3@9 ~@38, ~@4 c4@17 ~@75, ~@5 f4@15 ~@76]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.24).pan(0.1)

// drums · kick
const kick = s("bd").struct("<~@12 A@7 ~@8 B C@6 D ~@4 E F@5 G H F@2 I J K@3 L ~@7>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "~@14 x ~@8 x", C: "~@2 x ~@8 x ~@2 x ~@8 x", D: "~@2 x ~@8 x ~@12",
  E: "~@7 x ~@8 x ~@2 x ~@4", F: "~@4 x ~@2 x ~@8 x ~@2 x ~@4", G: "~@4 x ~@2 x ~@11 x ~@3 x",
  H: "~@3 x ~@3 x ~@8 x ~@2 x ~@4", I: "~@8 x ~@5 x ~@17 x ~@5 x ~@8 x", J: "~@2 x ~@6 x ~@5 x ~@17 x ~@5 x ~@8",
  K: "~@3 x ~ x ~@5 x ~ x ~@2", L: "~@3 x ~ x ~@10",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@39 A B@5 C A B@3 D E@3 F ~@7>".pickRestart({
  A: "~@13 x ~@10", B: "~ x ~@11 x ~@10", C: "~ x ~@22", D: "~@2 x ~@24 x ~@20", E: "~ x ~@7 x ~@6", F: "~ x ~@14",
})).gain(0.72)

// drums · clap
const clap = s("cp").struct("<~@12 [~ x ~ x]!7 ~@8 [~@5 x] [~@2 x ~@2 x]!6 [~ x ~] ~@27>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@12 A@7 B@7 C D E@6 F ~@4 G H@5 I ~@8 J K L ~@5>".pickRestart({
  A: "x!8", B: "~ x ~ x", C: "~ x ~@2", D: "~@14 x ~@2 x ~@2 x ~@2 x",
  E: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", F: "~@2 x ~@2 x ~@2 x ~@2 x ~@12",
  G: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", I: "~ x ~@2 x ~@19",
  J: "~@5 x ~ x ~ x ~ x ~ x ~ x", K: "~@3 x ~@5 x ~@5 x ~@6 x ~@5 x ~@6 x ~@6 x ~@5", L: "~ x ~@14",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@45 [~@25 x!2 ~@21] ~@6 [~@2 x!2 ~@12] ~@9>").gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@45 [~@23 x!2 ~@23] ~@16>").gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@56 [~@11 x ~@36] ~@5>").gain(0.32)

// drums · crash
const crash = s("cr").struct("<~@45 A B ~ C@2 D ~@3 E ~@7>".pickRestart({
  A: "~@7 x ~@11 x ~@3 x", B: "~@3 x ~@3 x ~@16", C: "~@7 x ~@16", D: "~@2 x ~@6 x ~@5 x ~@32", E: "~@5 x ~@10",
})).gain(0.48)

// drums · ride
const ride = s("rd").struct("<~@22 A B ~@22 C D E F G H@3 I ~@7>".pickRestart({
  A: "x!4", B: "x", C: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  D: "~@2 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@2 x",
  E: "~@2 x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x ~@3",
  F: "~@2 x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@3",
  G: "~@2 x ~@6 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@2", H: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  I: "x!2 ~ x ~@12",
})).gain(0.56)

stack(
  piano, piano_soft, bass, string_ensemble_2, synth_brass_2, synth_brass_2_soft, string_ensemble_2_2,
  string_ensemble_2_soft, orchestral_harp, acoustic_guitar_nylon, kick, snare, clap, hihat, low_tom, mid_tom, open_hat,
  crash, ride
)

More by Neil Diamond