Strudelify

Jeune et con

Saez

KeyG majorTempo120 bpm
0:00/0:00
// Jeune et con — Saez
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · electric bass pick
const bass = note(`<
  ~@7 A B@4 ~@7 C D E D F G H I J C K L M N O P Q R S T U V ~ W X Y Z AA AB@2 AC Y AD Y AE Y AF AG AH Y AD Y AE Y AI AG
  AH AJ AK AL AM AL AN AO AP AL AQ AL AR AS AQ AT AU AV AW U AD AX AY@3 AZ BA BB@3
>`.pickRestart({
  A: "~@3 e1", B: "[e1@63 ~]/4", C: "d1!8", D: "e1@7 c2 c2@2 c2@2 c2@4", E: "g1@7 d2 d2@2 d2 ~ d2@4",
  F: "g1@6 ~ d2!3 d2@2 d2@4", G: "e1@7 c2 c2@2 c2@2 b1@4", H: "g1@6 d2!4 d2@2 d2@4", I: "e1@3 b1@2 c2 b1@2",
  J: "g1!4 d1!4", K: "e2@2 e2!2 e2@2 e2 c2@2 c2 c2@2 c2@2 c2!2", L: "g1@2 g1@2 g1@2 d2 d2@2 d2 d2@2 d2@2 d2!2",
  M: "e2@2 e2@2 e2@2 ~ c2@2 c2 c2@2 c2 ~ c2@2", N: "g1@2 g1!2 g1@2 f#1@3 g1 g1@2 f#1@2 d1@2",
  O: "e2@2 e2@2 e2@2 e2 c2@2 c2 c2@2 c2 ~ c2!2", P: "g1@2 g1@2 g1@2 g1 d2@2 d2 d2@2 d2@2 d2!2",
  Q: "e2@2 e2@2 e2 ~ c2 c2@2 c2 c2@2 c2@2 c2@2", R: "g1@2 g1@2 g1@2 d2 d2@2 d2 d2@2 d2@2 d2@2",
  S: "e1@2 e1 ~ e1 ~ e1 c2@2 c2 c2@2 c2@2 c2!2", T: "b1@2 b1@2 b1 ~ b1 a1@2 a1 a1@2 a1@2 a1@2",
  U: "e1@2 e1@2 e1@2 e1 c2@2 c2 c2@2 c2@2 c2!2", V: "b1@2 b1@2 b1@2 b1 a1@2 a1 a1@2 a1@2 a1@2",
  W: "e1@2 e1@2 e1@2 e1 c2@2 c2 c2@2 c2@3 c2", X: "g1!2 g1@2 g1@2 g1 d2@2 d2 d2@2 d2@2 d2@2",
  Y: "e1@2 e1@2 e1 ~ e1 c2@2 c2 c2@2 c2@2 c2@2", Z: "g1@2 g1 g1@2 g1!2 f#1@2 f#1 f#1@2 g1@2 a1@2",
  AA: "e2@2 e2@2 e2 ~ e2 c2@2 c2 c2@2 c2@2 c2@2",
  AB: "[g1@2 g1@2 g1@2 g1 d2@2 d2 d2@2 d2@2 d2 e1@2 ~ e1@2 e1@2 e1 c2@2 c2 c2@2 c2@2 c2 ~]/2",
  AC: "g1@2 g1@2 g1@2 g1 a1 ~ a1!2 ~ a1 ~ a1@2", AD: "g1@2 g1@2 g1@2 g1 d2@2 d2 d2@2 d2@2 d2@2",
  AE: "g2@3 g2@2 ~ g2@4 d2@2 c2@2 b1@2", AF: "g1@2 g1@2 g1@2 g1 d2@3 d2@2 d2@4",
  AG: "e1 ~ e1@2 e1@2 c2@2 ~ c2 c2@2 c2 ~ c2@2", AH: "g1@2 g1@2 g1!2 f#1@2 ~ f#1@3 f#1@2 d1@2",
  AI: "g1@2 g1@2 g1@2 g1 d2@2 g1 d2 ~ d2@4", AJ: "e1@2 e1@2 e1!2 c2@2 ~ c2 c2@2 c2@2 c2@2",
  AK: "b1@2 b1@2 b1@2 a1@3 a1 a1@2 a1 b1@3", AL: "e1@2 e1@2 e1@2 e1 a1@2 a1 a1@2 a1@2 a1@2",
  AM: "d1@2 d1@2 d1!2 d1@2 ~ e1 e1@2 d1@2 d1@2", AN: "d1@2 d1@2 d1@3 e1@2 e1 e1@2 d1@2 d1@2",
  AO: "e1@2 e1@2 e1@2 e1 a1@2 a1 a1@2 a1 ~ a1@2", AP: "d1@2 d1@2 d1@2 e1@2 ~ e1 e1@2 e1@2 d1@2",
  AQ: "d1@2 d1@2 d1@2 d1 e1@2 e1 e1@2 d1@2 d1@2", AR: "d1@2 d1@2 d1@2 e1@2 ~ e1 e1@2 d1@2 d1@2",
  AS: "e1@2 e1@2 e1@2 e1 a1@2 a1 e1@2 g1@2 a1@2", AT: "e1@2 e1 ~ e1@2 e1 c2@2 c2 c2@2 b1@2 c2@2",
  AU: "g1@2 g1@2 g1@2 g1 d2@2 d2 d2@2 c#2@4", AV: "e1@4 e1@2 e1 c2@2 c2 c2@2 c2 ~ c2@2", AW: "f#2@3 ~ f#2@6 e2@6",
  AX: "e1@6 b1 c2@2 c2!3 b1@3 c2",
  AY: "[g1@4 g1@2 f#1@4 g1@2 f#1@2 ~ d#1@7 b1 c2@2 c2!3 c2@2 c2 f#1@3 g1!2 g1@2 g1 c#2@2 d2!3 d2@3 ~]/3",
  AZ: "e1@6 c2@3 c2!2 ~ c2@3 ~", BA: "b1@3 ~ b1@2 a1@3 a1 a1@2 a1@2 a1@2", BB: "[e1@11 ~]/3",
})).s("gm_electric_bass_pick").gain(0.32)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@4 A B C D E@2 ~@9 F G H I J I H I K@2 L M N J N J O J P H O J ~ L M N J N J I J L M N J N J I J P H I J L M N J N Q
  I R P S I R L T N R N R I J N H I J L M N J N J U@2 ~
