Comment 5 for bug 1117806

Daniel Schürmann (daschuer) wrote :

Ok, finally I am satisfied with my current solution in lp:~daschuer/mixxx/daschuers_trunk #3161

* Transfer the Mouse position via Qt event and a single global (pfui ;-)) to engine thread
* equalize sample time by reading the mouse position after at least 16 ms
* Introduce an IIR lowpass to iron the error = key
* Disable the IIR for decreasing errors
* Control the rate by a PD Controller with negative d
* Ignore Mouse stops for 0,4 ms
* detect initial Mouse stop and stop immediately in this case
* start with a settled controller

This finally gives a much better sound during scratch then current 1.11 implementation and only a minimum response regression.
You can test best with a 1Khz Tone or a vocal track trying to scratch with rate = 1.
I have experienced big differences in the mouse signal quality during test. My parameters are tweaked with different pointer devices but tested only with Ubuntu.

You can find test builds at: