Discord Bot for Syrinscape to get Stereo Sound

I found a method of using Discord-Audio-Pipe to connect through to a discord bot based on the post from https://forum.syrinscape.com/u/chaimw on this forum back in may last year.

I created a youtube tutorial for this, and it produces superior sound to piping the output of the Syrinscape player directly to Discord through a mic or secondary computer using Voicemeeter or the streaming option.

Any comments or suggestions on the video are welcome, hope this helps someone out!

5 Likes

Does anyone have any idea why running the sound through a bot, rather than a second Discord instance, might deliver better sound?

I’ve been playing with Mac-based solutions with VB cable to pipe the Syrinscape player output through Discord and while it is workable the sound quality isn’t super.

I’m still veering towards that as a solution rather than getting everyone to install Syrinscape Online player. For a regular group it may be worth the pain but for a pick-up group or one-shot it definitely isn’t- it’s hard enough to get people going on Discord and Fantasy Grounds.

If this definitely gives better sound quality than the two-discord-instances solution I’ll have to look into getting that middle “VAC to Discord Bot” step going on a Mac, since the GitHub only has a windows EXE plus source code.

Cheers, Hywel

Hey @hywelphillips. I’m not sure if this will help as it is another “link” which players need to click on but I use it for all my oneshots and have good success. I know use obs.ninja. High quality, low latency stereo quality sound and super easy for the players. One link an they are done. You can do a lot more with it but for right now I’m using it only to stream sounds to the players. For me its worth it and I find it better quality than discord.

Just another option.

There are multiple points here to discuss, these are probably also reasons why Syrinscape would rather you use their player since it’s built to be premium quality sound. :slight_smile: Any additional information or correction someone can give would love to hear it. This is what I have gathered over the past 6 months trying to get this to work better.

  1. Discord has a pay model, where your free server runs at a very low 96kbps, this is fine for normal voice communication. So you have to boost your server to get anywhere near a good 256k ($400 a year)… or pay a lot of money to get closer to 384kbps ($900 a year). If you have a big community of people that buy Nitro, you can boost yourself into that high tier but it would have to be 30 people boosting your server.

  2. Discord has people on microphones as their normal input, so the input of a normal user in Discord is mono. There is no reason to have stereo input from end users since no one has a multiple mic setup to get stereo let alone surround of their environment (and honestly why would you).

  3. Discord bots come in at the highest quality (384kbps), doesn’t matter the server or it’s boost. They also come in stereo because bots were made to stream music or concerts or game play that could have surround sound coming through it. So it’s a reason you get the better quality sound through discord bot than as a normal user. Even if you boosted completely, you will never have stereo sound.

The good thing of the solution I found, everyone is in Discord with me, and it’s very easy for my users to get the sounds. If they get annoyed or don’t like the sounds, they will mute the bot. They don’t have to go to a link, they don’t have to go anywhere and do anything. Even if I told every player to go to a link and click play, I know at least a couple wouldn’t because they were not paying attention or something.

If you could find a Discord Audio pipe of some kind for Mac it would work. If you wanted to work on it also, the compiled version on that GitHub is for Windows, but it’s actually written in python and can be run on MacOS or Linux.

You can check the bottom of this page, and it tells you the dependencies for a unix system and how you get it running there, so it shouldn’t be too hard if you’re comfortable with command line.

2 Likes

Thank you lordgwydione, I’ll take a look… but…

I’m looking at running games at virtual cons like the upcoming Fantasy Grounds one. Discord seems to be about as close to a standard as there is for sound and video chat in the wider community. I use it for my regular gaming groups already so I will very likely stick with it. My main priority is to lower the barrier to entry whilst still delivering Syrinscape sound, since getting people up and running with FG is already a bit of a trial. At least if they also need to figure out Discord it’ll be useful to them to play other games :slight_smile: !

FG is non-negotiable for me because of automation and better GM tools, so going with the lowest common denominator of Discord for everything else - voice, video, chat and sound - is probably the better option for now.

The Syrinscape online player delivers very high quality results, but even some of the players in my regular groups don’t bother with it every week. For example, if playing on a dodgy internet connection from a relative’s house via FG on a creaky old computer and Discord on their phone or iPad.

The new solution I’m trying is two Discord instances, on different Macs, one transmitting just my voice and one transmitting Syrinscape output. So players can get 80% of the Syrinscape-online-player-experience with 5% of the effort, just via Discord, and still control music and DM voice volumes separately.

Cheers, Hywel

Hi Amerisun that’s very helpful, I didn’t know that bots automatically stream at 384 kbps. I’ve boosted my server but only to level 1. The sound seems adequate when there’s only my two instances playing, which I’ve been doing in testing, so it’ll be interesting to see what my players think of it compared with the Syrinscape Online Player solution this week.

I’ll look into getting the Discord Audio Pipe running under MacOS. I’ve not actually run python under MacOS yet but have some command line experience so it’ll hopefully just be a matter of having some time to look into it.

As you say the good thing about the Discord solution is that it is very easy for the players, and allows independent control of Syrinscape and DM voice volumes. My experience with players not getting the sound stuff set up is similar to yours, and that’s for regular sessions. For one shots I really need to reduce the setup overhead for them as much as possible!

Cheers, Hywel

