Commit Graph

225 Commits

Author SHA1 Message Date
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
yuquanjun 1201d9f9d0 fix(ui): further darken top/bottom separator lines
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 20:06:47 +08:00
yuquanjun dd55181937 fix(ui): darken top/bottom separator lines
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 19:43:03 +08:00
yuquanjun fe034e3ffe chore: sync git_user_fw_ver after 0.2.14 bank rebuild
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 18:39:27 +08:00
yuquanjun d4c35b8b90 chore: refresh git_user_fw_ver for 0.2.14 bank build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 18:38:00 +08:00
yuquanjun ba00940135 fix(midi): bank1 bass program is 33 not 34
Align Timbre_index with the Dream bank1 table.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 18:37:45 +08:00
yuquanjun d11d217b02 release: bump to 0.2.14 with toneRes 0916_bank
Repack ExtFlash from Doc/音色文件/0916_bank; BIN3 stays at 0xA7437 (2.bin length unchanged).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 18:32:13 +08:00
yuquanjun 11efccc19e feat(midi): select Dream bank0 for accomp, bank1 for string timbre
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>
2026-09-16 18:29:48 +08:00
yuquanjun 125eb00aa3 fix(power): prevent charge-boot long-press from auto power-off
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>
2026-09-16 15:10:34 +08:00
yuquanjun 65b0a84c4a chore: clean git_user_fw_ver id for 0.2.13
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 21:02:20 +08:00
yuquanjun 35d4cc28af chore: refresh git_user_fw_ver for 0.2.13 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 21:01:56 +08:00
yuquanjun 6fbeaa4881 release: bump firmware version to 0.2.13
Ship expert fretboard continue for local songs and tone resource pack 0915.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 21:01:30 +08:00
yuquanjun 5f41af27e7 fix(expert): 专业模式仅按指板即可续奏下一和弦,无需再拨片
App 连机专业模式下,起奏后按亮灯指板即可继续播放:
- 本地曲目(App 和弦曲目)/段落停止时:指板键投递 MSG_ID_BP_KEY 给主任务,
  走与「指板+拨片」完全相同的 Pick_Handle 起奏路径(扫描线程内直接
  Stop+Start 会无声,主任务上下文正常),Pick_Handle 内 Return_Light_buff
  通知 App 亮下一节
- 节奏库播放中:保持说明书行为,仅 Note_On 换和弦音 + Return_Light_buff
- 去掉 Last_Tm1926D_Key 去重:相邻两节可能是同一和弦键,松手再按必须能续奏
- 新增 Band_TrackPlayTick/Band_IsPlaying:8ms 周期跟踪 AutoBand PlayTick
  判定伴奏是否进行中
- 抽出 Expert_StartWithChord 公共起奏函数,拨片/指板共用
- tools/_test_expert_fret_restart.py: 指板续奏 RTT 回归测试

