Strudelify

Can't Take My Eyes Off You

Engelbert Humperdinck

KeyE♭ majorTempo118 bpm
0:00/0:00
// Can't Take My Eyes Off You — Humperdinck Engelbert
// 118 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 110 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · vibraphone · "Vibraphon"
const vibraphone = note(`<
  ~@6 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H I J@2 B@2 C@2 D@2 E@2 F@2 G@2 H I J@2 ~@25 B@2 C@2 D@2 E@2 F@2 G@2 H I J@2 ~@29
>`.pickRestart({
  A: "[f4 eb4@2 d4@2 eb4@2 f4@2 g4@5 ~@2]/2", B: "[[g4,bb4,eb5]@15 ~]/2", C: "[[g4,bb4,d5]@31 ~]/2",
  D: "[[g4,bb4,db5]@29 ~@3]/2", E: "[[eb4,ab4,c5]@31 ~]/2", F: "[[eb4,ab4,b4]@31 ~]/2", G: "[[eb4,g4,bb4]@15 ~]/2",
  H: "[f4,a4,c5]@15 ~", I: "[eb4,ab4,b4]@15 ~", J: "[[eb4,g4,bb4]@31 ~]/2",
})).s("gm_vibraphone").gain(0.42).pan(0.4)

// chords · vibraphone · "Vibraphon" · soft notes
const vibraphone_soft = note("<~@2 A@2 B@2 ~@104>".pickRestart({
  A: "f5 eb5@2 d5@2 eb5 f5 g5", B: "[f5@9 ~@7]/2",
})).s("gm_vibraphone").gain(0.24).pan(0.4)

// bass · electric bass pick · "Pickd.Bas"
const bass = note(`<
  A@8 B C B C B D E F E G B D B D B H B C B C B D E F E G B D B D B I J K B L M N O P@2 Q R S T U V W X Q R S T Y Z AA
  AB B C B C B D E F E G B D B D B I M N O P@2 Q R S T U V W X Q R S T U V W X Q R S T U V W AC
>`.pickRestart({
  A: "[eb1,eb2]@5 ~ [eb1,eb2] ~ [eb1,eb2]@7 ~", B: "eb2@5 ~ eb2 ~ eb2@5 ~ eb2 ~", C: "eb2@5 ~ eb2 ~ eb2@5 ~ bb2@2",
  D: "eb2@5 ~ eb2 ~ eb2@4 ~@2 bb2@2", E: "ab2@5 ~ ab2 ~ ab2@5 ~ ab2 ~", F: "ab2@5 ~ ab2 ~ ab2@5 ~ eb2@2",
  G: "ab2@5 ~ ab2 ~ ab2@5 ~ ab2@2", H: "eb2@5 ~ eb2@2 bb1@2 bb1@2 bb1@2 bb1@2",
  I: "eb2@5 ~ eb2@2 eb2@2 eb2@2 eb2@2 eb2@2", J: "f2@4 ~@2 f2 ~ f2@5 ~ f2@2", K: "bb1@4 ~@2 bb1 ~ bb1@5 ~ bb1@2",
  L: "eb2@4 ~@2 eb2@3 ~ eb2@3 ~ e2@2", M: "f2@5 ~ f2 ~ f2@5 ~ f2@2", N: "bb1@4 ~@2 bb1 ~ bb1@4 ~@2 bb1@2",
  O: "eb2@5 ~ eb2 ~ eb2@5 ~ eb2 d2", P: "[c2@31 ~]/2", Q: "f2 ~ f2@2 ~@2 c2@2 f2 ~ f2@2 ~@2 c2 ~",
  R: "bb1 ~ bb1 ~@3 f2 ~ bb2 ~ f2 ~ bb2@2 ab2@2", S: "g2 ~ g2@2 ~@2 d2@2 g2 ~ g2@3 ~ d2 ~",
  T: "c2 ~ c2@2 ~@2 g2 ~ c3 ~ bb2@2 ab2 ~ g2@2", U: "f2 ~ f2@3 ~ c2@2 f2 ~ f2@2 ~@2 c2@2",
  V: "bb1 ~ bb1@2 ~@2 f2@2 bb2@2 ab2@2 g2@2 f2@2", W: "eb2@2 eb2@2 ~@2 bb1 ~ eb2 ~ eb2@3 ~ bb1 ~",
  X: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 d2@2 eb2@2", Y: "f2@5 ~ f2@5 ~ f2@4", Z: "~@2 f2@5 ~ f2@3 ~ f2@4", AA: "db2",
  AB: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2", AC: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 d2@2 ~@2",
})).s("gm_electric_bass_pick").gain(0.5)

