Strudelify

Christmas Time

Bryan Adams

KeyC majorTempo77 bpm
0:00/0:00
// Christmas Time — Bryan Adams
// 77 bpm, 4/4, key C 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 50 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(77/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 · "untitled"
const piano = 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 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  ~@2
>`.pickRestart({
  A: "g3!8, c3 b2, [c4,e4]!2 [b3,d4]!2", // C Bm
  B: "a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 ~@3 e4, a2, [c4,e4]@2 [c4,e4]@2 [c4,e4]@3 c4, ~@3 a3, ~@13 b3@3", // C
  C: "a3!4 g3!2 ~ e4, d3 c3, [d4,f4]@2 [d4,f4]@2 e4@3 ~, ~@2 c4 [g3,c4,d4]", // Dm Gsus4
  D: "g3!3 [g2,g3] g3!3 [g2,g3], b3@2 [b3,d4]!2, g2@3 ~ g2@3 ~, d4 [c4,d4] ~@2", // G Bm Csus2
  E: "g3@2 g3@2 ~@3 b3 g#3@2 ~ b3 ~@3 [a3,c4], c3@3 c3 [b3,e4]@2 ~@2, [c4,e4]@2 [g3,c4,e4]@2 e3@3 e3, ~@5 g#3 [g#3,b3,e4]@2", // Am E5 C E
  F: "a3!6 ~ e4, a2, [c4,e4]@2 [c4,e4]@2 e4@3 ~, ~@2 c4 [a3,c4,d4]", // C D7
  G: "g3@2 g3@2 ~@3 g3 g3@2 g3@2 ~@3 g3, b3@2 [b3,d4] ~, g2@3 g2 g2@3 g2, d4 [g3,c4,d4] ~ [g3,b3,d4]", // Bm Gsus4 G
  H: "g3@2 g3@2 ~@3 g3!2 ~@2 b3 ~@3 [a3,c4], c2 b1, c3@3 c3 b2@3 b2, [c4,e4] [g3,c4,e4] [b3,d4] ~, ~@5 g3 [g3,b3,d4]@2", // Am C Bm G
  I: "a3@2 a3@2 ~@3 [a3,c4] a3@2 a3@2 ~@3 [a3,d4], [a1,a2]@3 [a1,a2] [a1,a2,e4]@4, [c4,e4]@4 [a3,c4,e4]@4 c4@5 b3@3, ~@6 a3 c4", // Am D5 A A5 C Am
  J: "a3@2 a3@2 ~@2 [d3,g3]@2 g3@2 g3@2 g3!4, d2 c2, d3@3 ~ [c3,e4]@3 [c3,d4,e4], [d4,f4] [a3,d4,f4] c4!2, ~@6 d4 ~", // G5 C Dm
  K: "g3@2 ~@2 g3@2 ~ b3 g3@2 ~ b3 g3@2 [g2,g3]@2, g1!2, g2@3 [g2,g3] g2@3 ~, [b3,d4]@3 b3@4 ~ [b3,d4]@4 [b3,d4]@4, ~ g3 [c4,d4]@2 ~ g3 ~@2", // G Bm Csus2
  L: "g3@2 ~ c4 ~@3 b3 g#3@2 ~ b3 ~@3 [a3,c4], c2 e2, c3@3 c3 ~ g#3 [g#3,b3,e4]@2, [c4,e4] ~ [b3,e4] ~, ~ g3 [g3,c4,e4]@2 e3@3 e3", // Am E C E5 C
  M: "a3@2 ~ c4 a3@2 [a2,a3]@2 a3@2 a3@2 ~@3 [a3,d4], a1 [a1,a2], a2@3 ~@4 [c2,c3], [c4,e4]!3 ~, ~ a3 ~@4 [a3,c4,e4]@2", // A D5 A C Am
  N: "a3@2 ~ d4 a3@2 ~ d4 a3@2 a3@2 e4@2 [e4,f4]@2, d2 [d2,d3], d3@3 [d3,a3] ~@4, [d4,f4]@2 [d4,f4]@2 f4@3 ~, ~ a3 ~@2 d4@2 [a3,d4]@2", // Fmaj7 D D5 Dm D5
  O: "f3@2 ~ a3 ~@3 g3 g3@2 g3@2 g3@2 [g2,g3]@2, f1 g1, f2@3 f2 g2@3 ~, [a3,c4] ~ [c4,d4]!2, ~ f3 [f3,a3,c4]@2 ~@4", // G Am Csus2 F
  P: "g3@2 g3@2 g3@2 ~ c4 g3@2 ~ c4 g3@2 ~ c4, g1 c2, g2@3 [g2,g3] c3@3 [c3,g3], [b3,d4]!2 [c4,e4]!2, ~@5 g3 ~@2", // G C5 Bm C
  Q: "[g3,c4]@2 ~ c4 ~@3 [e2,e3] a3@2 ~ c4 a3@2 ~ c4, [c2,c3,d4]@2 [c4,f4]!2, ~ g3 [g3,c4,e4]@2 f3@3 [f3,a3], ~@3 [d2,d3] f2@4, ~@5 a3 ~@2", // C5 E Csus2 F5 C F D
  R: "[a3,c4]@2 ~ c4 ~@3 [g3,c4] g3@2 ~ c4 g3@2 [c3,g3]@2, [f2,g4] c2, f3@3 f3 c3@3 ~, ~ a3 [a3,c4,f4]@2 [c4,e4]@2 [c4,e4]@2, ~@5 g3 ~@2", // Am C5 Fsus2 F C
  S: "[g3,c4]@2 ~ c4 g3!4 g3@2 ~ c4 g3@2 ~ b3, c2 g1, [c3,e4]@5 c3@3 g2@6 [g2,g3]@2, ~ g3 c4@2 [c4,d4]@2 [c4,d4]@2, ~@2 d4 [d4,e4] ~ g3 ~@2", // C5 C G Csus2 Dsus2
  T: "g3@2 ~ b3 ~@2 g2@2 g3@2 ~ c4 g3@2 g3 [g3,c4], g1 c2, g2@3 ~ c3@3 c3, [b3,d4] ~ [c4,e4]!2, ~ g3 [g3,b3,d4]@2 ~ g3 ~@2", // C5 Bm C G
  U: "[g3,c4]@2 ~ c4 g3!2 [g3,c4]!2 a3@2 ~ c4 ~@3 c4, c2 f2, [c3,e4]@3 [c3,d4,e4] f3@3 f3, ~ g3 [c4,d4] ~ [c4,f4]@2 ~@2, ~@5 a3 [a3,c4,f4]@2", // C5 C Csus2 F5 F
  V: "g#3@2 ~ c4 ~@3 c4 g3@2 ~ c4 g3@2 ~ d4, f2 c2, f3@3 [f3,g3] c3@3 [c3,g3], [c4,f4] ~ [c4,e4]!2, ~ g#3 [g#3,c4,f4]@2 ~ g3 ~@2", // Fsus2 C5 F5 C Fm
  W: "a3@2 ~ d4 g3@2 ~ b3 c4@2 ~ c4 [g3,c4,d4]@2 [g3,c4] [g3,c4,d4], [d2,d3,d4,f4] [g1,g2,f3,b3,d4] [c2,e4]@2, ~ a3 ~ g3 c3@3 c3, ~@8 g3 ~ g3@2 ~@4", // Gsus4 C5 Gsus4 Dm G7 C
  X: "g3@2 ~ c4 [c2,c3,c4,e4]@2 g3 ~ g3@2 ~ c4 g3@2 [c3,g3]@2, [c2,c3,c4,d4] ~ c2@2, ~@2 g3@2 [g3,d4] ~@3 c3@6 ~@2, ~@2 [c4,e4]!2, ~@5 g3 ~@2", // C C5 Csus2 G5 C
  Y: "g3@2 ~ b3 ~@3 a3 a3@2 ~ c4 a3@2 [a2,a3]@2, b1 a1, b2@3 b2 a2@3 ~, [b3,d4] ~ [c4,e4]!2, ~ g3 [g3,b3,d4]@2 ~ a3 ~@2", // A Bm C G
  Z: "a3@2 a3@2 ~ b3 ~ d4 [a3,d4]@2 ~ d4 ~@3 a3, [a1,a2,e4] d2, c4@3 [b3,c4] ~ a3 d4@2, ~@4 a3@4 [d3,f4]@5 a3@2 ~, ~@6 e4 [d3,e4,f4]", // D5 A5 Cmaj7 Dm
  AA: "[g3,c4]@2 g3 [c4,d4] c4 ~@2 g3 [g3,d4]@2 g3 [g3,c4,d4] g3@2 g3 [g3,b3], c2 [g1,b3], [c3,e4]@3 [c3,d4,e4] g2@3 g2, ~@3 g3@2 [g3,c4]@3 ~@8, ~@2 d4 ~@3 [c4,d4]@2", // C5 Csus2 G5 Gsus4 G C C5 Csus2
  AB: "g3@2 ~ b3 g3@2 ~ c4 [g3,c4]@2 ~ c4 g3!2 ~ b3, g1 c2, g2@3 [g2,g3] [c3,e4]@3 [c3,g3,d4,e4], [b3,d4]!2 ~ c4, ~ g3 ~@3 g3 d4 ~", // C5 G C Bm
  AC: "[g#3,b3]@2 [g#3,b3]@2 ~@3 [a3,c4] a3@2 ~ c4 a3@2 [a2,a3]@2, e2 a1, e3@3 e3 a2@3 ~, e4 [g#3,b3,e4] [c4,e4]!2, ~@5 a3 ~@2", // G#m Am A E C
  AD: "a3@2 ~ c4 ~@3 [g3,b3] g3@2 ~ c4 g3@2 ~ b3, [a1,b3] [g1,b3], a2@3 a2 g2@3 [g2,g3], e4 ~ d4 [c4,d4], ~ a3 [a3,c4,e4]@2 ~ g3 ~@2", // G Asus2 G Csus2 Am
  AE: "g3@2 ~ b3 g3@2 ~ c4 g3@2 ~ c4 g3@2 ~ b3, g1 c2, g2@3 [g2,g3] c3@3 [c3,g3], [b3,d4]!2 [c4,e4]!2, ~ g3 ~@3 g3 ~@2", // G C5 Bm C
  AF: "g3@2 ~ b3 g3@2 ~ c4 a3@2 ~ b3 ~ a3 b3 [b3,c4], b1 [a1,c4,e4], b2@3 [b2,g3] a2@3 [a2,a3], [b3,d4]@4 [b3,d4]@4 ~@2 a3@3 ~@3, ~ g3 ~@4 b3 ~", // Cmaj7 Am Em A Bm
  AG: "a3@2 a3 ~@4 c4 [a3,d4]@2 ~ d4!2 ~@2 a3, [a1,a2] d2, c4@3 [a3,b3]@2 a3@3 [d3,f4]@5 [a3,d4]@3, ~@2 c4 b3 ~ a3 e4@2, ~@7 [d3,f4]", // D5 A Asus2 Dm D5 Dm
  AH: "[g3,c4]@2 g3 [c4,d4] c4!2 ~ g3 [g3,d4]@2 g3 [g3,c4,d4] g3@2 g3 [g3,b3], c2 [g1,b3], [c3,e4]@3 [c3,c4,d4,e4] g2@3 g2, ~@3 g3@2 g3@2 ~@9, ~@2 d4 ~@3 [c4,d4]@2", // C5 Csus2 G5 Gsus4 G C Csus2
  AI: "[g3,b3,d4]@2 ~ b3 g3@2 ~ c4 [g3,c4]@2 ~ c4 g3!2 c4 [b3,c4], [g1,c4] c2, g2@3 [g2,g3] [c3,e4]@3 [c3,g3,d4,e4], ~ [g3,d4] [b3,d4]@2 ~ g3 [c4,d4] ~", // G C5 Cmaj7 C5 G C G5 Bm …
  AJ: "g#3@2 ~ b3 g#3@2 ~ b3 a3@2 ~ b3 a3!2 [a3,b3] [a3,b3,c4], e2 [a1,c4], e3@3 [e3,g#3] a2@3 a2, [b3,e4]!2 e4!2, ~ g#3 ~@3 a3 b3 ~", // Asus2 Am E E5
  AK: "[a3,c4,e4]@2 [a3,c4,e4]@2 a3@2 ~ c4 a3@2 ~ d4 [a3,d4,f4]@2 [a3,d4] [a3,d4,f4], a1 d2, a2@3 [a2,a3] d3@3 d3, ~ [c4,e4] [d4,f4] ~, ~@5 a3 ~@2", // Am Dm D5 Dm A C Dm
  AL: "[a3,d4]@2 a3 [a3,d4] a3 ~@2 a3 f3@2 ~ a3 f3@2 ~ a3, d2 f1, [d3,f4]@5 a3@2 ~ [a3,c4]@4 [a3,b3,c4]@4, ~@2 [d4,e4] [d3,d4,e4,f4] f2@3 [f2,f3], ~@5 f3 ~@2", // D5 Dm Am Dsus2 Dm F
  AM: "[g3,c4]@2 [g3,c4]@2 g3@2 [g2,g3]@2 g3@2 ~ b3 g3@2 ~ b3, g1!2, g2@3 ~ g2@3 [g2,g3], d4 [c4,d4] [b3,d4] [b3,c4,d4], ~@5 g3 ~@2", // C5 G Csus2 Bm
  AN: "g3 ~ c4@2 [g3,c4]@2 [g3,c4] [g3,c4,d4] g3@2 ~ c4 g3@2 ~ c4, c2!2, c3@3 c3 c3@3 [c3,g3], [d4,e4]!2 [c4,d4] [c4,d4,e4], c4 g3@3 ~@6 g3@2 ~@4", // C5 Gsus4 C5 Dsus2 Csus2 C
  AO: "a3@2 ~ c4 a3@2 ~ c4 [a3,c4]@2 a3 [a3,c4]!3 [c4,e4] [c4,d4,e4], f2 [f2,g4], f3@3 [f3,a3] f3@3 [f3,a3], [c4,f4]!2 ~ f4, ~ a3 ~@6", // Am C Fsus2 F F5
  AP: "[g3,c4]@2 ~ [c4,d4] g3!2 [g3,c4] [g3,c4,e4] [g3,c4]@2 g3 c4!2 ~@2 g3, [c2,e4] c2, c3@3 c3 [c3,e4]@3 [c3,d4,e4], ~ g3 d4@2 ~@2 d4 ~, ~@4 c4@2 ~@5 g3@2 [g3,c4]@3", // C5 Csus2 C5 C C5 C C5
  AQ: "[g3,c4,d4]@2 g3 [g3,c4,d4] [g3,c4,d4]@2 g1 [g2,g3] g3 ~ b3@2 [g3,b3]@2 [g3,b3] [g3,b3,c4], [g1,g2]@7 ~ [g1,c4]@8, ~@4 g2@3 g2, ~@2 d4!2, ~@8 b3 g3@3 ~@4", // Gsus4 G Cmaj7 G C5
  AR: "[g3,c4]@2 ~ c4 g3!2 [g3,c4] [g3,c4,d4,e4] [g3,e4]@2 ~ c4 g3!3 [g3,e4], [c2,e4] [c2,c3], c3@6 c3@2 ~@2 e4@5 ~, ~@2 g3@2 [c4,d4]@3 ~ [c4,d4]@4 c4@4, ~@5 g3 d4!2", // C5 C Csus2
  AS: "a3@2 ~ c4 [a3,c4,f4]@2 ~ f4 g#3@2 ~ c4 [g#3,c4]@2 c4!2, [f2,g4] f2, f3@3 [f3,a3,c4] f3@3 [f3,g#3,d#4], [c4,f4] ~ [c4,f4] f4, ~ a3 ~@3 g#3 ~@2", // F G# Fsus2 F Fm7 F5
  AT: "[g3,c4]@2 ~ c4 [g3,c4] g3!3 a3@2 ~ d4 g3@2 ~ b3, c2@2 [d2,d3,d4,e4,f4] [g1,g2,b3,d4], [c3,e4]@5 c4@3 ~@2 a3@2 ~@2 g3@2, ~ g3 d4 [c3,d4,e4] ~@4", // C5 Dm G C
  AU: "[g3,c4]@2 [g3,c4,d4]!2 g3!2 [g3,c4] [g3,c4,e4] g3@2 ~ c4 g3!2 [g3,c4,d4,e4]@2, [c2,e4] [c2,c3], c3@3 c3 ~ g3 ~@2, ~@2 d4@2 e4@3 ~, ~@2 c4 ~ [c4,d4]@2 [c4,d4] ~", // C5 Gsus4 C5 C Csus2
})).s("gm_piano").gain(0.56)

// bass · fretless bass
const bass = note(`<
  ~@7 A@2 B C D E F G H I@2 J@2 K@2 L M N O P Q R S T U V W X Y Z AA AB AC AD AE AD AF AG AH AI AJ ~@2
