The right kind of music can enhance the atmosphere of a scene a lot. Since my RPG sessions tend to be rather dynamic and have unexpected turn of events, whoever is controlling the music doesn’t just need a good selection of music, they have to react to changes in mood or scene pretty quickly as well. That’s why, as a GM, I’m always happy when a player takes care of this. Once you get into it, it might be an easy extra Benny to earn!
Cueing tracks
I use Farrago to control music, which makes it much easier for me than e.g. digging through a folder with YouTube bookmarks or a music library in which I somehow have to connect the track names to the purpose I’m using them for.
Farrago is a macOS app by Rogue Amoeba, who have been creating excellent audio applications for quite some time. Basically, it’s a soundboard that lets you trigger sounds. Every sound can be customised: Colours, names, emojis and notes helps you finding the right sound quickly. The built-in editor lets you quickly make some adjustments like cuts and fades. The volume slider lets you set what volumes should correspond to the two master volume levels you can quickly switch between and also which of these is the default for this sound.
There are two main modes to trigger sounds: “Grid” is more like a soundboard, while “List” is very much like a playlist.

My setup for our regular pirate game. I have one set for general scenes and one for specific, recurring places.
In grid mode, get four options for playback: Background music is best set to “loop” which – you probably guessed it – makes the sound run in a loop instead of stopping when it reaches the end. “Solo” stops every other playing sound (or song), which is also very convenient for music. “Pausable” decides what happens if you start the sound again after having stopped it: Should it play from the position you stopped it, or start from the beginning? “Hold” makes the sound play as long as you hold the button (or mouse click) which is a nice feature for specific sound effects (e.g. for audience applause).
It’s called “grid” because you drop your sounds into a grid that corresponds to your keyboard buttons – and yes, it respects your layout. This is a very quick and visual way to set triggers for your sounds, which I found rather clever.
In list mode, every entry is meant to played on its own. You get a bit more screen space to see your notes about the entry, and you can quickly switch between the entries with the arrow keys, starting the selected entry with the return key (which then stops whatever was playing before). “Queued” plays an entry once you trigger it while “Continuous” plays one sound after the other the way you set it up, also offering a Crossfade time.
Since you probably want more than one playlist and your keyboard only has so many buttons, you can define sets that can be grids or lists and switch between them with Command + 1-9. Or you can use MIDI, OSC or a Stream Deck for the controls! It’s really quite versatile.
I nearly exclusively use the Grid view. I can see the list view for more detailed and linear parts like a long introduction or a scene in which the players aren’t present, but I rarely work with those elements.
Streaming music online
If you’re all meeting in person, you just need to connect your computer to a nice set of speakers and you’re done. If you’re playing online, you need a way to stream it to your players.
The simplest way is to just loop your music into your mic input and send both that to whatever you’re communicating with. On macOS, Loopback (also by Rogue Amoeba) offers a pleasing interface and intuitive interface for that. But that means your mix between your music and your voice is fixed, meaning the music might be too loud for some players and too quiet for others.
To solve that, you might connect with one user with just your microphone input and with another user with your music input. In most modern audio / video chat applications, the players can now set individual volumes for both signals or mute the music if it is too distracting for them. That’s especially relevant if the Internet connection is acting up at some point in the chain.
In the end, whatever you’re routing to the software will be modified by the software or service you’re using to communicate. Many of these software are optimised for human voices and efficient data usage – meaning your music will most likely be mono and sound tinny.
Some applications (e.g. Discord and Jitsi) have an audio share feature which offers somewhat better quality, but I was never really satisfied with the result.
Now, I’m using a server (provided by the fine folks of Uberspace) running Icecast and connect to it via Rogue Amoeba’s Audio Hijack. Audio Hijack is rather easy to setup for this, even though it offers a lot of functionality. The Internet Radio template already offers everything needed – pick the Application it should listen to in the “Application” block (Farrago, in this case), enter your connection credentials in the “Broadcast” block, select if you want to listen to it yourself in the “Output Device” block and then just click “Run”. After that, I only need to share a link to the players. They get the music in relatively nice quality in their browser and can set their volumes as they like. If they want, they can even use a dedicated client like VLC to listen to the stream. Also, they can be the DJ as well! I just need to give them the server address and the source credentials and they can play their music there.

The Audio Hijack Window. I can see a stylised waveform at the bottom to check if audio is transmitted.
Free alternatives
As you might already be able to tell, I’m a fan of Rogue Amoeba’s software. If you’d like to use free software or don’t use a Mac, there are other softwares to cue music and connect to the Icecast server. I primarily looked at Mixxx, which is free and available for multiple platforms. It is aimed at DJs, so the interface can be a bit overwhelming at first if you just want to play one track in a loop.
Icecast luckily is already free and open source!
Where to get sounds and music
I already have a bit of a sound and music library. Being able to stream what I want instead of what’s on a particular service’s public library is very convenient, so my music is mostly from Bandcamp. I saw quite a few RPG music collections and services, but haven’t checked them out in detail yet.
Thanks
- gettie from catto.garden for troubleshooting my Icecast service with me
- The Ubernauten from Uberspace for providing the server and helpful manuals
- Paul from Rogue Amoeba who got me interested in Farrago and made me give the whole DJing as a GM thing another go
- My players who are putting together sets and DJ for our games