Is MIDI the only method in which supported controllers are talking to and listing to the djay Pro software?

Is ALL the communication to and from controllers via midi? Or is there a vender back channel to handle ‘state’ etc for supported controllers.

I get that as a user we are probably limited to just midi.

Just trying to understand how the software seems to manage states so well.

I want to customize an existing supported cheap 2 deck iDJLIVE II controller.

Specifically I am looking at remapping the scratch/search button to toggle between middle decks 1& 2 default light on and outside decks 3 & 4 light off.

looks like TheRumbler has some good tips and places to dig via a thread called.
MIDI *output* mapping djay pro 2 - controller LEDs
https://irumble.com/djaymidimapping/

I will be checking that out.

At first glance it looks like i might not be able to do what I want to do because the button on the controller is always going to play the same midi note. I know MIDI is not flexible and a ‘while loop’ is out of the question.

Perhaps there is a way to combine two inputs or use output to know the state of Scratching mode i.e
Note F5 and Note D5 deck 3 toggle Play/Pause
CC 25 and Note D5 deck 3 toggle Play/Pause
Am i talking crazy talk here is is what want to do possible.

TheRumbler or DJDave or another midi guy know the answer?

Does the Controller of the app turn on and off the lights on the controller. A am assuming it is the app.