- Device model: iPad Air 5th Gen
- Version of operating system: iPadOS 26.6.1
- Version of djay: 5.6.8
- Hardware/controllers used: Numark NS4FX via UGREEN Revodok USB-C hub
Expected behavior:
When connecting the controller, the initial state of knobs and faders is read and represented on the app UI as it happens when connecting to macOS. This also works fine with a FLX-4 on iOS, MIDI state is read upon connection.
Actual behavior:
The initial state of the controller is not read and thus the app has default values for each knob, fader and button until they are used at least once to read its current state, resulting in unexpected behavior.
I have tried connecting both directly and via powered USB hub with same result. I assume the FLX-4 uses a different MIDI implementation that iOS can poll upon connection, but as said, the Numark MIDI is initialized correctly on macOS djay pro.
Hi @_naeron_0, welcome to the Community! Thanks for the detailed report and setup info.
A few things that would help me narrow things down:
-
What firmware is your NS4FX running?
-
Does it behave any differently connected straight to the iPad with a USB-C cable (no hub), and launching djay after the controller is connected and powered?
-
Is it every control, or only some — for example EQs and trims but not the line faders?
-
Can you please capture and share a short video of this where you can see the hardware and you iPad screen at the same time?
Thanks!
- Numark does not provide any firmware info or updates for this controller, I guess it’s just PnP.
- No difference launching djay before/after connecting powered controller.
- Every control stays default value in app (e.g. vinyl mode off, all faders up, all knobs centred, etc.) until operated, and even then only that action is updated in app, all other remain default.
I tested the MIDI messages listened by both iOS and macOS comparing it with the FLX-4 connection.
| Device\OS |
macOS |
iPadOS |
| NS4FX |
djay sends MIDI SysEx Serato (7 bytes) and some Note On messages once. Receives full state and then sends SysEx Serato (13 bytes). |
No MIDI sent. No SysEx observed. Only receives single MIDI when control/note pressed. |
| FLX-4 |
djay sends MIDI SysEx (AlphaTheta 12 bytes) some Note On messages once. Receives full state and keeps sending same SysEx every 500ms. |
No MIDI sent. “Received roughly 12 events when opening djay, somehow retrives full state.”. No SysEx. |
At this point I am not sure if none of the monitoring apps I used let me see outgoing messages or SysEx sending is not allowed on iOS.
That’s a great bit of detective work @_naeron_0. Thanks! Your table answers the important part on its own. Even if a monitoring app on iOS can’t show you what djay sends out to the controller, you would still see what comes back in — and on macOS that’s the 13-byte reply plus the full state dump. Nothing comes back on iPadOS. So either the query never goes out, or the NS4FX never answers it. This should be enough to escalate, and I’ll pass this onto engineering for further review. If you could please capture and share a short video of this where you can see the hardware and your iPad screen at the same time that would also be helpful. Thanks again for the thorough testing on this one.
Thanks for the video demo @_naeron_0. This is very helpful. I noticed that you are using a USB adapter on your cable. This may not necessarily be a contributor to your issue, but I highly recommend that you avoid these adapters as they are notoriously unreliable for mission critical DJ setups. Eliminating this adapter by using a proper USB-B to C cable would be much better. I recommend that you purchase a high-quality, properly shielded USB cable with dual ferrites on either end.
1 Like
Thanks for the advice, that’s why I was using the powered USB hub for now, also to keep the iPad on charge as the ns4fx usb does not provide power line.
1 Like
You’re welcome. I would definitely use your UGreen hub over that adapter.
1 Like
I just did another test out of curiosity. I tried sending the Serato SysEx message from a separate app a couple times while djay is open on iPad and it effectively retrieves the state of all knobs, faders and even jogwheel screens info as it does in macOS. So that’s it.
1 Like
That’s the answer right there, @_naeron_0. Nice work! If firing the SysEx from another app makes djay pull in the full state, jog wheel screens and all, then SysEx isn’t blocked on iOS and the NS4FX is answering exactly like it does on macOS. I have passed this additional info onto our engineers. Thanks!
1 Like