Strudelify
Brivido caldo cover art

Brivido Caldo

Brivido caldo

Matia Bazar

KeyD minorTempo116 bpm
0:00/0:00
// Brivido caldo — Matia Bazar
// 116 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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.

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

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@20 A B ~@4 C D ~@4 E@2 F@2 G H I@4 J@2 F H I@2 E@2 F@2 G H I@4 J@2 F K I@2 J@2 F H I@2 J@2 F H I L F M F H E@2 F@2 G
  H I@4 J@2 F H E@2 F@2 G H I@4 J@2 F K ~ I@2 J@2 F N ~
>`.pickRestart({
  A: "~@6 d4 e4 f4@2 ~ e4@2 d4@2 ~", B: "a3@3 g3@2 f3@3 d3@8", C: "~@12 [c4,g4,e5]!4", D: "[c4,g4,e5]@3 [d4,a4,f5]@13",
  E: "[a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2", // F
  F: "[bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2", // Bb
  G: "[g3,c4,e4]@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2", // C
  H: "[a3,db4,e4]@2 [a3,db4,e4]!2 [a3,db4,e4]@2 [a3,db4,e4]@2 [a3,db4,e4]@2 [a3,db4,e4]@2 [a3,db4,e4]@2 [a3,db4,e4]@2", // A
  I: "[a3,d4,f4]@2 [a3,d4,f4]!2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2", // Dm
  J: "[ab3,b3,e4]@2 [ab3,b3,e4]!2 [ab3,b3,e4]@2 [ab3,b3,e4]@2 [ab3,b3,e4]@2 [ab3,b3,e4]@2 [ab3,b3,e4]@2 [ab3,b3,e4]@2", // E
  K: "[a3,db4,e4]@2 [a3,db4,e4] ~@13", L: "a3@3 g3@3 f3@2 d3@8",
  M: "[bb3,e4,g4]@2 [bb3,e4,g4]!2 [bb3,e4,g4]@2 [bb3,e4,g4]@2 [bb3,e4,g4]@2 [bb3,e4,g4]@2 [bb3,e4,g4]@2 [bb3,e4,g4]@2", // Edim
  N: "[a3,db4,e4]@2 [a3,db4,e4]!2 [a3,db4,e4]@2 [a3,db4,e4]@3 ~ [a3,db4,e4]@3 ~ [d3,a3,d4]@2", // A D5
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.6)

// chords · lead 3 calliope
const lead_3_calliope = note("<A B C D E B ~@8 A B C D E B A B ~@87 A F C G E F ~>".pickRestart({
  A: "~@2 [f4,a4]@2 e4@2 d4@2 [e4,a4]@2 ~@2 [f4,a4]@2 d4 ~", B: "~@2 [f4,a4]@2 e4@2 d4@2 [f4,a4]@2 ~@2 [e4,a4]@2 d4 ~",
  C: "~@2 [f4,ab4]@2 e4@2 d4@2 [e4,ab4]@2 ~@2 [f4,ab4]@2 d4 ~", // Fm E Fm
  D: "~@2 [f4,ab4]@2 e4@2 d4@2 [f4,ab4]@2 ~@2 [e4,ab4]@2 d4 ~", // Fm E
  E: "~@2 [f4,bb4]@2 e4@2 d4@2 [e4,bb4]@2 ~@2 [f4,bb4]@2 d4 ~", // Bb5 Edim Bb5
  F: "~@2 [f4,a4]@2 e4@2 d4@2 [f4,a4]@2 [f4,a4]@2 [e4,a4]@2 d4 ~", // F A5
  G: "~@2 [f4,ab4]@2 e4@2 d4@2 [f4,ab4]@2 [f4,ab4]@2 [e4,ab4]@2 d4 ~", // Fm E
})).s("gm_lead_3_calliope").gain(0.48).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@20 A B ~@29 C ~@3 D E F@2 ~@15 G@2 ~@3 H ~@13 I ~@13 J ~@8>".pickRestart({
  A: "~@6 [d5,d6] [e5,e6] [f5,f6]@2 ~ [e5,e6]@2 [d5,d6]@2 ~", // D E F E D
  B: "[a4,a5]@3 [g4,g5]@2 [f4,f5]@3 [d4,d5]@2 [e4,e5]@2 [f4,f5]@2 [d4,d5]@2", C: "~@8 c6 ~ g5 ~ d5 ~ d6 ~",
  D: "~@3 [f4,d5]!2 [g4,e5]!2 [a4,f5]", E: "[a4,f5] [bb4,g5]!2 [c5,a5]!2 [f5,d6]!2 [g5,e6]",
  F: "[[g5,e6] [a5,f6] a5@6 ab5@8, ~ f6@6 ~]/2", // C Dm
  G: "[~@2 f4@3 ~ d5 e5 [d4,f5]@3 [e4,e5]@3 d4@2 f4@3 e4@3 d4@10, ~@5 e4@3 ~@6 d5@14 ~@4]/2", H: "~@14 f4 g4",
  I: "~@8 db5 d5 e5 f5 e5 f5 g5 a5", J: "[a3,db5,a5,db6]!2 ~@6",
})).s("gm_string_ensemble_1").gain(0.56)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G H I@2 J@2 K@2 L@2 M@2 N O P@2 M@2 N O Q@4 R S@4 T U@2 V W@3 X Y Z AA AB AC@4 AD AE@2 AF AG
  AH@2 AI@2 F@2 AJ@2 AK AL F@2 D@2 M@2 N O Q@4 R AM@4 T U@2 AN AO@3 AP AQ AR@2 AS AT AU AV AW AX AF AG ~ A@2 B@2 C@2 ~
>`.pickRestart({
  A: "[a4,f5]/2", B: "[ab4,e5]/2", C: "[d5@16 db5@15 ~, g4@31 ~]/2", D: "[a3,d4,f4]/2", E: "[b3,d4,ab4]/2",
  F: "[[bb3,d4] [db4,e4], g4]/2", G: "[a3,d4,f4]", H: "[bb3,d4] [db4,e4], g4", I: "[d4@4 a3!2 f4 d4 e4@4 f4@4, a4]/2",
  J: "[e4 f4 e4 d4 e4@2 f4 d4 b3@4 e4@3 f4, ab4]/2", K: "[d4 db4, g4]/2", L: "[e4@8 d4@4 d4 e4 f4 d4, a4]/2",
  M: "[[d4,f4] [c4,e4], bb3]/2", N: "[bb3,d4,f4]", O: "[g3,db4,e4]", P: "[[c4,e4,g9] [d4,f4], a4]/2",
  Q: "[bb4@3 ~@19 g4@2 d5@8, c4 d4, ~@3 a4@19 ~@10]/4", R: "a4@3 g4@5, e4",
  S: "[gb4@3 ~@11 f4@2 a4@2 d5@2 e5@2 f5@2 g5@3 f5@3 [a3,a4]@2, db4@4 d4@11 ~, ~@3 g4@11 ~@18]/4", // A
  T: "e5@3 d5@3 f4@2, c4", U: "[c5@6 b4@2 ab4@2 a4 b4 e4@2 e5@2, b3]/2", V: "[bb3,d5]",
  W: "[db5@2 a4@2 g4@2 f4@2 e5@6 f5@2 a5@2 d5@2 e5 f5 g5 a5, a3]/3", X: "bb5@3 a5@3 f5 a5, c4", Y: "[f4,c5]",
  Z: "a5@3 g5 a5@2 g5@2, bb3 c4", AA: "[d4,d5]", AB: "a5@3 g5@5, c4",
  AC: "[gb5@3 ~@11 f5@2 a4@3 ~@13, db4 d4@3, ~@3 g5@11 ~@18]/4", AD: "c4",
  AE: "[~@12 e6@4 [ab5,b5]@3 [a5,c6]@2 [b5,d6]@3 [e5,ab5]@4 [b5,e6]@4, b3]/2", AF: "f5@3 e5@3 d5@2, [bb3,bb5,d6]",
  AG: "[a3,db5,a5,db6] ~@3", AH: "[d4,f4,a4]/2", AI: "[ab4@2 a4 ab4, [b3,d4]]/2",
  AJ: "[[d4,f4]@2 [e4,g4] [d4,f4], a3]/2", AK: "[ab3,b3,e4]@7 [e3,ab3,b3]", AL: "f4 e4, [ab3,b3]",
  AM: "[a4@2 ~@12 f4@2 a4@2 d5@2 e5@2 f5@2 g5@3 f5@3 [a3,a4]@2, db4@4 d4@11 ~, ~ g4@6 ~@9]/4", // A
  AN: "f5@3 e5@3 d5@2, bb3",
  AO: "[db5@4 ~@4 [bb4,bb5]@3 [a4,a5]@8 [a4,a5] [bb4,bb5] [c5,c6] [bb4,bb5] [a4,a5], a3, ~ c4@2]/3", // Bb A Bb C Bb A
  AP: "[a4,a5]@3 [g4,g5], d4", AQ: "[d4,d5]@3 [e4,e5] [f4,f5]@2 [g4,g5]@2, bb3",
  AR: "[[a4,a5]@3 ~@8 [g4,g5] [a4,a5] [bb4,bb5] [a4,a5] [g4,g5], c4 db4, ~@3 [g4,g5]@8 ~@5]/2", AS: "[d4,g4,g5]",
  AT: "[d4,f4,f5]", AU: "[g4,g5]@3 [f4,f5]@3 [a3,a4]@2", AV: "[e4,e5]@3 [d4,d5]@3 [f3,f4]@2", AW: "c5@3 e5, [e4,ab4]",
  AX: "[ab4,ab5]@3 [a4,a5]@2 [b4,b5]@3 [e4,e5]@4 [e5,e6]@4", // Ab A B E
})).s("gm_string_ensemble_2").gain(0.57)

