what is the algo for the quantise function in the SP app?
background: Ive two modes in EigenD for using the SP, one is using the frequency determined by the SP app, the other is to use the SP as a continuous surface where the layout is defined in EigenD.
(layout functionality already existed in EigenD so makes sense to support, as its dynamically configurable)
so in this latter mode, Id like to have a similar 'quantise' note function. this is easy enough, to have on 'touch on', as it just sets 'roll' to zero.
but I wondering, how does the SP decide when to 'kill' this quantisation.
tch1, your off by 0.25 semi tone, so zero out the roll/pb
BUT you will very soon (@DR time) get another tch1, which will show you are off by (say) 0.2502, you didnt move, but sensors are accurate... but at this stage, you want to remain quantised (id say)...
does the quantisation stop when you start sliding? or when you leave that cell?
or when quantising do you always use key centres, and use portamento, when sliding from note to note?
also is vibrato, measured as an offset to the original touch position (i.e. un-quantised)
Im asking, to make my stuff consistent, but Im also interested so I know how the SP app works.
(I know where its doing it in the SP code base (touchtracker), but its taking a bit of time to trace it, as my dev version of the SP codebase is no longer working.)
thanks for any pointers
When quantize is on, the closest key center is always chosen. The hysteresis dial selects a boundary size around the current key. When the touch moves outside this boundary, the quantized touch moved to the new closest key center. After quantizing, portamento is applied.
Vibrato is made as follows: the position is high-pass filtered at around 3 Hz, then the result is subtracted from the raw signal to get a vibrato signal. This vibrato signal is scaled by the "vibrato" dial then added to the pitch output. Quantizing does not affect vibrato.
cool, totally clear now :-) thanks