Disable LOOP_LIGHT rhythm chasing in free mode so LEDs stay solid green instead of moving with the beat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep fretboard LEDs all green during outro, and for expert local songs treat section-key + fret changes as continuous chord updates like rhythm mode (no mid-session Stop).
Co-authored-by: Cursor <cursoragent@cursor.com>
App writes for timbre/BPM/transpose/style were refreshing LCD and
reloading tone packs on the 768B BLE recv stack, causing overflow and
crashes. Route heavy work through MSG_ID_BLE_* into the UI task, and
notify App when the device changes rhythm style.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the status-bar outline+fill with the 0918 lightning battery bitmap while charging, and fix Pre-Build git version script UTF-8 decoding on Chinese Windows.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply Accomp_ApplyDefaultIChord before SyncStart on preamble, on soft power-on/mode enter/nav switch, and on pick fallback. Reset TM1629 key edge state so soft-off residual key_last cannot stick a prior fret.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use Stop_AutoBand (engine stop + all-channel AllNotesOff) when changing nav mode, reloading tone presets, switching songs/progressions, or returning to mode select. Also fix AllNotesOff to address all 16 MIDI channels.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nav-bar mode switches bypassed the legacy TAB path that called all-on green, so LOOP_LIGHT red LEDs stuck until reboot.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match dual-bank tone ROM so accompaniment volume scaling no longer shares patches with the main string voice; bass program updated to 34.
Co-authored-by: Cursor <cursoragent@cursor.com>
Consume the same power-key hold used for soft-off charge boot before setting powon, and ignore stale POWOFF_CHARG after power-on so mode select stays on screen.
Co-authored-by: Cursor <cursoragent@cursor.com>
Settings showed only 关 because GBK 闭 was absent from CHS font tables; append WenQuanYi bitmaps for all sizes and keep the patch helper.
Co-authored-by: Cursor <cursoragent@cursor.com>
TMR7 high-prio watchdog and fault-loop emergency cut/reset so soft-off still works if the main loop or AutoBand ISR dies; skip start when preset load fails.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ignore TM1629 keys 0-21 in universal so pad no longer changes KEY_ID or arms OutTime_Stop; keep tap-tempo and stop. Clear stale KEY_ID/PressFlag when entering universal tab.
Co-authored-by: Cursor <cursoragent@cursor.com>
Exit piece mode before Postamble so universal chord loops can switch into the style outro stage once 3.bin has PostambleMIDI.
Co-authored-by: Cursor <cursoragent@cursor.com>
When switching from a longer title to a shorter one, the old gradient-only clear left uncovered glyph fragments outside the pill bounds.
Co-authored-by: Cursor <cursoragent@cursor.com>
Log Flash magic on load failure, expose RTT flash bin3, and document the 0903 pack offset for the universal bank.
Co-authored-by: Cursor <cursoragent@cursor.com>
The ROW_BG full-width fill over the universal row top corners showed as a second separator under the status bar; source art no longer needs it.
Co-authored-by: Cursor <cursoragent@cursor.com>
Matches 0902-07: restore is a drill-in row with thin > (ICON_CHEVRON), not the prev/next filled triangle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fixes the left-biased index+name layout, unifies index-name gap across rows, and shifts play-section numbers +2px per UI markup.
Co-authored-by: Cursor <cursoragent@cursor.com>
Point system-settings rows at the correct Flash icons, keep Main/UI alive across soft-off, and expose git build id for 01 0C with matching BLE tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace settings-hub mixer/gear bitmaps, and show Boot IAP screen from UI0902_FLASH_MODE in external Flash.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse the unused Language slot as BluetoothSW, sync top-bar icon from the saved switch, and keep factory restore defaulting Bluetooth to on.
Co-authored-by: Cursor <cursoragent@cursor.com>
Raise ascii_115 '4' to match '5' height, nudge auto-off digits down 2px, and align version box / restore chevron to the shared val_x2 right edge.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unfocused FillRoundRect left blue pixels from the prior gradient roundrect; erase the full card box to page background first.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use correct BT/restore glyphs and triangle steppers, put version periods on the baseline, and center auto-off minutes between the triangles.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a lighter gray-blue at 2px so top and bottom dividers stay matched and readable on the dark background.
Co-authored-by: Cursor <cursoragent@cursor.com>
Put the status divider at y=36 and start mode rows at CARD_Y=48 so Universal matches transpose/tempo tops with draft row height 88 and pitch 92.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bottom fill started at y=263 and erased the lower 2px of the r=6 roundrects, so bottoms looked flatter than tops.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep icon and % as one right-aligned group, and leave a 1px gap between fill and shell so they no longer touch.
Co-authored-by: Cursor <cursoragent@cursor.com>
Single-tap mode entry, hide top separator and row artifact line, center battery with vol/BT, and make % match digit height.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sync faders on shutdown and re-apply LoadConfig after DSP boot so
saved mixer levels and master pot stay consistent after power-off.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep L/R walls when generating the outline asset, tighten fill to the cavity, and nudge the icon up so the bottom edge is not clipped.
Co-authored-by: Cursor <cursoragent@cursor.com>
Always Send_volume in MainTask, re-apply after DSP settle, and sync vol_last so UI bar matches Dream gain.
Co-authored-by: Cursor <cursoragent@cursor.com>