Streamling Overlay app now supports VirtualDJ by Atomix Productions. Here's the setup instructions.
In Settings > Mapping > Keyboard > ONINIT, you need to make the following ONINIT action:
repeat_start 'streamling_loop' 2500ms & set '@$streamling_d1' `deck 1 get_artist_title` & set '@$streamling_d1_vump' `deck 1 get_vu_meter_peak` & set '@$streamling_d1_ia' `deck 1 is_audible` & set '@$streamling_d2' `deck 2 get_artist_title` & set '@$streamling_d2_vump' `deck 2 get_vu_meter_peak` & set '@$streamling_d2_ia' `deck 2 is_audible` & set '@$streamling_clock' `get_clock 24` & save_config
That's it. Streamling should now pick up your current track in VirtualDJ.
Note: this will save your VirtualDJ settings every 2.5 seconds. Hopefully this isn't a problem for you.
How it works: While VirtualDJ is open, every few seconds Streamling polls VirtualDJ's settings.xml. which now contains variables with the current tracks you're spinning and other details like their volume. If you're using both turntables, the loudest one (according to its vu_meter_peak) will be shown by Streamling Overlay. If a track isn't audible it won't be shown.
In theory, up to 6 turntables are supported, but you'd need to add work out the above ONINIT action, and extend it to add a bunch of d3, d4, d5, and d6 variables. Comment below if you try it.
If you have a suggestion for a better way of exporting text from VirtualDJ (using vdjscript) let me know. I found a forum post requesting a "log_to_file" command, which would be great, but the post was from 2015 and had no replies. The other option might be to make a VirtualDJ plugin in C/C++.
Happy VDJing.