Strudelify

Diamante

Randy Crawford

KeyF majorTempo120 bpm
0:00/0:00
// Diamante — Randy Crawford
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(120/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 · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E B C F G@2 H G I@2 J K C@2 L C M@2 C N O@2 P Q O@2 P Q R S A B C D E B C F G@2 H G I@2 J K T@2 U T V@2 T N
  O@2 P Q O@2 P Q O@2 P Q O@2 P Q W@7 X A B C D E B T N O@2 P Q O@2 P Q O@2 P Q O@2 P Q W Y X Z A B C D E B C@2 A B C D
  C D ~@4
>`.pickRestart({
  A: "[d4,g4]@3 [bb3,d4]@2 [bb3,d4,g4]!3, ~@3 g4 ~@4", B: "[bb3,d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]!2 ~",
  C: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]!3", D: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]!2 ~",
  E: "[bb3,d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]!3", F: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]!2 ~",
  G: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2", // F
  H: "[a3,c4,f4]@3 [g3,a3,c4,f4]@2 [g3,a3,c4,f4] [g3,a3,c4,f4]@2", // F
  I: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4,f4]@2", // Bb
  J: "[a3,c4,f4]@6 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4,f4]@3 ~", K: "~ [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]!2 ~",
  L: "[a3,c4,f4]@3 [g3,a3,c4,f4]@2 [g3,a3,c4,f4]!3", M: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]!3",
  N: "[a3,c4,f4]@6 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4,f4] ~@3", O: "[g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]!3",
  P: "[f3,bb3,d4]@3 [f3,a3,c4]@2 [f3,a3,c4]!3", Q: "[f3,a3,c4]@3 [f3,a3,c4]@2 [f3,a3,c4]!3",
  R: "[f3,bb3,d4]@3 [f3,bb3,d4]@2 [f3,bb3,d4]!3", S: "[f3,bb3,d4]@2 [f3,bb3,d4]@2 [g3,c4,e4]@2 [g3,c4,e4] ~",
  T: "[a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4]!3", U: "[a3,c4,f4]@2 [a3,c4,f4] [g3,a3,c4,f4]@2 [g3,a3,c4,f4]!3",
  V: "[bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4,f4]!3", W: "~@5 [f4,bb4,d5]!3", X: "~@5 [a4,d5,f5]!3",
  Y: "~@5 [f4,bb4,d5] [g4,c5,e5]!2", Z: "~@5 [g4,c5,e5]!3",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(1)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~ A@2 B@2 A@2 C D ~@16 E@2 F@2 E@2 G@2 H@2 A@2 B@2 A@2 C D ~@16 E@2 F@2 E@2 G@2 E@2 G@2 E@2 G@2 I@4 J@3 K ~@2 B@2 A@2
  L@2 E@2 F@2 E@2 G@2 E@2 G@2 E@2 G@2 M@2 N@2 A@2 B@2 A@2 L@2 A@2 B@2 L@2 O@3 ~
>`.pickRestart({
  A: "[g3,bb3,d4]/2", B: "[[f3,a3,c4]@31 ~]/2", C: "[f3,a3,c4]", D: "[f3,bb3,d4]", E: "[g3,c4,e4]/2",
  F: "[[f3,bb3,d4]@3 [f3,a3,c4]@13]/2", G: "[[bb3,d4,f4]@3 [a3,c4,f4]@13]/2", H: "[[f3,bb3,d4]@23 ~ [g3,c4,e4]@8]/2",
  I: "bb2/4", J: "bb2/3", K: "c3 d3", L: "[f3,a3,c4]/2", M: "[[f3,bb3,d4]@7 [g3,c4,e4]]/2",
  N: "[[a3,d4,f4]@3 [g3,c4,e4]]/2", O: "[[f3,a3,c4]@11 ~]/3",
})).s("gm_synth_strings_1").gain(0.09)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~ A@7 B@3 ~ C@7 ~ D@5 ~@3 E@3 ~ F G@4 H@8 ~ I@3 ~ J@3 K@4 ~@13 L@3 ~@3 M@6 ~@3 N O@3 ~ P@7 ~ Q@4 ~@4 R@5 S@4 T@3 U@8
  V@2 ~