// chords · electric guitar clean · "#Clean Gt"
const electric_guitar_clean = note(`<
  ~@8 A@2 B@2 C@2 D@2 E@2 F@2 G E F@2 A@2 B@2 C@2 D@2 E@2 F@2 G E F@2 ~@25 A@2 B@2 C@2 D@2 E@2 F@2 G E F@2 ~@29
>`.pickRestart({
  A: "~@4 [g4,bb4,eb5] ~@5 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~", B: "~@4 [g4,bb4,d5] ~@5 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~",
  C: "~@4 [g4,bb4,db5] ~@5 [g4,bb4,db5] ~@3 [g4,bb4,db5] ~", D: "~@4 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~",
  E: "~@4 [eb4,ab4,b4] ~@5 [eb4,ab4,b4] ~@3 [eb4,ab4,b4] ~", F: "~@4 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~",
  G: "~@4 [f4,a4,c5] ~@5 [f4,a4,c5] ~@3 [f4,a4,c5] ~", // F
})).s("gm_electric_guitar_clean").gain(0.4).pan(0.6)

// chords · string ensemble 1 · "#St.Strin"
const string_ensemble_1 = note(`<
  ~@24 A@2 B@2 C@2 D@2 E@2 F@2 G H F@2 ~@9 I@2 J@2 K@2 L@2 I@2 J@2 M@2 N@6 O@4 P@2 Q@2 R S T@2 U@2 V@3 I@2 J@2 K@2 L@2
  I@2 J@2 K@2 L@2 I@2 J@2 K@2 L@2
>`.pickRestart({
  A: "[eb4,g4,bb4]/2", B: "[d4,g4,bb4]/2", C: "[db4,g4,bb4]/2", D: "[c4,eb4,ab4]/2", E: "[b3,eb4,ab4]/2",
  F: "[bb3,eb4,g4]/2", G: "[c4,f4,a4]", H: "[b3,eb4,ab4]", I: "[[f3,ab3,c4,eb4]@2 [ab3,c4,eb4] [ab3,d4,f4], c7]/2",
  J: "[[g2,f3,bb3,d4] [c3,g3,bb3,eb4], bb6]/2", K: "[[f2,ab3,c4,eb4]@16 [ab3,c4,eb4]@8 [ab3,b3,d4]@7 ~, ab6, ~ bb2]/2",
  L: "[[eb3,g3,bb3,c4] [e3,bb3,eb4], g6@15 ~]/2", M: "[ab6 ab6, [f2,ab3,c4,eb4]]/2",
  N: "[[db3,f3,b3]@15 ~@28 g5@2 ~ bb5@2 c6@6 g5@2 ~@16 bb5@3 ~ g5@2 bb5@2 c6@5 g5@2 ~ bb5@8, ~@15 bb3@17 [eb4,g4,bb4]@32 [d4,g4,bb4]@32, ~@16 f3@17 ~@63, ~@24 bb5@19 ~@13 bb5@15 ~@25]/6", // Db7 Eb Gm
  O: "[~@8 bb5@4 g5@2 bb5@2 c6@8 ~@16 ab5@8 g5@8 f5@7 ~, [db4,g4,bb4] [c4,eb4,ab4], ~@3 bb5@2 ~@3]/4", // Gdim Ab
  P: "[bb5@7 ~ b5@8 g6@12 f6@2 eb6@2, [b3,eb4,ab4]]/2", Q: "[bb3,eb4,g4,bb5]/2", R: "[c4,f4,a4,a5]",
  S: "[b3,eb4,ab4,ab5]", T: "[bb3,eb4,g4,g5]/2",
  U: "[[b5,b6]@3 ~ [c6,c7] ~@3 [b5,b6]@3 ~ [c6,c7] ~@3 b5@3 ~ [c6,c7] ~ [eb6,eb7] ~@3 [d6,d7] ~@3 [c6,c7]@2, ~@15 b6@3 ~@14]/2", // B C B C Eb D C
  V: "[[b5,b6]@3 c7 c6 ~@3 [b5,b6]@3 c7 c6 ~@3 eb6@31 ~, ~@15 eb7@31 ~@2]/3", // B
})).s("gm_string_ensemble_1").gain(0.25)

