I built a radio streaming site a couple years ago (https://pianoradio.org) and I’ve recently added some new features to it. True, the Internet really doesn’t need another radio streaming site. That fad ended about 10-15 years ago when streaming services like Spotify took over. However, I use Piano Radio quite a bit myself because it fills a niche I wanted.
I originally created it because I love piano music, and I like discovering new artists. However, with Spotify and all the other streaming sites, while they’re good for artist discovery, I don’t like the lack of control over the mood or type of the piano music I listen to. Sometimes I want lively piano music. Or maybe Christmas music. And then I like to play soft piano music while I sleep. Eventually sites like Spotify start veering off course and gives me louder stuff I don’t want to listen to that wakes me up. This one doesn’t.
There’s some unique features you don’t see with other services that set it apart:
PianoRadio.org contains not just labeled artists, but also YouTube-only artists. This is a newly added feature. There’s so many talented pianists with quality recordings on YouTube, and I wanted to make sure they’re included, too.
The radio station is customizable by your own preferences, unique to the genre. There’s a mood slider created with a formula using Spotify data and audio analysis. You can also specify if you want to listen to solo piano, piano + instrumental, Christmas, sacred, and classical music. There shouldn’t be any vocal tracks on any of the songs. It’s all instrumental.
Any artist indexed by the site has their own custom radio station featuring just their music. For example, here’s my own station: https://pianoradio.org/Justin_K_Reeve/listen
There’s a downloadable Android app. It looks just like the site, but it’ll let you play music in the background while your screen is off or you’re in another part of your phone.
And if you just want Christmas piano, there’s another version of the site, too: https://christmaspiano.org. Same database, just filtered to only include Christmas piano music.
For those who like technical details, here’s some more information:
I’m not actually hosting any music. A YouTube or Soundcloud player runs in the background. If it’s discovered a track is no longer available, it’ll get deleted, and the site will attempt to locate a viable YouTube or Soundcloud alternative track regularly until it finds one.
Only the main radio player has customization features. Artist-specific stations can’t be customized currently. You’re just listening to the same song everyone else would be listening to at the same time.
If you are listening to the main radio station, your chosen customization settings translate to a bitmask that, combined with a date-based random seed, determines the daily playlist. So if you change your settings then go back to your original ones, you’ll jump into the original playlist at the correct time index of whichever song is scheduled to play. And so will anyone else listening to the radio station with the same settings.
A logarithmic formula determines how many songs by a single artist can potentially be in the daily playlist. This is designed to promote lesser-known artists so they get some airtime, too.
The app is self-updating to an extent. It will regularly update its collection of artists’ tracks based on Spotify and YouTube data, and crawl YouTube to find new artists. It also tries to locate their Facebook, Bandcamp, Instagram, and other personal sites they may have, plus sheet music collections of their work. Admittedly, this part still needs some work as it’s not completely hands-off since I like to review anything before it gets officially added, but it generally does produce decent enough results for many artists.
The site is extendable to other music genres by just adding a new model that describes how you want to organize songs, and how to display the settings page. Here’s a couple other examples I’m still working on: https://metalradio.xyz & https://epicmusic.stream — again, same codebase, but completely different artists, albums, and tracks, and the customization settings are completely different. I’m working on a couple others, as well as an artist/album/song search engine all the sites can use.