SakeTami
tabletopaudio
tabletopaudio

patreon


SoundPad Broadcast Feature Sunset

Greetings All!

I'm making this post public as it pertains to all users of Tabletop Audio -- free, as well as patrons. The main reason I'm writing this is so I can quickly share this post with people who have questions about the feature (which I rarely get these days!)

Also, I appreciate that you may have suggestions etc but read on and I think you'll get where I'm at!

The TL;DR 

I'm sunsetting the broadcast feature for SoundPads for many reasons, but mostly because of server availability and the plethora of other options (Kenku, Voicemeeter Banana etc) that exist now, but didn't when it was launched.

I will keep it running as long as possible,  but it will eventually go offline when the free servers move or shut down.

The Long Version - (Only read this if you want the geeky details!):

In January of 2016, I got an email from a German RPG player and computer programmer named Merten. He and his gaming group were fans of SoundPad and wanted to use it remotely, but couldn't. So, he created a software mock-up of SoundPad broadcast for his group using a Firefox browser extension called 'Greasemonkey' which basically allows users to embed content (locally) on a web page in order to extend its functionality. When he asked if I wanted to check it out, I jumped at the chance.

Broadcasting of SoundPads was always on my radar, and was a feature that had been requested many times. The issue I had was that the I could never seemed to grasp the coding behind web-rtc (real time communications) and there seemed to be a) a dearth of information about it b) highly specific use cases that didn't interest me and finally, c) some seriously unimpressive examples.

Merten's technique was very clever. He didn't use web-rtc at all. In fact, SoundPad broadcast doesn't even broadcast audio.

Here's where I get a lot of the technical stuff not-quite-right, so bear with me. Hopefully the gist of it will come through.

Tabletop Audio Broadcast works by basically by using a text messaging protocol called XMPP. When 2 computers are connected using some basic websockets code (BOSH and Strophe I believe) and have the same SoundPad loaded, the 'broadcaster' plays a button, which sends a tiny text message that is received by the client computer. The software on the client end reads the message and interprets it as 'play x sound'. Unlike real-time voice communication, there is no need for perfect sync.

At this point, it was working quite well. We want on like this for 3-4 years.

Issues started to arise when our XMPP host provider decided they were only interested in enterprise level clients, so my comparatively tiny amount of SoundPad based messages weren't worth it to them. The same thing started happening with other providers as well. The free options we tried worked fine when they were working, but it was fairly common to get disconnects so we had to come up with another solution.

The solution, like most of this partnership, came from Merten. He had a small Linux server at home in Germany on which he had installed an XMPP server using the ejabberd software. We were concerned about the load and bandwidth that he would be personally maintaining so we decided to monitor it closely for the first few weeks. When it seemed like it wasn't going to melt down - actually it was fairly low-overhead, we relaxed a little.

And this is how it went for the next couple of years until, finally a bunch of things happened.

First, was that the ejabberd project went end-of-life and was no longer being updated with later versions of Fedora Linux (which Merten used for his other work). The second, was that Merten is a seriously busy person. During this entire collaboration he was working full time building software tools in assembly for corporate clients, and finishing a PhD. I don't think I ever asked him if he still had time for RPGs!

I ported the code over to a new free server at chatterboxtown.us which seemed to be fairly stable -- it ran ejabbered on Ubuntu which, I guess was still being maintained. And That was that. It's been like this since June 2023. Broadcast still works, although I don't test it too much any more and I've stopped getting emails about it.

With the rise of Discord, and various apps and plugins to stream from that platform, plus virtual audio cables like Voicemeeter Banana, Sonar, Kenku FM, and others it all seemed like the technology had caught up and our little hacked together solution was becoming less and less viable. While there were still feature enhancements we could have made (including adding broadcast to the Custom SoundPad, there simply wasn't enough interest and these other tools had proven more than capable.

Broadcast is still running and probably will be until the latest server disappears. I have no idea how much it's being used, but I'm letting you all know that it's probably not going to be around forever and the good news is, there's so much better tech for this out there now that none of you should really mind.

Thank you all, as always, for your continuing support.

Best,

Tim

SoundPad Broadcast Feature Sunset

Comments

i am one of the few that use Soundpad broadcasting! use it for several games, so i use it weekly. a great feature but totally understandable for it getting sunsetted.

Timmy

So you use Tabletop Audio soundpads in Kenku?

Timmy

I honestly use kenku more than anything myself. The sound pads, i integrate into my foundry, and music i play locally because foundry's long-term audio sync is unreliable, so Doesn't super affect me personally, but i wanted to chime in in case folks are iffy on it, that Kenku is SIGNIFICANTLY easier to configure than VMB, and not to be afraid to give it a go as a substitute when the server finally sunsets. Really cool story and very impressive technical tool at any rate. Sucks they went for enterprise only :\ but anyway, Thanks for so much great music and hope this tip helps somebody.

Dan Gragert

I read the title and thought: "Wow, I didn't realize you could create a Soundpad for Sunset, but I guess Tim is a creative guy so๐Ÿคทโ€โ™‚๏ธ"

Jeffrey P


More Creators