Android perf: fix fader stutter (appendLog), drawText feedback widget, bisect docs
Bisect session with per-suspect kill switches (see BISECT_LOG.md): - appendLog was the confirmed stutter culprit — ran per-message (~110/sec) on the main thread even with the log panel hidden; A/B verified. Disabled via DEBUG_DISABLE_APPEND_LOG; shippable visible-only fix still TODO. - Per-message Log.d also disabled (freebie, no felt difference). - Glow, gradient fill, network flash, feedback setText all exonerated and restored; switches left in place at false. - FocusFeedbackWidgetView rewritten: TextView -> bare View + canvas.drawText. 60hz updates are now field-assign + invalidate, no per-update text Layout. - ContextMenuViewLogic: explicit color-picker branch for the new view type. - Timecode chunkiness root cause was REAPER audio buffer size (source-side burst cadence), documented in PERF_SESSION_2026-07-31.md; stutter bug report stamped RESOLVED. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
# Android Feedback Widget Stutter Bug
|
||||
|
||||
> **RESOLVED 2026-07-31** — two separate root causes: (1) fader stutter was
|
||||
> `appendLog()` running per-message on the main thread even with the log panel
|
||||
> hidden (A/B confirmed, disabled via kill switch); (2) chunky timecode was
|
||||
> REAPER's audio buffer size making OSC feedback leave in bursts. Full
|
||||
> write-up: `PERF_SESSION_2026-07-31.md`; run-by-run record: `BISECT_LOG.md`.
|
||||
> The "custom Canvas view" hypothesis below was also acted on —
|
||||
> FocusFeedbackWidgetView now draws via canvas.drawText.
|
||||
|
||||
## Summary
|
||||
When the Android tablet app receives high-frequency network feedback updates (60hz timecode from desktop), the feedback widget AND the fader control stutter and become unresponsive. Works perfectly on iOS and desktop apps at the same 60hz update rate.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user