The codebase is being updated to meet 2019 standards. While the goal is too keep the master branch bug-free, I can't guarantee that everything works. Some minor features might be missing from the new version, and will likely be re-instated later.
The new version requires a recent version of NodeJS and a modern browser. NodeJS will later be bundled with the application (the application will be self-contained and can be installed without Git). The content below has not been updated yet.
Foobar2000 Web UI application consists of two parts:
A Node.js server that controls foobar2000 music player using native CLI commands and foo_controlserver component (a tcp/ip server for foobar2000)
A web application that allows the user to send basic foobar2000 playback commands and adjust application volume level. Information about the track that is currently playing is also displayed and automatically updated when the track or playback status changes.
Multiple devices can connect to the server using the local network, and it's up to the user to block unwanted connections. By default the foobar plugin and server allow any connection from the network.
Requires Node.js version 12+ and foobar2000 v1+. For older versions of Node (down to 0.10.23), see this tag. foobar2000 component foo_controlserver is also required. Download the component from Google code.
Since foobar2000 is only available for Windows, other operating systems are not supported for the server. User is assumed to run the server on the machine that foobar2000 runs on.
npm install
npm start
in terminalnpm test
in terminalWeb UI was tested on newest stable version of
Generally speaking only recent versions of modern browsers are supported.
Foo_controlserver doesn't update track status if it's playing a track it can't "follow". This happens if the user queues tracks from media library and not from a playlist, or "cursor follows playback" option is not enabled in foobar2000. Since this is a bug / missing feature in the component, I can't fix the issue.
I will add issues to the issue tracker for things that I'd like to improve or are not working yet.