// chords · trumpet · "#Wrm.Trmp"
const trumpet = note(`<
  ~@2 A B C ~ D E ~@12 F G H I ~@12 F G J@2 K L M N O P Q R@2 S T U V W X Y Z S T U V AA ~@15 F G J@2 AB P Q R@2 S T U V
  W X Y Z S T U V W X Y Z S T U V W X Y Z
>`.pickRestart({
  A: "[f3,f4]@2 [eb3,eb4]@2 ~@2 [d3,d4]@2 ~@2 [eb3,eb4] ~ f4@2 g4@2, ~@12 f3 ~ g3 ~", // F Eb D Eb
  B: "[f3,f4]@2 [eb3,eb4]@3 ~ [d3,d4]@3 ~ [eb3,eb4]@2 [f3,f4]@2 [g3,g4]@2", C: "f4@7 ~, f3@11 ~@5",
  D: "f4 [eb3,eb4] ~ [d3,d4] ~ eb3 ~ [f3,f4], f3 ~@9 eb4 ~@5", E: "~ g4@5 ~@2, ~@2 g3@7 ~@7", F: "[eb3,c4,f4,a4]@15 ~",
  G: "[eb3,b3,eb4,ab4]@7 ~", H: "[f3,f4] [eb3,eb4] ~ [d3,d4] ~ [eb3,eb4] ~ [f3,f4]", I: "~ [g3,g4]@5 ~@2",
  J: "[~@15 eb2@15 ~@2, [eb3,bb3,eb4,g4]@31 ~]/2", K: "[g3,b3,b4]@4 [ab3,c4,c5] ~@3 [g3,b3,b4]@4 [ab3,c4,c5] ~@3",
  L: "[g3,b3,b4]@4 [ab3,c4,c5] ~ [c4,d4,eb4,d5,eb5] ~@3 [ab3,d4] ~@3 [c4,c5]@2, ~@10 d5@2 ~@2 ab3 ~", // G Ab Cm Abdim C
  M: "[gb3,b3,b4]@4 [g3,c4,c5] ~@3 [gb3,b3,b4]@4 [g3,c4,c5] ~@3", // B5 C5 B5 C5
  N: "[gb3,b3,b4]@4 [g3,c4,c5] ~ [bb3,d4,eb4,d5,eb5] ~@3 [g3,d4,d5] ~@3 [c4,c5]@2, ~@14 g3 ~", // B5 C5 Ebmaj7 G5 C
  O: "[g3,b3,b4]@4 [ab3,c4,c5] ~@3 [b3,b4]@4 [ab3,c4,c5] ~@3, ~@7 g3@4 ~@5", // G Ab B Ab
  P: "[g3,b3,b4]@4 [ab3,c4,c5] ~ [c4,d4,eb4,d5,eb5] ~@3 [ab3,d4,d5] ~@3 [c4,c5]@2, ~@14 ab3 ~", // G Ab Cm Abdim C
  Q: "[gb3,b3,b4]@3 g3 [c4,c5] ~@3 [b3,b4]@3 ~ [g3,c4,c5] ~@3, ~@7 gb3@4 ~@5", R: "[[e3,bb3,eb4]@31 ~]/2",
  S: "~@4 [ab3,c4,eb4,g4] ~@5 [ab3,c4,eb4,g4]@3 ~ [ab3,c4,eb4,g4] ~", // Abmaj7
  T: "~@4 [ab3,c4,eb4,g4] ~@5 [ab3,c4,d4,f4]@3 ~ [ab3,c4,d4,f4] ~", // Abmaj7 Dm7b5
  U: "~@4 [g3,bb3,d4,f4] ~@5 [g3,bb3,d4,f4]@3 ~ [g3,bb3,d4,f4] ~", // Gm7
  V: "~@4 [g3,bb3,d4,f4] ~@5 [g3,bb3,c4,eb4]@3 ~ [g3,bb3,c4,eb4] ~", // Gm7 Cm7
  W: "~@4 [f3,ab3,c4,eb4] ~@5 [f3,ab3,c4,eb4]@3 ab3 [f3,c4,eb4] ~", // Fm7 F7
  X: "~@4 [f3,ab3,c4,eb4] ~@5 [f3,ab3,b3,d4]@3 ~ [f3,ab3,b3,d4] ~", Y: "~@8 c3@2 bb2 ~ eb3 ~ bb2 ~", Z: "~ c3@2 ~@5",
  AA: "[f3,ab3,c4,eb4]@3 ~@5", AB: "[g3,b3,b4]@4 [ab3,c4,c5] ~@3 [b3,b4]@3 ab3 [c4,c5] ~@3, ~@7 g3@4 ~@5",
})).s("gm_trumpet").gain(0.29).pan(0.4)