>`.pickRestart({
  A: "~@2 d4 ~@2 c3 ~ c3, [b2,e3]@3 c4@5, ~ g3, ~@10 e3 ~ e3@4", B: "[d3,b3]@2 g3 a3 ~ g3 f#3 g3, ~@2 d3 ~",
  C: "~@2 d4 ~@4 c3, e3@6 c3@7 ~@3, ~@2 g3@5 ~ g3@4 g3@4, ~@5 c4@3",
  D: "g3@3 ~ g3@2 [a2,e3,a3]@4 [b2,e3,b3] ~ [e3,a3] ~ [d3,g3]@2, [d3,b3]@3 ~@5", E: "[e2,b2,e3]/2",
  F: "e4@2 e4 ~ e4@2 e4@2 e4@2 e4@2 e4@3 ~", G: "e4@5 ~ c3@5 ~ c3@4", H: "g2@6 d3@5 ~ d3@4", I: "e3@3 c3@3 c3@2",
  J: "g2@3 d3@3 d3@2", K: "[g2@6 d3@25 ~]/2", L: "e3@6 c3@6 c3@3 ~", M: "g2@6 d3@5 d3@4 ~", N: "e3@6 c3@5 ~ c3@4",
  O: "e3@3 c3@3 c3@2, ~@6 f3@9 ~", P: "e3@6 c3@3 ~@3 c3@4", Q: "b2@3 a2@3 d3@2", R: "a2@3 d3@3 d3@2",
  S: "a2@6 d3@5 ~ d3@4", T: "a2@6 d3@5 d3@4 ~", U: "e3/2",
})).s("gm_distortion_guitar").gain(0.41)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@8 A@4 B@16 C@3 B@10 ~@9 B@16 D E F G F G F G F G F G F G B@12 H@3>".pickRestart({
  A: "[~@6 b3@2 ~@4 b3 ~@4 b3@2 ~ b3 ~@7 b3 ~@2 g3, ~ b3@2 e3@4 ~ g3@6 b3@2 e3@3 e3@4 g3@7 b3@2, ~@4 e4@4 b3@4 ~@6 b3@4 e3@8 g3@14 b3@4 e3@4 e4@5 ~ e4@6, ~@10 e4@9 ~ e4@5 ~ e4@15 ~ e4@8 b3@4 e3@8 ~@2]/4",
  B: "[~@4 b3 e4 ~@6 b3 ~ b3 e4, e3@6 c3@9 ~ g2@6 d3@9 ~, ~ b3@3 ~@2 b3@3 b3@2 ~@5, ~@4 e4@5 ~@5 e4@5 ~ e4@4 ~@2 e4@4 ~@2]/2",
  C: "[~@4 b3 e4 ~@6 b3 e4 ~@6 b3 ~ b3 e4, d3@6 d3@9 ~ e3@6 c3@9 ~ g2@6 d3@9 ~, ~ b3@3 ~@2 b3@3 b3@3 ~@2 b3@3 b3@2 ~@5, ~@4 e4@5 ~@5 e4@5 ~ e4@5 ~@5 e4@5 ~ e4@4 ~@2 e4@4 ~@2]/3",
  D: "[b2,e3]@2 b2 [b2,e3] [b2,e3,a3] ~ [g2,c3,g3]@4 [g2,c3,g3]@2 [g2,c3,g3]@2 [g2,c3,g3] ~, ~@3 c4@5", // E5 Esus4 C5
  E: "b2@3 b2 [f#2,b2] ~ [a2,d3,a3]@3 ~ [a2,d3]@2 [a2,d3]@2 [a2,a3] ~, [f#2,f#3]@5 ~@5 a3@4 ~@2", // B5 D5 A F#
  F: "[b2,e3]@2 [b2,e3]!3 ~ [a2,e3]@4 a2@2 a2@2 [a2,e3]@2, ~@5 e3@2 ~, ~@3 a3", // E5 A5
  G: "[a2,d3]@2 a2!2 [a2,a3]@2 ~ d3 a2@2 a2@2 a2@2 [a2,d3] ~, ~ d3@2 a2 d3@3 ~, ~@7 a3@5 a3@4", H: "[e3@11 ~@5]/3",
})).s("gm_electric_guitar_jazz").gain(0.2)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@36 A B C B D ~ E@16 F G F H@2 I@2 J B C B C B C B C B C B C B C B C B C B C B C B C B D ~@3
>`.pickRestart({
  A: "~@15 d4", B: "~ [b3,e4]!3 [b3,g4] d4 [a3,d4] [b3,e4] [c3,g3,c4]@4 [c3,g3,c4]@3 [d4,f#4]",
  C: "~ [b3,e4,g4]!4 [d4,f#4] [a3,d4,f#4] [b3,e4,g4] [b3,e4,g4]@4 [b3,e4,g4]@3 d4", // Em D Em
  D: "~ [b3,e4,g4]!4 [d4,f#4] [a3,d4,f#4] [b3,e4,g4] [b3,e4,g4]@4 [b3,e4,g4]@3 ~", E: "d4@2 e4!4 d4@2 e4@4 e4@2 d4!2",
  F: "~@2 e4 ~ b3 e4 ~ e4, ~ b3@3 ~@2 b3@2, ~@3 c3@5", G: "~@2 e4 ~@2 b3 f#3 b3, e3@6 ~@2 d4@7 ~, ~ b3@2 f#4@5",
  H: "[~@4 e4@2 ~@2 a3@2 ~@5 [e3,b3,e4]@5 ~@2 [c3,g3]@6 [c3,g3]@3 ~, e3@3 d3@4 d3 ~@8, ~ b3@2 ~@2 d4@3 ~@8, ~@3 a3 ~@4]/2", // E5 C5
  I: "[g2@5 ~@5 e4@2 ~@2 e4 [e3,b3,e4]@5 ~@2 [c3,g3]@6 [c3,g3]@3 ~, ~@6 [a2,d3,a3]@9 ~@17, ~@3 d4 ~@4]/2", // E5 C5 D5
  J: "g2@5 ~@5 e4@2 d4@2 e4 d4, ~@3 [a2,d3,a3]@4 ~", // D5
})).s("gm_overdriven_guitar").gain(0.22)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@36 A B@3 C ~@17 D ~ D ~ E F E G B@25 C ~@3>".pickRestart({
  A: "~@15 a3", B: "~@5 a3 ~@9 a3", C: "~@5 a3 ~@10", D: "e3@3 ~@5", E: "g#4@5 ~@7 g2@3 ~, ~@3 [c4,e4]@5",
  F: "[d3,g3]@5 ~@11", G: "[d3,g3]@5 ~@10 a3",
})).s("gm_overdriven_guitar").gain(0.12)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@4 A B C D E@2 ~@10 F G F G F G F G@2 F G F G F G F G F G F G ~@9 F G F G F G F G F G F G F G F G H I J I J I J I J I
  J I J I K L M N O G O G O G O G P@3