>`.pickRestart({
  A: "[~@16 d3@2 ~@4 bb3@4 ~@5 e4 ~@62 bb4 a4 ~@6 c4@10, g3@20 a3@6 bb3@24 c3@14 g3@31 bb4@17, ~ bb3@4 f4@4 d3@10 c4@12 d3@4 c5@2 a4@7 c5@12, ~@2 d4@13 f4 [e4,f4]@11 g3@2 a3@5 d4@16 ~@6, ~@3 a4@15 a3@8 f3@7 bb3@15 a4@8]/7", // Fmaj7
  B: "[~ [a3,c4]@2, ~@2 f3@13 [f3,g3]@32 ~, ~ bb3@2 bb3@8 ~, ~@3 d4@16 ~@5]/3", // Am Fsus2
  C: "[~@16 d4@31 ~@33 c4@32, ~@6 c4@32 ~@9 c4@23 d4@32 ~@10, ~@7 f4@32 ~@8 bb3@21 bb3@32 ~@12, ~@4 a4@3 a4@16 ~@10 f3@16 ~@7, ~@12 g4@32 ~@4 a3@31 [g3,a3]@32 ~]/7", // Gsus2
  D: "[a4@2 ~@6 f4@3 ~@13 a3@16, c4@11 f4@16 ~@13, f4@12 f4@2 g4@32 ~ [c4,d4]@32 ~, ~@2 a4@3 a4@16 ~@19, ~@3 c5@16 ~@21]/5", // Csus2
  E: "[~@5 a3@16 ~@3, ~ a3@4 ~@19, ~ c3@8 ~@3, ~@3 g3@16 ~@5]/3", F: "~@7 a4",
  G: "[~@21 f4@10 f4, a4@8 f4@9 bb3@15, ~@4 g4@9 f4 g4@22 d4@28, ~@3 bb4@13 g3@16, ~@6 d4@6 e4@7 a4@13]/4",
  H: "[~@3 c4, e4@26 a3@8 bb3@30 a4@31 [f3,g3,a3]@32 ~, ~@2 g3@8 f3 g3@3 f3@4 d4@16 ~ c4@13 ~@16, ~@3 c4@12 d3@4 c5@2 a4@7 c5@13 f3@2 d4@16 ~@5, ~@9 c3@7 g3@15 bb4@11 bb3@16 ~@6]/8", // F
  I: "[~ f4@2, ~ c4@4 f4 c4@16 ~@2, ~ f4@3 a4@16 ~@4, ~ a4@2 bb4@16 ~@5, ~ c5@8 ~@3]/3",
  J: "[~ a4@2, ~ bb3 g4@8 ~@2, ~@5 c4@4 bb4 d5@32 ~@6, ~@3 d4@3 c5@16 ~@2, ~@7 f4@7 bb4@32 ~@2]/3",
  K: "[~@8 c5!2 ~@4 f4@16 ~@2, ~@15 c6@10 g4@32 ~@7, ~@18 g5@8 f4 c4@32 ~@5, ~@10 f5 f5@16 ~@5, ~@21 c5@2 g4 c5@32 ~@8]/4",
  L: "[~@5 c5 ~ g4@16 ~, ~ g4@2 g4@3 g4 ~@17, ~@3 a4@32 ~@13, ~@4 c5@6 ~@3 c5@32 ~@3, ~ f4@4 ~]/3",
  M: "[~@2 c5 ~@4 a4 ~@23 d5@16 ~, ~@2 a4@3 ~ c5@22 c5@31 f5@32 ~@5, ~@3 bb4@18 g4@11 g5@32 ~@32, ~@16 a4@13 d5 f5 d5@29 c5@32 ~@4, ~@11 bb4@6 f5@11 e5@16 ~@4]/6",
  N: "~@15 [g3,a3], ~@7 f3", // Gsus2
  O: "[[g3,a3]!2 [a3,c4]!2 [c4,d4]!2 [d4,f4]!2 [f4,g4]!2 [g4,a4]!2 a4 [a4,c5] [c5,d5]!2 f5 [d5,f5]@31, f3 d4 c5@4, ~ g3@4 f4@16 ~@3, ~ a3@2 g4@8 ~, ~@3 c4@4 a4@16 ~]/3", // Gsus2 Am Csus2 Dm Fsus2 Gsus2 Am Csus2 …
  P: "[~@5 e4@2, ~ c3@4 c4 d4@13 c4@16 ~@4 f4@16 ~, ~@2 g3@5 f4@15 d4@16 a4@16 ~@2, ~@3 a3@5 e4@3 c4@3 g4@10 bb3@16 ~@16, ~@4 bb3@11 c4 e4@11 a3@16 ~@13]/7",
  Q: "[~@2 a4@2 a4 ~ g4@2 g4 ~ f4@2 f4 ~@9 c4@32 ~@10, ~@2 bb4@5 e4@16 ~@9, ~@5 a4@3 a4@8 d4@32 ~@16, ~@9 g4@3 g4@32 ~@20, ~@13 f4@32 ~@19]/4",
  R: "[~@11 d5@5, ~ g5@2 c5@2 f5@9 c4@28 a3@4 [f4,g4]@5 f5@29, ~@2 f5@2 g5@9 f4@31 [c4,d4]@4 d5 e5@31, ~@6 c5@2 c5@32 ~ g3@4 e4@4 f5 g5@30, ~@7 f4@2 g4 f4 c4 g4@31 bb3@4 [a4,bb4]@6 c5@27]/5", // Fsus2 Csus2 Bbmaj7
  S: "[~@19 c4@13, g3@10 a3 bb3@16 ~@5, ~ bb3@4 f4@4 d3@9 a3@14, ~@2 d4@13 f4@16 ~, ~@3 a4@13 e4@16]/4",
  T: "[~@30 bb4 a4 ~@6 c4@10, g3@31 bb4@17, ~ bb3@15 a4@8, ~ d4@8 ~@3, ~@3 c5@2 a4@7 c5@12]/3",
  U: "[~@4 c4 ~@3 c4 ~@3 c4 ~@99 [g4,a4]@16, ~@5 [c4,d4]@4 [c4,d4]@4 c4@21 d3@14 a4@30 a4@30 a3@20, ~@6 a3@4 a3@3 d4@5 bb3@4 c5@4 a4@10 a3@10 bb4@32 ~ [f4,g4]@32 f4@17, ~@7 a3@3 d4@10 c5@15 g3@5 c4@15 c4@9, ~@8 g3@11 bb3@8 g3@3 a3@8 a3@5 g3@3 a3@5 g3@13]/8", // Gsus2 Csus2 Fsus2
  V: "[~@2 g4@5 ~, ~ c4@13 ~@2, ~@5 f4@23 ~@4]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0.7)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note("<~@76 A ~@8 B C ~@39 D@2 ~>".pickRestart({
  A: "~@5 a4@9 ~@2", B: "~@13 [f3,g3] a3@2", C: "c4!2 d4!2 f4!2 g4!2 a4!2 c5!2 [c5,d5] d5 f5@2",
  D: "[~@11 a4@17 ~@4]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.09).pan(0.7)

// other · kalimba
const kalimba = note("<~@75 A B C D B C D E ~@46>".pickRestart({
  A: "~@5 d3 c4 a3 c4 ~ a3 g3 f3 ~@3", B: "~ d3 c4 a3 c4 ~ a3 g3 f3 ~@4 d3 c4 a3",
  C: "c4 ~ a3 g3 f3 ~@4 d3 c4 a3 c4 ~ a3 g3", D: "f3 ~@4 d3 c4 a3 c4 ~ a3 g3 f3 ~@3", E: "~ d3 c4 a3 c4 ~ a3 g3 f3 ~@7",
})).s("gm_kalimba").gain(0.11)

// other · pad metallic
const pad_metallic = note("<~@79 A B ~@44 C@4>".pickRestart({
  A: "c5", B: "d5", C: "[c5@49 ~@15]/4",
})).s("gm_pad_metallic").gain(0.29).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@26 A@5 B@4 ~@25 C@8 A@5 D@4 ~@13 E@2 F@8 G@8 ~@2 H ~@12 I J@3 ~@2>".pickRestart({
  A: "[~@4 g3@8 ~@3 [f3,bb3]@6 f3@19 ~ a3@6 [g3,c4]@16 c4@11 ~@5 f3, ~@40 g3@7 ~@16 g3@7 ~@10]/5", // Bb5 C5
  B: "[~@5 f3@9 ~ [f3,a3]@16 [f3,bb3]@16 f3@8 [g3,c4]@8 ~]/4", // F Bb5 C5
  C: "[~@4 g3@8 ~@3 [f3,bb3]@6 f3@19 ~ a3@6 [g3,c4]@16 c4@11 ~@5 f3@6 f3@9 ~ a3@16 g3@15 ~@2, ~@40 g3@7 ~@16 g3@7 ~@25 f3@32 ~]/8", // Bb5 C5
  D: "[~@5 f3@9 ~ [f3,a3]@16 ~ [f3,bb3,d4]@18 ~@14, ~@31 d3@18 ~@15]/4", E: "[~@15 g3@15 ~@2, ~@7 [a3,c4,f4] ~@8]/2",
  F: "[~@4 g3@8 ~@3 [f3,bb3]@6 f3@19 ~ a3@6 [g3,c4]@16 c4@11 ~@5 f3@6 f3@9 ~ f3@32 ~, ~@40 g3@7 ~@16 g3@7 ~@25 a3@16 ~@17]/8", // Bb5 C5
  G: "[~@4 g3@8 ~@3 [f3,bb3]@6 f3@19 ~ a3@6 [g3,c4]@16 c4@11 ~@5 f3@6 f3@9 ~ f3@30 ~@3, ~@40 g3@7 ~@16 g3@7 ~@25 a3@16 ~@17]/8", // Bb5 C5
  H: "~ [c4,e4], ~@7 g3@8 ~", I: "~@2 c4 bb3@3 ~@2, ~ a3@2 ~@5",
  J: "[~@4 c4@2 bb3@6 ~@4 f4@19 ~@13, ~ a3@2 ~@4 f3 ~@16, ~@15 [a3,c4]@20 ~@13]/3", // Am
})).s("gm_electric_guitar_clean").gain(0.11).pan(0.1)

// chords · french horn
const french_horn = note(`<
  ~@2 A B@2 C@3 D E@4 F@2 G D E@4 F@2 H@2 I@2 J@2 I@2 J@2 K@2 L@2 H@2 M@2 N O E@4 F@2 G D P@4 Q@2 H@2 I@2 J@2 I@2 J@2
  I@2 J@2 I@2 J@2 R@4 S@3 T U@2 B@2 U@2 V@2 W@2 X@2 W@2 X@2 W@2 X@2 W@2 X@2 Y@2 Z@2 L@2 H@2 L@2 H@2 L@2 H@4 AA@3 ~
