Strudelify
Longfellow Serenade cover art

Serenade

Longfellow Serenade

Neil Diamond

KeyE majorTempo125 bpm
0:00/0:00
// Longfellow Serenade — Neil Diamond
// 125 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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 B A C@2 D@8 E@4 F@2 G@2 H@3 I J K L M N@4 O P M Q H@2 R S T U V W V@2 X Y Z AA AB A C@2 AC@8 AD@6 AE@3 H@2 I J AF L
  AG N@4 O P M Q H@2 R S T U V W V@2 AH AI Z AA AB Q H@2 R S T U V W AJ V AK AI Z AA AB A B A AL@2 ~
>`.pickRestart({
  A: "[d2,d4]@3 ~ [c#2,c#4]@3 ~ [b1,b3]@3 ~ [a1,a3]@2 ~@2", B: "[e1,e2,g#3,b3,e4]@7 ~",
  C: "[[e1,e2,g#3,b3,e4]@15 e3]/2", // E
  D: "[[g#3,b3,e4]@26 ~@2 [a3,c#4,e4]@2 ~@2 [e1,g#3,b3,e4]@31 ~ [g#3,b3,e4]@26 e3@2 [a3,c#4,e4]@2 ~@2 [g#3,b3,e4]@26 ~@2 [g#3,b3,e4]@2 e3@2, e1@31 ~@33 [e1,e2]@30 ~@2 e1@30 ~@2, e2@29 ~ e2@34 ~@30 [e2,e3]@31 ~ e2 ~, ~@13 e3@32 ~@19]/8", // E A E A E
  E: "[[a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@2 [d4,f#4]@2 [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~@3 g#3@2 a3@2 [a1,a2] ~, [a3,c#4,e4]@27 ~ a3@28 [a1,a2]@5 ~@3, ~@32 e4@27 ~@3 e4@2, ~@4 c#4@3 ~]/4", // A D A
  F: "[[e1,e2] ~ [e1,e2]@3 ~ [e1,e2] ~ [e1,e2] ~ [e1,e2]@3 ~ [e1,e2] ~ [e1,e2] ~ [e1,e2]@3 ~ [e1,e2] ~ [e1,e2] ~ [e1,e2]@3 ~ [e1,e2] ~, [e3,g#3,b3]@15 ~]/2", // E
  G: "[[b1,b2] ~ [b1,b2]@3 ~ [b1,b2] ~ [b1,b2] ~ [b1,b2]@3 ~ [b1,b2] ~ [b1,b2] ~ [b1,b2]@2 ~@2 [b1,b2]@2 ~@2 [b1,b2]@2 f#3@2 [b1,b2] ~, b3@15 ~, f#3@3 ~, d#3@19 ~ d#3@4 e3@5 ~@3]/2", // B
  H: "~@2 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~", // E
  I: "~@2 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3]@2", // E
  J: "~@2 [e3,a3,c#4] ~@3 [e3,a3,c#4] ~@3 [e3,a3,c#4]@2 ~@2 [e3,c#4]@2, ~@14 a3 ~", // A C#m
  K: "~@2 [e3,g#3,b3] ~@3 [g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~, ~@3 e3 ~@4", // E G#m E
  L: "~@2 [d#3,f#3,b3] ~@3 [d#3,f#3,b3] ~@3 [d#3,f#3,b3] ~@3 [d#3,f#3] ~, ~@7 b3", // B D#m
  M: "~ [d#3,f#3,b3] ~ [d#3,f#3,b3] ~ [d#3,f#3,b3] ~ [d#3,f#3,b3]", // B
  N: "~ [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]", // E
  O: "~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]", // A
  P: "~@2 [e3,g#3,b3]@2 ~@2 [e3,g#3,b3]@2 ~@2 [e3,g#3,b3] ~@3 [e3,g#3,b3]@2", // E
  Q: "~@2 [b3,c4,b4] ~ [b3,b4]@2 ~ [b3,b4]!4 ~ [b3,b4] ~ [b3,c4,b4] ~", // Cmaj7 B Cmaj7
  R: "~@2 [e3,a3,c#4] ~@3 [e3,a3,c#4] ~@3 [e3,a3,c#4] ~@3 [e3,a3,c#4]@2", // A
  S: "[e4,e5]@2 [e3,a3,c#4] ~ [g#4,g#5]@2 [e3,a3,c#4] ~@3 [e3,a3,c#4] ~@3 [e3,a3,c#4] ~, ~ [f#4,f#5] ~ [e4,e5]@2 c#5@2 ~", // E A G# A F# E
  T: "~@2 [b3,f#4]@2 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~, ~@2 d#4 ~@13", // B5 B
  U: "~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~", // B
  V: "~@2 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~", // E
  W: "~@2 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~@3 [g#3,b3] ~@3 [g#3,b3,e4] ~, ~@5 e4 ~@2", // E G#m E
  X: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,e4]@2, ~@14 c#4 ~", // A A5
  Y: "~@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~", // A
  Z: "~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]", // E
  AA: "~@2 [f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@2 ~@2 [f#3,d#4] ~, ~@7 b3", // B D#m
  AB: "~@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~", // E
  AC: "[[g#3,b3,e4]@26 ~@2 [a3,c#4,e4]@2 ~@2 [e1,g#3,b3,e4]@31 ~ [g#3,b3,e4]@26 e3@2 [a3,c#4,e4]@2 ~@2 [g#3,b3,e4]@26 ~@2 [g#3,b3,e4]@2 e3@2, [e1,e2]@30 e2@34 [e1,e2]@30 [e2,e3]@31 ~ e2 ~, ~@13 e3@32 ~@3 e1@15 ~]/8", // E A E A E
  AD: "[[a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2,f#4,f#5]@2 [g#4,g#5]@2 [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@2 ~@2 [a1,a2] ~ [a1,a2] ~ [a1,a2]@3 ~ [a1,a2] ~ [a1,a2] ~ [a1,a2]@2 [e3,a3,c#4,e4]@2 [a1,a2] ~ [e1,e2] ~ [e1,e2]@3 ~ [e1,e2] ~ [e1,e2] ~ [e1,e2]@2 ~@2 [e1,e2] ~ [e1,e2] ~ [e1,e2]@3 ~ [e1,e2] ~ [e1,e2] ~ [e1,e2]@2 [g#3,b3,e4]@2 [e1,e2] ~, [a3,c#4]@59 ~@5 [g#3,b3,e4]@27 ~@5, e4@24 e4@6 [e4,e5]@27 ~ b1@38, ~@12 e5 ~@35]/6", // A D G# A E A E
  AE: "[b1@2 [b1,b2]@4 b1@2 b1@2 [b1,b2]@4 b1@2 b1@2 [b1,b2]@4 b1@2 b1@2 b2@2 [f#3,b3,d#4]@2 ~@4 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~@3 [e3,g#3,b3] ~, [f#3,b3,d#4]@9 ~@7, b2 ~@5 b2 ~ b2 ~@5 b2 ~ b2 ~@5 b2 ~ b2 ~ b1@12 ~@10]/3", // B E B
  AF: "~@2 [e3,g#3,b3] ~@3 [g#3,b3] ~@3 [e3,g#3,b3] ~@3 [g#3,b3] ~, ~@3 e3 ~@3 e3", // E G#m E G#m
  AG: "~@2 [d#3,f#3,b3] ~@3 [d#3,f#3,b3]@2 ~@2 [d#3,f#3,b3]@2 ~@2 [d#3,f#3,b3]@2", // B
  AH: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [c#4,e4] ~, ~@7 a3", // A C#m
  AI: "~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]", // A
  AJ: "~@2 [g#3,b3,e4] c4 ~@2 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~", // E
  AK: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", AL: "[[e1,e2,g#3,b3,e4]@15 ~]/2",
})).s("gm_piano").gain(0.56)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D@6 ~@2 E@2 F@2 G@2 H@2 I@2 J K J@2 L M N O J@3 P Q M N R S T U V W X Y Z AA AB AC AD M AE AF C D@6 ~@2 E@2 F@2
  G@2 H@2 I@2 J K J@2 L M N O J@3 P Q M AG R S T U V W X Y Z AA AB AC AD M AE AF R S T U V W X Y Z AA AB AC AD M AE AF C
  B C AH@3
>`.pickRestart({
  A: "d2@4 c#2@3 ~ b1@3 ~ a1@3 ~", B: "e1", C: "d2@3 ~ c#2@3 ~ b1@3 ~ a1@3 ~",
  D: "[~@32 e2@21 ~@10 e2@25 ~@8, e1@17 ~@31]/6", E: "[e2@27 ~@5]/2", F: "[a2@31 ~]/2", G: "[a2@29 ~@3]/2",
  H: "[e2@29 ~@3]/2", I: "[b1@19 ~ b1@3 ~ c#2@3 ~ d#2@3 ~]/2", J: "e2@3 ~ b1@3 ~ e2@3 ~ b1@3 ~",
  K: "e2@3 ~ b1@3 ~ e2@2 ~@2 b1@3 ~", L: "a1@4 c#2@3 ~ e2@3 ~ a1@3 ~", M: "e2@3 ~ c#2@3 ~ b1@3 ~ g#1@3 ~",
  N: "b1@3 ~ c#2@3 ~ d#2@3 ~ e2@3 ~", O: "f#2@3 ~ g#2@3 ~ a2@3 ~ b2@3 ~", P: "e2@3 ~ b1@2 ~@2 e2@2 ~@2 b1@3 ~",
  Q: "a1@3 ~ c#2@3 ~ e2@3 ~ a1@3 ~", R: "f#2@3 ~ g#2@3 ~ a2@2 b2 ~ c#3 ~ d#3@2", S: "e3@3 ~ d#3@3 ~ c#3@3 ~ b2@3 ~",
  T: "e2@3 ~ d#2@3 ~ c#2@3 ~ b1@3 ~", U: "a1@4 f#2@3 ~ e2@2 ~@2 c#2@3 ~", V: "a1@3 ~ g#1@3 ~ a1@2 b1 ~ c#2@2 e2@2",
  W: "d#2@3 ~ b1@3 ~ a1@3 ~ b1@3 ~", X: "d#2@3 ~ d#2@3 ~ f#2@3 ~ g#2@3 ~", Y: "e2@4 g#2@3 ~ b2@3 ~ c#3@3 ~",
  Z: "e3@6 c#3@2 ~@2 b2@2 g#2 ~ f#2 ~", AA: "e2@4 d#2@3 ~ c#2@3 ~ b1@3 ~", AB: "e1@3 ~ e1@3 ~ f#1@3 ~ g#1@3 ~",
  AC: "a1@3 ~ f#2@3 ~ e2@3 ~ c#2@3 ~", AD: "a1@3 ~ b1@4 c#2@3 ~ d#2@3 ~", AE: "b1@3 ~ b1@3 ~ c#2@2 ~@2 d#2@3 ~",
  AF: "e2@3 ~ c#2@3 ~ b1@3 ~ c#2@3 ~", AG: "b1@4 c#2@3 ~ d#2@3 ~ e2@3 ~", AH: "[e1@17 ~@7]/3",
})).s("gm_fretless_bass").gain(0.39)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B C D@2 ~@12 E@2 F@2 G@4 H@8 I@6 J@4 K@4 L@2 M N O C P@3 ~@11 E@2 F@2 G@4 Q@8 R@4 S@6 K@4 L@2 M N O T U@2 J@4 K@4
  L@2 M N O V B C P@3
