Strudelify

Somewhere Tonight

Toto

KeyB minorTempo133 bpm
0:00/0:00
// Somewhere Tonight — Toto
// 133 bpm, 4/4, key B minor. 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 116 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(133/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 · "A.PIANO 2"
const piano = note(`<
  A B C D@3 E F@3 E G@3 H I@3 J@2 K@2 L@2 M N O@2 P@2 Q R S T U V Q W U V Q X U V Q Y Z V Q AA O@2 AB@2 AC@2 Q V O@2
  AD@2 Q R AE AF U V Q W U V Q X U V Q Y Z V Q AA C G@3 AG F@3 E G@3 H I@3 U V Q W U V AH AI U V Q Y Z V Q AA AJ AK
>`.pickRestart({
  A: "[e2,e3,g3,b3,d4] [f#2,f#3,a3,d4]", B: "f#4@12 [a2,a3,c#4,f#4,a4]@11 ~, [g2,g3,b3,d4]@7 ~@5",
  C: "g2@2 ~@2 g2@2 d3@2 ~@2 d3 ~ c#3@2 ~@2 c#3@2 a2@3 ~ e2@2",
  D: "[~@9 [b3,d4] ~@2 f#3@22 ~@2, ~@10 a3 d4@23 ~@2, ~@21 b3@46 ~@5]/3", // Bm
  E: "g2@2 ~@2 g2@2 d3@2 ~@2 d3 ~ c#3@2 ~@2 c#3 ~ a2@3 ~ e2@2",
  F: "[~@18 [b3,d4]@2 a3@2 ~@2 f#3@43 ~@5, ~@22 [b3,d4]@45 ~@5]/3", // Bm
  G: "[~@9 [b3,d4] a3 ~ f#3@22 ~@2, ~@11 [b3,d4]@23 ~@2]/3", // Bm
  H: "~ g2@2 ~ g2@2 ~ d3@2 ~ d3 ~ c#3@2 ~@2 c#3@2 ~ a2@3 e2@2",
  I: "[~@10 a3 ~ f#3@18 ~@6, ~@19 [b3,d4]@2 ~ [b3,d4]@37 ~@13]/3", J: "[[a3,b3,d4,f#4]@15 ~]/2",
  K: "[[a3,c#4,f#4]@43 ~@5]/2", L: "[[g3,b3,d4,f#4]@23 ~]/2", M: "[g3,b3,d4,f#4]@11 ~", N: "[a3,c#4,f#4]@11 ~",
  O: "[[a3,b3,d4,f#4]@47 ~]/2", P: "[[a3,c#4,f#4]@15 ~]/2", Q: "[g3,b3,d4,f#4]@23 ~", R: "[a3,c#4,f#4]",
  S: "~@3 b3 d4 e4 f#4 d4 e4 b3 d4 a3", T: "b3 ~@11", U: "[a3,b3,d4,f#4]@23 ~", V: "[a3,c#4,f#4]@23 ~",
  W: "[f#3,a3,d4]@11 ~ [e3,a3,c#4]@11 ~", X: "[f#3,a3,d4]@11 ~ [e3,a3]@12, ~@6 c#4@5 ~",
  Y: "[f#3,a3,d4]@12 ~ [e3,a3]@11, ~@6 c#4@5 ~", Z: "[a3,b3,d4,f#4]@11 ~", AA: "[f#3,a3,d4]@6 [a3,c#4]@5 ~, ~ e3",
  AB: "[[c#4,f#4]@47 ~, a3@15 ~]/2", AC: "[[g3,b3,d4,f#4]@47 ~]/2", AD: "[[a3,f#4]@47 ~, c#4@15 ~]/2",
  AE: "~@4 d4 e4 f#4 d4 e4 b3 d4 a3, ~@7 b3@2 ~@15", AF: "b3 ~@5 [a#3,e4,f#4,a4]@17 ~",
  AG: "~ g2@2 ~ g2@2 d3@2 ~@2 d3 ~ c#3@2 ~@2 c#3 ~ a2@3 ~ e2@2",
  AH: "~@8 [d5,d6]@4 d#5@2 ~@7 b4@3, [g3,b3,d4,f#4], ~@4 [b4,b5]@10 ~@3 [d5,d6]@7, ~ [e5,e6], ~@5 b5", // D Gmaj7 B D E
  AI: "f5 ~@4 f#6!2 ~ f#6 ~ f#6 ~ [e3,a3]@12, [f#3,a3,d4]@11 ~ c#4@10 ~@2, ~ f#6@2 f#6@2 ~@7 f#6@6 ~@6, ~@2 f#5@2 f#5@2 f#5@4 ~ f#5@6 ~@7", // A5 D
  AJ: "~@6 b3@2 d4@2 e4@2 f#4@2 d4@2 e4@2 b3@2 d4 ~ a3@2", AK: "~@5 [a4,b4,e5] ~@6",
})).s("gm_piano").gain(0.41)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@2 A B C D A B C D A B C D E F@3 G H I J K L M N O H P J K Q R ~ S T U V S T U V S T U V S T U V G H I J K L M N W H
  P J K Q R X S T U V S T U V S T U V S T U V Y B Z@2 Y B C D A B C D E F@3 S T U V S T U V S T U V S T U V R AA
