So the other day, I mentioned something about Laibach’s new music video for their song “Love Is Still Alive” in Slack.
And I guess now I’m eventually going to do a vinylcast on Reclaim Radio.
But I didn’t want to go in not knowing what to do, so I spun up my own AzuraCast instance on Reclaim Cloud in order to get a feel for the software. And specifically how to do vinylcasting.
Part One: AzuraCast
Setup for AzuraCast was dead simple. Reclaim Cloud has an installer that sets up the Docker container and everything. I only needed to log in afterwards and set up my admin account and I was ready to go! I did look over one of Jim’s blog posts prior to running the installer, and took note that while the installer does throw an error, everything does appear to work as expected.
I did have to attach a public IPv4 address to the environment so I could issue an SSL certificate for the subdomain I pointed to the environment, rather than just use the default
*.reclaim.cloud subdomain. But the process to issue one was easy; it’s built right in to the application!
Once everything was running over SSL, I started working on the first station on my AzuraCast instance. It does require that something be there to play, so I thought why not the music I’ve made. At least then I don’t have to worry about copyright.
Uploading everything was a bit tedious, since Bandcamp downloads don’t preserve metadata, I guess. I had to, by hand, for each track, enter in all of the metadata and upload the album art. I probably could have used the “Bulk Media Import/Export” tool to help speed things up, but I have a good reason not to have done that.
I didn’t know about it until after I had made changes by hand for every track.
I created a “general rotation” playlist for each release (LP, EP, Demo, and so on) I uploaded, set their weight, and then lowered the value for “Duplicate Prevention Time Range” so songs would eventually repeat. This last setting was so the station would continue to stream rather than stop after it runs through everything in all of the playlists, since there’s more than 20 minutes worth of music uploaded here.
And then I just let it run. An embed for the station is below but the URL is: https://radio.chrisblankenship.cloud/public/chris_music
As of writing this, I’ve uploaded: Skumboyz’s
(‘z’s’z?) “Underage Thinking” LP, Toxitolerant’s “Demo 2022” (as well as a related playlist of outtakes from the recording of that demo), and both Einzige releases.
Part Two: Vinylcast
So for the part about actually streaming vinyl records.
I have a decent collection of vinyl records.
I also have a decent collection Raspberry Pis. Far fewer in number than my vinyl records, but still.
That number is four, and only two of them are in nice cases with heatsinks that make them suitable for more-or-less constant use. One is being constantly used as my home network’s primary PiHole server; the other is sitting by my old CRT TV as part of the project I described in the very first post on this blog.
I decided to repurpose the latter as part of this project, since (even though I have a secondary PiHole installation running on a VM hosted on my home server for redundancy) I need that ad-blocking. That, and don’t spend a ton of time these days browsing the web with lynx on my CRT. I’ll probably eventually get another one to set up there though. Or I may even try out one of Pine64‘s Rock64 SBCs (Single Board Computer) or instead of a Pi, because it’s still fun having that kind of setup. I can play my text adventure game on it!
I wasn’t able to find a decent command-line tool that I could (easily) use to stream audio from my Raspberry Pi to Azuracast; if you know of one please do let me know! Since Raspbian (Raspberry Pi OS?) includes a VNC server by default using a GUI application wasn’t that big of a deal. I did, however, run in to an issue when trying to set up a VNC connection through Remmina, but I was able to find a solution. Now with the Pi set up, it was time to start on hooking up the record player to it.
I’ve actually got two record players: one in my living room, and one in my office. My fiancee and I keep most of our records on a shelf below the one in the living room, which is useful when our friends come over and we want to listen to some music, and also when I want them to leave (which is easily accomplished by putting on a noise record). The one in my office is really just for me; for when I feel like grabbing an LP or a few 7″s and playing something in the background. Sure, I have the whole of the internet where I can listen to whatever I want, but sometimes I just need that warm crackle of vinyl.
Once again, it’s the latter that’s involved in this project. I ran a RCA-to-Aux cable from the record player’s Line Out to the Pi. Specifically into this little USB sound-amplifier I ordered from Newegg a while ago to record some Toxitolerant demos. While I’ve used it sporadically since, I think it’s found its new home as part of this project. If
they ever let me record another demo for us I ever need it again, I can always just unplug it temporarily; I mean, I won’t be streaming vinyls 24/7.
I looked at AzuraCast’s documentation on streaming software to see what I could use. Mixxx seemed to be overkill for what I was trying to do here, so I decided to use the simpler Broadcast Using This Tool. It works well enough and is pretty straightforward to set up (and is even included in the repos for Raspbian/Raspberry Pi OS), but I ran into some issues with trying to get everything sent via SSL. Since the Let’s Encrypt cert I issued for AzuraCast doesn’t cover the port I need to connect to, I actually can’t connect securely. However, since it’s a separate set of credentials from the admin account(s), and is only streaming audio, I’m not supper worried about it.
When I have more time (and get paranoid enough about security) I’ll dig around in Azuracast’s confs to see if I can hack something out to cover that port with the SSL cert as well. Or I’ll just frequently change the password.
I still need to play around with the EQ settings a bit more so the high end doesn’t sound so tinny, but what I’ve done (the basic EQ-ing, plus setting the channel mode to stereo and the streaming codec to FLAC) is good enough for now. I mean, hell, the stream actually comes through! I’ve included an embed for the vinylcast station below, but the URL is: https://radio.chrisblankenship.cloud/public/vinylcast
Streaming records is going to be fun!