// chords · trumpet · "#Bright T"
const trumpet_2 = note(`<
  ~@40 A B C D C E F G@2 H I J K L M N O H I J K P ~@19 A E F G@2 H I J K L M N O H I J K L M N O H I J K L M N O
>`.pickRestart({
  A: "b4@3 ~ c5 ~@3 b4@4 c5 ~@3", B: "b4@3 ~ c5 ~ [d5,eb5] ~@3 d5 ~@3 c5@2", C: "b4@4 c5 ~@3 b4@4 c5 ~@3",
  D: "b4@4 c5 ~ [d5,eb5] ~@3 d5 ~@3 c5@2", E: "b4@4 c5 ~ [d5,eb5] ~@3 d5 ~@2 c5@3",
  F: "b4@3 ~ c5 ~@3 b4@4 c5 ~ [db4,d4] eb4", G: "[[e4,bb4,eb5]@31 ~]/2",
  H: "~@4 [ab4,c5,eb5,g5] ~@5 [ab4,c5,eb5,g5]@3 ~ [ab4,c5,eb5,g5] ~", // Abmaj7
  I: "~@4 [ab4,c5,eb5,g5] ~@5 [ab4,c5,d5,f5]@3 ~ [ab4,c5,d5,f5] ~", // Abmaj7 Dm7b5
  J: "~@4 [g4,bb4,d5,f5] ~@5 [g4,bb4,d5,f5]@3 ~ [g4,bb4,d5,f5] ~", // Gm7
  K: "~@4 [g4,bb4,d5,f5] ~@5 [g4,bb4,c5,eb5]@3 ~ [g4,bb4,c5,eb5] ~", // Gm7 Cm7
  L: "~@4 [f4,ab4,c5,eb5] ~@5 [f4,ab4,c5,eb5]@3 ~ [f4,ab4,c5,eb5] ~", // Fm7
  M: "~@4 [f4,ab4,c5,eb5] ~@5 [f4,ab4,b4,d5]@3 ~ [f4,ab4,b4,d5] ~", // Fm7 Fdim
  N: "~@6 [g3,g4] ~ [c4,c5]@2 [bb3,bb4] ~ [eb4,eb5] ~ [bb3,bb4] ~", O: "~@2 [c4,c5]@13 ~", P: "[f4,ab4,c5,eb5]@3 ~@5",
})).s("gm_trumpet").gain(0.31).pan(0.3)