>`.pickRestart({
  A: "~@2 d4 ~@2 c3 ~ c3, [b2,e3]@3 c4@5, ~ g3, ~@10 e3 ~ e3@4", B: "[d3,b3]@2 g3 a3 ~ g3 f#3 g3, ~@2 d3 ~",
  C: "~@2 d4 ~@4 c3, e3@6 c3@7 ~@3, ~@2 g3@5 ~ g3@4 g3@4, ~@5 c4@3",
  D: "g3@3 ~ g3@2 [a2,e3,a3]@4 [b2,e3,b3] ~ [e3,a3] ~ [d3,g3]@2, [d3,b3]@3 ~@5", E: "[e2,b2,e3]/2",
  F: "~@2 d4 ~@4 e4, e3, ~ g3@7, ~@3 c4@3 b3@2, ~@5 e4@2 ~", G: "~@3 b3 ~@3 g3, d3@2 ~ f#3, ~ g3@3 ~ g3@2 ~, ~ d4 b3@2",
  H: "e2@2 [e2,a2]@2 e2 ~ [e3,a3]@3 ~ e3@2 e3@2 [a2,e3] ~, ~@5 a2@2 ~", // A5
  I: "[b2,f#3]@2 [b2,f#3]@2 [f#3,b3] ~ [a2,e3]@4 [a2,e3]@2 [a2,e3]@2 [a2,e3] ~", // B5 A5
  J: "[e2,a2]@2 [e2,a2]@2 e2 ~ [e3,a3]@3 ~ e3@2 e3@2 [a2,e3] ~, ~@5 a2@2 ~", K: "[e3,g3,b3,e4]",
  L: "[a3,d4,e4]@10 ~@2 [b3,d4]@3 ~, ~@11 f#4@3 ~@2", M: "[e3,b3,d4]@15 ~, f#4@3 ~", N: "[e3,a3,d4,g4]@15 ~",
  O: "~@2 d4 c4@3 c4@2, e3, ~ g3@7", P: "[e3@13 ~@3]/3",
})).s("gm_electric_guitar_clean").gain(0.18).pan(0.1)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@66 A B C B C B C B C B C B C B ~ D ~@13>".pickRestart({
  A: "a2@2 ~@10 a3@2 a3 ~", B: "b3!2 ~@3 a3!2 ~", C: "~@12 a3@2 a3 ~", D: "d3@5 ~@3",
})).s("gm_electric_guitar_clean").gain(0.08).pan(0.1)

// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@2 A@2 ~@68 B@3 C D@2 E F G@4 ~@11>".pickRestart({
  A: "[~@7 [d3,a3,d4]@9]/2", B: "[~@2 [d4,g4]@3 ~ [a4,d5]@16 [e4,b4,e5]@4 [d4,a4,d5]@5 f4@9 d4@6 ~@2]/3",
  C: "d4@2 e4 ~ g4 e4 a4 e4@9, ~@3 [a2,d4]@2 ~@11", D: "[e5,b5]!8", E: "~ a#5@6 [e5,a5] [e5,a5]@8, d#5@7 ~@9",
  F: "[e5,a5]@2 ~ e5 ~ e5 ~ [g4,c5,e5]@7 g4 [a4,c#5], ~ [d5,g5]!2 ~@5", // A5 C A G5
  G: "[g4@3 [d4,a#4]@27 ~@10 d#5@24, ~@30 f#4@33 ~, ~@31 b4@33]/4", // Gm
})).s("gm_overdriven_guitar").gain(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@41 A B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C D@3
>`.pickRestart({
  A: "[d3,a3,d4,e4,a4] ~ [d3,a3,d4,e4,a4] [d3,a3,e4,a4] ~ [d4,e4,a4] [d3,a3,d4,e4,a4] ~ [d3,a3,d4,e4,a4] [d3,a3,e4,a4] [d3,a3,d4,e4,a4]!4 [d3,a3,e4,a4]!2", // Dsus2
  B: "g3@2 ~ [e3,b3] [b2,e3,b3,e4]@2 [g3,c4,e4] ~@2 c4 [c4,e4] e5 [c3,e3,e4]@2 [c3,e3,g3,c4,e4] [c3,g3], e2@3 e2@2 [e2,c3] e2@2, [b2,e3,b3,e4]@4 ~@2 [c3,e3]@2 e3@4 e5 ~@3, ~@2 g3@4 ~ [g3,c4,e4]@2 ~ g3@4 ~@2, ~@8 [c3,g3]@2 ~ c4@3 ~@2", // E5 C C5 C E5 C C5
  C: "[d3,g3]@2 ~ d4 [g2,d3,g3,b3,d4]@2 [d4,e4] ~@3 a3 ~ a2@2 ~ d4, [g2,b3,d4,g4]@3 g4@3 [d3,a3]@2 d3@6 [a2,d3]@2, ~ [d3,g3] ~ [e2,a2]@2 e2@3, ~@7 [d4,e4]@2 [d4,e4]@2 d4@4 ~, ~@4 a3 a2 [a3,e4]@2", // G5 G Dsus2 G D5 G5 A5 Dsus2 …
  D: "[[b2,e3,g3,b3,e4], e2 ~@7]/3", // Em
})).s("gm_acoustic_guitar_steel").gain(0.33)