>`.pickRestart({
  A: "g1@2 ~@2 g1 ~ d2@2 ~@2 d2 ~ c#2@2 ~@2 c#2 ~ a1@3 ~ e1@2", B: "~@22 a#1 ~", C: "b1@6 c#2@5 ~ d2@5 ~ e2@4 a#1 ~",
  D: "b1@2 c#2@2 d2@2 c#2 ~", E: "g1@2 ~@2 g1@2 d2@2 ~@2 d2 ~ c#2@3 ~ c#2@2 a1@4 e1@2",
  F: "[~@19 b1@2 a1 b1@32 ~@18]/3", G: "~@6 b1@3 ~ b1@2 d2@3 ~ d2@2 f#2@4 b2@2", H: "~@10 a1@2 b1@6 f#2@3 ~ f#2@2",
  I: "~@10 a1@2 c#2@5 ~ f#2@4 a2@2", J: "~@12 f#2@6 e2@2 d2 ~ b1 ~, ~@12 e2 ~@11", K: "e1@5 ~ b1@6 e2@3 ~ e2 ~@7",
  L: "f1@6 e2@3 ~ e2@2 ~@12", M: "g1@5 ~ g1@5 ~ e2@5 ~ d2@6, ~@12 d#2 ~@11", N: "a1@4 ~@2 a1@5 ~ f#2@6 e2@3 ~@3",
  O: "~@6 b1@2 ~@2 b1@2 d2@3 ~ d2@2 f#2@4 b2@2", P: "~@2 a1 c#2@2 ~ a2@3 f#2@3", Q: "~@6 a1@6 f#2@5 ~ d2@2 ~@4",
  R: "~@3 b1 d2 e2 f#2 d2 e2 b1 d2 a1", S: "b1@3 d2@3 f#2@3 b2@2 ~", T: "~@4 a1@2 c#2@6 f#2@6 e2@2 d2@2 b1 ~",
  U: "e1@6 b1@6 e2@3 ~ e2@2 ~@6", V: "d1@6 a1@5 ~ a1@6 e2@5 ~", W: "~@6 b1@2 ~@2 b1@2 d2@3 ~ d2@2 f#2@4 b2 ~",
  X: "b1 ~@2 a1@9", Y: "g1@2 ~@2 g1@2 d2@2 ~@2 d2 ~ c#2@2 ~@2 c#2 ~ a1@3 ~ e1@2",
  Z: "[b1@6 c#2@5 ~ d2@5 ~ e2@4 b1@6 ~@2 c#2@6 d2@6 c#2@3 ~@3]/2", AA: "~@5 b1 ~@6",
})).s("gm_electric_bass_finger").gain(0.42)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@3 A@3 ~ B@3 ~ C@3 ~ D@3 E F G@4 H I E F J@3 K ~@5 L ~@3 M ~@3 N ~@3 O P Q R@2 S@2 H I E T U@2 V K ~@5 L ~@3 W ~@3 N
  ~@3 O ~ X@3 ~ Y@3 ~ Y@3 ~ B@3 Z ~ AA AB AC ~ AD ~ AC ~ AA AE AF ~ AA AG ~@2
>`.pickRestart({
  A: "[~@9 [b3,d4] [a3,c#4] [b3,d4]@16 ~@9]/3", B: "[~@18 [b3,d4]@2 [a3,c#4]@2 [b3,d4]@37 ~@13]/3",
  C: "[~@9 [b3,d4] [a3,c#4] [b3,d4]@19 ~@6]/3", D: "[~@18 [f#3,b3]@2 [e3,a3]@2 ~ b3@47 ~@2, ~@22 f#3@47 ~@3]/3",
  E: "[d4,f#4,b4]@10 [d4,f#4,b4] ~@13", F: "~ [d4,f#4,b4]", G: "[[c#4,f#4,a4]@47 ~ a4@6 g4@42, ~@47 [b3,d4]@48 ~]/4",
  H: "[a3,b3,d4,f#4]", I: "[a3,c#4,f#4]", J: "[[c#4,f#4,a4]@47 ~ a4@6 g4@18, ~@47 [b3,d4]@25]/3",
  K: "[a3,b3,d4,f#4]@11 ~", L: "~@4 [f#3,a3,d4]@10 ~@2 [e3,a3,c#4]@7 ~", M: "~@4 [f#3,a3,d4]@8 [e3,a3,c#4]@11 ~",
  N: "~@4 [f#3,a3,d4]@7 ~ [e3,a3,c#4]@11 ~", O: "[f#3,a3,d4]@6 [e3,a3,c#4]@5 ~",
  P: "[d4,f#4,b4]@8 ~@2 [d4,f#4,b4] ~@13", Q: "~@2 [d4,f#4,b4]", R: "[c#4,f#4,a4]/2", S: "[a4 g4@7, [b3,d4]]/2",
  T: "~@10 [d4,f#4,b4] ~@13", U: "[[c#4,f#4,a4]@34 [c#4,f#4,a4] ~@13]/2", V: "a4 g4@3, [b3,d4]",
  W: "~@12 [e3,a3,c#4]@11 ~", X: "[~@18 [b3,d4]@2 [a3,c#4]@2 [b3,d4]@47 ~@3]/3",
  Y: "[~@9 [b3,d4] [a3,c#4] [b3,d4]@25]/3", Z: "~@6 [d4,f#4,b4]@3 ~ [d4,f#4,b4] ~@13", AA: "[b3,d4,f#4]",
  AB: "[f#3,a3,d4]@12 [e3,a3,c#4]@11 ~", AC: "~@6 [d4,f#4,b4]@3 ~ [d4,f#4,b4] ~@7 [d4,f#4,b4] ~@5",
  AD: "[b3,d4,f#4]@23 ~", AE: "~@3 [f#3,a3,d4]@4 ~@2 [e3,a3,c#4]@2 ~",
  AF: "~@6 [d4,f#4,b4]@3 ~ [f#4,b4] ~@7 [d4,f#4,b4] ~@5", AG: "[f#3,a3,d4]@4 [e3,a3,c#4]@3 ~",
})).s("gm_electric_guitar_clean").gain(0.15)

