Commit Graph

259 Commits

Author SHA1 Message Date
yuquanjun f116e17529 chore: bump firmware to 0.2.28 and refresh release pack metadata
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 08:12:26 +08:00
yuquanjun 4bfe3ca008 fix(free): preserve expert chord/transpose across mode switch
NavBar no longer forces I after stop; remember context before leave and prefer saved fret chord on no-fret pick.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 08:05:50 +08:00
yuquanjun 3c01dc8c28 fix(free): remember last fret chord in expert and free modes
Shared last-chord memory; no-fret pick in free mode plays that chord.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 07:59:56 +08:00
yuquanjun 9ae3f5ec5e fix(free): keep expert fret chord (e.g. VI) for no-fret pick
Do not force I on free pick; reuse last expert KEY_ID / remembered chord after mode switch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 07:53:57 +08:00
yuquanjun a322ed369c fix(ram): pack Global.c statics to fit SRAM (was 8 bytes short)
Shrink even-beat stop tick to 32-bit and fold univ/expert/free flags into single bytes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 07:47:15 +08:00
yuquanjun e7c9cd91f1 feat(free): allow pick start without fretboard using expert-stop key
Normal-mode pick with no fret held applies the last expert stop transpose, starts on I, and arms even-beat stop if idle.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 07:43:46 +08:00
yuquanjun 5c30baef89 feat(universal): pick starts with preamble then loops section 1
Exit piece for AutoBand Preamble, then enter piece RunVar0 with loop so the intro is not repeated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 06:57:01 +08:00
yuquanjun 3a09db55ee fix(led): start boot light show with LCD logo
Init TM1629 before POWER_ON and run the color sequence during the logo dwell instead of after mode select.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 06:46:43 +08:00
yuquanjun 15a647d8b4 feat(led): match prototype boot light show Blue-Cyan-Red-Cyan
On POWER_ON, fret-side LEDs follow the sample-unit '开机彩灯' sequence instead of jumping straight to solid green.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 06:39:00 +08:00
yuquanjun 3c102a918f feat(ui): use 0923 status-bar Bluetooth on/off icons
Replace the old 11x17 glyph and gray slash with dedicated on 13x20 and off 19x20 assets from the 0923 pack.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 06:15:10 +08:00
yuquanjun 3b0f5479ba feat(amp): BLE SysEx R/W for AD85050 CH2 EQ RAM and I2C scan
Expose 0xA0-0xAE via 07 00/01 nibble-coded frames, add RAM helpers, and host scan/test scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 06:14:56 +08:00
yuquanjun c480e96a3f chore: refresh git_user_fw_ver for 0.2.22 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 08:39:49 +08:00
yuquanjun 96fd815ca9 fix(band): cut intro and endings in immediately
Normal and expert modes no longer wait for the next bar before preamble, interlude, outro, and ending. Universal mode ignores those keys. Bump firmware to 0.2.22.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 08:39:39 +08:00
yuquanjun 93e633472a fix(xpose): allow neck transpose in universal after pick hold-up
Universal TM1629 path dropped keys 0-21 before BP_Transpose. Route pick-hold neck keys to transpose, add RTT pick hold inject and a HIL script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 07:43:46 +08:00
yuquanjun 6d01d2cbb1 fix(mixer): ignore section keys and lock the grabbed fader
TM1617 keys injected fake touches at y=255 which slammed mixer sliders to 1. Lock the pressed fader until release and shrink overlapping hit boxes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 07:23:08 +08:00
yuquanjun cb4443f0e4 fix(led): use identity colors on universal progression lights
Loop_Light_Handle was hardcoding red for every measure; map L1-L7 to the same R/G/B/yellow/purple/cyan/white table as App guide LEDs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 07:08:48 +08:00
yuquanjun 04abc2e1be feat(ui): tap status-bar Bluetooth icon to toggle power
Hit area on mode/home/settings hub; off state uses gray icon + slash until a disabled asset is ready. Syncs system setting and NVM.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:42:04 +08:00
yuquanjun d00f570e2f fix(band): soft-stop on stop key so immediate pick can start
Stop key no longer calls AutoBandTop1_Stop (library eats the next Start). Soft mute + tick gate runs on MainTask; cold start skips redundant Stop when already clean.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:42:03 +08:00
yuquanjun 4b8e676033 chore: refresh git_user_fw_ver for 0.2.21 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:41:49 +08:00
yuquanjun 4716c87b5c release: bump firmware to 0.2.21
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:41:05 +08:00
yuquanjun ef41eb30fa fix(chord): song-mode LED no longer overwrites chord map (6m/Am -> AM7)
Problem2: in song mode UI shows 6m(Am) but MIDI played AM7
(E2 A2 E3 G#3 C#4 E4). Root cause: BL_Set_led wrote the LED frame's
chord code into chord_type_index_map of the group middle key
(LED_L6 -> key17), so a guidance frame carrying 0x02 (M7) turned the
Am key into AM7. Remapping on the chord page only helped until the
next LED frame.

- BL_Set_led: light LED only, drop all chord_type_index_map writes;
  chord quality is owned by map page 02 03/02 04 (BT_Chord_offset_map)
- handleReadRhythmMap / Return_Light_buff: fix type->protocol read-back
  encoding (m7->0x0A, M7->0x02, ad9->0x04, m7-5->0x0B, sus2->0x1F,
  sus4->0x1E), re-landing the 0917 verified fix
- BT_Chord_offset_map: accept dominant-7 doc code 0x0D (legacy 0x13 kept)
- tests: test_chord_map_fix.py (16/16 PASS on device),
  test_fret_positions.py, test_problem2_song_am.py (7/7 PASS:
  post-LED strum stays E2 A2 E3 A3 C4 E4)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:40:51 +08:00
yuquanjun 6d064cb53e chore: refresh git_user_fw_ver for 0.2.20 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:53:30 +08:00
yuquanjun cd32b4120b release: bump firmware to 0.2.20
Low-battery shutdown below 6.2V with tip screen and 10s soft power-off; UI0902 includes LOWBAT_TIP fullscreen asset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:53:30 +08:00
yuquanjun 1b1b9b196d feat(power): low-battery tip screen and auto power-off below 6.2V
Stop all sound, show UI0902 LOWBAT_TIP fullscreen, then soft-off after 10s. Skip while charging; speed up ADC sampling near empty. Pack new tip bitmap into ExtFlash UI0902 map.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:53:13 +08:00
yuquanjun f740b6fba0 chore: refresh git_user_fw_ver for 0.2.19 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:23:26 +08:00
yuquanjun 878f3b41f1 release: bump firmware to 0.2.19
I/II+#F overall -12 transpose mapping; free-mode keeps all fret LEDs green (no LOOP_LIGHT). Carries 0.2.18 free even-beat stop, KEY_ID wind-down, universal outro, and expert local-song continue.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:23:09 +08:00
yuquanjun 0a2b4a1c92 chore: refresh git_user_fw_ver after xpose/LED fixes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:18:31 +08:00
yuquanjun a80c2216ea fix(free): keep all fret LEDs green during normal-mode playback
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>
2026-09-21 17:18:30 +08:00
yuquanjun feb084699c fix(reg): apply overall -12 for transpose >= #F on I/II too
Match 转调说明 table: C~F keep normal register; #F~B lower bass/chord by one octave for all fret degrees. III+ register fix unchanged. RTT pitch test covers I/II+#F.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:18:30 +08:00
yuquanjun ada2031e38 chore: refresh git_user_fw_ver for 0.2.18 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:53:50 +08:00
yuquanjun f135027647 release: bump firmware to 0.2.18
Free-mode even-beat release stop; keep fret KEY_ID during wind-down so register octave does not jump up before stop. Also includes universal outro all-green LED and expert local-song continue after section+fret.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:52:58 +08:00
yuquanjun 158c02d27b fix(free): stop accompaniment on next even beat after fret release
In normal mode, releasing the fretboard now finishes the current beat-pair (beat 1→end of 2, beat 3→end of 4) instead of cutting immediately.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 15:23:10 +08:00
yuquanjun 8fa5220b82 fix: universal outro all-green LED; expert local song keeps playing after section+fret
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>
2026-09-21 15:13:53 +08:00
yuquanjun 7ebb7cf265 chore: refresh git_user_fw_ver for 0.2.17 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 07:20:31 +08:00
yuquanjun 56a5a253ca release: bump firmware version to 0.2.17
Include Type-C charging battery icon and BLE timbre/style UI sync fix already on develop; add RTT midi/string inject helpers for mic pitch calibration. Tone pack remains 0916_bank.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 07:18:44 +08:00
yuquanjun 6a1395a112 chore: refresh git_user_fw_ver after BLE sync fix
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-19 19:07:23 +08:00
yuquanjun 287c3f6799 fix(ble): sync timbre/style UI via UI task to avoid hardfault
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>
2026-09-19 19:07:23 +08:00
yuquanjun fd58637e9d feat(ui): show charging battery icon when Type-C is plugged
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>
2026-09-19 17:58:33 +08:00
yuquanjun fb64ada557 chore: refresh git_user_fw_ver for 0.2.16 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 16:20:01 +08:00
yuquanjun e721c8e67c release: bump firmware version to 0.2.16
Stop accompaniment on mode/song switch; restore all-green LEDs when leaving universal; default pick/preamble to current-key I chord after soft boot.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 16:18:52 +08:00
yuquanjun 3274c7d4fb fix(play): default pick/preamble to current-key I chord after boot
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>
2026-09-17 16:18:14 +08:00
yuquanjun 6c8a3a3d3b fix(play): stop accompaniment fully on mode and song switch
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>
2026-09-17 16:05:13 +08:00
yuquanjun bf1a539e44 fix(led): restore all-green fret lights when leaving universal mode
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>
2026-09-17 16:00:17 +08:00
yuquanjun 4f83ed52ec chore: refresh git_user_fw_ver for 0.2.15 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 14:03:16 +08:00
yuquanjun ca0244d0d5 release: bump firmware version to 0.2.15
Dual MIDI bank (accomp bank0 / string bank1) + toneRes 0916_bank; keeps local-song mid-play and power-on KEY_ID fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 14:00:01 +08:00
yuquanjun 30af9c75ed merge: feature_bank dual MIDI bank + toneRes 0916_bank into develop
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 13:59:17 +08:00
yuquanjun 7909a4f882 chore: refresh git_user_fw_ver for 0.2.14 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 07:12:49 +08:00
yuquanjun 8a8c7ec377 release: bump firmware version to 0.2.14
Local-song mid-play fret/pick no longer Stop+Start (avoids AutoBand silent fail); soft-off power-on resets KEY_ID/PressFlag/StartFlag so pick starts at degree I.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 07:11:09 +08:00
yuquanjun 064fabf249 fix(power): reset performance state (KEY_ID_1629/PressFlag/StartFlag) on power-on after soft-off
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 07:06:20 +08:00
yuquanjun dc5b7f4391 fix(expert): local song no Stop+Start while playing (fret change / re-pick)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 07:05:04 +08:00