Strudelify
If You Asked Me To cover art

1992 · Celine Dion

If You Asked Me To

Celine Dion

KeyF majorTempo85 bpm
0:00/0:00
// If You Asked Me To — Celine Dion
// 85 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "bell" named as a mallet, played on tubular bells (its pad sweep patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(85/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.

// other · tubular bells · "bell"
const tubular_bells = note("<~@47 A ~@18 A ~@3 A ~@3 A ~@3 A ~@6>".pickRestart({
  A: "~@4 [f5,f6] [e5,e6] [d5,d6] [c5,c6]", // F E D C
})).s("gm_tubular_bells").gain(0.8)

// other · drawbar organ · "organ"
const drawbar_organ = note(`<
  ~ A B A C@7 D@7 E B F G H B H I A J A J A J ~ B A B A B K@2 L@2 I M N B F O F B P I A J A Q R S T Q U V W H B H X H B
  H Y Z B H AA@2 B H AB AC@3 ~@3
>`.pickRestart({
  A: "bb2", B: "c3", C: "[c3@3 bb3@2 c3@2 bb2@2 c3@2 bb2@2 c3]/7", D: "[~ bb2@4 e3@2 a2@2 bb2@2 g2@3]/7",
  E: "f2, e2 ~@15", F: "f2", G: "c3@4 [f3,f4] [e3,e4] [d3,d4] [c3,c4], ~@10 f3 ~@5", H: "f3", I: "bb2@15 ~",
  J: "c3@15 ~", K: "bb2/2", L: "[e3@15 a2]/2", M: "g2", N: "f2@15 ~", O: "c3@4 [f3,f4] [e3,e4] [d3,d4] c4, ~@14 c3 ~",
  P: "f2@7 a2", Q: "[bb2,f4,bb4,d5]", R: "[a2,f4,a4,c5]", S: "[g2,bb3,eb4,g4]@3 [eb2,g3,bb3,eb4]@5",
  T: "[c2,g3,c4,f4]@3 [eb2,bb3,eb4,f4]@5", U: "[a2,f4,a4,c5], d5 ~@15",
  V: "~@2 f2 [eb2,g3,bb3,eb4]@5, [g2,bb3,eb4,g4]@3 ~@5", W: "[g2,g4,b4,d5]",
  X: "c3@4 [f3,f4] [e3,e4] [d3,d4] c3, ~@14 c4 ~", Y: "c3@4 [f3,f5] [e3,e5] [d3,d5] [c3,c5]", Z: "~@2 f3@13 ~",
  AA: "[c3@4 [f3,f5] [e3,e5] [d3,d5] c3@2 f3@7, ~@7 c5 ~@8]/2", AB: "c3@4 [f3,f4] [e3,e4] [d3,d4] [c3,c4], ~@8 e4 ~@7",
  AC: "[f3@19 ~@5]/3",
})).s("gm_drawbar_organ").gain(0.8)

// other · brass section · "horn"
const brass_section = note("<~@41 [~@6 c5 d5] [a4@15 ~] [c5@3 d5@3 e5@2] ~@41>").s("gm_brass_section").gain(0.8)

// other · steel drums · "reverse cymbal"
const steel_drums = note("<~@17 A@2 ~@35 B ~@7 C ~@22>".pickRestart({
  A: "[~@3 f5@12 ~]/2", B: "~ bb4", C: "g4",
})).s("gm_steel_drums").gain(0.8)

// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
  ~ A B A C@7 D@7 E@4 F@3 G H I H J K L M N O N M P@3 Q R S@2 T U@4 V@2 W@2 X M@2 Y Z AA G AB AC AD AE@3 AF AG AF AG AH
  AG AI AJ AK@2 AL@2 AM@3 AN@4
