Strudelify

Stiamo come stiamo

Berte

KeyE majorTempo111 bpm
0:00/0:00
// Stiamo come stiamo — Berte
// 111 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 electric bass finger (copy of ch 1 fretless bass)
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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 G@2 H I E J K@2 L M N O P@2 Q R S T U V W X Y Z AA AB AC AD AE AA AF AG AH AI AJ AK AL AM AN A AO AP AQ
  AR AS AT AU AV AW AX AY AZ BA BB AY BC BD X Y Z AA AB AC AD AE AA AF AG AH AI AJ AK AL AM AN BE Y Z AA AB AC AD AE AA
  AF AG AH AI AJ AK AL AM AN BF BG BH BI BJ BG BK BL BJ BM BN BI BO BP BQ BR BS BT BU
>`.pickRestart({
  A: "~@7 e1 d1 ~ e1 ~@5", B: "~@7 e1 d1 ~ e1@2 ~@4", C: "~@7 e1 d1@2 e1 ~@5", D: "~@7 g#1 ~ e1 g#1!2 e1 ~@3",
  E: "~@7 e1 d1!2 e1@2 ~@4", F: "~@7 e1 d1!2 e1 ~@5", G: "~@7 g#1 f#1!2 g#1@2 ~@4", H: "~@7 f#1 e1!2 f#1@2 ~@4",
  I: "~@7 a1 g#1!2 a1 ~@5", J: "~@9 e1 a1 d2 a1@2 ~@2", K: "~@6 e1 g#1 e1 ~ e1 ~@5", L: "~@6 g#1 b1 g#1 ~ g#1 ~@5",
  M: "~@6 g#1 b1 g#1 ~ g#1@2 ~@2 g#1 ~", N: "a1@2 ~@4 f#1 a1 f#1 ~ f#1@2 ~@4", O: "~@6 a1 b1 a1 ~ a1@2 ~@4",
  P: "~@6 e1 g#1 e1 ~ e1@2 ~@4", Q: "a1@4 ~@2 a1 f#1 a1 ~ a1 ~@5", R: "a1@4 ~@2 a1 f#1 a1 ~ a1@2 ~@2 a1 ~",
  S: "e1@3 ~@3 e1 d1 e1 ~ e1@2 ~@4", T: "e1@4 ~@2 e1 d1 e1@2 e1 ~@3 e1 ~", U: "a1@4 ~@2 e1 f#1 a1@2 a1 ~@5",
  V: "a1@4 a1 ~ e1 f#1 a1 ~ a1@2 ~@2 f#1 a1", W: "g#1@5 ~@2 f#1 g#1 ~ g#1@4 ~@2", X: "g#1 ~@15",
  Y: "a1@4 ~@2 e1 a1!2 ~ a1@2 ~@4", Z: "b1@4 ~@2 f#1 b1!2 ~ b1@2 ~@2 b1 ~", AA: "e1@4 ~@2 f#1 g#1 e1 ~ e1@2 ~@4",
  AB: "e1@4 ~@2 f#1 g#1 e1 ~ e1@2 ~@2 e1@2", AC: "a1@4 ~@2 f#1 g#1 a1 ~ a1@2 ~@4",
  AD: "b1@4 ~@3 f#1 b1 ~ b1@2 ~@2 b1 ~", AE: "e1@4 ~@2 f#1 g#1 e1@2 e1@2 ~@4", AF: "a1@4 ~@2 e1 g#1 a1 ~ a1@2 ~@2 a1 ~",
  AG: "b1@5 ~ g#1 a1 b1 ~ b1@2 ~@2 b1 ~", AH: "e1@3 ~@3 f#1 g#1 e1 ~ e1@3 ~ g#1 ~",
  AI: "e1@4 ~@2 f#1 g#1 e1 ~ e1@3 ~ g#1 ~", AJ: "f#1@4 ~@2 f#1 e1 f#1 ~ f#1@2 ~@2 e1@2",
  AK: "f#1@4 ~@2 f#1 e1 f#1 ~ f#1@3 ~ f#1 ~", AL: "b1@4 ~@2 b1 a1 b1 ~ b1@3 ~ a1@2",
  AM: "b1@5 ~ b1 a1 b1 ~ b1@2 ~@2 b1 ~", AN: "e1@4 ~@2 f#1 g#1 e1 ~ e1@3 ~@3", AO: "~@7 e1 d1 e1 e1@2 ~@4",
  AP: "~@7 g#1 ~ e1!2 f#1 g#1 ~ d1 d#1", AQ: "e1 ~@6 g#1 e1 ~ e1@2 ~@4", AR: "e1 ~@6 g#1 e1 ~ e1 ~@3 f#1 ~",
  AS: "g#1@2 ~@4 e1 f#1 g#1 ~ g#1 ~@5", AT: "g#1@2 ~@4 a1 b1 g#1 ~ g#1@2 ~@2 g#1@2",
  AU: "f#1@2 ~@4 g#1 a1 f#1 ~ f#1@2 ~@2 g#1 ~", AV: "a1@2 ~@4 f#1 g#1 a1 ~ a1@2 ~@2 a1 ~",
  AW: "e1@2 ~@4 e1 d1 e1 ~ e1@2 ~@2 e1@2", AX: "d1@2 ~@4 d1 d#1 e1@2 e1 ~@3 f#1 g#1",
  AY: "a1@2 ~@4 e1 f#1 a1 ~ a1 ~@3 e1 ~", AZ: "a1@2 ~@4 e1 f#1 a1 ~ a1 ~@3 a1 ~", BA: "e1@2 ~@4 f#1 g#1 e1@2 e1@2 ~@4",
  BB: "e1 ~@5 f#1 g#1 e1 ~ e1 ~@3 e1@2", BC: "a1 ~@5 e1 f#1 a1 ~ a1 ~@3 f#1 ~",
  BD: "g#1 ~@5 e1 f#1 g#1 ~ g#1 ~@3 f#1 ~", BE: "e1@3 ~@3 f#1 g#1 e1!3 ~@3 e1 ~",
  BF: "e1@2 ~@2 e1 ~ f#1 g#1 e1!3 ~@3 e1@2", BG: "a1@2 ~@4 e1 f#1 a1!2 f#1@2 ~@2 a1 ~",
  BH: "b1@2 ~@4 f#1 a1 b1!3 ~@3 b1 ~", BI: "e1@2 ~@4 e1 f#1 g#1!2 e1@2 ~@2 e1@2",
  BJ: "e1@2 ~@4 e1 f#1 g#1!2 e1@2 ~@2 f#1 g#1", BK: "b1@2 ~@5 a1 b1 ~ b1@2 ~@2 b1 ~",
  BL: "e1@2 ~@4 e1 f#1 g#1!2 e1@2 ~@2 e1 ~", BM: "a1@2 ~@4 f#1 g#1 a1!2 f#1@2 ~@2 a1 ~",
  BN: "b1@2 ~@4 g#1 a1 b1!3 ~@3 b1 ~", BO: "e1@2 ~@4 e1 f#1 g#1!2 e1@2 ~@2 g#1 ~", BP: "f#1@2 ~@4 e1!2 f#1!2 f#1@3 ~@3",
  BQ: "f#1@2 ~@4 e1!2 f#1!2 f#1@2 ~@2 f#1 ~", BR: "b1@2 ~@4 f#1!2 b1!3 ~@3 f#1 ~",
  BS: "b1@2 ~@4 f#1!2 b1!2 b1@2 ~@2 b1 ~", BT: "e1@2 ~@4 f#1 g#1 e1!2 e1@3 ~@3", BU: "e1 ~@7",
})).s("gm_fretless_bass").gain(0.4)

// other · drawbar organ
const drawbar_organ = note(`<
  ~@49 A@2 B@2 C D E F G@2 A@2 G@2 H I J K L M J N O P Q R S T U@2 V@2 W@2 J K L M J N O P Q R S T U@2 V@2 X ~ J K L M J
  N O P Q R S T U@2 V@2 Y ~