>`.pickRestart({
  A: "[bb3,d4,f4]", B: "[f4@11 g4@3 f4@2, [a3,c4]]/2", C: "[[bb3,d4]@2 [a3,c4], f4]/3", D: "[f3,bb3,d4]",
  E: "[~@19 g3@5 ~@8, [f3,a3,c4]]/4", F: "[f3,bb3,d4]/2", G: "[f3,a3,c4]", H: "[f3,a3,c4]/2", I: "[g3,c4,e4]/2",
  J: "[[f3,bb3,d4]@3 [f3,a3,c4]@13]/2", K: "[[f3,bb3,d4]@3 [g3,c4,e4]]/2", L: "[g3,bb3,d4]/2",
  M: "[~@2 e4 f4, [g3,bb3,d4]]/2", N: "[a3,c4,f4]", O: "[g3,bb3,d4]",
  P: "[~@19 g3@5 ~@2 f4@2 e4@3 c4, [f3,a3], c4@31 ~]/4", Q: "[~ c4, [f3,bb3,d4]]/2", R: "[f3,bb3,c4,d4]/4",
  S: "[f3,bb3,c4,d4]/3", T: "[g3,c4,e4] [a3,d4,f4]", U: "[~@2 a4 g4, [bb3,d4,f4]]/2", V: "[a3,c4,f4]/2",
  W: "[c4,e4,g4]/2", X: "[[bb3,d4,f4]@3 [a3,c4,f4]@13]/2", Y: "[[f3,bb3,c4,d4]@7 [g3,c4,e4]]/2",
  Z: "[[a3,d4,f4]@3 [g3,c4,e4]]/2", AA: "[[a3,c4,f4]@11 ~]/3",
})).s("gm_french_horn").gain(0.18).pan(0.7)

// bass · electric bass finger
const bass = note(`<
  ~ A@2 B C D A B E F G F@2 H I J K G L G F M@2 G N O P Q R O@2 S T U V D W F X D Y B K F Z F AA AB AC AD AE B AF B AG
  AH AI F B O AJ AK AL O AJ AM AN O AO AP AN O AJ AQ AR AS@4 AT@3 AU D A B AV D AW F AX O AJ AK AY O AJ AM AN O AO AZ AN
  O AJ AQ AR BA@2 BB@2 BC BD B AV D BE B BF BC BE BG BH BG BI BJ@3 ~
