Strudelify
Tie A Yellow Ribbon Round the Old Oak Tree cover art

Tie A Yellow Ribbon Round the Old Oak Tree

Tony Orlando

KeyF majorTempo88 bpm
0:00/0:00
// Tie A Yellow Ribbon Round the Old Oak Tree — Tony Orlando
// 88 bpm, 4/4, key F major. 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 72 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(88/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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA F G H I AB AC L M AD AE AF AG R S T U V W X AA F AH AI E F G
  AJ@6 AK AL AM AN AO AP AQ AR R AP AQ AR AS
>`.pickRestart({
  A: "f2@3 ~@3 c2@3 ~@3 f2@3 ~@2 f2 ~@3 g2 ~@2, ~@10 f2 ~", B: "a2@3 ~@3 e2@3 ~@2 e2 a2@3 ~@2 e2 ~@2 e2 a2@2 ~",
  C: "g2@4 ~@2 d2@4 ~@2 g2@4 ~ d2 ~@2 d2 g2 ~@2", D: "c2@4 ~@2 g2@3 ~@3 c3@3 ~@2 c2 ~@2 c2 d2 ~@2",
  E: "f2@4 ~@2 c2@4 ~ c2 f2@3 ~@3 f2@2 ~ g2 ~@2", F: "a2@3 ~@3 e2@3 ~@3 a2@4 ~@2 e2@3 ~@3",
  G: "c2@4 ~@2 c2@4 ~@2 d2@4 ~@2 e2@3 gb2@2 ~", H: "g2@4 ~@2 d2@3 ~@2 d2 g2@4 ~@2 d2@4 ~@2",
  I: "g2@4 ~@2 d2@4 ~@2 bb1@4 ~@2 db2 ~@2 eb2 ~@2", J: "d2@2 ~ a1@2 ~ d2@3 a2@2 ~", K: "g2@2 ~ d2@2 ~ g2@2 ~ d2@2 ~",
  L: "bb1@4 ~@2 bb1@4 ~@2 c2@4 ~@2 c2@3 ~@3", M: "bb1@8 ~ f2@2 ~ bb2@4 ~@2 f2@5 ~",
  N: "c2@4 ~@2 c2@3 ~@2 c2!2 ~@2 c2@2 ~ d2 ~@2 e2 ~@2", O: "f2@4 ~@2 c2@4 ~@2 f2@3 ~@2 f2 c2@2 ~ f2@2 ~",
  P: "a2@4 ~@2 e2@3 ~@2 e2 a2@3 ~@3 e2@2 ~ a2@2 ~", Q: "c2@4 ~@2 g2@4 ~@2 c3@4 ~@2 c2@3 g2@2 ~",
  R: "d2@4 ~@2 e2@3 gb2@2 ~ g2@4 ~@2 d2@4 ~@2", S: "g2@4 ~@2 d2@3 ~@3 bb1@4 ~@2 db2@4 ~@2",
  T: "f2@5 ~ e2@4 ~@2 d2@5 ~ a1@4 ~@2", U: "c2@2 ~ c2@2 ~ db2@2 ~ db2@2 ~", V: "d2@4 ~@2 a2@5 ~ d3@4 ~@2 a2@4 ~@2",
  W: "g2@4 ~@2 d2@4 ~@2 bb1@3 ~@3 bb1@4 ~@2", X: "g1@2 ~ d2@2 ~ c2@2 ~ c3@2 ~",
  Y: "f2@4 ~@2 c2@3 ~@2 c2 a1@3 ~@3 e2@4 ~@2", Z: "g1@2 ~ d2@2 ~ c2@2 ~ c2@2 ~",
  AA: "f2@4 ~@2 c2@4 ~ c2 f2@3 ~@3 c2@2 ~ f2 ~@2", AB: "f2@2 ~ d2@2 ~ a2@3 d2@2 ~",
  AC: "g2@4 ~@2 d2@4 ~@2 g2@4 ~@2 d2 ~@2 db2 ~@2", AD: "c2@4 ~@2 c3@3 ~@2 c3!2 ~@2 c2@2 ~ d2 ~@2 e2 ~@2",
  AE: "f2@4 ~@2 c2@4 ~@2 f2@3 ~@2 f2 ~@2 f2 g2@2 ~", AF: "a2@4 ~@2 e2@3 ~@2 e2 a2@3 ~@2 e2@2 ~ e2 a2@2 ~",
  AG: "c2@4 ~@2 g2@4 ~@2 c3@4 ~@2 g2@3 c3@2 ~", AH: "c2@4 ~@2 c2@4 ~@2 d2@7 ~@2 gb2@2 ~",
  AI: "g2@4 ~@2 g2@3 ~@3 c3@5 ~ c2@5 ~", AJ: "[g2@29 g2@24 bb1@24 f2@24 d2@27 ~@4 g2@4 ~@2 g2@4 ~@2]/6",
  AK: "bb1@3 ~@3 bb1@4 ~@2 g1@4 ~@2 d2@4 ~@2", AL: "c2@2 ~ c3@2 ~ f2@2 ~ c2@2 ~",
  AM: "f2@3 ~@2 f2 ~@2 f2 g2@2 ~ a2@4 ~@2 e2@4 ~@2", AN: "a2@3 ~@2 e2@2 ~ e2 a2 ~@2 c2@4 ~@2 g2@4 ~@2",
  AO: "d2@4 ~ e2 ~@2 e2 gb2@2 ~ g2@4 ~@2 d2@3 ~@3", AP: "c2@3 c3@2 ~ f2@2 ~ c2@2 ~", AQ: "f2 ~ c2 ~ a2 ~ e2 ~",
  AR: "a2@4 ~@2 e2@3 ~@3 c2@4 ~@2 c2@4 ~@2", AS: "d2@4 ~@2 e2@3 gb2@2 ~@13",
})).s("gm_acoustic_bass").gain(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D A B E C F G H I J K A B L M F N O P F Q R S A B T C F G H I J K A B L M F N O P F Q A B E U A B E V@6 W X Y Z
  AA X Y Z AA X Y Z AB
>`.pickRestart({
  A: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4]", // F
  B: "[a3,c4,e4]@3 [a3,c4,e4]@2 [a3,c4,e4]@3 [a3,c4,e4] [a3,c4,e4]@2 [a3,c4,e4] [a3,c4,e4]@3 [a3,c4,e4]@2 [a3,c4,e4]@3 [a3,c4,e4] [a3,c4,e4]@2 ~", // Am
  C: "[g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]", // Gm
  D: "[bb3,c4,e4]@3 [bb3,c4,e4]@2 [bb3,c4,e4]@3 [bb3,c4,e4] [bb3,c4,e4]@2 [bb3,c4,e4] [bb3,c4,e4]@3 [bb3,c4,e4]@2 [bb3,c4,e4]@3 [bb3,c4,e4] [bb3,c4,e4]@2 ~", // C7
  E: "[g3,c4,eb4]@3 [g3,c4,eb4]@2 [g3,c4,eb4]@3 [g3,c4,eb4] [g3,c4,eb4]@2 [g3,c4,eb4] [gb3,c4,d4]@3 [gb3,c4,d4]@2 [gb3,c4,d4]@3 [gb3,c4,d4] [gb3,c4,d4]@2 ~", // Cm D7
  F: "[g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,db4]@3 [g3,bb3,db4]@2 [g3,bb3,db4]@3 [g3,bb3,db4] [g3,bb3,db4]@2 [g3,bb3,db4]", // Gm Gdim
  G: "[a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4]", // Dm
  H: "[b3,d4,f4]@3 [b3,d4,f4]@2 [b3,d4,f4]@3 [b3,d4,f4] [b3,d4,f4]@2 [b3,d4,f4] [b3,d4,f4]@3 [b3,d4,f4]@2 [b3,d4,f4] [b3,d4,f4]@2 [b3,d4,f4] [b3,d4,f4]@2 [b3,d4,f4]", // Bdim
  I: "[g3,bb3,db4]@3 [g3,bb3,db4]@2 [g3,bb3,db4]@3 [g3,bb3,db4] [g3,bb3,db4]@2 [g3,bb3,db4] [g3,bb3,c4]@3 [g3,bb3,c4]@2 [g3,bb3,c4]@3 [g3,bb3,c4] [g3,bb3,c4]@2 [g3,bb3,c4]", // Gdim C7
  J: "[g3,bb3,db4]@9 [g3,bb3,db4] ~@2 [g3,bb3,db4]@4 ~@2 [g3,bb3,db4]@4 ~@2", // Gdim
  K: "[g3,bb3,c4]@4 ~@2 [g3,bb3,c4]@4 ~ [g3,bb3,c4] [g3,bb3,c4]@2 [g3,bb3,c4] [g3,bb3,c4]@3 [g3,bb3,c4]@3 [g3,bb3,c4]@2 ~", // C7
  L: "[g3,c4,eb4]@3 [g3,c4,eb4]@2 [g3,c4,eb4]@3 [g3,c4,eb4] [g3,c4,eb4]@2 [g3,c4,eb4] [g3,c4,eb4]@3 [g3,c4,eb4]@2 [g3,c4,eb4]@3 [g3,c4,eb4] [g3,c4,eb4]@2 ~", // Cm
  M: "[a3,d4,gb4]@3 [a3,d4,gb4]@2 [a3,d4,gb4]@3 [a3,d4,gb4] [a3,d4,gb4]@2 [a3,d4,gb4] [g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]", // D Gm
  N: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4] [a3,db4,e4]@2 [a3,db4,e4] [a3,db4,e4]@2 [a3,db4,e4] [a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4]", // F A Dm
  O: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,db4,f4]@3 [a3,db4,f4]@2 [a3,db4,f4] [a3,db4,f4]@2 [a3,db4,f4] [a3,db4,f4]@2 [a3,db4,f4]", // F Aaug
  P: "[a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3 [a3,d4,f4] [a3,d4,f4]@2 [a3,d4,f4] [a3,d4,gb4]@3 [a3,d4,gb4]@2 [a3,d4,gb4] [a3,d4,gb4]@2 [a3,d4,gb4] [a3,d4,gb4]@2 [a3,d4,gb4]", // Dm D
  Q: "[g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,c4]@3 [g3,bb3,c4]@2 [g3,bb3,c4]@3 [g3,bb3,c4] [g3,bb3,c4]@2 [g3,bb3,c4]", // Gm C7
  R: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,e4]@3 [a3,c4,e4]@2 [a3,c4,e4] [a3,c4,e4]@2 [a3,c4,e4] [a3,c4,e4]@2 [a3,c4,e4]", // F Am
  S: "[g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,c4]@4 ~@2 [g3,bb3,c4]@5 ~", // Gm C7
  T: "[g3,c4,eb4]@3 [g3,c4,eb4]@2 [g3,c4,eb4]@3 [g3,c4,eb4] [g3,c4,eb4]@2 [g3,c4,eb4] [gb3,c4,d4]!3 [gb3,c4,d4]@2 [gb3,c4,d4]@3 [gb3,c4,d4] [gb3,c4,d4]@2 ~", // Cm D7
  U: "[g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4] [g3,bb3,c4]@6 [g3,bb3,c4]@3 [g3,bb3,c4]@2 [g3,bb3,c4]", // Gm C7
  V: "[~@20 g5@8 ~@4 g4@20 ~@3 f4@22 ~@2 f4@22 ~@2 [d4,gb4]@29 [g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4], g4@28 ~ f3@23 ~ [f3,ab3]@24 f3@24 [d3,gb3]@31 ~@12, ~@7 bb4@21 ~@2 g3@22 ~@92, ~@13 d5@15 ~@3 [bb3,d4]@21 ~@2 [bb3,db4]@23 ~ [a3,c4]@23 ~ a3@29 ~@13]/6", // D Gm Fm D Bb Bbm Am
  W: "[g3,bb3,db4]@3 [g3,bb3,db4]@2 [g3,bb3,db4]@3 [g3,bb3,db4] [g3,bb3,db4]@2 [g3,bb3,db4] [g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]", // Gdim Gm
  X: "[g3,bb3,c4]@3 [g3,bb3,c4]@2 [g3,bb3,c4]@3 [g3,bb3,c4] [g3,bb3,c4]@2 [g3,bb3,c4] [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4]", // C7 F
  Y: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,e4]@3 [a3,c4,e4]@2 [a3,c4,e4]@3 [a3,c4,e4] [a3,c4,e4]@2 [a3,c4,e4]", // F Am
  Z: "[a3,c4,e4]@3 [a3,c4,e4]@2 [a3,c4,e4]@3 [a3,c4,e4] [a3,c4,e4]@2 ~ [g3,c4,eb4]@3 [g3,c4,eb4]@2 [g3,c4,eb4]@3 [g3,c4,eb4] [g3,c4,eb4]@2 [g3,c4,eb4]", // Am Cm
  AA: "[gb3,c4,d4]@3 [gb3,c4,d4]@2 [gb3,c4,d4]@3 [gb3,c4,d4] [gb3,c4,d4]@2 ~ [g3,bb3,d4]@3 [g3,bb3,d4]@2 [g3,bb3,d4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]", // D7 Gm
  AB: "[gb3,c4,d4]@3 [gb3,c4,d4]@2 [gb3,c4,d4]@3 [gb3,c4,d4] [gb3,c4,d4]@2 ~@13", // D7
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.6)