>`.pickRestart({
  A: "[d2,d3,d4]@3 ~ [c#3,c#4]@3 ~ [b2,b3]@3 ~ [a2,a3]@3 ~", B: "[e2,e3]@13 ~@3",
  C: "[d3,d4,d5]@3 ~ [c#3,c#4,c#5]@3 ~ [b2,b3,b4]@3 ~ [a2,a3,a5]@3 ~", D: "[e2,e3,e6]/2", E: "[e3, e2@11 ~@5]/2",
  F: "[b2@5 [d#3,d#5] [e3,e5] f#5, ~@14 f#3 ~]/2", G: "[e5@16 d#5@16 d5@31 ~, [b4,g#5], [e2,e3]@31 ~]/4",
  H: "[~@2 c#4@2 e4@2 a4@6 ~@6 b3@2 e4@2 g#4@6 ~@4 b3@4 c#4@4 d#4@4 e4@4 ~@4 g#4@4 a4@4 ~@6 g#4@2 a4@2 ~@4 f#4@2 e4@2 ~@20 g#4@2 a4@2 b4@4 f#4@2 e4@2 d4@4 b4@11 ~@3, e5 d#5 g#5@2, [a2,a3,c#5]@8 e3@7 ~ a3@48, a4@3 ~@5 b4@8 f#4@8 f#4@8 [e2,e3]@31 ~, ~@16 g#4@6 ~@10 b2@28 b4@4 e5@6 b4@8 d#4@2 d#5@2 b4@14 d5@31 ~]/8", // A E
  I: "[~@2 c#4@2 e4@2 a4@6 ~@6 b3@2 e4@2 g#4@6 ~@3 d#5 b3@4 c#4@4 d#4@4 e4@4 ~@4 g#4@4 a4@4 b4@4 ~@20 e2@9 ~@3, a3, e5@16 g#4@6 ~@10 f#4@16 f#4@16 [g#4,e5,e6]@29 ~@3, a2 e3 b2@2 [e3,b4]@2, [a4,c#5]@14 ~@2 b4@44 ~@16 e4@19 ~]/6", // C#m E5 A
  J: "[a6@8 [g#5,g#6]@5 ~@3 [e5,e6] ~ [f#5,f#6] ~ [g#5,g#6] ~ [e5,e6]@2 ~@2 [c#5,c#6]@2 ~ b4@3 ~@24 b3@4 f#3@2 ~@2, [a2,c#4,e4,a4]@16 [b2,d#4]@15 ~, a5@6 ~@23 b5@31 ~@4, b2 ~@7 a3@8 f#4@16, ~@8 b4@7 ~]/4", // G# E F# G# E C# A B
  K: "[e5@7 ~ d#5@8 c#5@8 b4@5 ~@3 [g#4,b4,e5,e6]@30 ~@2, e3, e2@61 ~@3, [g#4,e6]@31 ~@33, [b3,e4]@29 ~ e4@34]/4", // E C#m E5
  L: "[a6@8 g#6@8 [f#5,f#6]@7 ~ [e5,e6]@8, [a4,c#5]@31 ~, e5@3 ~, a5@3 ~ g#5@3 ~@9]/2", M: "[g#4,b4,e5,b5]",
  N: "~@4 b4@11 e5, [f#4,d#5]@15 ~, b3@13 ~@3", O: "[e4,e5]@13 ~@3, g#4@15 ~", P: "[[e2,e3]@11 ~@5, e6@31 ~@17]/3",
  Q: "[~@2 c#4@2 e4@2 a4@6 ~@6 b3@2 e4@2 g#4@6 ~@4 b3@4 c#4@4 d#4@4 e4@4 ~@4 g#4@4 a4@4 ~@6 g#4@2 a4@2 ~@4 f#4@2 e4@2 ~@20 g#4@2 a4@2 b4@4 f#4@2 e4@2 d4@4 b4@11 ~@3, e5 d#5 g#5@2, [a2,a3,c#5]@8 e3@7 ~ b2@15 ~ [e2,e3]@31 ~, a4@6 ~@10 b4@44 b4@10 b4@10 d#5@16 d5@31 ~, ~@8 g#4@3 ~@5 [a3,f#4]@8 f#4@8 e5@7 d#4@2 b4@10 ~@13]/8", // A E D
  R: "[~@2 c#4@2 e4@2 a4@6 ~@6 b3@2 e4@2 g#4@6 ~@3 d#5 b3@4 c#4@4 d#4@4 e4@4 ~@4 g#4@4 a4@4 b4@4, e5@31 ~@33, [a2,a3] e3 b2@2, c#5@7 ~ b4@22 ~@2, a4@3 ~@5 g#4@3 ~@5 f#4@8 f#4@8]/4", // A
  S: "[~@20 e2@9 ~@3 a6@8 [g#5,g#6]@5 ~@3 [e5,e6] ~ [f#5,f#6] ~ [g#5,g#6] ~ [e5,e6]@2 ~@2 [c#5,c#6]@2 ~ b4@3 ~@24 b3@4 f#3@2 ~@2, b4@5 ~@3 f#4@4, e3@16 [a2,c#4,e4,a4]@16 [b2,d#4]@15 ~, [g#4,e5,e6]@29 ~@3 a5@6 ~@23 b5@31 ~@4, ~@12 e4@19 ~ b2@2 ~@14 a3@16 b4@28 ~@4]/6", // G# E F# G# E C# A B …
  T: "f#4@2 g#4@2 a4@2 b4 ~", U: "[~@20 e2@9 ~@3, e3, [g#4,b4,e5,e6]@29 ~@3, ~@12 e4@19 ~]/2",
  V: "[d2,d3,d4]@3 ~ [c#3,c#4]@3 ~ [b2,b3]@3 ~ [a2,a3]@2 ~@2", // D C# B A
})).s("gm_string_ensemble_1").gain(0.2)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B A C D C D B@6 E@4 F B G@2 ~@31 H I@10 J K L@2 M N O P ~@47 A Q R S@2 ~
>`.pickRestart({
  A: "d4@3 ~ c#4@3 ~ b3@3 ~ a3@3 ~",
  B: "[g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~", // E
  C: "[g#3,b3,e4] ~ [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~", // E
  D: "[g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~", // E
  E: "[a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // A
  F: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3] ~", // E G#m
  G: "[f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~", H: "~@7 e3",
  I: "e4 b3 g#4 f#4@2 b3 g#4 e3", J: "~@2 e4@2 c#4@2 a4@4 e4@2 c#4@2 a3 ~, a3 ~@3",
  K: "~ e4 c#4 a4@2 e4 c#4 [d3,e3], a3@7 ~", // Dsus2
  L: "[~@2 e4 ~ c#4@2 a4@4 e4@2 c#4@2 ~@2 e4@2 c#4@2 e4@2 a4@4 e4@2 ~@2 a3@2, a3@6 ~ a3@7 c#4@2]/2",
  M: "e3 ~ e4 g#4@2 e4 b3 e4, ~ b3@4 ~@3", N: "e3 ~ e4 g#4@2 e4 b3 [e3,e4], ~ b3@4 ~@3",
  O: "~@4 d#4 ~ f#4@4 ~@2 b3@2 f#3@2, f#3@5 ~@3, ~@2 b3@7 ~ d#4@4 ~@2",
  P: "~@2 d#4@2 f#4@2 ~@2 d#4@2 b3@2 f#4@2 d#4 ~, b3@2 ~ f#3@2 ~@3", Q: "[e3,g#3,b3,e4]@15 ~",
  R: "[d3,d4]@3 ~ [c#3,c#4]@3 ~ [b2,b3]@3 ~ [a2,a3]@3 ~", S: "[e2,g#3,b3,e4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.26)

// drums · kick
const kick = s("bd").struct("<A B A B ~@9 B C B ~@2 C B ~ D@31 A B ~@9 B C B ~@2 C B ~ D@47 A B A B ~@2>".pickRestart({
  A: "x!4", B: "x", C: "~@7 x", D: "x!2",
})).gain(0.6)

// drums · snare
const snare = s("sd").struct("<~@20 A B@7 C B@7 C B@15 ~@18 A B@7 C B@7 C B@15 C B@15 ~@6>".pickRestart({
  A: "~@4 x ~@5 x!3 ~ x ~", B: "~ x ~ x", C: "~@2 x ~@2 x ~@2",
})).gain(0.6)

// drums · low tom
const low_tom = s("lt").struct("<~@28 A ~@7 A ~@41 A ~@7 A ~@15 A ~@21>".pickRestart({
  A: "~@6 x!2",
})).gain(0.6)

// drums · hihat
const hihat = s("hh").struct("<~@13 A@8 B@7 C B@23 ~@11 A@8 B@7 C B@39 ~@6>".pickRestart({
  A: "x!8", B: "x!4", C: "x ~ x ~ x ~ x!2",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 A ~@7 B ~@41 A ~@7 B ~@15 B ~@21>".pickRestart({
  A: "~@10 x!2 ~@4", B: "~@5 x ~@2",
})).gain(0.42)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@37 [x!8]!15 x ~@34 [x!8]!31 x ~@5>").gain(2.43)

stack(piano, bass, string_ensemble_1, acoustic_guitar_steel, kick, snare, low_tom, hihat, mid_tom, cabasa)

More by Neil Diamond