In case you didn’t know, I currently manage Brayford Radio, which is the student radio station at the University of Lincoln in the UK. Studio time through the working day for us can be a little tricky to come by, and with Covid-19’s strict social distancing measures in place across the University, I’m guessing this isn’t going to make it any easier – hence why I envisioned a system where people can broadcast at professional-grade levels from the comfort of their own homes. So I set out to try and make this a reality to see whether such a thing is actually possible using equipment the average student would have (no fancy OB equipment here.)
A simplistic, easy to use system that allows people to seamlessly broadcast remotely with minimal hardware to a professional broadcast standard. (correct audio levels, no dead air.)
Remote Audio – how to do it?
I’ll start with the audio side of things, as the play-out side is more complicated. People that have a lot of tech experience or really know what they are doing could probably broadcast externally to a separate shout-cast/Icecast mount point if you had a couple spare and ran that kind of broadcast architecture. This would mean getting our broadcasters to install some kind of software (probably a freeware DJ suite like Mixx or VirtualDJ) and to be capable of some pretty advanced audio routing to an encoder – which isn’t very simple for new student broadcasters, especially as some of our team aren’t even on media courses – so, in short, I’m keeping away from that area.
From the beginning I envisioned something like Discord or Mumble – it’s reasonable quality (can be up to 128kbps for £8approx a month, 92kbps for free – Discord) – very easy to use and can even work in a web browser*. I’ll admit it sounds a little…. unprofessional perhaps? However Discord seems to be moving away from advertising ‘just for gamers’ and more towards the team chat dynamic anyways, so why not? a client to the free server could run on a studio computer and set to always transmit its audio to an open fader – then the remote broadcaster just needs to login to the discord server, push to talk – and you’d be effectively transmitting your microphone on-air. The audio from the playout machine can also be sent back to the discord server so the broadcasters can hear whats transmit in real-time, and the best part – because originally it was designed for gaming, it has near to nothing latency – perfect! (Don’t worry I haven’t forgotten about cleanfeed, it’s great for short term outside broadcasts – but I’m looking for something that’s more always on for multiple participants, which will make more sense in a little while.)
But how do I control the play-out software from home?
I’m aware of some systems that already exist, such as the obvious contender from Broadcast Radio – ‘Myriad Anywhere’ – In fact, I’ve even got one of the developers following me on Twitter which is nice! I believe It’s a free add-on at the time of writing if you run Myriad 5, however, we only used to run version 4 – which puts it a little out of our reach at the moment.
What I wanted was a good, web-based playout system – preferably one that can auto-schedule shows, links, VT’s etc. and has a mic input preferably (would make the above section obsolete. Spoiler alert, I didn’t go with one of them.)
Turns out, such a thing is really hard to find! University Radio York had the right idea and actually made a system themselves written in Python and Java TypeScript (and probably some other ingredients) which I admit looks really good! It’s open-source and available on GitHub here – however, according to one of the developers, the software is very heavily dependant on other services they run and would not run by just dragging and dropping the GitHub repo onto your own server. I get the impression it’s shared just for people to have a sneak peek at the code, rather to actually be installed for their own use.
(I’ve started a course on Ruby programming on LinkedIn Learning, but I fear by the time I’ve built a web-based system I would have graduated and left the station!) I still may try and run this on a spare machine to see what I can get it to do for fun, but we’ll see…
💡Idea 2 – How about we run a dedicated machine in a browser?
I’m very (I’m not sure how this happened) familiar with Windows Services and Microsoft RDP, so I started to try and make a remote playout machine. I had used a free piece of software called ‘RadioDJ’ before, and knew it had potential as a full automatic playout system for radio (it really is pretty good!) So with that, some Windows Group Policy tweaking to block out pretty much the entire rest of the operating system (mainly for security) and an RDP Gateway Server – which I actually ran on a Raspberry Pi via a Docker environment (to protect the actual machine from potential security threats – RDP is tricky business) and a nice enterprise version of SOPHOS – I made what I think to be a pretty solid remote control interface for radio.
With an RDP server, each user can be granted a limited access login to the same hidden machine – so nobody even needs to know the Windows login credentials for extra added security. I used VB Audio’s VoiceMeeter virtual mixer and VB Virtual Audio Cable(s) to internally route the playback output of RadioDJ to Discord (for audio) and Discord to RadioDJ. The software has a very handy ‘INPUT’ button that automatically turns down the media volume and fades up the mic input to level it, which is awesome for simplistic remote broadcasting – a feature that I don’t think many other software have?
Of course, you could mix it using the virtual mixer, but it can be a little fiddly. The problem here was the Microsoft’s RDP locks the remote computer (in this case the remote computer is headless with no monitor keyboard mouse etc. attached) at the end of every session, which in-tern causes the audio drivers to crash and for the feed to go off-air. You’d need to restart Voicemeeters audio service and Discord every-time a new person connects in, which was disappointing.
Working solution no.1:
Teamviewer would have worked, but it’s not cheap for non personal use, so I discovered Google’s Remote Desktop. Now the system is running nicely, and secured with Google’s AES/SSL Encryption – I believe this to be a real Remote OB potential. Going to open it up to closed internal testing with some of the team soon! Will update this as it happens. 🤘🏻
🔥A few minor issues..
Unless you have an audio interface of any kind with a direct monitor, presenters can’t currently hear what they are saying in real time, which is a little annoying – luckily I think most media people have some kind of dedicated microphone which can be ‘listen to this device enabled’ in Windows or direct monitored with an USB/Thunderbolt interface like the Focusrite Scarlett range.
Maybe we could look at getting microphones and mini USB interfaces loaned out to hosts through media loans at the Uni?
DISCLAIMER: These are experimental projects for educational use that may not even be implemented, I’m not responsible for anything that may happen if anyone tries any of this.
EDIT – I’m aware some links got left in some screenshots, but worry not – they’re all outdated and won’t work. 🙂
Got any ideas or comments – I’d love to hear them, drop a comment below ⬇️