Strudelify
Una lunga storia d'amore cover art

Milestones - Un Incontro In Jazz

Una lunga storia d'amore

Paoli

KeyE majorTempo63 bpm
0:00/0:00
// Una lunga storia d'amore — Paoli
// 63 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 37, 4/4 at bar 37) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 48 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(63/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
const piano = note("<~@5 A@2 B C D E@2 F G@3 H I J K L M N O P Q R S T U N O P V W S X@2 Y@8 Z ~>".pickRestart({
  A: "[~@33 e4@13 ~@3 f#4@15, ~@31 b3@15 ~ a3@17, ~@32 c#4@15 ~ c#4@16]/2",
  B: "~@14 b3@11 ~@5 b3@2, ~@10 e4@15 ~ e4@6, ~@12 d#4@13 ~@3 d#4@4", C: "~ c#4@13 ~@2 [c#4,f#4]@16, b3@2 ~@13 a3@17",
  D: "~@8 [e3,g#4]@3 [f#3,a4]@3 [g#3,b4]@2", // E F#m G#m
  E: "[~ c#5@13 ~@2 d#5@15 ~@2 f#4@16 ~ e5@2 d#5@2 b4@3 ~ f#4 g#4 f#4@2 e4@2, a3@15 ~@16 b3@17 ~@16, b4@4 ~@11 [f#4,b4]@17 d#4@17 ~@9 b4@6]/2", // B5
  F: "[b3,c#4,e4]@7 ~ [a3,c#4,e4]@8", // C#m7 A
  G: "[~@2 d5 ~ d5 ~ d5@3 ~ e5 ~ e5 ~ e5@2 ~@2 f#5 ~ f#5 ~ f#5@2 ~@2 g#5 ~ a5 ~ a5 ~ [a3,c#4,e4]@13 ~@5 b5@3 ~ a5@4 a4@3 ~ g#4@4 ~@28 b4@2, [a3,f#4]@14 ~@2 [a3,c#4,e4]@8 [b3,d#4,f#4]@8 ~@15 [a3,c#4]@17 ~@4 d#4@8 d#5@8 d#4@8 d#5@4, e4@6 d4@7 ~@17 b5@18 f#4@15 ~@3 e4@15 ~ e4@14, ~@35 b3@4 b4@4 b3@5, ~@37 e5@7 ~ e5@3]/3", // A D A B A
  H: "~ c#5@14 ~ [c#4,f#4]@16, [b3,c#4,e4]@14 ~ a3@17, b4 ~@15", // F#5 C#m7
  I: "f#4@6 e4@9 ~ [e3,g#4]@6 [f#3,a4]@6 [g#3,b4]@4, b3@15 ~@17", J: "[e4,c#5]@12 ~@5 f#4@15, ~@15 [b3,d#4]@17",
  K: "[b3,f#4]@15 ~@7 b5@4 ~@2 d#5@2 b4@2, ~ [b3,e4], ~@9 e6@4 ~@3, ~@10 d#6@3 e5@2 ~", // B5 E5
  L: "b4 c#5@14 ~ [c#4,e4,a4]@16, e4@15 ~@17", // A
  M: "~@2 e4@2 e4@2 a4@3 ~ d5@3 ~@3 d#5@2 f#5@4 b4@10, a3@15 ~ [b3,d#4,f#4]@15 ~, ~@4 f#4 ~@9 b4@6 ~@12, ~@16 c#5 ~@15", // B
  N: "[b3,e4]@9 ~@4 g#3@3, g#3@13 ~@5 g#3@4 e4@10, ~@5 b3@3", // E5
  O: "[a3,c#4,e4]@14 ~@2 d#4@5 ~@7 b3@4, ~ f#4, ~@8 b3@5 ~@3, ~@11 d#4@5", // A
  P: "~ [g#3,b3,e4], [g#3,b3,e4]@13 ~@19, ~ e5@15, ~ d#5@7, ~@3 b4@13", // E
  Q: "[a3,c#4,e4]@7 ~ [a3,c#4,e4]@7 ~ [f#3,c#4,d#4]@7 ~ [f#3,c4,d#4]@8", // A D#m7 Cdim
  R: "[g#3,c#4,e4]@7 ~@7 b4 a4 ~@8 [g#3,c#4,e4]@8, c#5@7 ~ g#4@8, ~@8 [g#3,c#4,e4]@15 ~@9", // C#m
  S: "[g#3,b3]@7 ~ [b3,e4]@7 ~ [a3,c#4]@16", // G#m E5 A
  T: "[a3,c#4]@6 ~@4 c#4@2 ~@4 b4 c#5@15, e4@11 ~@5 [e4,f#4,e5]@16, ~@3 a3@13", // A Esus2
  U: "[e4,f#4]@2 e4 f#4@2 d5@2 b4 d#5 f#5@2 ~ [b3,d#4,f#4]@4, a3@15 ~ [a3,c#4,e4]@7 ~@9, ~@6 e4@2 ~@2 f#4@2 ~@4 c#5 ~@5 b4@10", // Esus2 B A
  V: "[a3,c#4,e4]@7 ~ [a3,c#4,e4]@7 ~ [f#3,c#4,d#4,c#5]@7 ~ [f#3,c4,d#4,c5]@8", // A D#m7 Cdim
  W: "[g#3,c#4,e4]@7 ~@7 b5 a5 ~@8 [g#3,c#4,e4]@8, c#5@7 ~ g#5@8, ~@8 [g#3,c#4,e4]@15 ~@9", // C#m
  X: "[~@10 [b3,d#4,f#4]@6 [a3,c#4,e4]@13 ~@3 e4@16 ~ g#4@13 f#4@2, ~@15 a3@9 g#3@8, ~@31 c#4@17 ~@16]/2", // B A
  Y: "[~@6 g#4@10 [a3,c#4,e4]@13 ~@3 f#4@16 [g#3,e4]@14 ~@4 b5@3 ~ b5@4 b5@3 ~ b5@2 b5 ~ b5@12 ~@4 g#5@2 a5@2 b5 ~ b5@2 a5 ~ a5@2 g#5@2 a5@2 g#5@4 e5@4 b4@4 ~@4 b4@2 c#5@2 e5@2 d#5@2 e5@2 f#5@2 a5@2 a5@3 g#5@3 ~ g#5@7 ~@4 b5@2 e6@2 f#6@3 ~ b5@2 e6@2 f#6@2 ~@2 b5@2 e6@2 e6@3 ~ b5@2 e6@2 [a3,f#4,b5]@18 ~@2 e5@2 a5@2 g#5@2 f#5@2 e5@2 c#5@2 ~@2 d#5@3 f#5@3 e5@4 a5@4 ~@2 [g#3,e4]@14 [a3,f#4]@2, ~@15 a3@9 ~@7 [a3,f#4]@9 [g#3,e4]@7 [a3,f#4]@9 [g#3,e4]@7 [a3,f#4]@9 [g#3,e4]@7 [a3,f#4]@9 [g#3,e4]@7 ~@9 [g#3,e4]@7 [a3,f#4]@9 ~@8, ~@31 [c#4,e4]@17 ~@33 c#6@2 ~@155 g#5@8 ~@10]/8", // A C#m B7 C#m D C#m D C#m …
  Z: "b4@2 ~ b4@2 e5@2 ~ b5@2 ~ c#6@2 ~@3 e5@3 ~@3 e5@3 b5@2 e5@3 ~@2, ~@14 b5@5 b5@5 ~@8, ~@8 [g#3,e4]@7 ~", // C#m
})).s("gm_piano").gain(0.4).pan(0.6)