// chords · tremolo strings · "#Susp.Str"
const tremolo_strings = note("<A@3 ~ B@3 C ~@102>".pickRestart({
  A: "[[f4,a4,c5,f5,a5]@15 [eb4,ab4,b4,eb5,ab5]@16 [eb4,g4,bb4,eb5,g5]@16 ~]/3", // F Abm Eb
  B: "[[f4,a4,c5]@2 [f4,a4]@13 [eb4,ab4,b4] [eb4,ab4,b4]@15 [eb4,g4,bb4,eb5,g5]@15 ~ g4, [f5,a5]@15 [eb5,ab5]@16 ~@15 [eb4,bb4]@2]/3", // F Abm Eb F Ab5 Eb5
  C: "[eb4,g4,bb4]@3 ~, [eb5,g5]@7 ~@9", // Eb
})).s("gm_tremolo_strings").gain(0.16)

// chords · tremolo strings · "#Susp.Str" · soft notes · Eb
const tremolo_strings_soft = note("<~@3 [[eb4,g4,bb4,eb5,g5]@13 ~@3] [~@2 c5@13 ~] ~@105>")
  .s("gm_tremolo_strings").gain(0.08)

// other · flute
const flute = note("<~@2 A@2 B ~ C D ~@14 E F ~@86>".pickRestart({
  A: "f4 eb4@2 d4@2 eb4 f4 g4", B: "f4@15 ~", C: "f4 eb4@2 d4@2 eb4 ~ f4", D: "~@2 g4@11 ~@3",
  E: "f4@2 eb4 ~@3 d4 ~@3 eb4@2 ~@2 f4@2", F: "~@2 g4@5 ~@9",
})).s("gm_flute").gain(0.21).pan(0.7)

// other · oboe
const oboe = note("<~@24 A B C B D E F G H I J K ~@74>".pickRestart({
  A: "~@2 bb4 f4", B: "g4@15 ~", C: "~@8 bb4@3 g4@3 f4@2", D: "~@8 c5 bb4 bb4@3 ab4@2 ~, ~@10 c5 ~@5", E: "g4",
  F: "~@8 bb4@3 ab4@3 g4@2", G: "~ f4@14 ~", H: "~@2 eb4@2 b4@3 bb4", I: "ab4@13 ~@3", J: "~@2 eb4@2 bb4@3 ab4",
  K: "g4@13 ~@3",
})).s("gm_oboe").gain(0.36).pan(0.2)

// chords · baritone sax · "Barit.Sax"
const baritone_sax = note(`<
  ~@40 A B C D A B E F@2 G H I J K L M N G H I J O ~@19 A B E F@2 G H I J K L M N G H I J K L M N G H I J K L M N
>`.pickRestart({
  A: "[f2,f3]@3 ~ [f2,f3] ~@3 [f2,f3]@3 ~ [f2,f3] ~@3", // F
  B: "[bb1,f3]@3 ~ [bb1,f3] ~ [bb1,bb3] ~@3 [bb1,f3] ~@3 bb1@2, ~@14 f3 ~", // Bb5 Bb Bb5
  C: "[eb2,eb3]@3 ~ [eb2,eb3] ~ eb2 ~ [eb2,eb3]@3 ~ [eb2,eb3] ~ eb2 ~", // Eb
  D: "[eb2,eb3]@3 ~ [eb2,eb3] ~ [eb2,g3] ~@3 [eb2,eb3] ~@3 eb2@2, ~@14 eb3 ~", // Eb
  E: "[eb2,eb3]@3 ~ [eb2,eb3] ~@3 eb3@3 ~ [eb2,eb3] ~ d2 db2, ~@7 eb2@3 ~@6", F: "[e3, c2@15 ~]/2",
  G: "~@4 [eb4,g4] ~@5 [eb4,g4]@3 ~ [eb4,g4] ~", H: "~@4 [eb4,g4] ~@5 [d4,f4]@3 ~ [d4,f4] ~",
  I: "~@4 [d4,f4] ~@5 [d4,f4]@3 ~ [d4,f4] ~", J: "~@4 [d4,f4] ~@5 [c4,eb4]@3 ~ [c4,eb4] ~",
  K: "~@4 [c4,eb4] ~@5 [c4,eb4]@3 ~ [c4,eb4] ~", L: "~@4 [c4,eb4] ~@5 [b3,d4]@3 ~ [b3,d4] ~",
  M: "~@6 g2 ~ c3 ~ bb2 ~ eb3 ~ bb2 ~", N: "~@2 c3@13 ~", O: "[c4,eb4]@3 ~@5",
})).s("gm_baritone_sax").gain(0.41)