>`.pickRestart({
  A: "g1@6 d1@5 ~ d1@4", B: "f1@6 c2@5 ~ c2@4", C: "f1@3 c1@3 f1 gb1", D: "g1@3 d2@3 d2@2", E: "c1@6 c2@5 ~ c2@4",
  F: "f1@3 c2@3 c2@2", G: "f1@3 c2@3 c1@2", H: "bb1@3 f2@3 f1@2", I: "bb1@3 f2@3 c2@2", J: "f1@3 c2@3 f1@2",
  K: "c2@3 c2@3 c2@2", L: "f1@3 c2@3 f2 c2", M: "bb1@3 f2@3 f2@2", N: "f1@3 c2@3 c2 a1", O: "c2@3 c2@3 g1@2",
  P: "c2@3 c2 c2@2 g1@2", Q: "bb1@3 f1@4 e1", R: "f1@3 c2 c2@2 f1@2", S: "bb1@3 f1@3 c1@2", T: "f1@3 f1@3 c2 b1",
  U: "bb1@5 ~ bb1@6 f1@4", V: "bb1 c2", W: "g1@3 d1@2 d2 d1@2", X: "f1@5 ~ d2@2 c2@2 bb1@2 a1@2 f1@2",
  Y: "g1@3 d1@3 d1@2", Z: "f1@3 c2@3 f2@2", AA: "f1@3 c2@3 f1 c2", AB: "bb1@3 bb1@3 bb1 f1", AC: "bb1@3 bb1@3 g1 c2",
  AD: "f1@3 c2@3 c2 ~", AE: "c2@5 ~ c2@5 ~ c2@4", AF: "f1@3 c2@3 c1 g1", AG: "f1@3 c2@3 c2 f1",
  AH: "bb1@5 ~ bb1@8 f1@2", AI: "bb1@3 bb1@3 bb1 c2", AJ: "c2@3 c2@3 g1 c2", AK: "bb1@3 f1@5", AL: "f1@3 f1@3 a1 bb1",
  AM: "bb1@6 f1@7 ~ c1@2", AN: "f1@5 ~ f1@6 a1@2 bb1@2", AO: "c2@5 ~ c2@4 c2@2 g1@2 c2@2", AP: "bb1@5 ~ f1@8 c2@2",
  AQ: "bb1@6 f1@9 ~", AR: "f1@3 f1@3 c2 g1", AS: "bb1/4", AT: "bb1/3", AU: "c2 d2", AV: "f1@3 d2 c2 bb1 a1 f1",
  AW: "g1@6 d1@5 ~ a1@4", AX: "f1@6 c1@5 ~ a1@2 bb1@2", AY: "f1@3 f1@3 f1 bb1", AZ: "bb1@5 ~ f1@8 c1@2",
  BA: "[bb1@7 c2]/2", BB: "[d2@3 c2]/2", BC: "g1@6 d2@5 ~ d2@4", BD: "g1@3 d1@2 d1 g1 d1", BE: "g1@3 d1@3 g1@2",
  BF: "f1@5 ~ f1@5 ~ f1@2 gb1@2", BG: "f1@7 f1", BH: "f1@13 ~ f1@2", BI: "f1", BJ: "[f1@7 ~]/3",
})).s("gm_electric_bass_finger").gain(0.48)

// other · lead 2 sawtooth
const lead_2_sawtooth = note("<~@82 A B C D E F G@2 H I ~@37>".pickRestart({
  A: "~ g3 a3 bb3 c4 d4 e4 f4 g4 a4 [bb4,c5] d5 e5 f5 g5 a5", B: "bb5 c6 d6@2 d6 ~ d6@2 ~ c6@7", C: "~@4 a5 c6 d6!2",
  D: "c6@6 a5@8 g5 f5", E: "d5@2 c5@5 ~", F: "a5@2 bb5@2 a5@2 bb5 ~ c6@4 c6@4, ~@8 b5 ~@7",
  G: "[c6@10 ~@2 e6@9 f6 ~ d6 c6@5 ~ [ab5,a5] g5]/2", H: "c5@13 ~ d5 a4", I: "c5@7 ~@9",
})).s("gm_lead_2_sawtooth").gain(0.46)

// drums · kick
const kick = s("bd").struct("<~ [x ~@6 x]!124 x ~@3>").gain(0.4)

// drums · rim
const rim = s("rim").struct("<~ [~@2 x ~@2 x ~ x]!124 ~@4>").gain(0.3)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~ [~ x]!124 ~@4>").gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@2 A ~ B C ~@2 A ~@3 A ~ A ~@4 A ~@2 D E A ~ A ~ A ~@2 A F A ~@2 A ~ B C ~@2 A ~@3 A ~ A ~ A@2 ~ A ~@2 D E A ~ A
  ~ A ~@2 A@2 ~ A ~ A ~@2 A@8 ~ A ~@3 A ~ A E A ~ A ~ A ~@2 A@2 ~ A ~ A ~@3 D ~@2 A ~@2 A ~ B C ~ A ~@2 A ~ B ~@4
>`.pickRestart({
  A: "~@3 x", B: "x", C: "~@3 x ~@4", D: "~ x ~@6", E: "x ~@2 x", F: "~ x",
})).gain(0.2)