>`.pickRestart({
  A: "[~@3 c2@3 b1@2]/2", B: "a1@7 ~ a1 ~ a1@4 b1 c2", C: "d2@8 c2@6 b1 a1", D: "g1@7 ~ g1 ~ g1@4 a1 b1",
  E: "c2@6 d2@2 e2@6 c2 b1", F: "a1@8 a1 ~ a1@4 c2@2", G: "d2@14 c2 b1", H: "f1@8 g1@7 ~",
  I: "[g1 ~ g1@4 a1 b1 c2@14 b1 ~ f1@7 ~, ~@23 a1@2 ~@7]/2", J: "[f1 ~ f1@4 g1 a1 c2@14 b1 a1 g1@7 ~]/2",
  K: "[g1 ~ g1@4 a1 b1 c2@12 b1@2 a1@2 f1@7 ~]/2", L: "f1 ~ f1@4 ~ a1 c2@8, ~@3 g1 ~@4", M: "d2@4 g1@4 c2@7 ~",
  N: "c2 ~ c2@5 ~ c2@5 ~ c2 ~", O: "b1@5 ~ b1 ~ a1@5 ~ a1 ~", P: "a1@6 b1 c2 d2@5 ~ d2 ~", Q: "c2@6 b1 c2 g1@5 ~ g1 ~",
  R: "g1@6 a1 b1 c2@5 ~ c2 ~", S: "e1@6 f1 g1 a1@5 ~ a1 ~", T: "a1@6 b1 c2 g1@5 ~ g1 ~", U: "g1@8 c2 ~ c2 ~ c2 ~ c2!2",
  V: "b1 ~ b1 ~ b1 ~ b1!2 a1 ~ a1 ~ a1 ~ a1!2", W: "a1 ~ a1 ~ a1 ~ a1!2 d1 ~ d1 ~ d1 ~ d1!2",
  X: "c2 ~ c2 ~ c2 ~ b1 c2 g1 ~ g1 ~ g1 ~ g1 ~", Y: "g1 ~ g1 ~ g1 ~ g1!2 c2 ~ c2 ~ c2 ~ c2!2",
  Z: "e1 ~ e1 ~ e1 ~ e1!2 a1 ~ a1 ~ a1 ~ a1 ~", AA: "a1 ~ a1!3 ~ a1!2 d2 ~ d2 ~ d2 ~ d2!2",
  AB: "d2 ~ d2!3 ~ c2 ~ f1 ~ f1 ~ f1 ~ f1!2", AC: "g1 ~ g1!3 ~ g1!3 ~ g1!3 ~ g1!2", AD: "c2@7 ~ c2!2 ~ c2 c2@2 b1 c2",
  AE: "f1@7 ~ f1!2 ~ f1!2 ~ a1 b1", AF: "g1@7 ~ g1!2 ~ g1!2 ~ g1!2", AG: "c2 ~ c2 ~ c2 ~ c2!3 ~ c2!3 ~ c2!2",
  AH: "f1 ~ f1 ~ f1 ~ f1!3 ~ f1!3 ~ f1!2", AI: "c2 ~ c2 ~ c2 ~ c2!2 d1 ~ d1!2 g1 ~ g1!2",
  AJ: "c2 ~ c2!3 ~ c2!3 ~ c2!3 ~ c2!2",
})).s("gm_fretless_bass").gain(0.72)

// chords · rock organ
const rock_organ = note("<~@16 A@7 B@2 C@2 D@2 E@3 C@2 F@2 G@3 H@2 I@4 J K L ~@2>".pickRestart({
  A: "[~ [e5,g5]@2 [c5,f5,a5]@2 e5@2 ~ b4 [c5,e5]@2 a5 g#5 [c5,e5,g5], ~@7 c5@17 ~@16 g5@47 ~@25, ~@40 c5@23 ~@25 [c5,f5]@16 ~@8, ~@7 d5@2 ~@5]/7", // Em F C F5
  B: "[[a4,d5,f5] [g4,b4,d5] [g4,c5,e5]@6]/2", C: "[[g4,b4,d5] [a4,c5,e5]@2 [a4,d5,f5]]/2",
  D: "[[g4,c5,e5] c5 b4 [g4,c5,e5], ~ [g4,d5]@2 ~]/2", // C G5
  E: "[[g#4,b4,e5]@2 [a4,c5,e5]@4 b4 c5 b4@2 [g4,c5,e5]@2, ~@3 [g4,d5]@2 ~]/3", // E Am C G5
  F: "[[g4,c5,e5]@2 b4 c5 b4@2 [g4,c5,e5]@2, ~ [g4,d5]@2 ~]/2", G: "[[g#4,b4,e5] [a4,c5,e5]@2 d5@2 c5, ~ [a4,f5]]/3",
  H: "[c5@8 b4@7 ~ [e5,g5]@16, [g4,d5]@15 c5@17]/2", // Em G5
  I: "[[c5,f5,a5]@15 ~ e5@16 ~@8 b4@8 [c5,e5]@16, ~@15 c5@25 ~@24, ~@8 g5@23 ~, ~@2 d5 ~]/4", J: "a5 g#5, [c5,f5]",
  K: "[c5,e5,g5]@2 [a4,d5,f5] [g4,b4,d5]", L: "[g4,c5,e5]",
})).s("gm_rock_organ").gain(0.35)

// other · pizzicato strings
const pizzicato_strings = note("<~@40 A B A C A B A ~@3>".pickRestart({
  A: "~@9 c4 d4 g4 ~ c5 d5 g5", B: "~@9 f4 g4 c5 ~ f5 g5 c6", C: "~@9 g4 c5 d5 ~ g5 c6 d6",
})).s("gm_pizzicato_strings").gain(0.64).pan(0.6)

// other · tubular bells
const tubular_bells = note("<~@27 A B@2 C@3 D@2 E@2 ~@2 F ~@2 G H I J K ~@3>".pickRestart({
  A: "~@3 [b4,b5]", B: "[[c5,c6] [d5,d6] [e5,e6]@5 [c5,c6]]/2", C: "[[d5,d6] [e5,e6] [d5,d6]@9 [d5,d6]]/3",
  D: "[[e5,e6]@7 [b4,b5]]/2", E: "[[c5,c6]@4 [d5,d6]@4 e6@13 ~@11, ~@8 e5@9 ~@15]/2", F: "~@4 e5 d5 c5 b4",
  G: "~@2 [c5,c6] [b4,b5]", H: "[c5,c6]@3 ~", I: "~@2 [e5,e6] [d5,d6]", J: "[c5,c6]@8 [f5,f6]@4 [e5,e6]@3 ~",
  K: "[e5,e6] ~", // E
})).s("gm_tubular_bells").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@24 A B@13 C ~ D@4 E@3 F ~@2>".pickRestart({
  A: "~@4 x ~@2 x", B: "x ~@3 x ~@2 x", C: "x!2", D: "x ~@10 x ~@4", E: "x ~@2 x ~@2 x ~ x ~@7",
  F: "x ~@2 x ~@2 x ~ x ~@2 x ~@4",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct("<~@24 [~@3 x] [~ x ~ x]!14 ~ [~@3 x]!4 [~ x ~ x]!4 ~@2>").gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@24 [x ~@2 x!2 ~@11] ~@14 [~@15 x] ~@10>").gain(0.46)

// drums · hihat
const hihat = s("hh").struct("<~@8 [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!16 [x ~ x!3 ~@11] ~@25>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 [~@12 x ~@2 x] ~@7 [~@4 x ~@2 x ~@8] ~@7 [~@3 x] ~@10>").gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@23 [~@11 x ~@4] ~@7 [~@3 x ~@12] ~@7 [~@11 x ~@4] ~@10>").gain(0.46)

// drums · tambourine
const tambourine = s("tb").struct("<~@8 [~@3 x]!31 ~ [~@3 x]!4 ~@6>").gain(0.46)

// drums · crash
const crash = s("cr").struct("<~@24 A ~@6 A ~@8 B ~@7 B ~>".pickRestart({
  A: "~ x", B: "x",
})).gain(0.46)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@24 [~@8 x ~ x!3 ~ x!2] [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!23 ~@2>").gain(1.82)

stack(
  piano, bass, rock_organ, pizzicato_strings, tubular_bells, kick, snare, low_tom, hihat, mid_tom, high_tom, tambourine,
  crash, cabasa
)

More by Bryan Adams