// other · steel drums
const steel_drums = note("<A B C D ~@20 A E ~ F G H I J K L ~@12 A B M E ~@10 N O P Q R O P Q R O P S>".pickRestart({
  A: "~@3 f4 ~@2 a4 ~@2 c5 ~@2 d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@2",
  B: "~@3 e4 ~@2 a4 ~@2 c5 ~@2 d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@2",
  C: "~@3 d4 ~@2 g4 ~@2 bb4 ~@2 c5 ~@2 bb4 ~ c5 ~@2 bb4 g4 ~@2",
  D: "~@3 c4 ~@2 g4 ~@2 bb4 ~@2 c5 ~ c5 bb4 ~@2 a4 ~@2 g4 ~@2", E: "~@3 d4 ~@2 g4 ~@2 bb4 ~@2 c5 ~@5 c5 ~@5",
  F: "~@9 e5 ~@2 d5!4 ~@2 c5!4 ~@2", G: "g4!7 ~@5 gb4!7 ~@5", H: "g4!6 [g4,d5] d5!5 c5!4 ~@2 bb4!4 ~@2",
  I: "d4!7 ~@5 db4!7 ~@5", J: "d4!7 ~@5 f4!4 ~@2 a4!4 ~@2", K: "b4!11 ~ g4!11 ~", L: "f4!10 ~@2 e4!6 ~@6",
  M: "~@3 eb4 ~@2 g4 ~@2 c5 ~@2 d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@2", N: "~@15 f4 ~@2 a4 ~@2 c5 ~@2",
  O: "d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@5 e4 ~@2 a4 ~@2 c5 ~@2", P: "d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@5 eb4 ~@2 g4 ~@2 c5 ~@2",
  Q: "d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@5 d4 ~@2 g4 ~@2 bb4 ~@2", R: "c5 ~@5 c5 ~@8 f4 ~@2 a4 ~@2 c5 ~@2",
  S: "d5 ~@2 c5 ~ d5 ~@2 c5 a4 ~@14",
})).s("gm_steel_drums").gain(0.25).pan(0.7)

