Heyo; a quick plug for something I wrote today in case anyone else finds it useful. Something like it may already exist but I couldn't find a good solution so decided to crack out the SDK and fix it quick
This is a general plugin that feeds the currently playing track's metadata - title, album, artist, etc - as a JSON fragment into a piece of global windows memory that can then be read by other apps. Hooks and reacts to IPC_CB_MISC_STATUS, so only updates when the app state changes.

I structured it like this so that it was easy to hack on doing things with the metadata without having to recompile the plugin or always work in C++. An example C# 'receiver' app is provided as a demo.
So - in my specific case - I could get track info formatted into some files constantly for use with OBS, when streaming some music + MilkDrop viz. The demo app takes in some config like the below and emits metadata into specified files.

.. as I say, it was written quickly and I may be making Winamp faux pas in the code, but so far it's working out great.
This is a general plugin that feeds the currently playing track's metadata - title, album, artist, etc - as a JSON fragment into a piece of global windows memory that can then be read by other apps. Hooks and reacts to IPC_CB_MISC_STATUS, so only updates when the app state changes.

I structured it like this so that it was easy to hack on doing things with the metadata without having to recompile the plugin or always work in C++. An example C# 'receiver' app is provided as a demo.
So - in my specific case - I could get track info formatted into some files constantly for use with OBS, when streaming some music + MilkDrop viz. The demo app takes in some config like the below and emits metadata into specified files.
example metadata from Winamp -> receiver.exe -> OBS labels -> YouTube Livecode:
{
"Configs" :
[
{
"Formatting" : " V%discNum% | %trackNum% - %title% ",
"FileTarget" : "D:\\now_playing_1.txt"
},
{
"Formatting" : " %artist% ",
"FileTarget" : "D:\\now_playing_2.txt"
}
]
}

.. as I say, it was written quickly and I may be making Winamp faux pas in the code, but so far it's working out great.
Comment