Strudelify

Stai con me

Raf

KeyC♯ minorTempo82 bpm
0:00/0:00
// Stai con me — Raf
// 82 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(82/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 · synth strings 1
const synth_strings_1 = note(`<
  A@4 B@4 ~@2 B@4 ~@2 C@4 B@4 ~@2 B@4 D@2 E@2 F@4 G H I J K@4 L M N O@7 P Q R@8 S@4 P Q T@6 P Q T@6 P Q U ~@2
>`.pickRestart({
  A: "[[a2,c#4]@4 [g#2,b3]@4 f#2@4 [d2,f#3]@3 [g#2,e3,b3], e3@3 ~, ~@8 a3@7 ~]/4", // A G#m D E
  B: "[[a2,c#4] [g#2,b3] f#2 [d2,f#3], e3@3 ~, ~ a3]/4", // A G#m D
  C: "[[a2,c#4]@16 [g#2,b3]@16 f#2@16 [d2,f#3]@13 [g#2,e3,b3]@3, e3@3 ~, ~@32 a3@29 ~@3]/4", // A G#m D E
  D: "[[a2,c#4]@2 [g#2,b3] [f2,g#3,c#4], e3@3 ~]/2", E: "[f#2 e2 [d2,f#3] [e2,g#3,b3], a3@3 ~, e3 ~]/2",
  F: "[[a3,c#5] [g#3,b4] f#3 [d3,d4,f#4], e4@3 ~, ~ a4]/4", G: "a4 b4, [d5,f#5]", H: "[g#4,b4,e5] [g#4,c#5,f5]",
  I: "[e4,a4,c#5,f#5]", J: "[f#4,a4,d5] [g#4,b4,e5]",
  K: "[[f#3,b3,d#4]@13 ~@3 [g#3,c#4,e4]@13 ~@3 [a#3,d#4,f#4]@13 ~@3 [g#3,c#4,e4]@13 ~@3, b1]/4", L: "[d#3,b3,f#4]",
  M: "[e3,b3,g#4]", N: "[c#3,e4] [b3,d#4], g#4",
  O: "[[b3,c#4,f#4] c#4 c4 [c#3,f4,g#4]@2 [c3,d#4,g#4]@2 [a#2,c#4,f4]@2 [f#2,a#3,c#4]@2 [d#3,f#4,a#4]@2 [c3,d#4,g#4], ~ [d#4,g#4]@2 ~@11]/7", // Bsus2 C# G# A#m F# D#m G# G#5
  P: "[a2,c4,f4] [a#2,c#4,f4]", Q: "[g#2,c#4,f4] [f#2,c#4,a#4]",
  R: "[[g#2,c#4,g#4]@7 ~ [c#3,f4,g#4]@16 [c3,d#4,g#4]@16 [a#2,c#4,f4]@16 [f#2,a#3,c#4]@16 [a#2,a#3,f#4]@16 [c3,c4,g#4]@16 [c#3,f4,g#4]@16 [c3,d#4,g#4]@8]/8", // C#5 C# G# A#m F# D#m Fm C# …
  S: "[~ [a#2,c#4,f4]@2 [f#2,a#3,c#4]@2 [d#3,f#4,a#4]@2 [c3,d#4,g#4]]/4", // A#m F# D#m G#
  T: "[[g#2,c#4,g#4]@7 ~ [c#3,f4,g#4]@16 [c3,d#4,g#4]@16 [a#2,c#4,f4]@16 [f#2,a#3,c#4]@16 [d#3,f#4,a#4]@16 [c3,d#4,g#4]@8]/6", // C#5 C# G# A#m F# D#m G#
  U: "[g#2,c#4,g#4]@7 ~@9", // C#5
})).s("gm_synth_strings_1").gain(0.35)

// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note("<~@8 A B ~@4 A B ~@8 A B ~@65>".pickRestart({
  A: "[d3,f#3,a3,d4]", B: "[e3,g#3,b3,e4]",
})).s("gm_synth_strings_1").gain(0.2)