// chords · piano
const piano = note(`<
  A@4 B C A@4 B C D E F@4 G H I@2 J K L M N@2 J K L M O@2 P@2 Q R S@2 T U V@2 W X Y@2 O@2 P@2 Q R S@2 T U V@2 W Z A@4 B
  C AA@4 AB AC AD@2 J K L M O@2 P@2 Q R S@2 T U V@2 W X O@2 P@2 Q R S@2 T U V@2 W Z ~ A@4 B C ~
>`.pickRestart({
  A: "[[a3,d4,f4]@14 ~@2 [a3,d4,f4]@10 ~@2 [a3,d4,f4]@3 ~ [b3,d4,ab4]@12 ~@2 [e3,b3,d4,ab4]@13 ~ [b3,d4,ab4]@4, d3@12 ~@2 a2@15 ~@2 e3@13 ~@20]/4", // Dm Abdim E7 Abdim
  B: "[g3,d4,g4,bb4]@3 [g3,d4,g4,bb4]", C: "[a3,db4,e4,a4]@3 [a3,db4,e4,a4]", D: "[d4,f4,a4]@7 ~, d3@3 ~",
  E: "[g4,g5]@2 ~ [a4,a5]@2 [bb4,bb5]@2 ~ [a4,a5]@4 [db5,db6]@4", // G A Bb A Db
  F: "[[f5,a5,d6]@14 ~@2 [d5,f5,a5]@10 ~@2 [d5,f5,a5]@3 ~ [b4,d5,ab5]@12 ~@2 [e4,b4,d5,ab5]@13 ~ [b4,d5,ab5]@4, d4@12 ~@2 a3@15 ~@2 e4@13 ~@20]/4", // Dm Abdim E7 Abdim
  G: "[g4,d5,g5,bb5]@3 [g4,d5,g5,bb5]", H: "[a4,db5,e5,a5]@3 [a4,db5,e5,a5]",
  I: "[[d5,f5,a5]@7 ~ [d5,f5,a5]@5 ~ [d5,f5,a5]@2, d4@12 ~@2 a4@15 ~@3]/2", // Dm
  J: "[d4,f4,bb4]@5 ~ [d4,f4,bb4]@4 g3@2 [d4,f4,bb4]@2 g3@2", // Bb
  K: "[c4,e4,bb4]@5 ~ [c4,e4,bb4]@4 c3@2 [c4,e4,bb4]@2 c3@2, c3@9 ~@7", // C7
  L: "[d4,f4,bb4]@5 ~ [d4,f4,bb4]@4 g3@2 [d4,f4,bb4]@2 g3@2, g3@3 ~@5", // Bb
  M: "[db4,e4,g4]@5 ~ [db4,e4,g4]@4 ~@2 [db4,e4,g4]@3 ~, a3@9 ~ a3@5 ~", // Dbdim
  N: "[[d3,a3,d4,f4]@5 ~ [a3,d4,f4]@4 ~@2 [a3,d4,f4]@3 ~ [a3,d4,f4]@5 ~ [a3,d4,f4]@4 ~@2 [a3,d4,f4]@4, ~@5 d3@7 ~ d3@2 ~]/2", // Dm
  O: "[[f4,bb4]@6 [f4,a4,c5]@7 ~ [c4,f4,a4]@13 ~ [c4,f4,a4]@4]/2", P: "[a4@3 g4 d5@4, [bb3,f4]]/2",
  Q: "a4@3 g4@5, [c4,e4]@15 ~", R: "[db4,e4,a4]", S: "[g4@12 ~@4 a4@15 ~, [a3,d4]@31 ~, ~@12 f4@19 ~]/2",
  T: "[d4,f4,a4]@15 ~", U: "[c4,f4,a4]@15 ~", V: "[f4@6 e4@16 ~@2 [b3,e4,ab4]@7 ~, [b3,ab4]@23 ~@9]/2",
  W: "[d4,f4,bb4]@5 g3 [d4,f4,bb4] g3, g3 ~", X: "[a3,db4,e4,g4]@11 ~ [db4,e4,g4]@4",
  Y: "[[a3,e4]@10 ~@6 d4@15 ~, ~@10 a3@21 ~, ~@12 f4@19 ~]/2", Z: "[a3,db4,e4,g4] ~@3",
  AA: "[[a4,d5,f5]@14 ~@2 [a4,d5,f5]@10 ~@2 [a4,d5,f5]@3 ~ [b4,d5,ab5]@12 ~@2 [e4,b4,d5,ab5]@13 ~ [b4,d5,ab5]@4, d4@12 ~@2 a3@15 ~@2 e4@13 ~@20]/4", // Dm Abdim E7 Abdim
  AB: "[g3,bb4,d5,g5]@3 [g3,bb4,d5,g5]", AC: "[a3,a4,db5,e5]@3 [a3,a4,db5,e5]",
  AD: "[[a4,d5,f5]@7 ~ [a4,d5,f5]@5 ~ [a4,d5,f5]@2, d4@12 ~@2 d4@15 ~@3]/2", // Dm
})).s("gm_piano").gain(0.48)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@22 A B A B ~@2 A B ~@46 A B A B ~@36>".pickRestart({
  A: "~@6 f4@9 ~, ~ g3@5 ~@2, ~@2 bb3@5 ~", B: "e4@3 ~",
})).s("gm_electric_guitar_jazz").gain(0.29)

