Commit Graph

  • 20e9d4a08d cal_max 950 main ash 2026-07-09 07:30:47 +00:00
  • 8aad6fdccd Reduce cal_max to 1000 ash 2026-07-09 07:28:03 +00:00
  • 3558bb1050 Reduce cal_max to 1050 for full 0-127 MIDI range ash 2026-07-09 07:24:58 +00:00
  • cadb29f234 Reduce exp pedal cal_max from 1180 to 1100 to reach 100% MIDI ash 2026-07-04 05:20:20 +00:00
  • f055bad4ac Proportional catch-up: send midpoint per update (fast convergence, rejects ±1 jitter) ash 2026-07-04 05:17:48 +00:00
  • 1dec81e329 Rate-limit exp pedal: step ±1/update, stationary jitter ignored ash 2026-07-04 05:15:09 +00:00
  • 17def39f93 Remove hysteresis (smoothing handles noise); values now step ±1 per update ash 2026-07-04 05:11:47 +00:00
  • 4f58d4b8e6 Exponential smoothing on expression pedal ADC (factor 8) to filter noise ash 2026-07-04 05:05:35 +00:00
  • 33c9dd10c0 Send CC 0 on release (MIDI Learn fix); flash_latency=0 ash 2026-07-03 22:32:24 +00:00
  • dfa339a9b9 Merge branch 'bugfix_tempo' ash 2026-07-03 08:43:01 +00:00
  • 4aec064f3c Startup animation iterates in pixel pairs (0+1, 2+3, ..., 8+9) ash 2026-07-03 08:41:26 +00:00
  • 39326e3247 Startup animation iterates in pixel pairs (0+1, 2+3, ..., 8+9) ash 2026-07-03 08:41:26 +00:00
  • 88fee54f96 Remove beat 1 differentiation - all beats flash white 50ms ash 2026-07-03 08:36:14 +00:00
  • 868c5eda82 Auto-detect time signature from SPP deltas (bar boundaries) ash 2026-07-03 08:32:03 +00:00
  • d7f9bb16fd Fix beats_per_bar linkage (remove static) ash 2026-07-03 08:26:48 +00:00
  • b3f4eb1a8b Add SPP (Song Position Pointer) detection - uses SPP on START to set correct tick position. Add beats_per_bar (default 4) with button combo: hold 10 + press 1=4/4, 2=3/4, 3=6/4 ash 2026-07-03 08:22:47 +00:00
  • 3226986709 Capture tick 0 (last_beat=UINT32_MAX) so downbeat is not skipped ash 2026-07-03 08:13:08 +00:00
  • e1507d5d7c Beat 1 = % 4 == 1 (last untested offset) ash 2026-07-03 08:09:35 +00:00
  • 3c5e0b07ae Try % 4 == 2 for beat 1; latency 55ms ash 2026-07-03 08:07:24 +00:00
  • 9d1a2fdc87 Shift beat-1 detection to % 4 == 3 (was off by 3 beats); latency 60ms ash 2026-07-03 08:04:40 +00:00
  • 7c93839f94 Bump flash latency to 50ms ash 2026-07-03 08:00:03 +00:00
  • 907279e1ea Make flash latency tunable at runtime via 'latency N' serial command ash 2026-07-03 07:57:31 +00:00
  • df1f678845 Add 20ms flash latency to compensate for audio buffer (flash was ahead of beat) ash 2026-07-03 07:53:04 +00:00
  • b859527169 Beat 1 = RED (100ms), other beats = WHITE (50ms) ash 2026-07-03 07:50:16 +00:00
  • ad977d3b09 Beat 1 = yellow, other beats = white — visible color contrast ash 2026-07-03 07:46:26 +00:00
  • acd3cc51fe Beat 1 (every 4th) = full white 50ms snap, others = barely visible 6,6,6 — sharp contrast for phase detection ash 2026-07-03 07:43:26 +00:00
  • eb5d66d29b Clean baseline: skip tick-0 flash, first flash at tick 24 (first beat boundary) ash 2026-07-03 07:40:53 +00:00
  • 354f18efe7 Beat 0 (first beat after START) full white, subsequent beats dimmer — marks bar downbeat ash 2026-07-03 07:27:06 +00:00
  • eda2a959dc Remove time signature assumption — all beats equal brightness ash 2026-07-03 07:25:58 +00:00
  • 53752365b8 Debug: beat 1 (downbeat) full white, other beats dimmer (64) — visually identify phase ash 2026-07-03 07:25:21 +00:00
  • ea45c927e7 Fix clock latency: process one USB packet per update() — no more batch-processing 0xF8 bursts ash 2026-07-03 07:19:05 +00:00
  • 72496d2daf Fix MIDI clock phase: handle 0xFA START to reset tick counter to downbeat ash 2026-07-03 07:13:38 +00:00
  • 1a70cbe870 Fix duplicate/stray code in midi_task function ash 2026-07-03 07:05:56 +00:00
  • ec0cdc9438 Fix midi_tick_count declaration and 0xF8 detection: add proper extern + transport clock parsing ash 2026-07-03 07:04:40 +00:00
  • 9d2872a513 Fix pixel 6 beat timing: align with actual MIDI beats using tick-based counting (24 ticks per beat) ash 2026-07-03 07:00:02 +00:00
  • c83a500b3c Fix pixel 6 beat timing: align flashes with real-time beats, not just MIDI ticks ash 2026-07-03 06:55:50 +00:00
  • a483eebd84 Add comprehensive README documenting project architecture, features, configuration, and customization ash 2026-07-03 03:57:17 +00:00
  • 06479f0ca2 Fix orange 0xFFAA00->0xFF6600, pads 8-9 white->purple ash 2026-07-02 07:04:22 +00:00
  • 66058a6722 Set per-pad LED colors with dim off state ash 2026-07-02 06:45:42 +00:00
  • 4ddb9a00bf Reduce cal_max 1220->1180 to absorb ADC jitter at toe ash 2026-07-02 06:40:30 +00:00
  • c44bfb033b Fix button-to-MIDI latency: remove blocking serial, reduce debounce, faster loop ash 2026-07-02 06:22:23 +00:00
  • 0d22769cf6 Tweak cal_max: 1239 -> 1220 ash 2026-07-02 04:24:29 +00:00
  • 9197294365 Increase pedal read rate: 20ms -> 5ms ash 2026-07-02 04:21:53 +00:00
  • 2cf49b8deb Calibrate expression pedal: cal_min=36, cal_max=1239 ash 2026-07-02 04:19:30 +00:00
  • f6c0a01a14 Fix expression pedal pin: 5 -> 4 ash 2026-07-02 04:17:30 +00:00
  • f0b6df1477 Remove serial cal commands, just log raw ADC on each value change ash 2026-07-02 04:14:39 +00:00
  • 8bde8efaff Add expression pedal calibration: cal min/cal max ash 2026-07-02 04:09:22 +00:00
  • 08d6fc8701 Add expression pedal support on GPIO5 (CC 4) ash 2026-07-02 04:00:06 +00:00
  • 1bf2ea9f2f Swap init order: USB before BLE to avoid PHY interference feature_bluetooth ash 2026-07-01 07:13:47 +00:00
  • 00337559ac Add BLE diagnostics: controller status, MAC, advertising result ash 2026-07-01 07:09:30 +00:00
  • 9ba48b3f9c Roll back to 2d3a5a9 + CONFIG_BT_ENABLED + double-init patch ash 2026-07-01 07:06:45 +00:00
  • 01eaf9ce80 Fix enable-after-Arduino-init: always try to enable ash 2026-07-01 07:01:39 +00:00
  • c26116a7ef Set CONFIG_BT_ENABLED + re-add double-init patch ash 2026-07-01 06:57:19 +00:00
  • fec2ea1db2 Move all MIDI processing to Core 0 ash 2026-07-01 06:51:48 +00:00
  • 762500e227 Fix BLE crash: move all NimBLE calls to Core 0 ash 2026-07-01 06:46:15 +00:00
  • 62d1e430d5 Switch from NimBLE-Arduino to ESP32-BLE-MIDI library ash 2026-07-01 06:34:36 +00:00
  • 1517eda13e add CONFIG_BT_ENABLED to sdkconfig.h for proper BT RF calibration; patch NimBLEDevice.cpp to skip controller init if already done by Arduino framework ash 2026-07-01 06:11:28 +00:00
  • 855c97d8c6 revert to NimBLE-Arduino v1.4.0 (v2.2.3 caused button crash regression); restore v1.4.0 callback signatures, service->start(), and setScanResponse ash 2026-07-01 04:47:22 +00:00
  • 993a09fa7c fix v2.2.3 API: update callback signatures (onConnect, onDisconnect, onWrite) and remove deprecated service->start() ash 2026-07-01 04:30:50 +00:00
  • 18844c17c0 upgrade NimBLE-Arduino to v2.2.3 for proper ESP32-S3 support; fix setScanResponse->enableScanResponse API change ash 2026-07-01 04:27:22 +00:00
  • 7530772acd add adv->setName, remove diagnostics and ext adv flag; revert to stable ash 2026-07-01 04:18:00 +00:00
  • 94567e3485 fix: NimBLEDevice::init() returns void, remove bool check ash 2026-07-01 04:02:04 +00:00
  • beb59da3e0 add init() return check, controller status, and MAC address debug ash 2026-06-30 22:07:06 +00:00
  • 2d3a5a9031 queue MIDI sends with delay(1) to avoid race; force legacy advertising ash 2026-06-30 21:59:55 +00:00
  • 72a10fa13a add TinyUSBDevice.ready() guard in send_cc to prevent crash ash 2026-06-30 13:55:53 +00:00
  • d8c109d9e5 remove setName and health check (caused crashes), add isAdvertising() check ash 2026-06-30 13:14:19 +00:00
  • 5ee5949420 add adv->setName(JOC Midi) and health check to restart advertising ash 2026-06-30 12:55:29 +00:00
  • 8515963e07 pre_build.py: remove CONFIG_BT_ENABLED from sdkconfig patching (fixes BT pre-init conflict with USB) ash 2026-06-30 12:34:00 +00:00
  • e2db658037 TEST: disable BLE init to isolate button press crash ash 2026-06-30 12:12:50 +00:00
  • 8833e08c0a add debug prints before switch read and in process_switch_event; skip MIDI sends ash 2026-06-30 08:54:00 +00:00
  • 3e92d6bb7c swap init order (USB before BLE), add USB ready check and debug prints ash 2026-06-30 08:48:04 +00:00
  • be8b0dc22d add debug prints around button press to find crash location ash 2026-06-30 08:35:47 +00:00
  • 6038b3bf58 remove health check - back to exact source of working commit 6e3173c ash 2026-06-30 07:59:07 +00:00
  • 1f7bdc1e3a revert setName, keep health check ash 2026-06-30 07:55:10 +00:00
  • af6fd2dc26 fix: add adv->setName, add periodic health check to diagnose invisible BLE device ash 2026-06-30 07:44:04 +00:00
  • 6e3173c9b8 fix: remove manual 0x2902/CCCD descriptor creation - NimBLE auto-creates it for NOTIFY characteristics; asserts on manual create ash 2026-06-30 07:37:48 +00:00
  • d19d1acbdd chore: add granular debug prints around BLE characteristic/descriptor creation to pinpoint crash ash 2026-06-30 07:31:34 +00:00
  • a21c7bf4d3 fix: remove manual BT controller pre-init - NimBLE-Arduino 1.4.0 already handles ESP32-S3 internally; double-init caused ESP_ERROR_CHECK abort ash 2026-06-30 07:24:34 +00:00
  • 6a737bcee2 fix: patch nimconfig.h with #ifndef guards for ROLE defines to eliminate redefinition warnings ash 2026-06-30 07:15:14 +00:00
  • 323bc072ee fix: remove redundant ROLE defines from pre_build.py, suppress -Wno-macro-redefined ash 2026-06-30 07:09:15 +00:00
  • 13aef3b2a0 Init BT controller with ESP_BT_MODE_BLE before NimBLEDevice::init to avoid BTDM crash on ESP32-S3 ash 2026-06-30 06:59:32 +00:00
  • 68efe30682 Remove redundant manual BT controller init; let NimBLEDevice::init handle it internally with BLE-only mode ash 2026-06-30 06:49:43 +00:00
  • 2db09b76bf Add BT controller diagnostics, init BLE before USB MIDI ash 2026-06-30 06:43:58 +00:00
  • 8a36296043 Add sdkconfig.defaults for BLE, remove bad CONFIG flags, increase stack ash 2026-06-30 06:36:40 +00:00
  • eab0b76c9d Fix: NimBLEDevice::init returns void, remove bool check ash 2026-06-30 06:30:58 +00:00
  • 95d182cda6 Replace NimBLE2902 with createDescriptor for CCCD ash 2026-06-30 06:29:30 +00:00
  • c3bbf08768 Fix: use just NimBLEDevice.h, remove missing NimBLE2902.h ash 2026-06-30 06:25:25 +00:00
  • f5eca2c7bc Switch to NimBLE stack, add BT build flags, add error checking ash 2026-06-30 06:24:19 +00:00
  • 892e4fe061 Fix: on_receive public, explicit casts for narrowing ash 2026-06-30 06:19:10 +00:00
  • aea3a28206 Add BLE MIDI transport (feature_bluetooth) ash 2026-06-30 06:13:36 +00:00
  • ae2891fca8 Fix palette: entries 121-127 now visible (was black). Remove local flash. ash 2026-06-30 05:05:06 +00:00
  • d59e36a9a5 Add direct local LED feedback on button press ash 2026-06-30 04:58:22 +00:00
  • 063fa2065d Send visible palette index 21 (yellow) instead of 127 (black) so feedback is visible ash 2026-06-30 04:49:30 +00:00
  • 62b0604508 Map buttons to custom CC values with reverse-map feedback ash 2026-06-30 04:43:42 +00:00
  • 3389cc9403 Send CC instead of NOTE_ON for Loopy Pro generic mirror. Clean up flash_activity. ash 2026-06-30 04:38:28 +00:00
  • 1728413cb8 Fix NOTE_ON feedback: pass led_index to set_led_state ash 2026-06-30 04:17:18 +00:00
  • c57847db78 Remove flash_activity that was stealing focus to LED 0 ash 2026-06-30 04:14:07 +00:00
  • a4131adf2a Fix CC feedback: route to correct pixel by LED index ash 2026-06-30 04:04:37 +00:00
  • 3dc9e445be . Ashley Strahle 2026-06-30 13:53:22 +10:00
  • 1c1fc4d372 Remove heartbeat, relabel USB to JOC Midi ash 2026-06-30 03:46:31 +00:00