// chords · piano
const piano = note(`<
  ~@9 A B C D E ~@2 F G H I J K D L M N J O P Q J R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ@7 AK@2 AL@3 AM@8 AN
  AK@2 AO@6 AK@2 AP@6 AK@2 AQ@3
>`.pickRestart({
  A: "~@13 e4@3, ~@5 e3@3", B: "[a3,c#4]@7 ~, e3 ~@15", C: "[e3,g#3,b3]@7 ~", D: "[f#2,c#3,e3,a3]",
  E: "[d2,a2,f#3]@15 ~", F: "d4@3 c#4@3 e4@5 ~ e4 d4 c#4 ~, [a2,e3]@5 ~ [a2,e3]@9 ~",
  G: "c#4@3 b3@9 ~@4, [g#2,e3]@15 ~", H: "[g#3,b3]@3 [f#3,a3]@3 [a3,c#4]@5 ~ c#4 b3 a3@2, [f#2,e3]@5 ~ [f#2,e3]@9 ~",
  I: "[e3,g#3]@3 [d3,f#3]@10 [g#2,e3,g#3,b3]@3, [d2,a2]@13 ~@3", J: "[a2,e3,a3,c#4]", K: "[g#2,e3,g#3,b3]@7 ~",
  L: "[d3,f#3,a3]@11 ~@3 d2 e2, d2@13 ~@3", M: "[f#2,f#3,a3,d4]@15 ~", N: "~@13 b3@3, [g#2,g#3,b3,e4]@7 ~, ~@5 e3@3",
  O: "[g#2,e3,g#3,b3]", P: "~@13 c#2@3, [f#2,c#3,e3,a3]", Q: "[d2,d3,f#3,a3]@15 ~", R: "[g#2,e3,g#3,b3] [f2,c#3,f3,b3]",
  S: "[f#2,e3,a3,c#4] [e2,e3,a3,c#4]", T: "[d2,d3,f#3,a3] [e2,e3,g#3,b3]",
  U: "d4@3 c#4@3 [a2,e3,e4]@9 ~, [a2,e3]@5 ~@11", V: "c#4@3 ~@10 b3@3, g#2@15 ~, e3@10 e3@5 ~, ~@3 b3@9 ~@4",
  W: "[g#3,b3]@3 [f#3,a3]@3 [f#2,e3,a3,c#4]@8 a3@2, [f#2,e3]@5 ~@11", // G#m F#m F#m7 F#7
  X: "[e3,g#3]@3 [d3,f#3]@10 [c#3,e3,a3,c#4]@3, [d2,a2]@13 ~@3", Y: "[b2,f#3,a3,d4]@7 ~ [a2,f#3,a3,d4]@8",
  Z: "[g#2,g#3,b3,e4]@8 [f2,g#3,c#4,f4]@7 ~", // E C#
  AA: "[f#2,a3,c#4,e4]@8 [e3,a3]@2 ~@3 c#4@3, ~ e2, ~@8 c#4@5 ~@3, ~@5 e3@3, ~@11 a3@5", // F#m7 A5
  AB: "[d2,f#3,a3,d4] [e2,g#3,b3,e4]", AC: "[f#3,b3,d#4]@13 [f#3,b3,d#4]@3, b2",
  AD: "[g#3,c#4,e4]@13 [g#3,c#4,e4]@3, b2@15 ~", AE: "[a#3,d#4,f#4]@12 ~ [a#3,d#4,f#4]@3, b2@15 ~",
  AF: "[g#3,c#4,e4]@13 [g#3,c#4,e4]@3, b2", AG: "[b3,d#4,f#4]@12 ~ [b3,d#4,f#4]@2 ~, d#2", AH: "[e2,b3,e4,g#4]@15 ~",
  AI: "[b3,e4]@3 ~@3 g#4 ~@3 e2@4 b3 ~, c#2@7 ~@9, g#4@5 e4@2 ~ [d#4,g#4]@7 ~, ~@3 b3@4 ~ b3@5 ~@3", // E5 G#5
  AJ: "[[f#2,b3,c#4,f#4]@5 f#2 [b3,c#4,f#4] f#2 [g#2,c#4,d#4,g#4]@5 ~ [c#4,d#4,g#4] ~ [c4,d#4,g#4]@5 ~ [c4,d#4,g#4]@2 [g#3,c#4,f4]@12 ~ [g#3,c#4,f4]@2 ~ [c3,g#3,c4,d#4]@13 [g#3,c4,d#4]@2 ~ [a#2,f3,a#3,c#4]@13 [f3,g#3,c#4]@3 [f#2,f#3,a#3,c#4]@14 ~@2 [d#3,a#3,d#4,f#4]@12 ~ [c#3,a#3,d#4,f#4]@3 [c3,g#3,c4,d#4]@8, ~@13 g#2@7 ~ g#2@3 c#3@16 ~@72]/7", // F#sus4 Bsus2 G#sus4 C#sus2 G# C# G# A#m …
  AK: "[[a2,f3]@8 a#2@8 g#2@4 ~ [g#2,f3,g#3,c#4]@2 ~ [f#2,f#3,a#3,c#4]@7 ~, [c4,d#4] ~@7 [f3,g#3,c#4]@13 ~@11]/2", // Dm C# F# Cm C#
  AL: "[~@4 [g#3,c4,d#4]@3 ~ [g#3,c#4,f4]@12 ~ [g#3,c#4,f4]@2 ~ [c3,g#3,c4,d#4]@13 [g#3,c4,d#4]@2 ~ [a#2,f3,a#3,c#4]@8, g#2@7 ~ c#3@16 ~@24]/3", // G# C# G# A#m
  AM: "[~@5 [f3,g#3,c#4]@3 [f#2,f#3,a#3,c#4]@14 ~@2 [c#4,f#4,a#4]@12 ~ [c#4,f#4,a#4]@2 ~ [d#4,g#4,c5]@12 ~ [d#4,g#4,c5]@2 ~ [g#3,c#4,f4]@12 ~ [g#3,c#4,f4]@2 ~ [c3,g#3,c4,d#4]@13 [g#3,c4,d#4]@2 ~ [a#2,f3,a#3,c#4]@13 [f3,g#3,c#4]@2 ~ [f#2,f#3,a#3,c#4]@14 ~@2 [d#3,a#3,d#4,f#4]@8, ~@24 a#2@15 ~ c3@15 ~ c#3@16 ~@56]/8", // C# F# G# C# G# A#m C# F# …
  AN: "~@5 [c#3,a#3,d#4,f#4]@3 [c3,g#3,c4,d#4]@8", // D#m7 G#
  AO: "[~@4 [g#3,c4,d#4]@3 ~ [g#3,c#4,f4]@12 ~ [g#3,c#4,f4]@2 ~ [c3,g#3,c4,d#4]@13 [g#3,c4,d#4]@2 ~ [a#2,f3,a#3,c#4]@13 [f3,g#3,c#4]@2 ~ [f#2,f#3,a#3,c#4]@14 ~@2 [d#3,a#3,d#4,f#4]@12 ~ [c#3,a#3,d#4,f#4]@3 [c3,g#3,c4,d#4]@8, g#2@7 ~ c#3@16 ~@72]/6", // G# C# G# A#m C# F# D#m D#m7 …
  AP: "[~@4 [g#3,c4,d#4]@3 ~ [g#3,c#4,f4]@12 ~ [g#3,c#4,f4]@2 ~ [c3,g#3,c4,d#4]@13 [g#3,c4,d#4]@2 ~ [a#2,f3,a#3,c#4]@13 [f3,g#3,c#4]@3 [f#2,f#3,a#3,c#4]@14 ~@2 [d#3,a#3,d#4,f#4]@12 ~ [c#3,a#3,d#4,f#4]@3 [c3,g#3,c4,d#4]@8, g#2@7 ~ c#3@16 ~@72]/6", // G# C# G# A#m C# F# D#m D#m7 …
  AQ: "[~@4 [g#3,c4,d#4]@3 ~ [c#2,a#3,d#4,f#4]@3 [c#2,g#3,c#4,f4]@3 [c#4,f4,g#4]@26 ~@8, g#2@7 ~@7 c#1@10 ~@24]/3", // G# D#m7 C#
})).s("gm_piano").gain(0.48).pan(0.7)