// other · harmonica
const harmonica = note("<~@61 A B C D E F@2 ~@48>".pickRestart({
  A: "~@10 c5 [bb4,b4] a4 bb4 db5 e5", B: "a5 [a5,bb5]!2 a5@3 g5@2 g5 f5 ~ f5@5, ~@3 bb5 ~@12",
  C: "~@2 a4 ~ a5@2 a5 g5 ~ g5 ~ f5 ~@2 a5 ~, ~@13 f5@2 ~", D: "ab5@2 e5 b4 ~ a4 ab4@2 ~@2 e4@5 ~, ~@9 b4@2 ~@5",
  E: "~@3 e4 b4 ~ a4 ~ ab4@2 ab4 [a4,bb4] b4 [ab4,gb5] b5@2", // Bbmaj7 Ab7
  F: "[a5@2 c6@3 bb5 ~ a5 c6 bb5 ~ a5 g5@2 a5@8 g5 f5 e5 d5 ~ db5 bb4 a4 ~ g4]/2",
})).s("gm_harmonica").gain(0.64)

// other · overdriven guitar
const overdriven_guitar = note("<~@97 A B@2 C D ~@14>".pickRestart({
  A: "~@7 a4", B: "[c5@3 e5@4 e5@3 ~ e5 f5 g5 f5 e5]/2", C: "e5@2 d5 e5@2 d5 e5 d5", D: "a5 a5@7",
})).s("gm_overdriven_guitar").gain(0.72)

