I'm continuing experiments with my Monome Arc which and I've now received and am thoroughly enjoying. I've got delta values coming in over OSC which end up [one for each encoder, n] as !Arc_n_delta which is being generated between -64 maximum and 64 maximum.
I've been exploring various different capytalk approaches but can't quite replicate something that Monome have coded for the Arc using their Ansible module, namely where the faster you turn the ring the faster it increases spinning (the imaginary rotation speed)...you can then rotate the encoder slowly the otherway and it will slowly apply the brakes on the rate of change...before drawing to a stop and finally spinning the other way. Very much like how you'd expect a disc to operate if spun with your finger adding friction.
I've tried using various accumulateWhile, sameForLast: tolerance, track/sampleAndHold approaches but can't get it right - it always ends up flipping the value into the opposite direction as soon as you rotate the encoder the opposite way, not gradually slowing it down.
I'm sure there is a good way and I'd really appreciate some help in trying to get the right combination of code.
edit: not in front of Kyma but think that the result of the accumulated value * !Rate ought to do it. Will verify next time I'm in front.