Displaying On-screen Music Titles in OBS via foobar2000

Update (November 23rd, 2023): Since first writing this, I’ve learned a bit more about MusicBee, which also has a plugin to display music titles and is slightly easier to set up by comparison. You can find out more here.

Getting Started

  • Install foobar2000
    • https://www.foobar2000.org/
    • foobar’s default display is a bit sparse. You can make it look a lot more pleasant with skins; I recommend a free skin called “Eole,” which is only a websearch away.
  • Install Skippy Rich’s Now Playing Simple foobar2000 add-on
    • https://skipyrich.com/wiki/Foobar2000:Now_Playing_Simple
    • Installation instructions are included with the download. Once you have foobar2000 set up, follow the included instructions and you’re good to go.
    • Side note: Newer versions of foobar2000, either 2.0 or 2.1, will not support 32-bit plugins, which may make this method obsolete in the future. This should still work with foobar2000 Classic, which is the 1.4 version that this method was originally tested with.

Displaying the Song Title and Artist On-stream

Add Now Playing Simple to foobar2000

Open up foobar2000, then go to Preferences > Tools > Now Playing Simple, then paste the following into the “Formatting string” field:

  • $if($and(%artist%,%title%,%isplaying%),      %artist% – %title%)
  • This will give you the following format:
    • Song Artist(s) – Song Title

Note: You can mess around with this format more if you want to add the album title or other symbols, but I recommend looking up how conditional statements work if you want to get more in-depth. The empty space is intentional; it puts additional space between the end of the song title and the start of the song artist when the text loops.

If you want the track title to update immediately, click the “Events” button and check “On every second.” This is useful for testing, but can be unchecked once everything is set up. The song title should automatically update whenever it changes.

Important: Ensure “Save to file” is checked, and that the text file that the add-on generates is saved in an easy-to-find location. We’ll need it in the next step for OBS.

Set the song title as a source in OBS

Under “Sources,” go to Add > Text (GDI+) to add a new text source.

Ensure “Read from file” is checked, then click the “Browse” button next to “Text File.” Navigate to the text file you created earlier in the Now Playing Simple add-on in foobar2000.

Play some music in foobar2000 if you aren’t doing so already. You should now see the title and composer of the song as described above displayed via your text source. If it says “No Music”, or the title isn’t changing, try pausing, stopping, or switching the song. It may help to go back to the Now Playing Simple add-on in foobar2000 and make sure “On every second” is checked under “Events.”

How to make the song title pretty and add cool effects

Some of this is just messing with the font, font size, or adding an outline, but you can also right click on the text source and select “Filters” to add different effects. It’s really up to you how you want to present the text at this point!

In my own layout, I do a few things to help the text pop:

  1. Add a “Text Scroll” effect via “Filters” to have the text constantly moving at a fixed rate. If you want text to scroll horizontally across the screen, set “Horizontal Speed” to whatever rate feels good to you. Make sure “Loop” is checked, too, or the text will only display once until the scene is reloaded.
  2. Create a second text layer that’s slightly offset from the layer above it to create a drop shadow or background effect.
  3. Use the “Transform” tool (right click on the Text source > Transform) to set it at an angle. Place the edges of the text box off-screen to create the appearance of a seamless loop.