>`.pickRestart({
  A: "[g#3,b3,e4]/2", B: "[g#3,b3,d#4]/2", C: "[f#3,a3,d4]", D: "[e3,a3,c#4]", E: "[e3,g#3,b3]",
  F: "[e3,a3,d4]@7 [b3,c4] [g#3,b3,e4]@8, ~@8 a#3 ~@7", G: "[e3,a3,c#4]/2", H: "f#3 g#3, [d#3,c#4]",
  I: "[d#3,g#3,c4] ~@7", J: "a4@8 b4@3 c#5@3 e5@2", K: "d#5@2 ~ [d#5,e5] c#5@8 b4@4, ~@4 d5 ~@11",
  L: "g#4@10 ~ a4@3 b4@2", M: "a4@3 b4 g#4@12, ~@4 a4 ~@11", N: "~ d#5@2 e5 c#5@8 b4@4, ~@4 d#5 ~@11", O: "g#4@5 a4@3",
  P: "c#5@2 c#5 d5 c#5 b4@11", Q: "c#5@10 d#5@3 ~ e5@2", R: "d#5@3 e5 c#5@8 b4@4, ~@4 d#5 ~@11",
  S: "g#4@10 a4@3 ~ b4@2", T: "a4@2 a4 b4 g#4@12, ~@4 a4 ~@11", U: "[~ c#5, a4@29 ~@3]/2", V: "[~ d#5, b4]/2",
  W: "[[g#4,e5]@15 ~]/2", X: "[g#4,e5]", Y: "[g#4,e5] ~@15",
})).s("gm_drawbar_organ").gain(0.16)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~ A@3 B C D E@2 F G D H D@2 E@2 F I D J ~@8 K L M@2 K L N@2 K L O@2 P@2 Q R S T U V ~@34 K L M@2 K L N@2 K L O@2 P@2 W
  R S X ~@6 Y@2 Z ~@7 AA AB
>`.pickRestart({
  A: "[e2,e3] ~@3", B: "[e2,e3]@4 ~@4 [b2,e3,b3]@4 a#3 [d#3,a3] [c3,d3,g#3] [f#3,g3]", C: "[e3,b3] ~@3, f3 ~@15",
  D: "[e3,b3] ~@3", E: "[d#3,b3] ~@3", F: "[d3,b3] ~@3", G: "[c#3,e3] ~@3",
  H: "[e3,b3,e4]@12 d#4 [d#3,a#3,d4] [c#3,d3,a3,c#4] ~", I: "[d3,e3] ~@3",
  J: "[e3,b3,e4]@6 d#4 [d#3,a3,a#3,d4] [d3,g#3,c4,c#4] c#3 c3 ~@5, e2@5 ~@11", K: "[a2,e3]", L: "[b2,f#3]",
  M: "[e2,e3]/2", N: "[b3@15 ~ [b3,d4]@16, [e2,e3]]/2", O: "[e2,b3]/2", P: "[f#3,c#4]/2", Q: "[f#3,a3,e4]",
  R: "[f#3,b3,d#4]", S: "[e2,e3]", T: "[e2,e3,b3]@4 [c#3,g#3,a3,a#3] ~@11", U: "[e2,e3,b3]@3 [d#3,a#3] [d3,g3,a3] ~@11",
  V: "[e2,e3,b3]@4 [d#3,g#3,a3,a#3] [c3,c#3,d3,f#3,g3] ~@10", W: "[f#3,a3,d#4]", X: "[e3,b3] ~@15", Y: "[e2,e3,b3] ~@3",
  Z: "~ e3@2 [d#3,a#3] [c#3,d3,g3,g#3,a3] [c3,f3,f#3] ~@10, [e2,b3] ~@3", AA: "[e2,e3,b3] ~@7", AB: "[e2,e3,b3] ~@15",
})).s("gm_overdriven_guitar").gain(0.22)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@12 A B ~@6 C ~@20 D@2 ~@52 D@2 ~@12 E ~@9>".pickRestart({
  A: "~@14 g#3 [c3,f3,f#3,b3,c4]", B: "[b2,a#3] ~@15", C: "~@9 [f#3,g3,b3] [f3,a#3] ~@5", D: "a3/2",
  E: "~@5 [e2,b2] ~@10", // E5
})).s("gm_overdriven_guitar").gain(0.13)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@21 A B C D E F G H ~@90>".pickRestart({
  A: "[a4,c#5,f#5] [c#4,c#5,f#5] f#5 [c#5,f#5] [a4,c#5,f#5]@2 ~@10", // F#m F#5 F#m
  B: "[c#5,f#5] ~ f#5 [a4,c#5,f#5] [a4,c#5,f#5]@2 ~@10, a4@3 ~@13, ~ [c#5,f#5]@2 ~@13", // F#5 F#m F#5
  C: "[e4,g#4,c#5]@2 g#4 [e4,g#4,c#5] [e4,g#4,c#5]@2 ~@10", // C#m
  D: "g#4!2 ~ [e4,g#4,c#5] [b3,e4,g#4,c#5]@2 ~@10, [e4,c#5]@3 ~@13", // C#m C#m7 C#m
  E: "[a4,c#5,f#5]@2 f#5 [a4,c#5,f#5] [a4,c#5,f#5]@2 ~@10", // F#m
  F: "[g#4,a4,c#5,f#5] [c#5,f#5]@2 [a4,f#5] [a4,c#5,f#5]@2 ~@10", G: "[g#2,d#3,g#3,c#4,d#4,g#4]",
  H: "~ g#4@7 ~@8, [g#2,d#3,g#3,c4,d#4] ~", // G#
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.8)