// bass · fretless bass
const bass = note(`<
  ~ A B C D E F G F H I J K L F G F H I J M N O F O D P Q R L O F O D S T@2 U@2 V@4 W X@4
>`.pickRestart({
  A: "~@28 b2@2 [a1,a#1] [f1,f#1,g1,g#1]", B: "e1@11 b1 c#2@2 e2@2", C: "e1@18 f#2@2 e2 ~ c#2@2 b1@4 c#2@4",
  D: "a1 g#1", E: "f#1 b1", F: "a1 b1", G: "e1@2 f#1@2 g#1@2 b1 e1", H: "g#1@8 e1@3 f#1@3 g#1@2", I: "a1 a2",
  J: "g#1 c#2", K: "a1@7 g#1 f#1@4 e1@4", L: "d2 b1", M: "a1@7 g#1 f#1@8", N: "d2@7 c#2 b1@4 b1@4",
  O: "e1@9 ~ e1@2 f#1@2 g#1@18", P: "c#2@7 c#3@9", Q: "g#1 a1", R: "f#1@7 f#2 e2@4 e2@4", S: "c#2@7 c#3@7 c#2@2",
  T: "[g#1@8 a1@13 g#1@3 f#1@8]/2", U: "[b1@8 e1@13 b1 c#2 e2 a1@8]/2",
  V: "[b1@16 e1@21 ~ b1@2 b1@4 e2@4 e1@22 b3@2 a3@2 g#3@2 e3@4 e1@26 c#4@2 b3@4 e1@16]/4",
  W: "~@2 g#3@2 a3 ~ a3@4 g#3@2 e3@4 e1@16",
  X: "[~@2 b3@2 a3 ~ g#3@2 e3 ~ b2@6 e1@28 b3@4 e1@24 b1@2 c#2@2 e2@4 e1@24 ~@24, ~@44 a3 ~@83]/4",
})).s("gm_fretless_bass").gain(0.32)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@4 B@2 C D C E F G H@2 C D C E F G H@2 I J K L M N O P K J Q L R S@2 T U V@6 ~@3
>`.pickRestart({
  A: "[~@25 a3 ~@2 b3 a3 ~ e4, g#3@8 e3@6 f#3@17 ~@15 f#3@18, ~ b3@2 b3@2 b3@4 a3@4 a3@3 g#3@3 a3@2 g#3@2 ~@9, ~@2 e4@4 e4@4 b3@2 b3@2 b3@2 ~ b3@7 ~@2 b3@2 ~@2 b3@2, ~@11 e4@4 e4@3 e4@2 e4@2 e4@2 e4@3 e4@4 ~]/2",
  B: "[~@6 a3 ~@4 e4@2 ~@9 a3 b3 ~@7 f#2, a2@4 g#2@4 ~ a3@2 ~ [b3,e4] b3@2 b3, ~ e3@4 e3@4 e3@4 e3@3 c#3@9 b2@4 b2@3, ~@4 b3@9 ~ b3@6 b3@10 b3@4 f#3@8 f#3@6 ~@6 f#2@8 ~@2, ~@3 e4@8 ~@3 e4@5 e4@5 ~@2 d#4@2 c#4@2 ~@2]/2", // E5
  C: "~@15 c#4, a3@3 c#4@3 b3@3 e4@3 a3@4, ~ e4@3 a3@3 c#4@3 b3@3 e4@3, ~@2 b3@3 e4@3 a3@3 c#4@3 b3@2",
  D: "~@15 b3, e3@3 b3@3 d#4@2 g#3@3 b3@3 d#4@2, ~ e4@3 f#3@3 b3@3 c#4@3 e4@3, ~@2 d#4@3 e4@4 e4@3 e3@4",
  E: "~@11 [f#3,b3]@3 ~ b3, g#3@7 b3@4 ~@5, ~ e4@3 e3@4 g#3@3 ~@3 [g#3,e4]@2, ~@2 d#4@3 e4@4 e4@5 ~@2, ~@3 b3@3 d#4@4 ~@6", // B5 C#m
  F: "~@15 b4, a3 b3, ~ c#4@4 c#4@4 c#4@4 c#4@3, ~@4 e4@8 e4@5 ~@3 f#4@8 f#4@4, ~@3 a4@4 a4@3 ~ b4@4 ~",
  G: "~@15 g#4, g#3!2, ~@2 b3@8 b3@5 ~@3 c#4@8 c#4@6, ~@2 d#4@4 d#4@3 ~ e4@4 e4@2, ~@3 g#4@4 g#4@4 g#4@4 ~",
  H: "[~@31 f#4, a3@4 f#3@4 d3@4 ~ d#4@2 d#4, ~ c#4@4 c#4@4 c#4@4 c#4@3 ~ a3@4 a3@3 f#3@8, ~@4 e4@8 e4@8 e4@8 e4@5 ~@3 d4@8 d4@5 ~ b3@8 b3@5 ~, ~@3 a4@4 a4@4 a4@4 a4@3 ~ f#4@4 f#4@4 f#4@4 ~]/2",
  I: "[g#3,b3,e4]@7 ~ [g#3,b3,e4]@6 e4@2 [b3,e4]@8 [b3,e4]@6 e4@2, ~@4 g#3 ~@3", // E E5
  J: "[a3,c#4,e4]@7 ~ [a3,c#4,e4]@6 e4@2 b3@4 ~@4 [d#4,f#4]@6 f#4@2, ~@2 [d#4,f#4] ~, ~@5 b3@3", // A D#m
  K: "[g#3,b3,e4]@7 ~ [g#3,b3,e4]@6 e4@2 g#3@4 ~@4 [b3,e4]@6 e4@2, ~@2 [b3,e4] ~, ~@5 g#3@3", // E E5
  L: "[a3,c#4,e4]@7 ~ [a3,c#4,e4]@6 e4@2 g#3@4 ~@4 [c4,d#4]@6 d#4@2, ~@2 [c#4,d#4] ~, ~@5 g#3@3", // A Cm C#sus2
  M: "[g#3,c#4,e4]@7 ~ [g#3,c#4,e4]@6 e4@2 [e3,g#3]@4 ~@4 [b3,e4]@6 e4@2, ~@2 [b3,e4] ~, ~@5 g#3@3", // C#m E E5
  N: "[g#3,b3,d#4]@7 ~ [g#3,b3,d#4]@6 d#4@2 [a3,c#4,e4]@16", // G#m A
  O: "[a3,c#4,f#4]@7 ~ [a3,c#4,f#4]@6 f#4@2 a3@4 ~@4 [c#4,f#4]@6 f#4@2, ~@2 [c#4,f#4] ~, ~@5 a3@3", // F#m F#5
  P: "[a3,d4,f#4]@7 ~ [a3,d4,f#4]@6 f#4@2 [f#3,b3]@4 ~@4 [d#4,f#4]@6 f#4@2, ~@2 [d#4,f#4] ~, ~@5 b3@3", // D B5 D#m
  Q: "[g#3,b3,e4]@7 ~ [g#3,b3,e4]@6 e4@2 ~@8 [b3,e4]@6 e4@2, ~@2 [b3,e4] ~, ~@5 g#3@3", // E E5
  R: "[g#3,c#4,e4]@7 ~ [g#3,c#4,e4]@6 e4@2 g#3@4 ~@4 [b3,e4]@6 e4@2, ~@2 [b3,e4] ~, ~@5 g#3@3", // C#m E5
  S: "[[g#3,b3,d#4]@7 ~ [g#3,b3,d#4]@6 d#4@2 [a3,c#4,e4]@26 [g#3,b3,d#4,g#4]@6 [a3,c#4,f#4]@7 ~ [a3,c#4,f#4]@6 f#4@2]/2", // G#m A G#m F#m
  T: "a3@4 ~@4 [c#4,f#4]@6 f#4@2 [g#3,b3,e4]@7 ~ [g#3,b3,e4]@6 e4@2, [c#4,f#4] ~@3, ~ a3@3 ~@4", // F#5 E F#5
  U: "g#3@4 ~@4 [b3,e4]@8 ~ a4@15, [b3,e4] ~ [c#4,e4]@2, ~ g#3@3 ~@4", // E5 C#m
  V: "[~ e4@16 ~@5 a3@4 g#3@4 f#3@14 ~@10 a3@4 g#3@4 f#3@13 ~@11 a3@4 g#3@4 f#3@12 ~@12 a3@4 g#3@4 f#3@15 ~@5 e4@30 ~@16, [a3,c#4]@16 ~@2 b3@26 ~@6 b3@23 ~@9 e3@25 ~@7 e3@28 ~@2 e3@32 ~@16, ~@84 b3@23 ~@9 b3@26 ~@3 [g#3,b3]@31 ~@16]/6", // A G#m
})).s("gm_acoustic_guitar_steel").gain(0.14)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@4 A B C ~@6 D E F G H I J K@2 L M N O P Q R S T U V W X Y@4 Z@8 ~>".pickRestart({
  A: "b4 a4 b3@2, e4", B: "b3 ~ e4@2, e3 ~, ~ a3@3", C: "[b3,c#4,e4]@7 ~", D: "e4 f#4 [c#4,e4,a4] [d#4,f#4,b4], a3 ~",
  E: "[b3,c#4,e4] [a3,c#4,f#4]", F: "[b3,d#4,f#4]", G: "b3 ~ f#4@2, [c#4,e4], ~ a3@3",
  H: "f#4@8 g#4@3 a4@3 b4@2, [b3,e4]", I: "[b4,c#5,e5] [c#5,d#5,f#5]",
  J: "f#5@2 e5 d#5 [f#4,b4,d#5]@2 [e4,g#4,c#5]@2, b4 ~", // B C#m
  K: "[b3@2 ~@2 e4 d4 [c#4,e4] [d#4,f#4], [c#4,e4]@2 f#4 b4, ~ a3@2 ~]/2", L: "e4 e5, b4", M: "[c#5,e5] [d#5,f#5], b4",
  N: "e5 e4, b4", O: "b4 a4 ~ c5, c#5@3 ~, e5 f#4", P: "[c#4,g#4]", Q: "f#4@4 ~@4 c#4@7 ~, b3@15 ~, ~@4 e4@11 ~",
  R: "[a3,c#4,e4]", S: "[e4,f#4] d4 [c#4,e4] [b3,d#4,f#4], a3@3 ~", T: "b3 b4, e4",
  U: "[c#4,e4,b4] [e4,a4,c#5] c#5 b4, ~ [d#5,f#5]", V: "b3@2 ~ e5, e4@3 ~, ~ b4", W: "b4 a4 c#4 c4, [e4,c#5] f#4",
  X: "[c#4,e4]", Y: "[f#4@8 ~@8 c#4@27 ~@5 [a3,c#4,e4]@32 [b3,e4]@32 [b3,c#4,e4]@16, b3@21 ~@43, ~@4 e4@17 ~@43]/4",
  Z: "[~@8 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4]@9 [b3,g#4]@7 [a3,f#4], ~ e4@15]/8", // E D E D E D E D …
})).s("gm_string_ensemble_2").gain(0.22).pan(0.6)

// other · string ensemble 1
const string_ensemble_1 = note("<~@3 A B@3 ~@18 C D E ~@4 F@2 D G@2 ~@2 H@8 ~>".pickRestart({
  A: "~@24 g#4@3 a4@2 b4@3", B: "[c#5@11 d#5@2 e5@3 b5@72 ~@8]/3", C: "~@2 c#6 c6", D: "c#6@22 b5 a5 g#5@8",
  E: "f#5 e5", F: "[~@2 b4 b5@2 a5 c#6 c6]/2", G: "[f#5@2 e5@3 ~@3]/2", H: "[~ b5@15]/8",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.4)

// other · distortion guitar
const distortion_guitar = note("<~@21 A B C D E F ~@2 A G C H E F I@2 J@2 ~@9>".pickRestart({
  A: "~@24 b3@2 a3 [f#3,g3,g#3] [d#3,e3,f3] [c#3,d3] [b2,c3] [a2,a#2]", // Dmaj7 Cmaj7 A#maj7
  B: "[e2,e3]@4 ~ [e2,e3] [f#2,f#3] [g#2,g#3]@9, g2 ~@31", C: "[a2,a3] [b2,b3]",
  D: "[e2,e3]@9 ~ [e2,e3]@2 [f#2,f#3]@2 [g#2,g#3]@18", E: "[a2,a3] [g#2,g#3]", F: "[c#3,c#4]",
  G: "[e2,e3]@5 [e2,e3] [f#2,f#3] [g#2,g#3]@9, g2 ~@31", H: "[e2,e3]@5 [e2,e3] [f#2,f#3] [g#2,g#3]@9",
  I: "[[b2,b3]@8 [a2,a3]@13 [g#2,g#3]@3 [f#2,f#3]@8]/2", J: "[[b2,b3]@16 [e2,e3]@25 ~@23]/2",
})).s("gm_distortion_guitar").gain(0.33)

// other · flute
const flute = note("<~@3 A B C ~@22 D@2 ~@18>".pickRestart({
  A: "~@24 g#4@3 a4@2 b4@3", B: "c#5@11 d#5@2 e5@3 f#5@4 g#5@2 e5@6 b4@4", C: "c#5@16 f#4@15 ~",
  D: "[~@10 a4@2 b4@2 c#5@2 g#5@8 f#5@37 ~@3]/2",
})).s("gm_flute").gain(0.22)

// drums · kick
const kick = s("bd").struct("<~@14 A@7 B C D@6 E C D@3 C D F G H I A@7 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x ~@6 x", C: "x ~@6 x!2 ~@7", D: "x!2", E: "x ~@7 x ~@2 x ~@4", F: "x ~@4 x ~@2 x ~@7",
  G: "x ~@2 x", H: "~ x ~@2", I: "~@3 x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@22 [~ x ~ x]!7 [~ x ~@2] [~ x ~ x]!7 [~ x ~@2] ~@10>").gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@21 [~@10 x!5 ~] ~@7 [~@15 x] ~@18>").gain(0.3)

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

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@21 [~@7 x ~@8] ~@7 [~@24 x ~@2 x!2 ~@3] ~@6 [~@3 x ~@12] ~@11>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@13 [~@3 x] ~@23 [~@11 x ~@4] [~@3 x ~@12] [~@11 x ~@4] [~@3 x ~@7 x ~@4]!7 ~>")
  .gain(0.25)

// drums · high tom
const high_tom = s("ht").struct("<~@21 [~@5 x ~@6 x!3 ~] ~@7 [~@9 x ~@6] ~@18>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@22 A ~@6 A@2 ~@3 A ~ B C ~@10>".pickRestart({
  A: "x", B: "~@5 x ~@10", C: "~ x",
})).gain(0.25)

// drums · ride
const ride = s("rd").struct("<~@38 [~ x] ~@9>").gain(0.4)

stack(
  piano, bass, acoustic_guitar_steel, string_ensemble_2, string_ensemble_1, distortion_guitar, flute, kick, snare,
  low_tom, hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, ride
)

More by Paoli