// chords · lead 3 calliope · "CALLIOPE"
const lead_3_calliope = note("<~@4 A B ~@2 A B ~@2 A B ~@70 A B ~@2 A B ~@2 A B ~@22>".pickRestart({
  A: "~@5 [d5,f#5] [e5,g5]@2 f#5 ~@2 [d5,f#5], ~@16 d5 ~@7", // D Em D
  B: "[e5,g5]@4 f#5@2 ~@4 [d5,f#5]@2 [e5,g5]@4 [d5,f#5] ~@7, ~@4 d5 ~@19", // Em D Em D
})).s("gm_lead_3_calliope").gain(0.21).pan(0.7)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~@3 A@3 ~ B@3 ~ C@3 ~ D@3 E@4 F@2 G@2 H@4 I J ~@2 G@2 K L G@2 K M N@3 M O@3 M H@4 F@2 P@6 I Q ~@2 O@3 M R@3 M S@3 M
  N@3 T ~@2 U@2 ~ V@3 ~ V@3 ~ B@3 W@4 X@3 L Y@3 Z@4 L ~@2
>`.pickRestart({
  A: "[~@22 [b3,d4,f#4]@47 ~@3]/3", B: "[~@22 [b3,d4,f#4]@49 ~]/3", C: "[~@11 [b3,d4,f#4]@24 ~]/3",
  D: "[~@11 [b3,d4,f#4]@16 ~@9]/3", E: "[[b3,d4] [a3,c#4], f#4@15 ~]/4", F: "[g3,b3]/2", G: "[[b3,d4] [a3,c#4], f#4]/2",
  H: "[[b3,d4] [a3,c#4], f#4@23 ~]/4", I: "[g3,b3]", J: "[a3,c#4,f#4]@23 ~", K: "[b3,d4,f#4]",
  L: "[f#3,a3,d4]@12 [e3,a3,c#4]@11 ~", M: "[f#3,a3,d4] [e3,a3,c#4]",
  N: "[[b3,d4]@24 [a3,c#4]@23 ~ [b3,d4]@24, f#4@11 ~]/3", O: "[[b3,d4] [a3,c#4] [b3,d4], f#4@11 ~]/3",
  P: "[[b3,d4] [a3,c#4] [b3,d4]@2 [a3,c#4]@2, f#4@47 ~]/6", Q: "[a3,c#4,f#4]@5 ~",
  R: "[[b3,d4]@23 ~ [a3,c#4]@23 ~ [b3,d4]@24, f#4@67 ~@5]/3", S: "[[b3,d4]@24 [a3,c#4]@23 ~ [b3,d4]@24, f#4@67 ~@5]/3",
  T: "[f#3,a3,d4]@6 [e3,a3,c#4]@5 ~", U: "[[b3,d4,f#4]@23 ~]/2", V: "[~@23 [b3,d4,f#4]@48 ~]/3",
  W: "[~ [b3,d4]@22 ~ [a3,c#4]@24 d4@24 [f#3,a3,d4]@12 [e3,a3,c#4]@12, ~ f#4@65 ~@30, ~@4 b3@3 ~]/4", // Bm A D A
  X: "[[b3,d4]@24 [a3,c#4]@23 ~ [b3,d4]@24, f#4@17 ~]/3", // Bm A Bm
  Y: "[[b3,d4]@23 ~ c#4@24 [b3,d4]@24, f#4@17 ~, ~@12 a3@11 ~@13]/3", // Bm
  Z: "[[f#3,a3,d4]@12 [e3,a3,c#4]@11 ~ b3@24 [a3,c#4]@23 ~ [b3,d4]@24, ~@23 d4@25 ~@48, ~@4 f#4@11 ~]/4", // D A Bm
})).s("gm_synth_strings_1").gain(0.15)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@2 A B@2 ~ C D@2 ~ E F@2 ~ G ~@19 H I ~@2 J K ~@2 L M N ~ O P Q ~@17 H I ~@2 J K ~@2 L M N ~ O P Q ~ G ~@3 G ~@3 G
  ~@3 G ~@3 R S T U V W X ~ V O Y ~ Z AA Z ~@3
>`.pickRestart({
  A: "g2@2 ~@2 g2@2 d3@2 ~ d3@2 ~ c#3@2 ~@2 c#3@2 a2@4 e2@2", B: "[~@18 b2@2 a2@2 b2@9 ~@17]/2",
  C: "g2@2 ~ g2@2 ~ d3@2 ~@2 d3@2 c#3@2 ~@2 c#3@2 a2@4 e2@2", D: "[~@9 b2 a2 b2@5 ~@8]/2",
  E: "g2 ~ g2 d3 ~ d3 c#3 ~ c#3 a2@2 e2", F: "[~@9 b2 a2 b2@4 ~@9]/2",
  G: "g2@2 ~@2 g2@2 d3@2 ~@2 d3@2 c#3@2 ~@2 c#3@2 a2@3 ~ e2@2", H: "~@6 b3 ~@5 a3@4 b3 ~@5 a3 ~",
  I: "~@4 a3 ~ b3 ~@5 a3@3 ~ b3 ~@7", J: "~@4 e3 ~ b3@2 ~@5 a3@3 b3 ~@7",
  K: "~@4 e3 ~ b3 ~@3 e3 ~ a3 ~@3 a3 ~ d4@3 ~@3", L: "~@6 b3 ~@6 a3@2 ~ b3 ~@5 b3 ~", M: "~@6 b3 ~@5 a3 ~@3 b3 ~@7",
  N: "~@4 e3 ~ b3 ~@5 a3@3 ~ b3 ~@7", O: "~@6 b3@2 ~@4 a3@3 ~ b3 ~@5 b3 ~",
  P: "~@4 e3 ~ b3 ~@3 e3 ~ b3@2 ~@4 d4@4 b3 ~", Q: "~@6 b3 ~@5 a3@3 ~ b3 ~@7",
  R: "~@4 e3 ~ b3@2 ~@4 a3@3 ~ b3 ~@5 b3 ~", S: "~@4 e3 ~ a3@2 ~@2 e3 ~ b3@2 ~@4 d4@3 ~ b3 ~",
  T: "~@6 b3@2 ~@4 a3@3 ~ b3 ~@7", U: "~@16 e3 ~ a3@3 ~ b3 ~", V: "~@4 e3 ~ b3 ~@3 e3 ~ a3@3 ~ b3 ~@5 b3 ~",
  W: "~@4 e3 ~ a3 ~@3 e3 ~ b3@2 ~@4 d4@4 b3 ~", X: "~@4 e3 ~ b3@2 ~@4 a3@4 b3 ~@7",
  Y: "~@4 e3 ~ d4@5 ~ b3@3 ~@3 a3@3 ~ b3 ~", Z: "~@4 e3 ~ b3@2 ~@2 e3 ~ a3@3 ~ b3 ~@5 b3 ~",
  AA: "~@4 e3 ~ a3@2 ~@2 e3 ~ b3@2 ~@4 d4@4 b3 ~",
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.3)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@34 A ~@7 A@2 B ~@3 C ~@17 A ~@7 A@2 B ~@3 C ~@18 D E ~@2 D F ~@2 G D ~@2 D ~@4
>`.pickRestart({
  A: "~@4 a3 ~@19", B: "~@11 e3 ~@12", C: "~@4 e3 ~@6 e3 ~@12", D: "~@16 e3 ~@7", E: "~@4 e3 ~@5 e3 ~@13",
  F: "~@10 e3 ~@13", G: "~@4 e3 ~@3 a3 ~ e3 ~@13",
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.3)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@34 A B C D A B C D A B C D A B C E ~@16 A B C D A B C F A B C D A B C D ~@16 A B C D A B C D A B C D A B C G ~@2
>`.pickRestart({
  A: "[d6,f#6,b6]", B: "[c#6,e6,a6]", C: "[b4,d5,f#5]", D: "[f#4,a4,d5] [e4,a4,c#5]",
  E: "[f#4,a4,d5]@6 [e4,a4,c#5]@5 ~", F: "[f#4,a4,d5]@11 ~ [e4,a4,c#5]@12", G: "[f#4,a4,d5]@12 [e4,a4,c#5]@11 ~",
})).s("gm_rock_organ").gain(0.11).pan(0.9)