Like you I boost my server once to get the next level of boost, and had 2 computers running, one laptop using Virtual Audio cable and directly acting like a normal user. The settings I had to do in discord (turning off noise cancelation, etc.) helped but the sound still was not great and would cut out for me now and again.

With this new setup, I only need my main PC and no longer need the laptop and the sound quality is so much better. You don’t realize it until you can put them side by side and listen.

Completely understand. Yes, the way your are handling is certainly how the majority handle and I’m 100% aligned to make it easiest for players. Good luck!

Hmm. I’ve got 90% of Amerisun’s solution working. Just missing the actual sound.

Annoyingly, I’ve definitely got VB cable working (because I can send Syrinscape output to Discord that way via a second instance). I’ve got the Python script running, it can connect to my Discord server, and the VB-Cable control is showing a signal, connecting it to the bot doesn’t produce any sound output :frowning:

That may mean the python script isn’t being allowed to access the audio (Mac OS Catalina is very restrictive that way and I’ve not played around with Xcode or command line stuff for a while in MacOS).

Weirdly, the bot shows a green outline in Discord so it is SUPPOSED to be producing some sounds. But… silence. I’m monitoring it on a separate Mac just via discord, so that’s what my players would be hearing. That’s a real head-scratcher.

Don’t suppose anyone has any super-duper Mac-specific ideas?

Cheers, Hywel

I was reading some posts that the Mac should be asking for permission for the application to “allow access” (either Discord-Audio-Pipe or Python possibly) so that Python can have access system resources. Maybe doing something they said which was to reset PRAM would help? Please research before you go doing this, I have no idea what it is but people are saying if Mac acts weird you run this to reset a bunch of things. Like it not asking permission for Python or Discord-Audio-Pipe script to have access to devices.

Original Post I found:

PRAM Reset here:

Wow! Thanks so much for this. I was at the top tier Discord, which is expensive, using the 2 instances of Discord and still some of the more complex sound sets came out robo squirrel despite the channel being set to 384k bits.

With this though they are coming in perfect, and I just dropped down to the base subscription on Discord.

3 Likes

Thanks for the pointers but it doesn’t seem to be that. I reset Mic permissions, re-ran the bot script, and it correctly asked me for mic permissions which I granted. Still no sound output, still the green box showing discord thinks the bot is active but still nothing to hear (and I can still hear it if I just pipe the VB Cable out to a normal Discord voice channel)

I tried it on an older Mac (10.13) but couldn’t get the Python script working correctly.

But I had a realisation - I was being stupid. There’s no reason the bot needs to be running on the Mac I run FG from, or indeed on any Mac at all. So I’ve set it up on a Windows laptop that’s just acting as a conduit for the Syrinscape player output. All the heavy lifting (Discord video feed, Syrinscape control panel and FG) can be on the Mac and the laptop is just acting to pipe Syrinscape player output to the bot. Very neat.

Now it works nicely and it does give better sound for sure than a Discord voice channel.

Cheers, Hywel

2 Likes

Thanks for sharing this and for all of the testing and notes you have all been doing. There’s some great stuff here and really helpful for people who prefer to use Discord over the Online Player :slight_smile:

2 Likes

Just to finish off with the happy ending, ran my first game for one of my regular groups using Amerisun’s method. It was a great success. The sound quality is still maybe a tiny bit down on Syrinscape online player, but the sum total of what the players need to do is to adjust the bot’s volume in discord to their taste- and much easier for them to manage changes in volume with scene changes, because they’ve got Discord up on the their screens for the video chat feed anyway. It’s one less thing to take up screen space or to need to be minimised, maximised to change volume, minimised again, etc…

As I think we all know, it’s usually better to put the weight of the technical solution on the DM’s side and make it as simple and streamlined as possible for the players. For one-shots in particular this is an excellent method.

For Mac users it is a pain that I couldn’t get it working under MacOS, if anyone else does do let me know (I’ve done very little command line hackery under newer versions of MacOS).

I’m probably not the only person who has a low-powered Windows machine sitting around that can be pressed into service, though, and it does solve the problem of feeding sound to players very elegantly.

So thanks everyone for your help and especially Amerisun for the method, much appreciated!

Cheers, Hywel

1 Like

I just set this up myself to test it and I’m anxious to test out the quality but really easy to set up and this seems like a great method to get good quality sounds and not have the players have to click any links outside of discord. Really well done.,

1 Like

It works great with the full client as well. I used it tonight with the full client instead of the online player using the same instructions of piping the sound to the virtual output and sounded fantastic tonight.

Thanks again.

2 Likes

Works well, thanks.
Interesting thing to note is that I have other audio pipes from my Go XLR, both output and input. The bot can only choose from input pipes, microphones etc. but no outputs, chat, stream, etc.

I have installed the dap-2.2-win64 app, created the bot and have it on my discord server. I followed all the instructions in the youtube video, but when I start dap-2.2-win64 it says “Token error, No token provided”.

The token is in the same location as the exe and has the correct token pasted in the text file named token.txt, I have regenerated and recopied the token string but that doesn’t help.

If anyone has any suggestions please let me know, I am very excited having this on the verge of working.

Davecan, Be sure that you have file extensions on in Windows, or else your file might be named token.txt.txt (because file extensions are hidden by default).

I have dark mode, but showing the view tab and the checkbox for “file name extensions”.

2 Likes

That was exactly what the problem was. Thank you, your awesome!