Releases: bosai-dj/pyflx4
Release list
v0.1.0
First release.
Python control for the Pioneer DDJ-FLX4, in two layers: DDJFLX4 for raw MIDI, DDJFLX4Tools for DJ-shaped calls.
The point of it is the map. The FLX4's deck knobs sit at adjacent CCs (0x04, 0x07, 0x0B, 0x0F), so a mapping that is off by one control still emits valid MIDI at the wrong destination — trim moves the highs, "EQ low" sweeps the filter, and nothing errors. Every value here was cross-checked against the Mixxx FLX4 mapping and independently validated against hardware. PROVENANCE records the result per constant, a test fails if a constant has no stated source, and unverified() names the two values that could not be corroborated.
Other things that cost people an afternoon, handled and documented:
- Deck 2's pads are on channel 9, not 8. Channel 8 is deck 1 with shift held.
- Pads send a different note range per mode rather than a mode flag.
- The controller never sends note-off; release is note-on with velocity 0.
- Every analog control is a 14-bit pair, LSB exactly
0x20above MSB.
Both MIDI ports are injectable, so the 46 tests run with no hardware attached and assert emitted bytes rather than calls. The map imports without python-rtmidi, which matters on platforms where the bindings will not build.
Tested on Python 3.10 through 3.14.