// other · piano · "A.PIANO 1"
const piano_2 = note("<~@32 A B ~@30 A C ~@48 A D>".pickRestart({
  A: "~@3 [b2,b3] [d3,d4] [e3,e4] [f#3,f#4] [d3,d4] [e3,e4] [b2,b3] [d3,d4] [a2,a3]", B: "[b2,b3] ~@7",
  C: "[b2,b3]@3 ~@3 [e4,a4]@16 ~@2", D: "~@10 [b2,b3,b4]@3 ~@11",
})).s("gm_piano").gain(0.19)

// chords · piano · "A.PIANO 1" · Bm D5 Bm F#m
const piano_3 = note("<[[b3,d4] [a3,d4]] [[b3,d4,f#4]@12 [a3,c#4,f#4,a4]@11 ~] ~@114>").s("gm_piano").gain(0.26)

// drums · kick
const kick = s("bd").struct("<~@2 A@13 B ~@2 A@14 ~@2 A@16 C A@13 ~ D A@29 B ~@2 A@16 ~@2>".pickRestart({
  A: "x!4", B: "x!3 ~", C: "~ x!3", D: "~ x ~@4",
})).gain(0.54)

// drums · rim
const rim = s("rim").struct("<~@2 A@13 ~@3 A@14 ~ B ~@16 A@14 ~@18 A@13 ~@21>".pickRestart({
  A: "~ x", B: "~@2 x!2 ~@8",
})).gain(0.54)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@72 [~@11 x] [~@4 x!2 ~@2 x ~@15] ~@30 [~@11 x] [~@4 x!2 ~@2 x ~@15] ~@10>")
  .gain(0.05)

