Quick follow-up — connecting some dots between threads.
@kyleawayan’s djay-pro-bridge (see his thread “Created a ShowKontrol-like deck monitoring tool for djay on macOS”) reads real-time deck state from djay Pro through the macOS Accessibility API — title, artist, key, BPM, BPM%, elapsed/remaining time, play/pause, per deck. No database access at all.
@tfmeier — this might solve your problem more directly than watching the database: for MIDI triggering from live deck state, reading the UI sidesteps the whole “when does djay write to its tables” question.
For my phrase counter, it becomes the foundation: elapsed time × effective BPM = current beat, displayed as beat/bar/phrase with a countdown to the next 16/32-beat boundary. Works even with Apple Music tracks. The missing piece remains the first downbeat position, which lives in the database beatgrid — so my question about the current blob format still stands.
On that front, some prior art on GitHub: parabolala/djtools and xsaardo/Djay-Pro-2-Export-Tools both decode the djay Pro 2 database (tracks, cues, BPM). Has anyone tested these on current djay Pro versions?