// chords · electric guitar clean · soft notes · C#5
const electric_guitar_clean_2 = note(`<
  ~@21
  [~ a4 c#5 ~@13]
  ~
  [~@2 c#5 b3 ~@12]
  [~@2 [g#4,c#5] ~@13]
  [~@2 c#5 ~@13]
  [~@2 a4 ~@13]
  ~@92
>`).s("gm_electric_guitar_clean").gain(0.08).pan(0.8)

// other · orchestra hit · E
const orchestra_hit = note("<~ [e5 ~@7]!20 ~@25 [e5 ~@7]!3 ~@68 [e5 ~@7] [[e4,e5] ~@7]>")
  .s("gm_orchestra_hit").gain(0.56)

// other · french horn
const french_horn = note(`<
  ~@67 A B ~@4 C D E F G C H@2 I@2 ~@2 A B ~@4 C D E F G C H@2 I@2 ~@8 C D E F G C H@2 C ~
>`.pickRestart({
  A: "g#3@10 a3@3 b3@3", B: "a3@2 a3 [a3,b3] g#3@12", C: "e4", D: "f#4", E: "b3@10 c#4@3 ~ d#4@2",
  F: "c#4@2 c#4 d#4 b3@12, ~@4 c#4 ~@11", G: "a3@3 b3", H: "d#4/2", I: "[e4@31 ~]/2",
})).s("gm_french_horn").gain(0.25).pan(0.1)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@29 A B C D E F G H I J K@2 L M N@2 O ~@37 A B C D E F G H I J K@2 L M N@2 O ~ P Q R@2 S T U@2 V W X@2 Y@2 Z@2 ~@2
>`.pickRestart({
  A: "[e3,a3]@10 e3 ~@2 [e3,a3] e3 d3", B: "[f#3,b3,e4]@14 [f#3,b3] ~", C: "[e3,b3]@10 [b3,e4] ~@2 [b3,e4] ~@2",
  D: "b3@6 b3@2 [b3,e4] [e3,b3,e4,g#4] ~@3 [e3,b3,e4,g#4] [e3,f3,b3,e4] ~, e4 ~", // E5 E
  E: "e3@10 a3@2 [e3,a3,d4] ~@2 d3, a3 ~", F: "b3@12 b3 ~@3",
  G: "a#3 ~@9 e4@2 e4 d5 ~ a#3, e4@9 ~@7, e3@2 b3@11 ~@3, ~ g#4@5 ~@10", H: "[b3,d4]@13 [d4,f#4] b3 d3",
  I: "[e3,a3]@9 [e3,a3] e3 ~ [e3,a3] [e3,a3]@2 a3", J: "[f#3,b3]@12 [f#3,b3] [b3,e4] f#3 ~",
  K: "[[e4,g#4]@16 e4@10 [b3,e4,g#4] g#4 ~ [e4,g#4] e4 ~, b3@13 ~@3]/2", L: "[f#3,c#4]@14 f#3 d3", M: "[f#3,c#4]",
  N: "[f#3@26 [b3,d#4] ~ g3 [f3,f#3,b3] f3@2, b3@25 ~@7, e4 ~@31]/2", O: "[e3,b3]@10 b3 ~ d3 b3 [e3,b3] ~",
  P: "[a2,e3,a3,c#4,e4]@14 [a2,e3,a3,c#4] [a#2,e3,a#3]", // A A#dim
  Q: "[f#3,b3,d#4]@10 f#3@3 ~ [b2,f#3]@2, b2@7 ~, [f3,d4] ~@9 [b3,d#4,f#4,b4]@6", // B B5 Dm B
  R: "[~@9 g#4 ~@3 b3 b3@2, e4, [e3,b3]@7 g#4 b3@2 b3@3 ~@3, ~ e2@31, ~@7 c#5@3 ~ g#4@5]/2", // E5
  S: "a4@6 a4@3 ~@5 [a2,e3,a3] [e3,a3], [a2,e3,a3,c#4,e4]@15 ~", // A5 A
  T: "f#4@5 ~ b2 [b2,f#3,b3], d#4, b3@7 ~, f#3@3 ~, c4 ~@9 f#4@6", // B5
  U: "[[e2,e3,b3,e4,g#4]@14 b3 ~ [b3,e4]@8 ~@4 b3@2 [b3,e4,g4,g#4] a2, a#3 ~@13 e2@18, ~@8 e3@7 ~, ~@12 e4@3 ~, ~@12 b3 g#4@2 ~]/2", // E E5 E
  V: "[e3,a3,c#4,e4]@14 [a2,e3,a3] [e3,a3], a2@13 ~@3, a#3 ~@15", // A A5
  W: "[f3,c#4] ~@11 d#4@2 f#3 ~, [b2,b3], d#4@2 d#4 ~, ~ f#3@6 ~, ~@10 b4@5 ~", // C# B
  X: "[[e4,g#4]@6 e4@3 ~@17 e4@6, b3@12 ~@2 e3@4 c#5@7 ~@7, e3@4 ~@2 g#4@15 ~ g#4@10, ~@10 e4@6 e4@9 ~@7, ~@4 b3 [e3,b3]@3]/2", // E E5
  Y: "[~ a4@7 ~@2 c#4 ~@17 e4 ~@3, f#3@15 ~, [c#4,f#4]@5 f#4@3 e4@5 e4 ~@2, ~ c#5@10 c#4@9 c#4@2 c#5@7 ~@3, ~@8 a4@6 a4@10 c#4@3 a4@3 ~@2]/2", // F#5
  Z: "[~ f#4@4 f#4@5 ~@6 b3@4 ~@8 [d#4,f#4]@4, b3@8 ~@2 b3@3 b3@3, f#3@3 d#4@3 d#4 ~, d#4@5 f#4@6 f#4@3 ~@2, ~ b4@15 ~@16]/2", // D#m
})).s("gm_distortion_guitar").gain(0.06).pan(0.9)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
  ~@29 A B C D ~ E ~ F G ~ H I ~@2 J K ~@38 A B C D ~ E ~ F G ~ H I ~@2 J K ~@4 L M N O P ~ Q ~ R ~@2 S T@3 ~
>`.pickRestart({
  A: "~ a0@2 a1 a1@7 ~@5, ~@4 a0 ~@11", B: "~@15 g3", C: "e4@4 d#4 e4 ~@10, c#5 ~@15", D: "~ e3@2 ~@5 g#4 ~@7",
  E: "f#3@13 d5 ~@2", F: "e2 e3@8 ~@7, ~ e2 ~@14", G: "~@11 e3 ~@2 d4 ~, ~@13 d4@2 ~", H: "~@2 e2 ~@5",
  I: "g#4@4 ~@11 b3", J: "~@2 e4 ~@13", K: "~@11 a#3 ~@4", L: "[e2,c#5] ~@15", M: "~@2 e3@3 ~@11",
  N: "~@10 a4@3 ~ c#4 e4", O: "b2@3 ~@3 f#3 ~, a#2 ~@15", P: "~@15 [e3,e4]", Q: "~@15 c#4",
  R: "e2@2 ~ e2 ~@2 g4 ~@5 b3@4, c#5@5 ~@11", S: "~@9 a4 g#4@2 ~ c#4 ~@2", T: "[f#4 ~@13 f#3@19 ~@15]/3",
})).s("gm_distortion_guitar").gain(0.03).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~ A@11 B A@15 C A@35 B A@17 B A@17 B A@17 B>".pickRestart({
  A: "x ~@3 x!2 ~@2", B: "x", C: "x ~@2 x ~@4",
})).gain(0.72)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A@11 ~ A@12 ~@3 B A@7 ~ A@8 ~@2 A@17 ~ A@4 ~@4 A@8 ~@4 A@4 ~@4 A@4 ~@4 A@16 ~@2
>`.pickRestart({
  A: "~@9 x ~@6", B: "~@2 x!2 ~@12",
})).gain(0.32)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2
  B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A ~ B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A
  B
>`.pickRestart({
  A: "~ x ~ x ~@4", B: "~ x ~@6",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@12 A ~@15 B ~@17 C ~@17 B ~@17 B ~@16 D B ~@18>".pickRestart({
  A: "~@3 x", B: "~@13 x ~@2", C: "~@11 x ~@4", D: "~@7 x",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 A ~@17 B ~@17 A ~@7 C ~@9 A ~@7 C ~@9 D ~@16 E ~>".pickRestart({
  A: "~@8 x ~@2 x ~@4", B: "~@7 x!4 ~@5", C: "~@14 x!2", D: "~@8 x ~ x!2 ~@4", E: "~@13 x!2 ~",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<~ A@11 ~ A@69 ~ A@17 ~ A@17 B>".pickRestart({
// … 21 more lines

More by Berte