// other · distortion guitar
const distortion_guitar_2 = note("<~ A@3 B ~@24 C@12 ~@25 C@14 ~@3 D@2 ~@10>".pickRestart({
  A: "f#4!16", B: "f#4 ~@15", C: "[~@7 [d4,g4,d5]@11 ~@14]/2", D: "[~@8 [d3,a3,d4]@15 ~@9]/2",
})).s("gm_distortion_guitar").gain(0.21)

// other · distortion guitar
const distortion_guitar_3 = note("<~ A@3 B ~@35 C@3 ~@52>".pickRestart({
  A: "d6!16", B: "d6 ~@15", C: "[~@5 [a3,e4,a4,d5]@6 ~@5]/3",
})).s("gm_distortion_guitar").gain(0.11)

// drums · kick
const kick = s("bd").struct("<~@2 A@5 B C ~@10 D A@7 E F A@12 ~ A@7 E A@41 F C ~@2>".pickRestart({
  A: "x!2 ~@2 x!2 ~@2", B: "x ~ x ~@4 x ~@3 x ~@3 x", C: "x", D: "~ x!7", E: "x!2 ~ x!3 ~@2", F: "x!2 ~@2 x!2 ~ x",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@3 B C D ~@20 E A@12 ~ A@15 C A@7 C F G A@3 H A@3 B C@3 I A@3 C A@3 J A@3 C ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x ~@2 x ~@3", C: "~@4 x ~@2 x ~ x ~@2 x ~@3", D: "~ x ~@2", E: "~@3 x",
  F: "~@4 x ~@2 x ~@4 x ~@2 x", G: "~@4 x ~@2 x ~ x!4 ~@3", H: "~@4 x ~@6 x!2 ~@3", I: "~ x!2 ~@2 x ~@3 x ~@4 x!2",
  J: "~@4 x ~@7 x ~@2 x",
})).gain(0.43)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@2 [~@7 x ~ x ~@6]!2 [~@7 x ~@8]!2 ~@61 [~@3 x ~@4] ~@11 [~@3 x ~@8 x ~@3] ~@15>")
  .gain(0.29)

// drums · low tom
const low_tom = s("lt").struct("<~@7 A ~@11 B ~@47 C ~@11 D ~@15>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x!6 ~", C: "~@15 x", D: "~@4 x ~@5 x!2 ~ x ~@2",
})).gain(0.5)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@11 B ~@47 C ~@11 D ~@15>".pickRestart({
  A: "~@8 x!2 ~@6", B: "~@4 x!3 ~", C: "~@8 x ~@4 x!2 ~", D: "~ x",
})).gain(0.5)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@19 [~ x!3 ~@4] ~@5 [~@7 x ~ x ~@6] ~@69>").gain(0.29)

// drums · open hat
const open_hat = s("oh").struct("<~@80 A B ~ C ~@3 D ~@2 E F ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@4 x", C: "~@5 x!3", D: "~@7 x", E: "~@6 x!2", F: "x!7 ~",
})).gain(0.71)

// drums · high tom
const high_tom = s("ht").struct("<~@20 [~ x ~ x]!3 [~@4 x ~@2 x ~ x ~@2 x ~@3] [~ x ~ x]!5 ~@50 [~@6 x!2 ~@8] ~@15>")
  .gain(0.57)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A@5 B C ~@10 D C ~@3 C ~@3 E F A G A H I J K L M K N ~ C ~@3 C ~@3 F A G A H I J K F A G A H I J M F O G A H I J K
  F A G A H C@2 ~@11 C ~@2
