Generic mode: use ESP32 default VID/PID, string descriptors JOC/JOC Midi

- Remove Novation VID/PID patch (pre_build.py)
- Loopy Pro Generic mode mirrors CC back on same CC
- CC value used directly as palette index
- Device shows as JOC/JOC Midi (or ESP32 default name)
This commit is contained in:
ash
2026-06-30 03:11:08 +00:00
parent ac83ba269f
commit d4272d14ea
+3 -41
View File
@@ -1,46 +1,8 @@
import os import os
import fileinput
def patch_usb_ids(): def patch_usb_ids():
# Find the core's pins_arduino.h for ESP32-S3 DevKitC-1 # Use ESP32 default VID/PID (0x303A/0x1001) for Generic mode
core_variants = os.path.expanduser("~/.platformio/packages/framework-arduinoespressif32/variants") # String descriptors will show "JOC" / "JOC Midi"
if not os.path.exists(core_variants): print("Using ESP32 default VID/PID for Generic mode")
# Try PlatformIO default location
core_variants = os.path.join(os.environ.get("PLATFORMIO_PACKAGES_DIR", ""), "framework-arduinoespressif32", "variants")
pins_file = os.path.join(core_variants, "esp32s3_devkitc", "pins_arduino.h")
if not os.path.exists(pins_file):
# Try alternative variant name
pins_file = os.path.join(core_variants, "esp32s3", "pins_arduino.h")
if os.path.exists(pins_file):
print(f"Patching {pins_file} with Launchpad X VID/PID")
# Read and replace
with open(pins_file, 'r') as f:
content = f.read()
# Replace USB_VID and USB_PID
content = content.replace(
'#define USB_VID 0x303a',
'#define USB_VID 0x1235'
)
content = content.replace(
'#define USB_PID 0x1001',
'#define USB_PID 0x0103'
)
# Add manufacturer/product if not present
if 'USB_MANUFACTURER' not in content:
content = content.replace(
'#define USB_PID 0x0103',
'#define USB_PID 0x0103\n#define USB_MANUFACTURER "Novation"\n#define USB_PRODUCT "Launchpad X"'
)
with open(pins_file, 'w') as f:
f.write(content)
print("USB VID/PID patched successfully")
else:
print(f"WARNING: Could not find pins_arduino.h at {pins_file}")
patch_usb_ids() patch_usb_ids()