>`.pickRestart({
  A: "[bb2,f3,bb3]", B: "[c3,g3,c4]",
  C: "[[f3,bb3,d4] [g3,c4]@2 [bb2,f3,bb3]@2 [c3,g3,c4]@2 [bb2,f3,bb3]@2 [c3,g3,c4]@2 [bb2,f3,bb3]@2 [c3,g3,c4], [c2,c3]@3 ~@11]/7", // Bb C5 Bb5 C5 Bb5 C5 Bb5 C5 …
  D: "[~@5 [g4,b4]@2 [g3,e4]@2 [bb3,f4,a4]@2 [g3,g4,b4,d5]@3, ~@4 [bb2,bb3,bb4]@16 [e3,d4]@7 ~@17 g2@4 ~@8, ~@12 f4@15 ~@29]/7", // G C Bbmaj7 G Bb E7
  E: "[g6@55 ~@9]/4", F: "[g6@11 ~]/3", G: "[bb4,f5,bb5]", H: "[f5,bb5,d6]", I: "[c5,g5,c6]", J: "[e5,g5,c6]", K: "bb5",
  L: "f5@6 g5@9 ~, c5@15 ~", M: "[f4,bb4,d5]", N: "[g4,c5]", O: "[bb4,d5], f4@7 ~",
  P: "[~@16 d5@16 d5@13 ~@3, [g4,c5] f4@2, ~@14 bb4@33 ~]/3", Q: "[e4,e5]", R: "[a3,a4]",
  S: "[[bb4,d5] [a4,c5], f4@31 ~]/2", T: "[f4,a4,c5]",
  U: "[[e4,g4]@16 f4@14 ~@2 e4@16 f4@15 ~, c5@16 g4@9 ~@7, ~ a4@2 ~]/4", V: "[g4 f4, c5, e4@7 ~@9]/2", W: "[bb3,f4]/2",
  X: "[e4,g4,c5]", Y: "[f4,c5]", Z: "[g4,bb4,eb5]", AA: "c5@3 eb5@5", AB: "f5@15 ~, a5@3 ~", AC: "bb5@3 g5@5, f5 ~@15",
  AD: "[g4,b4,d5]", AE: "[[f3,f4] [c3,e4,g4] [f3,f4], c5]/3", AF: "[c3,g4], e4@7 ~", AG: "[f3,f4]", AH: "[c3,e4,g4]",
  AI: "[c3,e4,g4,c5]", AJ: "[f3,f4,c5]@15 ~", AK: "[[c3,g4] [f3,f4], c5, e4@7 ~@9]/2",
  AL: "[[c3,g4] [f3,f4], c5@31 ~, e4@7 ~@9]/2", AM: "[[c3,g4] [f3,f4]@2, c5, e4@7 ~@17]/3",
  AN: "[~@15 g6@11 ~@6, c3@13 ~@3, [e4,g4,c5]@15 ~@17, ~@5 c2@21 ~@6, ~@6 c6@7 ~@3]/4", // C
})).s("gm_string_ensemble_1").gain(0.8)

// chords · piano
const piano = note(`<
  ~@5 A@4 B@4 C@5 D E F G H I H J K L M N O@2 P@2 Q R S T U V W X Y@2 Z AA F G H I H J K L M AB AC AD AE AF@2 AG AH AI
  AJ AK AL AI AJ AK AL AI AJ AK AL AI AJ AK AL AM@5 ~