>`.pickRestart({
  A: "x!8", B: "x!4 ~@3 x", C: "x", D: "~@3 x!5", E: "~@3 x", F: "x!5 ~ x!2", G: "x!3 ~ x!4", H: "x ~ x ~ x ~ x!2",
  I: "x!7 ~", J: "x!4", K: "x ~ x!3 ~ x ~", L: "x ~ x ~ x!3 ~", M: "x ~ x!5 ~", N: "x ~ x ~ x!4", O: "x!3 ~@5",
})).gain(0.29)

// drums · crash · soft notes
const crash_soft = s("cr").struct(`<
  ~@19 A ~@9 B ~ C ~ D E F G H I G J ~@9 B ~ C ~ D E F G B ~ C ~ D E F G B ~ C ~ D E F G B ~ C ~ D ~@16
>`.pickRestart({
  A: "~ x!2 ~@5", B: "~@5 x ~@2", C: "~@3 x ~@4", D: "~ x ~ x ~ x ~@2", E: "~@7 x", F: "~ x ~ x ~ x ~ x",
  G: "~ x ~@3 x ~ x", H: "~ x ~ x ~@3 x", I: "~ x ~@5 x", J: "~ x ~ x ~@4",
})).gain(0.14)

// drums · ride
const ride = s("rd").struct("<~@11 A B@7 C D B@3 E B@3 F ~@13 D B@3 E B@3 ~@45>".pickRestart({
  A: "~@5 x!3", B: "x!8", C: "x", D: "~@2 x!6", E: "~ x!7", F: "x!6 ~ x",
// … 19 more lines