// other · acoustic guitar nylon · D5 E5
const acoustic_guitar_nylon = note(`<
  ~@14
  [[a3,d4]@7 ~]
  [[b3,e4]@3 ~]
  [d4@3 c#4@3 e4@6 e4 d4 c#4@2]
  [c#4@3 b3@13]
  [b3@3 a3@3 c#4@6 c#4 b3 a3@2]
  [g#3@3 f#3@9 ~@4]
  ~@71
>`).s("gm_acoustic_guitar_nylon").gain(0.4).pan(0.3)

// bass · fretless bass
const bass = note(`<
  ~@19 A B C D E D C B C F G B H I J B C D K L H I M N O P Q R S T U V W X Y Z AA AB AC AD W X Y AE AF AG W X AH AI AA
  AB AC AD W X Y Z AA AB AC AD W X Y Z AA AB AC AJ@3
>`.pickRestart({
  A: "~@13 g#1@3", B: "a1", C: "g#1", D: "f#1", E: "d1@14 d1 e1", F: "f#1@13 c#1@3", G: "d1", H: "g#1 f1", I: "f#1 e1",
  J: "d1 e1", K: "d1@13 c#2@3", L: "b1 a1", M: "d1@8 e1@7 ~", N: "b1 ~ b1@14", O: "b1 ~ b1@12 d#3 f#3",
  P: "d#3@12 ~ f#2@3", Q: "b1 ~ b1@6 d#3 f#3 d#3@2 b2 f#2 b2@2", R: "d#2", S: "e2@5 f#2 g#2 b2 e3@4 d#3@4",
  T: "c#3@7 d#3 e3@8", U: "f#3 g#3", V: "g#2 d#2 c#2 c2 d#2 g#1 f#1 d#1 c#1@4 ~@3 c#1",
  W: "c#1@4 ~ f#1 g#1 c#2 c2@5 ~@2 c2", X: "c2@6 ~@2 a#1@4 ~@3 a#1", Y: "a#1@4 ~@2 g#1@2 f#1@4 ~@3 f#1",
  Z: "f#1@2 ~ f#2 f2 c#2@3 d#2@5 ~@2 d#2", AA: "c#2@6 ~ c#2 c2@4 ~ c2 b1 a#1", AB: "a1@4 ~@3 a1 a#1@5 ~ a#1 ~",
  AC: "g#1@6 ~ g#1 f#1@4 ~ f#1!2 g1", AD: "g#1@3 d#2 g#2 d#2 g#1@2 c#1@4 ~@3 c#1", AE: "f#1@5 ~ f#1 g#1 a#1@5 ~@2 a#1",
  AF: "a#1@5 ~ g#1 a#1 c2@6 ~ c2", AG: "c2@4 g#1@4 c#1@4 ~@3 c#1", AH: "a#1@4 ~@2 g#1@2 f#1@6 c#2 f#2",
  AI: "c#3 f#2 g#3 ~ f#3 c#3@3 d#2@5 ~@2 d#2", AJ: "[g#1@3 d#2 g#2 d#2 g#1@2 c#2@2 ~ c#2@3 c#1@26 ~@8]/3",
})).s("gm_fretless_bass").gain(0.46)