// other · orchestral harp · "Harp"
const orchestral_harp = note("<~@48 A ~@7 B C ~@5 D ~@21 A ~@7 B C ~@6 B C ~@6 E>".pickRestart({
  A: "~@9 gb1 [a1,b1,d2] [e2,gb2,a2] [b2,d3] [e3,gb3,a3,b3] [d4,e4,gb4] a4", // Bm7 Gbm7 Bm Esus4 D
  B: "~@9 [e2,gb2] [a2,b2,d3] [e3,gb3,a3] [b3,d4,e4] [gb4,a4,b4] [d5,e5,gb5] [a5,b5,d6]", C: "e6 ~@15",
  D: "~ f3 [ab3,b3] ~ f4 ~@11, db3@2 ~ db4@2 ~@11", // Abm
  E: "~@9 [e2,gb2] [a2,b2,d3] [e3,gb3,a3] [b3,d4,e4] [gb4,a4,b4] d5 ~", // Esus2 Bm7 Gbm7 E7 B7
})).s("gm_orchestral_harp").gain(0.32)

// other · orchestral harp · "Harp" · soft notes
const orchestral_harp_soft = note("<~@48 A B ~@6 C D ~@5 E ~@21 A B ~@6 C D ~@6 C D ~@6 C>".pickRestart({
  A: "~@8 [a0,b0,d1] e1 ~@5 [b4,d5,e5]", B: "gb5 ~@15", C: "~@8 b1 d2 ~@6", D: "gb6 ~@15", E: "~@5 ab4 b4 ~@9",
})).s("gm_orchestral_harp").gain(0.18)

// other · french horn · "Fr.Horns"
const french_horn = note("<~@65 A@2 B@2 C@2 D@2 E@2 F@2 G H I@2 ~@29>".pickRestart({
  A: "eb4/2", B: "d4/2", C: "db4/2", D: "c4/2", E: "b3/2", F: "bb3/2", G: "a3", H: "ab3", I: "[g3@29 ~@3]/2",
})).s("gm_french_horn").gain(0.35).pan(0.6)

// drums · kick
const kick = s("bd").struct("<A@7 B A@32 B@3 C B D B E F B@11 A G H I@2 A@16 B D B E F B@23 A>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x ~@2 x ~ x ~ x", D: "x ~@2 x!2 ~ x!2", E: "x ~ x!2", F: "x!4",
  G: "x ~@2 x ~@2 x ~", H: "~ x ~@2 x ~ x ~", I: "x",
})).gain(0.57)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A B ~@2 A B A@31 C D E A F D G H ~@2 D@3 I D@2 J K D@3 I L M ~@2 A@15 C N G H ~@2 D@3 I D@2 J K D@3 I D@2 J K D@3
  I D@2 J K
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x ~@2 x!2 ~ x ~@9", D: "x!4", E: "x ~ x ~@4 x", F: "x ~@3 x ~@3 x ~ x!2 ~@4",
  G: "x ~@3 x ~@6 x ~@2 x ~", H: "~ x!2 ~ x ~ x ~", I: "x ~@3 x ~@3 x ~@3 x ~ x!2", J: "x ~ x ~ x ~ x!2",
  K: "x ~ x!5 ~@9", L: "x!2 ~@2", M: "x ~ x!2", N: "~ x!3",
})).gain(0.29)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@8 A@31 B A C D E A E F ~@2 G@3 H G@2 H ~ G@3 H ~@4 A@15 B A E F ~@2 G@3 H G@2 H ~ G@3 H G@2 H ~ G@3 H G@2 H ~
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~@6", C: "~ x ~ x!4 ~", D: "~ x ~ x!3 ~ x", E: "~ x ~ x ~@4", F: "x ~@2 x ~ x ~@2",
  G: "~@5 x ~ x", H: "~@5 x ~@2",
})).gain(0.07)

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

// drums · low tom · soft notes
// … 61 more lines

More by Engelbert Humperdinck