maks / droid-synth

a revival of the music-synthesizer-for-android project
Apache License 2.0
23 stars 2 forks source link

"Touch drag scroll" feature of the on-screen piano keyboard #16

Open Codereamp opened 9 months ago

Codereamp commented 9 months ago

The feature allows scrolling the on-screen piano keyboard "windows" when one or more touches are still active and the user drags them to the side. This allows more flexible performance technique so one can reach more keys that fits in the current view while keeping the playing uninterrupted.

The feature is active when the new setting Touch Drag Action is set to Scroll keyboard value. The default value is Play Notes that corresponds to how the app behaves without it so any new user uninterested in new feature won't notice anything new or meet an unexpected regression.

The feature should work either with a single touch (solo melody) or with multi-touch (accords). Sometimes the border between them is blurred because formally a short period of keeping a previous key pressed and a new one introduced works as a multi-touch mode. Anyway, with multi-touch it's possible that the scrolling moves too far or too close comparing to the expectations. This might occur when the fingers are not always move synchronously, but from my perspective this is something that is possible to adapt to.

A note for reviewing: the diff a github could not recognize that there's a small change in the implementation of onTouchMove method body that just introduced handleScrollTouch call so there are just a couple of lines added despite a huge fragment shown here.