// chords · rock organ
const rock_organ = note("<~@25 A B C D E B F G H ~@8 I J K J L M N O@7 P@2 Q@8 R@6 S@16 T@3>".pickRestart({
  A: "~@15 [f5,g5,c6,d6]", B: "[c#5,a5,e6]", C: "[b4,g#5,e6]", D: "[a4,e5,c#6]", E: "[f#5,d6], a4 ~@15",
  F: "[b4,g#5,e6] [g#4,f5,c#6]", G: "f#5 e5, [a4,c#6]", H: "[d4,a4,f#5] [e4,b4,g#5]", I: "[d#5,f#5,b5]",
  J: "[e5,g#5,c#6]", K: "[f#5,a#5,d#6]", L: "[b5,d#6,f#6]", M: "[b5,e6,g#6]", N: "e6 d#6, [g#5,b5]",
  O: "[[b5,c#6,f#6] c#6 c6 [c#6,f6]@2 [c6,d#6]@2 [g#5,c#6,f6]@2 [f#5,a#5,c#6]@2 [f#5,a#5]@2 [g#5,c6], ~ [d#6,g#6]@2 g#6@4 ~@4 d#6@3]/7", // Bsus2 C# Cm C# F# G# G#5
  P: "[f5 [f5,a#5,c#6]@3]/2", // A#m
  Q: "[c#6@4 c6@3 ~ [c#6,f6]@16 [c6,d#6]@16 [g#5,c#6,f6]@16 [f#5,a#5,c#6]@16 [f#5,a#5,c#6]@16 [g#5,c6,d#6]@16 [c#6,f6]@16 [c6,d#6]@8, [d#5,g#5]@7 ~ g#6@32 ~@64 g#6@24]/8", // C# Cm C# F# G# C# Cm G#5
  R: "[~ [g#5,c#6,f6]@2 [f#5,a#5,c#6]@2 [f#5,a#5]@2 g#5 f5 [f5,a#5,c#6]@3, ~@5 d#6@4 ~@3, ~@7 c6@2 ~@3]/6", // C# F# A#m
  S: "[c#6@4 c6@3 ~ [c#6,f6]@16 [c6,d#6]@16 [g#5,c#6,f6]@16 [f#5,a#5,c#6]@16 [f#5,a#5]@16 g#5@8 f5@8 [f5,a#5,c#6]@24, [d#5,g#5]@7 ~ g#6@32 ~@32 d#6@32 ~@24, ~@11 c6@2 ~@3]/8", // C# Cm C# F# A#m G#5
  T: "[c#6@4 c6@3 ~ [c#3,a#4,d#5,f#5]@3 [c#3,g#4,c#5,f5]@3 [c#5,f5,g#5]@26 ~@8, [d#5,g#5]@7 ~@7 c#2@10 ~@24]/3", // D#m7 C# G#5
})).s("gm_rock_organ").gain(0.25).pan(0.8)