// chords · drawbar organ
const drawbar_organ = note("<~@12 A B ~@6 C@2 ~@5 D E F G H I J A B ~@6 C@2 ~@28>".pickRestart({
  A: "[db5,f5,g5,bb5]@7 ~@2 [db5,f5,g5,bb5] ~@2 [db5,f5,g5,bb5]@4 ~@2 [db5,f5,g5,bb5]@3 ~@3", // Gm7b5
  B: "[e5,g5,c6]@5 ~ [e5,g5,c6]@3 ~@2 [e5,g5,c6]!2 ~@11", // C
  C: "[c5@3 db5@3 ~@3 [gb4,c5]@2 ~, a4@11 ~, f5@3 ~, ~@6 d5@5 ~]/2", D: "~@3 e5 d5@2 c5@2", E: "g4 gb4",
  F: "g4 d5 c5 bb4", G: "d4 db4", H: "d4@2 f4 a4", I: "b4@3 ~ g4@3 ~", J: "f4 e4",
})).s("gm_drawbar_organ").gain(0.25).pan(0.7)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@14 A B C D E F G@2 H I J ~@11 A B C D E F G@2 H I J ~@2 K L M N O@2 ~@3 P@3 ~@2 Q@8 R
>`.pickRestart({
  A: "f4@2 a4 c5 d5@2 c5 f4", B: "e4@2 d5@2 c5@2 d5 c5", C: "eb4@2 d5@2 c5@2 bb4 a4", D: "d4 c5 bb4@2", E: "d4 db4, f4",
  F: "[c4,a4] [db4,g4] [d4,f4]@2", G: "[c4 db4 d4 [c4,gb4], a3, f4@3 ~]/2", H: "[d4,g4] [db4,f4,bb4]",
  I: "~ d4@2 eb4 e4@2 a4@2", J: "f4@3 ~@5", K: "~@6 c6 ~@2 c6 ~@2", L: "~ f4@2 a4 c5@3 f4", M: "e4@6 a4 c5",
  N: "d5@3 c5@2 ~ c5@3 bb4@3 a4@2 ~ a4@3 bb4@3 c5@3", O: "[bb4@7 ~@5]/2",
  P: "[~@11 [d4,g4]@12 [db4,f4,bb4]@12 ~@3 d4@6 eb4@3 e4@6 a4@6 f4@6 ~@7]/3", // G5 Bbm
  Q: "[~@23 c5@2 ~@4 c5@2 ~@7 f4@6 a4@3 c5@9 f4@3 e4@18 a4@3 c5@3 d5@3 c5@2 ~ c5@3 bb4@3 a4@2 ~ a4@3 bb4@3 c5@3 bb4@6 ~@6 c5@2 ~@4 c5@2 ~@7 f4@6 a4@3 c5@9 f4@3 e4@18 a4@3 c5@3 d5@3 c5@2 ~ c5@3 bb4@3 a4]/8",
  R: "~@2 a4@3 bb4@3 c5@3 ~@13",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@54 A@5 ~@13>".pickRestart({
  A: "[~@5 [d3,bb3,d4,g4]@24 [f3,db4,bb4]@24 [c3,a3,f4]@24 [d3,c4,gb4]@23 ~@20, ~@53 a4@47 ~@20]/5", // Gm Bbm F D7
})).s("gm_string_ensemble_2").gain(0.28).pan(0.4)

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

// drums · rim
const rim = s("rim").struct("<~@14 [~ x ~ x ~ x ~ x]!10 ~@12 [~ x ~ x ~ x ~ x]!10 ~@26>").gain(0.59)

// drums · snare
const snare = s("sd").struct("<A@12 B C ~@10 A D A@7 D B E ~@9 F A@3 G A@2 D ~@5 H I@10 J A K>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "x ~@2 x!2 ~ x ~", C: "x ~ x ~ x!4", D: "~@3 x ~@5 x ~@5 x ~@4 x!2 ~@2",
  E: "x ~@5 x ~@5 x ~@2 x ~@2 x ~ x!2 ~@2", F: "~@20 x!2 ~@2", G: "~ x ~ x!2 ~ x ~", H: "~@15 x ~ x ~@3 x ~ x",
  I: "~@3 x ~ x!2 ~ x!2 ~ x ~@3 x ~ x ~@3 x ~ x", J: "~@3 x ~ x!2 ~ x!2 ~ x ~@3 x ~@5 x ~@2", K: "~ x ~ x ~@4",
})).gain(0.39)

// drums · hihat
const hihat = s("hh").struct("<A@12 ~@2 A@11 B A@8 ~@2 A@13 B A@3 C ~@4 D A@12 E>".pickRestart({
  A: "x!8", B: "x!5 ~ x ~", C: "x", D: "~@4 x!4", E: "x ~@2 x ~@2 x ~@2 x ~ x ~@12",
})).gain(0.46)

// drums · splash
const splash = s("cr").struct("<~@25 A ~@8 B ~@14 C B ~@2 B ~@18>".pickRestart({
  A: "~@5 x ~@2", B: "x", C: "~@2 x!2",
})).gain(0.52)

stack(
  bass, acoustic_guitar_steel, steel_drums, drawbar_organ, string_ensemble_1, string_ensemble_2, kick, rim, snare,
  hihat, splash
)

More by Tony Orlando