HIL 验证: pitch reg OK=41 FAIL=0; packs 9/9 PASS

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 19:13:10 +08:00
yuquanjun 2d9f234a7d chore: refresh git_user_fw_ver for 0.2.12 build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 22:10:36 +08:00
yuquanjun 61caeb7407 release: bump firmware version to 0.2.12
Include autoclose 关闭 glyph fix and recent normal-pick / HIL / flash-tool work in the release tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 22:09:09 +08:00
yuquanjun eed22d4b8c fix(ui): add missing 闭 glyph for autoclose 关闭 label
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>
2026-09-14 22:07:57 +08:00
yuquanjun c6be9fe88b chore: refresh git_user_fw_ver build id
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 21:49:37 +08:00
yuquanjun 8ac13ce6e9 tools: add MCU + ExtFlash ALL.res flash helper
Script flashes APP via J-Link then streams ALL.res over RTT flash all; include a minimal loadbin command file for APP-only updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 21:49:37 +08:00
yuquanjun cae4eb84a1 test: clearer BLE scan FAIL; RTT reset; longer UI ACK timeouts
Report missing Smart Guitar MIDI as an explicit FAIL instead of parse noise, reset target when opening RTT sessions, and give ui boot/charge more ACK time for LCD draws.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 21:49:37 +08:00
yuquanjun 4c6e2122ed fix: normal rhythm pick via piece; ACK UI before LCD; flash-busy power guard
Require fretboard in normal mode per manual; use SetPiecePlayMode for 1.bin. ACK ui boot/charge before full-screen draw, add RTT flash all and tone pick free, and skip soft-off while ExtFlash transfer is busy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 21:49:16 +08:00
yuquanjun d06e44bcb3 fix: keep power key alive on hang; refuse play when tone pack missing
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>
2026-09-14 20:19:45 +08:00
yuquanjun f8aeb4fb7c release: 0.2.10 — tone pack 0914 (BIN3 after 2.bin), autoclose label 关闭
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 19:37:57 +08:00
yuquanjun 7fa2f5f1c4 release: bump firmware version to 0.2.9
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:27:04 +08:00
yuquanjun 6da7d4d627 test: stabilize HIL suites — inter-suite reset, async tm1617 inject, ACK-first
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:16:11 +08:00
yuquanjun eb1e5cbe84 fix: map Finger bass timbre to MIDI PC 33 per tone table
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:59:01 +08:00
yuquanjun 28970fddf0 chore: drop committed __pycache__ and ignore Python bytecode
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:05:49 +08:00
yuquanjun a495717883 test: unified K1 HIL harness + RTT inject hooks (tm1617/adc/bin2/sticky)
tools/k1_harness: one CLI over existing COM/BLE/RTT scripts covering
App SysEx 01-06, BLE smoke, TM1629/TM1617 key inject, 1/2/3.bin pack
checks with pick/outro regression, and UI nav (log status/TAP/DUMP).
Unified PASS/FAIL/SKIP/SENT markdown report to Doc/reports.

firmware hooks in app_log.c: 'tm1617 key N', 'adc key N on|off',
'tone bin2 [idx]', 'chord key N hold' (sticky inject survives physical
idle scan so normal-mode pick tests can hold a chord).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:05:17 +08:00
yuquanjun daee47a457 tools: add BLE/RTT/pick test and flash helper scripts
- ble_log_pull.py: pull field logs over BLE (midi/uart transport)
- rtt_flash_log_dump.py / log_decode.py: dump and decode RAM/flash logs via J-Link RTT
- _test_normal_pick.py: semi-automated normal-mode pick regression (RTT + physical pad)
- _ble_channel_matrix.py / _probe_ble_rtt.py / _usb_midi_sysex_probe.py: GATT/BLE/USB-MIDI diagnostics
- build_artist_kit.py: package artist tone kit
- flash_boot_app_v024.py: flash boot+app images

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 14:58:11 +08:00
yuquanjun f841d9e7b1 Normal mode: pick sounds held chord; release stops accompaniment.
Require left-hand pad held (PressFlag) before pick starts; skip the default I-chord fallback in normal mode. Release (key 0) stops AutoBand immediately instead of looping.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 12:55:22 +08:00
yuquanjun 713a768733 Disable fretboard chord/stop side-effects in universal mode.
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>
2026-09-14 12:36:39 +08:00
yuquanjun 24261942d8 Map universal section-4 to Postamble outro and share AutoBand_StartOutro with ADC.
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>
2026-09-14 12:24:35 +08:00
yuquanjun 1cf6562236 Add bass/chord register mapping with RTT inject and bin1/3 probes.
Intercept AutoBand MIDI by channel (bass ch8, drum ch9), add chord-key RTT cmds, and ship scripts to verify 1.bin/3.bin pitch rules on device.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 21:21:11 +08:00
yuquanjun 91b270d856 Revert "Lower accompaniment by one octave for #IV and V-VII chords."
This reverts commit 439ccf439d.
2026-09-11 14:59:23 +08:00
yuquanjun 439ccf439d Lower accompaniment by one octave for #IV and V-VII chords.
AutoBand ignores input octave, so shift engine MIDI output by -12 for those chords (except drums) to keep the range from low #IV up to natural IV.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 22:08:09 +08:00
yuquanjun 2d62e1e41a Stop drawing status volume bar on mixer page to avoid erasing the back button.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 19:29:47 +08:00