// other · lead 8 bass lead
const lead_8_bass_lead = note("<~@68 A B C D E F A B ~@40>".pickRestart({
  A: "d4!16", B: "d4!4 ~@12", C: "e4!16", D: "e4!4 ~@12", E: "g4!16", F: "g4!4 ~@12",
})).s("gm_lead_8_bass_lead").gain(0.17)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@97 A B@2 C D ~@14>".pickRestart({
  A: "~@7 e4", B: "[g4@3 c5@4 db5@3 ~ g4 a4 bb4 a4 g4]/2", C: "g4@2 f4 g4@2 f4 g4 f4", D: "d5 d5@7",
})).s("gm_overdriven_guitar").gain(0.72).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  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 B A B C@7 D C E C@19 F C@5 G H@11 I C@7 D C E C@11 E C@5 F ~
  H@6 ~
>`.pickRestart({
  A: "x ~@6 x", B: "x", C: "x ~@2 x!2 ~@2 x", D: "x ~@2 x ~@3 x", E: "x ~@2 x ~@2 x ~ x ~@5 x ~", F: "x!2 ~@6",
  G: "x ~@2 x!3 ~@2", H: "x ~@3 x ~@2 x", I: "x ~@2 x ~@2 x ~ x ~ x ~@5",
})).gain(0.72)

// drums · rim
const rim = s("rim").struct("<~@68 A@7 B A@3 B ~@29 A@5 B ~>".pickRestart({
  A: "~@2 x!3 ~@7 x ~@3", B: "~@2 x!3 ~@11",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<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 B A B ~@84>".pickRestart({
  A: "~@3 x ~@8 x ~@3", B: "~@3 x ~@6 x ~ x ~@3",
})).gain(0.72)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<[~ x ~@6]!32 ~@84>").gain(0.32)

// drums · snare
const snare = s("sd").struct("<~@32 A@7 B A@21 ~ A@6 ~@11 C A@7 B A@13 D A@5 ~@9>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~@3 x", D: "~@4 x ~@5 x!3 ~@3",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<A@32 ~@15 B ~@20 A@7 C A@4 ~@29 A@5 D ~>".pickRestart({
  A: "~@3 x ~@4", B: "~@13 x!2 ~", C: "~@3 x ~ x!2 ~", D: "~@3 x ~@2 x ~",
})).gain(0.48)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<[~@3 x ~ x ~ x]!31 [~@3 x ~@3 x] ~@83 x>").gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 A ~@9 B ~@5 B ~@41 B ~@8 B ~@15 B ~>".pickRestart({
  A: "~@5 x!2 ~", B: "~@5 x ~@2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<A@32 ~@35 B A@11 C ~@21 D ~@7 A@5 E ~>".pickRestart({
  A: "~ x ~@6", B: "~@3 x", C: "~ x ~@4 x ~", D: "~@5 x!3", E: "~ x ~@5 x",
// … 33 more lines

More by Matia Bazar