// chords · rock organ · soft notes · Am7 Dm7 Cmaj7
const rock_organ_soft = note(`<
  ~@25
  [~@12 [a2,a#2,b2,c3,e3,f3,f#3,g3] [d3,e3,f3,g3,a3,a#3,b3,c4,d4,e4,f4] [c4,d4,e4,f4,g4,a4,b4,c5,d5,e5] [a#4,c5,d5,e5,a5,b5]]
  ~@65
>`).s("gm_rock_organ").gain(0.11).pan(0.8)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@42
  [~@15 f#3, b2@2 b3@3 f#3@3 c#4@3 b3@5, ~ f#3@3 b2@5 f#3@3 ~ f#3@2 ~, ~@6 b3@4 b2@3 ~ b2@2]!6
  [~@7 e3 ~@7 e3, c#3@2 b3@3 e3@2 ~@2 e3@3 e2@4, ~ e3@2 d#4@3 b3@3 ~ b3@3 e3@2 ~, ~@4 c#3@4 e2@3 d#4@3 b3@2]
  [~@7 b3 ~@7 c#4, f#3@2 c#4@3 b3@2 ~@3 d#4@3 c#4@2 ~, ~ b3@2 f#4@3 c#4@3 c#4@3 g#3@4, ~@4 f#3@4 g#3@3 g#4@3 d#4@2]
  ~@41
>`).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.3)

// other · distortion guitar
const distortion_guitar = note("<~@45 A B C D E@6 F G H I@6 J@5 F G H K@5 F G H K@5 F G H L@3>".pickRestart({
  A: "~@8 f#3@4 b2@2 b2 c#3", B: "d#3", C: "e3@2 e3 d#3", D: "c#3@7 d#3 e3@8",
  E: "[f#3@4 g#3@8 c#3@8 c3@8 a#2@7 g#2 f#2@8 d#3@4]/6", F: "c#3@8 c3@5 ~ c3 a#2", G: "a2@7 ~ a#2@8", H: "g#2 f#2",
  I: "[g#2@6 ~@2 c#3@16 c3@16 a#2@14 g#2@2 f#2@14 f#2 g#2 a#2@14 g#2 a#2 c3@8]/6",
  J: "[~@2 g#2@2 c#3@8 c3@8 a#2@7 g#2 f#2@8 d#3@4]/5", K: "[g#2@3 ~ c#3@8 c3@8 a#2@7 g#2 f#2@8 d#3@4]/5",
  L: "[g#2@6 ~@2 c#3@3 g#2@3 c#3@26 ~@8]/3",
})).s("gm_distortion_guitar").gain(0.48).pan(1)

// other · overdriven guitar
const overdriven_guitar = note("<~@54 A ~@19 B@4 ~@10 C@3>".pickRestart({
  A: "~ f#4@6 f4 d#4@8", B: "[~@8 c#6@14 a#5@15 g#5 f#5@18 ~@8]/4", C: "[~@8 f#5@3 f5@3 g#5@26 ~@8]/3",
})).s("gm_overdriven_guitar").gain(0.35).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~@20 A@8 B A@2 C D E F A C A G A C A H@8 I J@3 K J@3 L J@3 K J@5 K J@2 M I J@3 K J@2 N L J O J K J@3 P ~ Q
>`.pickRestart({
  A: "x", B: "x ~@12 x ~@2", C: "x ~@14 x", D: "x ~@8 x!2 ~@5", E: "x ~@8 x!2 ~@3 x ~", F: "x ~@8 x!2 ~@4 x",
  G: "~ x!2 ~@13", H: "x!2 ~@6", I: "~@8 x ~@6 x", J: "x ~@7 x ~@6 x", K: "x ~@2 x ~ x ~@2 x ~@6 x",
  L: "x ~@2 x ~@4 x ~@6 x", M: "x!2", N: "x ~@7 x ~@2 x ~@4", O: "x ~@7 x!2 ~@5 x", P: "x ~@2 x ~@4 x ~@5 x ~",
  Q: "~ x",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~@20 A@3 B A@2 B A@3 C A@4 D E D A@4 ~@49>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x ~@2 x ~@3", C: "~@4 x ~@2 x ~@2 x ~ x ~@3", D: "~@4 x ~@4 x ~@2 x ~@2 x", E: "x!2 ~ x",
})).gain(0.64)

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

// drums · low tom
const low_tom = s("lt").struct("<~@11 A ~ B ~@29 C ~ D ~ E ~@2 F ~@7 F ~@13 G ~@7 H ~@7 I ~ G>".pickRestart({
  A: "~@5 x ~ x ~@8", B: "~@13 x ~@2", C: "~@7 x", D: "~@13 x!2 ~", E: "~@13 x ~ x", F: "~ x ~@4 x ~@9", G: "~@7 x ~@8",
  H: "~@4 x!2 ~@10", I: "~ x ~@4 x ~@7 x ~",
})).gain(0.64)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@43 A ~ B ~ C ~ D ~@8 E ~@12 F G ~@7 H ~@7 I ~ J>".pickRestart({
  A: "~@11 x ~@4", B: "~@8 x!2 ~@6", C: "~@9 x!2 ~@5", D: "~@7 x", E: "~ x ~@14", F: "~@15 x", G: "~@2 x ~@2 x!2 ~@9",
  H: "~ x ~@6", I: "~ x ~@11 x ~@2", J: "~@7 x ~@8",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@43 A@4 ~ A@2 ~@32 B C ~@6 D>".pickRestart({
  A: "x!2 ~@6", B: "~@9 x ~@6", C: "~ x ~@2", D: "~ x",
})).gain(0.24)

// drums · high tom
const high_tom = s("ht").struct("<~@11 A ~@31 B ~ C ~@3 D ~@21 E F ~@7 A ~@7 G ~@2>".pickRestart({
  A: "~ x ~@14", B: "~ x", C: "~@7 x ~@8", D: "~@11 x ~@4", E: "~@13 x!2 ~", F: "~ x ~@2 x ~@11", G: "~@9 x!2 ~@5",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@26 A ~@23 B ~@7 B ~@5 B ~@3 B ~ B C@2 ~@7 B ~@7 D ~@2>".pickRestart({
  A: "x", B: "~ x", C: "x!2", D: "~@4 x ~@2 x",
})).gain(0.64)

// drums · ride
const ride = s("rd").struct("<~@3 [~@11 x!2 ~@3] ~@16 x ~@70>").gain(0.24)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x!16]!42 ~@49>").gain(0.81)

stack(
  synth_strings_1, synth_strings_1_soft, piano, acoustic_guitar_nylon, bass, rock_organ, rock_organ_soft,
  acoustic_guitar_steel, distortion_guitar, overdriven_guitar, kick, clap, snare, low_tom, hihat, mid_tom, open_hat,
// … 2 more lines

More by Raf