>`.pickRestart({
  A: "[~@8 [bb2,bb3,f4]@16 ~@10 d5@6 [bb2,bb3,d4,f4]@15 ~ [c3,c4,g4]@8, ~@3 [c3,c4,g4]@2 ~@3]/4", // Bb5 Bb C5
  B: "[~@4 [bb2,bb3,f4]@8 ~@3 c5@5 [bb3,f4,bb4]@8 [f4,bb4]@3 [f4,bb4], ~@3 [c3,c4,g4]@2 bb2@3, ~@7 bb3]/4", // Bb5 C5
  C: "[~@4 f4@4 ~@2 g4@2 ~@10 g4@2 ~@4 e4@2 ~@4 d5@5 ~@13 f3@4 ~@12 g3@11 ~, ~@2 bb3@6 e3@12 d4@4 e4@4 a3@11 ~@5 bb3@6 d4@6 ~@4 g3@8 ~@12, ~@10 b3@14 a2@15 ~ bb2@16 [g2,a3,d4]@23 ~, ~@12 g4@6 b4@6 ~@2 [e3,c5]@13 ~@3 f3@6 g4@8 ~@6 e4@17 ~, ~@12 d4@2 e5@10 d5@6 [e4,g4]@9 ~@3 g4@2 d4@3 g3@9 ~@2 d3@21 ~]/5", // Gsus2 C Em
  D: "~@4 [a4,c5]@2 ~ f3, [f2,g5]@3 [a4,c5,e5], [a4,c5]@3 g3@5, ~ c3@7, ~ f3 f5@2", // Am Fsus2 Am
  E: "g4 ~@6 a5, [c2,e4,d5]@3 a4, ~ g2@7, ~ g4@2 g4@5, ~ c3@3", // C
  F: "~@10 a5@5 ~, [f2,f5]@15 ~, a4@4 [f3,a4]@11 ~, ~@2 [c3,c5]@13 ~, ~@6 c6@9 ~", // F C
  G: "~@4 g4@2 g4@2 ~@4 d5@2 c5 ~, c3@6 e5@2 [g4,c5,f5]@2 e5@5 ~, [g4,c5,g5]@4 [c4,g5]@11 ~, ~@2 g3@13 ~, ~@4 c5@2 d4@9 ~", // Csus4 C5
  H: "~@8 g4@4 [g4,e5]@3 ~, [f2,a4,g5]@8 [c5,f5]@7 ~, c5@6 g3@9 ~, ~@2 c3@13 ~, ~@4 f3@11 ~", // C F F5
  I: "~@3 g4@2 ~@2 a5, [c3,e4,d5]@3 a4, ~ g3@7, ~ g4@2 ~@2 g4@3, ~ c4@3", // C
  J: "~@3 bb4, bb3, f5@3 c5@5, ~ [f4,d5]@7, ~@2 bb4@3 f5@3", // Dm
  K: "~@3 f4 ~@2 bb3@2, [bb2,d5], f4@3 ~ [f4,c5]@4, ~ f3@7, ~ bb3@2 ~", // Bb F5
  L: "~ c4@2 c4, [c3,d5], g4 [g4,e5]@3, ~ [g3,c5]@7", M: "[f4,bb4]@2 ~ bb3, [bb2,d5], bb3@3 ~, ~ [f4,c5], ~@9 bb4@7",
  N: "~@2 c5@2 ~@8 [e4,g4]@2 c3 ~, [c2,d5]@15 ~, c3@5 c3@2 ~, [e4,g4]@4 c5@11 ~, ~ [e4,g4]@2 ~", // Em Csus2 Em
  O: "[~@7 c4 ~@6 c3@2, [bb2,f4]@6 bb3@2 [c2,c4] [g2,g3] c3 [d3,g3,g4]@2 c4@3, ~ [f3,d4]@15, ~@2 bb3@3 d5@11, ~@3 bb4@13]/2", // Bb5 C G G5 Dm
  P: "[~@6 f4@4 ~@12 [e4,g4]@4 ~@5 c5, bb2@15 bb4 [c2,e4,g4,c5]@2 g2@2 c3@2 d5@4 [e4,g4,c5]@2 c3@2 e4@2, [f4,bb4]@3 d5@4 f4@9, ~ f3@15, ~@2 bb3 bb4@2 [f4,c5] bb3@10]/2", // Em C Bb5 F5
  Q: "bb3@4 ~@2 f4@4 ~@5 c5, bb2, [f4,d5]@3 [bb4,d5]@5, ~ bb3@2 bb3, ~@5 [f4,c5]@2 f4", // Dm Bb F5
  R: "c3@2 ~ e4@2 e4 ~ g4, [c2,c5], [e4,g4]@6 g4@7 e4@3, ~ c3@2 c3", // C Em
  S: "bb3@4 ~@2 f4@4 ~@5 bb4, bb2@7 f4, [f4,bb4,d5]@3 [bb4,d5]@5, ~@2 bb3@3 f4 bb3@2, ~@5 c5@3", // Bb
  T: "c3@4 ~@2 g4@4 ~@4 [g4,e5] ~, [c2,c5]@15 ~, [e4,g4]@6 d5@9 ~, ~@4 c3@6 [g4,e5]@3 e4@2 ~, ~@6 e4@6 c3@3 ~", // C Em C
  U: "[f4,g4,bb4]@2 ~@13 e5, [bb2,f5]@7 d5, ~ [f3,bb4,e5]@7, ~ [f4,g4]@2 [f4,g4]@5, ~@2 bb3 d5@3 bb3@2", // Gm7 Bb5 Bb Fsus2
  V: "~@12 a4@2 c5 ~, bb2, f5@10 bb3@5 ~, ~@2 [f3,e5]@13 ~, ~@2 bb3 d5@4 ~", // Fmaj7
  W: "~@3 [g4,b4,d5]@2 ~@2 [a4,d5], e3@13 g4@3, a4@5 [g4,d5] e4@2, d5@2 e4@3 b4@3, ~ b3@7", // G D5 G5
  X: "[e4,g4]@2 [e4,c5] ~@4 e4 [e4,g4]@4 g4@2 d5@2, a2, d5@2 c5 [e4,e5], ~@2 e3@12 g4 ~, ~@3 [e4,g4,c5]@3 a3@10", // Em C Em E C
  Y: "[~@7 f4 g3 ~@5 g4 ~, bb2@5 [f4,a4] bb3@2 [g2,f4,a4,c5] g3 f4 e5@2 g3@2 ~, [f4,a4,d5]@2 bb3@3 d5@10 ~, ~@2 [f3,g5]@5 f3@23 ~@2, ~@2 [f4,a4,d5]@2 g5@11 ~]/2", // F Dm Fsus2 Dm
  Z: "~@4 [a4,c5]@2 ~ f3, [f2,g5]@3 [a4,c5,d5,e5], [a4,c5]@3 g3@5, ~ c3@7, ~ f3 f5@2", // Am Fsus2 Am
  AA: "g4 ~@2 g4@2 ~@2 a5, [c2,e4,d5]@3 a4, ~ g2@7, ~ g4@2 ~@2 g4@3, ~ c3@3", // C
  AB: "f3@2 f3@2 f3@3 ~@4 f3@2 ~ f3@2, bb1@13 bb2@3, bb2@11 bb3@5, d4@7 d4@9, bb3@4 bb3@3 f3@2 c4@7",
  AC: "a2@4 ~@2 f3 [f3,a3,c4]@2 ~ a2@6, a1, [f3,a3,c4]@7 ~@2 [f3,a3,c4]@7, ~@2 a2@3 ~@3", // F
  AD: "bb3@2 ~@2 g2@2 [g3,bb3,eb4]@4 ~@2 eb2@3 ~, [g1,g4]@6 eb1@9 ~, g2@2 ~ eb2@3 ~@2, eb4 ~ [g3,bb3,eb4]@4 ~@4 [g3,bb3,eb4]@5 ~", // Eb G Eb
  AE: "[g3,c4]@2 [g3,c4,f4] ~@2 g3 ~ [eb1,eb2], [c1,c2]@3 [c4,f4]@3 ~@2, ~@3 g3@2 ~ [g3,c4,f4]@2, ~@4 [eb1,eb2]@3 ~", // C5 Csus4 Eb C F5 Csus4 Eb
  AF: "[bb2@4 ~@2 [f3,bb3,d4]@4 ~@6 [f3,a3]@4 [f3,a3,c4]@3 [f3,a3,c4]@2 [f3,a3,c4]@2 ~ [f3,a3,c4]@3 ~, bb1@7 bb3 ~@8, [f3,bb3,d4]@6 ~@4 d4@5 c4@5 ~@12, ~@4 bb2@8 bb2@4 a1@15 ~, ~@10 [f3,bb3]@3 f3@3 a2@11 a2@4 ~]/2", // Bb F Bb Bb5
  AG: "[g1,g2,g3,bb3,eb4]@3 [f3,bb3]@2 ~ eb2@2, db4 ~@5 eb1@10, ~@3 eb2@3 ~@2, ~@5 [f3,bb3]@3", // Eb Bb5
  AH: "g3@2 ~@4 [g3,b3,d4,g4]@4 g3@2 ~@3 g4, g1, [b3,d4,g4]@3 ~@2 [b3,d4,g4]@2 [b3,d4], g2 g2@2 g2, ~@2 g3@4 ~@7 g3@2 ~", // G Bm
  AI: "~@3 e4, [f2,g4]@5 f3@3, ~ c3@7, ~ f3 f4@2, ~@3 g3@5", // Fsus2
  AJ: "~ g3!2 ~@3 g3@2, [c2,d4], ~ g2@7, ~@2 c3@3 c3@3, ~@3 g3@3 ~@2", // Csus2
  AK: "f2@2 ~ e3@2 ~ f2@2, f1, g3@5 [e3,g3]@3, e3@3 c4@5, ~ f2@2 ~", // Em
  AL: "c3@4 c3@4 [f2,f3]@2 [e2,e3]@2 [d2,d3]@2 [c2,c3] ~, [c2,e3,g3,c4] ~", // F E D C
  AM: "[~@5 g4@2 ~, [f1,f2]@16 c5@16 c2@13 e4@25 ~@10, c4@9 ~ c4@9 f5@13 [e3,c4]@3 [g2,g3]@32 ~@13, ~ [f4,a4]@11 f4@11 a5@15 [c3,e3]@32 ~@10, ~@14 a4@13 c6@14 [d3,c4]@29 ~@10]/5", // F C G F C D7
})).s("gm_piano").gain(0.8)

// other · trumpet
const trumpet = note("<~@41 A B C ~@10 D E ~@2 D E ~@25>".pickRestart({
  A: "~@6 c5 d5", B: "a4@15 ~", C: "c5@3 d5@3 e5@2", D: "~@14 f5!2", E: "f5",
})).s("gm_trumpet").gain(0.8)

// other · pad halo · "chimes"
const pad_halo = note("<A B A C ~@9 D ~@15 A B ~@8 E F ~@44>".pickRestart({
  A: "~@6 g5 a5", B: "bb5@2 a5@2 g5@2 bb5@4 a5@5 ~", C: "bb5 a5 g5 bb5@2 a5@2 ~", D: "~@2 a5 c6 d6@2 ~@2",
  E: "~@6 a5 c6", F: "d6 ~@3",
})).s("gm_pad_halo").gain(0.8)

// bass · electric bass finger · "bass"
const bass = note(`<
  ~@18 A B A C D B E F G B H I J K L M N O P M Q R S T U V A B A C D B E F G W H F X Y Z AA AB AC AD AE B A AF AG AH A
  AI AJ B AG C A AK AL AI AM@2 AN@3 ~
