Skip to content

Releases: bosai-dj/pyflx4

Release list

v0.1.0

Choose a tag to compare

@hchittanuru3 hchittanuru3 released this 05 Sep 10:27

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 0x20 above 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.