I took a look at the Serato heartbeat script. Interesting.
I have only been using: [0xF0, 0x00, 0x20, 0x7F, 0x50, 0x00, 0xF7] (7 bytes), which has worked at keeping it alive, albeit I lose Serato sometimes when the script reloads, and Mixxx crashes.
But I see the serato heartbeat test script sends: [0xF0, 0x00, 0x20, 0x7F, 0x00, 0xF7], plus a second set of 6 bytes ever-so slightly modified: [0xF0, 0x00, 0x20, 0x7F, 0x01, 0xF7].
The keepalive in the test script is only 3 bytes [0xBF, 0x64, 0x00].
I gave these messages a try, and Serato mode would not initialize.
I think I need to sniff some USB and see what’s going on with the actual DJ Serato Pro software, so I can properly understand what’s going on. Maybe they have different init and heartbeat messages for different controllers.