>`.pickRestart({
  A: "f1@5 ~ f1@10", B: "c1@5 ~ c1@10", C: "c1@3 c1 f1 e1 d1 c1", D: "f1@5 ~ f1@6 g1@2 d2@2", E: "f1@6 f1@7 ~ f1@2",
  F: "bb1@5 ~ bb1@9 ~", G: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1 c2", H: "bb1@5 ~ bb1 ~ bb1@8", I: "c1@4 ~@2 c1 ~ c1@8, d1 ~@15",
  J: "bb1@4 ~@2 bb1 ~ bb1@8", K: "c1@4 ~@2 c1 ~ c1 ~ c1@6", L: "bb1@5 ~ bb1@10", M: "c2@5 ~ c2@9 ~", N: "bb1@6 bb1@9 ~",
  O: "c2@5 ~ c2@4 f2@2 d2@2 c2@2", P: "bb1@2 ~ bb1@5", Q: "bb1@5 ~ bb1@8 bb2 f2", R: "bb1@5 ~ bb1@4 bb2@2 a2@2 g2@2",
  S: "e2@5 ~ e2@8 g2@2", T: "a2@5 ~ a2@6 a1@2 a2@2", U: "bb1@5 ~ bb1@6 ~@2 bb1@2", V: "g1@5 ~ g1@3 ~ g1 ~ g1 ~ g1@2",
  W: "c2@5 ~ c2 ~ c2@8", X: "a1@6 a1@7 ~ a1@2", Y: "g1@3 eb1@5", Z: "c1@3 eb1@4 g1", AA: "bb1@5 bb1 bb1@7 ~ bb1@2",
  AB: "a1@5 ~ a1@7 ~ a1@2", AC: "g1@4 f1@2 eb1@5 ~ eb1 ~ eb1@2", AD: "g1", AE: "f1@5 ~ f1 ~ f1@6 g1@2",
  AF: "c1@4 f1 e1 d1 c1, d1 ~@15", AG: "f1@5 ~ f1@7 ~ f1 g1", AH: "c1@5 ~ c1@7 ~ c1@2", AI: "c1@4 f1 e1 d1 c1",
  AJ: "f1@4 ~@2 f1@7 ~ g1@2", AK: "c1@5 ~ c1@8 g1@2", AL: "f1@2 ~ f1@5", AM: "[f1@15 ~]/2", AN: "[c1@35 ~@13]/3",
})).s("gm_electric_bass_finger").gain(0.8)

// drums · kick
const kick = s("bd").struct("<~@18 A@20 B@17 C@8 B@13 D B@2 E ~@5>".pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x ~ x ~@2", C: "x ~@2 x ~@2 x ~@3 x ~@5", D: "x ~@2 x ~ x ~ x", E: "x",
})).gain(0.8)

// drums · rim
const rim = s("rim").struct("<~@18 [~@3 x]!20 ~@47>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@26 A ~@10 B C@14 D C@5 E C@11 F C@3 G C@4 ~@6>".pickRestart({
  A: "~@12 x ~ x!2", B: "~@14 x!2", C: "~ x ~ x", D: "~@4 x ~@7 x ~ x!2", E: "~@2 x!3 ~ x ~",
  F: "~ x!2 ~ x ~@3 x!3 ~ x ~@3", G: "~@4 x ~ x ~@5 x ~ x!2",
})).gain(0.8)

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@21 A ~@6 B ~@10 C ~@3 D ~@3 A ~@6 B ~@3 E ~@3 F ~@3 E ~@6 G H ~@2 G I ~@6
>`.pickRestart({
  A: "~@7 x", B: "~@13 x!2 ~", C: "~@14 x!2", D: "~@8 x ~ x ~@2 x!3", E: "~@13 x!3", F: "~@12 x ~ x!2", G: "~@15 x",
  H: "~@3 x", I: "~@9 x!2 ~ x ~ x!2",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@19 A ~@3 A ~ A ~ A ~ A ~@5 A ~@2 A@4 ~@2 A@3 ~ A@4 ~ A ~@2 A ~@2 A ~@5 B ~ A B ~ C ~ D ~@2 A ~@9
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~@2", C: "~@3 x ~@2 x ~", D: "~@3 x ~@4",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@21 A ~@6 A ~@10 A ~@2 B C ~@3 A ~@6 A ~@2 B A ~ B ~ D ~@3 A ~@3 B ~@2 E F ~@2 G H ~@6
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~@15 x", C: "~ x ~ x!2 ~@3", D: "~@6 x ~@2 x!2 ~@5", E: "~@7 x", F: "~@9 x!2 ~@5",
  G: "~@7 x ~@6 x ~", H: "~@2 x!2 ~@4",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@22 A ~@4 A ~@2 A ~@7 A ~ A ~ A@3 ~@3 A ~@4 A ~ A ~ A@3 ~ A@3 ~@3 A ~ A ~ A B ~ A@2 C ~@2 A ~@5
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~@7 x",
})).gain(0.8)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@21 A ~@6 A ~@10 A ~@2 B ~@4 A ~@6 A ~@2 B A ~ B ~ C ~@3 A ~@3 B D ~ A E ~@2 C F ~@6
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@7 x", C: "~@3 x ~@4", D: "x", E: "~ x", F: "~ x ~@2",
})).gain(0.8)

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

// drums · tambourine
const tambourine = s("tb").struct("<~ A@3 ~@3 B ~ B ~ B ~ B ~ B ~@22 A@17 ~@8 A@16 ~@6>".pickRestart({
// … 17 more lines

More by Celine Dion