Apologies if this has been asked before, but I can't seem to find a solution. I have a little track - eg:
With[{li = {0, 4, 7, 12}}, With[{aa = (Flatten@
Join[(li + 12 #) & /@ Range@2, (li - 12 #) & /@ Range@2])},
Sound[(SoundNote[#, 1/2, "Cello"] & /@ Transpose@{RandomSample[#, 4] &@aa,
RandomSample[#, 4] &@aa}) & /@ Range@8]]]
but I would like to slightly randomize the length each note plays (it used to be called humanising the sound as far as I recall!), ie, so that each note/ chord plays for $\dfrac{1}{2}\pm \epsilon$ seconds as opposed to each being equal.