// drums · ride
const ride = s("rd").struct(`<
  A B@7 C D E@4 F E G D F E H E I@2 J E I K L M I K N E H B@7 C D E@4 F E G D F E O E I@2 J E I K L M I K N D I K L M I
  K N E L E L F L F L D E@4 F E G E I K L M I K N D I K L M I K N P Q R S B@7 C B@5 T U ~@3
>`.pickRestart({
  A: "~@14 x!2", B: "x ~@2 x ~ x!2 ~", C: "~ x!2 ~ x!3 ~", D: "x ~@2 x!2 ~@3", E: "~@3 x!2 ~@3", F: "~ x ~ x!2 ~@3",
  G: "~ x ~ x!2 ~ x ~", H: "~@6 x!3 ~@7", I: "~@3 x!3 ~@2", J: "x!3 ~ x!3 ~", K: "~@3 x!2 ~ x ~", L: "~ x ~ x!3 ~@2",
  M: "~@3 x!2 ~@2 x", N: "~ x ~ x ~ x!2 ~", O: "~@2 x!3 ~@3 x!3 ~@5", P: "x!2 ~ x ~ x ~ x", Q: "x ~@4 x ~ x",
  R: "x ~@2 x ~ x ~ x", S: "x ~ x ~@5 x ~@5 x!2", T: "x ~@5 x ~@3 x ~@3 x!2", U: "x",
})).gain(0.25)

// drums · congas
const congas = s("conga:18").struct("<~ [~ x!2 ~ x!2 ~@2]!124 ~@4>").gain(1.27)

// drums · shaker
const shaker = s("sh").struct("<~ [~@2 x ~@2 x!3]!124 x ~@3>").gain(0.25)

stack(
  acoustic_guitar_steel, synth_strings_1, acoustic_guitar_nylon, acoustic_guitar_nylon_2, kalimba, pad_metallic,
  electric_guitar_clean, french_horn, bass, lead_2_sawtooth, kick, rim, pedal_hat, crash, ride, congas, shaker
)

More by Randy Crawford