// drums · low tom
const low_tom = s("lt").struct("<~@32 [~@3 x ~ x ~@3 x ~@2] ~@31 [~@3 x ~ x ~@3 x ~@2] ~@49 [~@3 x ~ x ~@3 x ~@2] ~>")
  .gain(0.54)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A B A@3 B A@3 B A@3 ~@3 A B A B A B A B A B A B A@2 C ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A@2 C ~ A@3 B A B A@3 B A B A B A@3 B A@3 B A@3 D A@3 ~@3 A@3 B A B A@3 B A B A B A@2 C ~
>`.pickRestart({
  A: "~@3 x ~@2 x ~@2 x ~ x", B: "~ x ~ x ~ x ~ x ~@3 x", C: "x", D: "~ x ~@3 x ~ x ~@3 x",
})).gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  A@2 B C B@3 C B@3 C B@3 D ~@2 B C B C B C B C B C B C B@2 ~@2 B C B C B C B C B C B C B C B C E C B C B C B C B C B C
  B@2 ~@2 B@3 C B C B@3 C B C B C B@3 C B@3 C B@3 F B@3 D ~@2 B@3 C B C B@3 C B C B C B@2 ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "x ~ x ~@2 x ~@2 x ~@3", C: "x ~@2 x", D: "x!2 ~ x ~ x ~@6", E: "~@2 x ~@2 x ~@2 x ~@3",
  F: "x!2 ~ x",
})).gain(0.27)

// drums · mid tom
const mid_tom = s("mt").struct("<~@16 A B ~@14 C B ~@30 C D ~@30 A ~@17 C ~>".pickRestart({
  A: "~@23 x", B: "~@11 x ~@12", C: "~@6 x ~@4 x", D: "~@8 x!2 ~@2",
})).gain(0.32)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@16 [~@21 x!2 ~] [~@9 x!2 ~@13] ~@15 [~@9 x!2 ~@13] ~@62 [~@21 x!2 ~] ~@19>")
  .gain(0.16)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~ A ~@3 A ~@3 A ~@3 B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~@3 A ~@3 A ~ A ~ A ~ A ~ A ~ A ~@3 A ~@3 A ~@3 A ~@3 B ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~@4
>`.pickRestart({
  A: "~@11 x", B: "~@6 x ~@4 x",
// … 65 more lines

More by Toto