Skip to content

The Battle for AI Airwaves: Radiant's Patrick Quinn vs. Spotify

Talking with the founder, Lead Engineer, and Community Manager of Radiant on AI, radio, Spotify copying the app idea, and how streaming did (not) kill the radio star.

Photo by Jacob Hodgson / Unsplash
In 2023, Spotify launched AI DJ, which is an imitation of a radio host playing songs and commenting on them. However, not many people know that the original idea of digitizing the “vintage” medium didn’t belong to Spotify.

Growing up with music and radio

Music has been a very significant part of my life growing up as it is for most people. I can't remember much of my childhood, but I remember events around music if that makes sense. So I can remember times when I was in the car with my parents and something would have come on the radio…

Radio gave an awful lot to the listener. It gave you not just music but also everything around the music — pieces of information that you wouldn’t otherwise know, connected you to the songs you were hearing. And it also told you about where an artist might be playing — so it helped promote an artist beyond just having exposure to them, gave you the background, and connected you to the artist as well as the song.

Alt=Radiant chat with Rad screenshot where Rad explains who sings Audioslave’s “Doesn’t Remind Me” and tells the user that the band’s lead singer died in 2017
In the recent version of Radiant, you can even have a chat with the DJ and ask him for more intel on the song — without having to switch tabs and go to Wikipedia for basic background info. Source: courtesy of Pat Quinn

The idea of streaming, when it really started to take off, was fantastic, right? You can get any song in your pocket at any time, I think it’s very attractive. But we lost an awful lot of what radio gave us by having every song available to us at all times. I wanted to recapture some of the pieces that made radio special but also bring in what makes music streaming powerful. So, I really tailored a radio service with the presenter over the top telling you about what you’re hearing, giving you facts, telling jokes as well as news broadcasts and those kinds of things, tying them all into your personal music taste. So, traditional radio is for everyone — this is traditional radio but just for you. That’s the core concept of Radiant.

The birth of Radiant

I’ve always wanted to marry my passion for technology with my passion for music. I did computer science as my undergraduate, and after that, I became an engineer and started a music startup in 2013. It failed but I learned a lot from that, and, obviously, it didn’t temper my passion for building music projects.

I got started on Radiant in 2019 and built it as the test for what advancements in text-to-speech technology could do in the context of music. At that time, I had a day job as a traveling technical salesman. So, in between my trips to see customers from my day job, I was slowly building up Radiant in a hotel. Eventually, I transitioned into this sort of engineer sort of salesman role I’m in today, continuing to build Radiant for almost five years now.

AI and the human touch

My early experiments with Radiant were an attempt to rehumanize the radio experience. But I quickly understood that it felt robotic and cold, although you still connected with the personality. So I took the Howard Stern-ish vibe of the 1980s’ and 1990s’ radio hosts who were very cheesy and cliche, and created a personality around those ideas.

I leaned into the idea that this is a robot. This is supposed to be cheesy. This is supposed to feel weird and uncanny but also cute and endearing because you’re capturing the things that made those cheesy radio hosts great. I’m also making it clear that this is a robot — the AI presenter will remind you of that all the time. So, you can kind of connect with something when you personify it without trying to pretend that it’s actually human. Uncanny valley is actually to our benefit — we’re turning the robotic element into a personality trait, as opposed to pretending to be something it’s not.

Sci-fi has that concept of the future being very robotic — and, after 1980s’ sci-fi movies set in the future, we’ve all wanted that! I don’t want Radiant to replace radio and human DJs — I want to augment the radio experience and maybe bring it back into relevancy in some way. It’s going out of fashion, and I’m hoping that technologies like Radiant will restart the narrative.

Alt=Radiant landing page screenshot with a tagline “A real radio DJ” and a mention that Rad is actually a robot but don’t tell him that
Even the landing page reminds you that Rad isn’t real. Source: Radiant’s official website

Another thing is that a large portion of Radiant user base is blind. The blind community has been a very passionate and vocal supporter of the project and from the very beginning has contributed significantly to Rad's development. As Radiant is a voice-first medium it makes some sense given it's quite similar to how blind users typically interact with apps through a screen reader. As a result, I've always built Rad with accessibility in mind.

Rad’s recommendation system

Radiant’s recommendation system is not giving you a song based on this song. We wanted to create an engine that could have you listening to music all day long, with the music changes reflecting time of day, place, and preference.

Alt=Radiant app screenshot with an explanation “You hear this song because the choice is based on your preferences and the current time: late Wednesday night, the criteria are low-energy and mellow”
Source: courtesy of Pat Quinn

The algorithm is built from scratch and it’s not particularly complicated, it’s similar to Spotify and Apple Music recommendation engines. It consists of three elements:

  • The first pass finds songs that match certain BPMs, modalities, and timbres that reflect a potential state of mind the listener might be in. However, this gives you a large radius to work from.
  • The second pass closes the radius via collaborative filtering — we’re bringing in other people’s music tastes.
  • The final component is an AI that sorts the music as though it’s a DJ setting the set. It finds music based on the metadata, and the metadata comes from contextual variables in real time: time of day, day of week, the place, the weather, holiday-related concepts, whether you’re moving or sitting still, and so on.

Let’s say, it’s 10AM, Sunday morning, the weather is sunny. There will be many factors affecting Radiant’s music choices. It would be something like: is it easy listening? Is it lo-fi? Also, the lyrics and how positive or negative they are. There is a valence score ascribed to each song. “Valence” defines the probability of a song being happy/sad, bright/dark, and so on, and it’s a combination of several factors like:

  • The sentiment score of the lyrics
  • The BPM of the music
  • Its modality with other variables in the mix
Alt=Radiant app screenshot showing “Song Explorer” giving more intel on a song “Another Seventeen” by florence road and explaining that it has poignant lyrics and explores themes of heartbreak and nostalgia
The lyrical analysis is also used for describing songs in the “Song Explorer” part of the app. Source: courtesy of Pat Quinn

We calculate the valence score with the help of public music metadata datasets from MetaBrainz. So, Rad chooses the music with certain “valences” that fit in the contextual variables and the listener’s preferences. For example, Bjork is where I’d start my Sunday morning, or at least where Radiant starts Sundays for me.

What we want to achieve with the algorithm is a playlist that flows as naturally as possible, in a sine wave motion that builds up and goes down in its tone, BPM, mood, and other features. It’s a hard problem to solve, and we’re constantly improving the algorithm.

The DJ and its personality

Back in the good ol’ days before ChatGPT, Radiant had what we called the personality index. It was built up of thousands of tiny components indicating what a Howard Stern-style radio DJ would say: song descriptions, catchphrases, transition phrases, stingers, bumbers. It’s basically reference data: “You can say stuff similar to this and that”. Then, these components were compiled into a thing that was going to be said between songs or as a greeting at the start of the show. Finally, that “thing” would be passed over to Google Cloud Speech that would generate the voice. It was very manual, we had to do a lot of work to generate all these tiny components, and it took thousands of hours to put that all together.

Now, with ChatGPT, we can just use the data built over this time and ask the algorithm to generate the infinite number of these personality quips — it’s so nice and easy I almost forgot we had the service before ChatGPT. We’re using some of its API pieces — for example, ChatGPT 3.5 for three of Rad’s personality components. We mostly use Llama 2, Facebook’s model, which we can host because it costs less. Llama 2 is for simpler parts and ChatGPT is for all the stuff that requires a bit more smarts.

The problem is, Rad gets fed so much data that it’s very hard to keep his personality stable and not go completely one way or another — but we managed to do it. I know what I want Rad to be, and it’s really hard to keep it in that place. There’s a lot of work put in guardrail prompts that prevent Rad from leaving the place.

For example, Rad is designed to be sarcastic and have a dark sense of humor. However, I have a number of times and places where I prompt him to not be disrespectful. If there’s a news story about the whole family dying, I don’t want Rad to joke about that. He can make jokes on the news stories but if it’s something tragic or serious like war, I want him to be respectful. Nobody's ever reported that what Rad said was grossly inappropriate, and I’ve never experienced anything bad myself from all the hours of testing. So, I’ll take it as a win.

Meanwhile, Spotify’s AI DJ sometimes (although playfully) insults listeners.

Spotify and plagiarism

Originally, Radiant only supported the Spotify integration. And, in order to monetize an app that’s built up on Spotify, you need their approval. We submitted our application so we could potentially start a subscription service, €1/month so we could afford to run Radiant. Spotify signed off an approval but didn’t give us the commercial approval. At that time, we didn’t realize that these approvals were different things. We started charging for Radiant. Spotify found out about us through a news article and sent us a kill notice. They took our application off their service, we got it back up, took away the paid features, and it’s been free ever since.

Radiant landing page screenshot with an announcement of Rad.FM Plus subscription that will include more features, better AI recommendations, and a better voice for the DJ
However, the paid version is coming soon, and will include, on top of everything, a better, more natural-sounding voice synthesizer since it’s more expensive to use. Source: Radiant’s official website.

I discovered that Spotify employees were using the application because I could see domains showing up in the sign-up metadata. Back then, I was quite excited about it. I thought that Spotify were interested in the idea. I also worked with individuals with connections to Spotify. So, I knew that the company was aware of Radiant but they never contacted me about AI DJ.

I was angry at the time, to be honest — and it wasn’t that they copied my idea. Companies do it to independent developers all the time. Yeah, it stings when a big company does this without even talking to you: they could’ve just hired me instead of going off and doing this on their own. But it was the marketing language they used to describe AI DJ — it really closely matched the way we talked about Radiant on podcasts, in news articles, on our website, and so on.

Especially the “just for you” tagline.

And it’s very irritating to see Spotify AI DJ take off in such a big way. I understand that Spotify have reach and I don't. But that I've built something that people are now loving but it's not my thing that they’re loving — even though my thing has more functionality and has been around a lot longer. I ended up dropping Spotify support and switched to Apple Music — its users wanted a DJ too. So it’s okay, even though I’m now rolling out to a much smaller population.

I’m less angry now than I was — and not just because enough time had passed. One of the pieces of feedback that I've heard is that Spotify AI DJ is not as good as people were hoping it to be. I've had people who went off to use this Spotify AI DJ, then come back saying: “Actually, your service is so much better!”. If anything, I’m disappointed with Spotify — they could’ve done it better. I think they have a handicap since they’re beholden to the music industry and labels who want them to promote certain songs. Meanwhile, I have no allegiances to any artist or label: I’m just playing the music people want to hear. That’s our benefit and differentiator that I can continue to grow. And, as they invest more in their DJ, I’ll keep on building mine — we’ll see who wins in the end.

Will Radiant go beyond Apple Music?

There’s a lot of engineering work that goes into supporting a streaming service, and every single service has a very wildly different way of exposing the same things over APIs. Spotify actually has a really good API — it’s very clear and crisp because they bought The Echo Nest back in the day. It was *the* music metadata API system that everyone used for projects like Radiant. Their API was so good that Spotify took it and made their own.

Apple, on the other hand, bought Beats Music. Their API was probably never meant to be external, and it’s not good. It’s basically Beats API with the Apple layer on top, and it’s very hard to work with.

I could support Deezer, Tidal, or any other streaming service, and I’m working on making things centralized so it’s possible — but there’s a lot of work involved. So, I’m looking at it but not right now.

Radiant and the ethics of streaming

The music industry is allowing streaming platforms to exist because they were created as a reaction to piracy. The problem predates streaming and the collapse of artists making money from music. But I’m not saying this is the right solution. There are other models we should try — for example, you get charged for every song you listen to even if it’s just a cent, and it goes straight to the artist. Models like pay-to-play should be explored.

I think that music streaming platforms have an onus to do a lot more for artists in terms of discovery, promotion of gigs and merchandising, anything they can. For example, give listeners notifications of local gigs where smaller artists perform, maybe even with a ticket discount on behalf of the platform itself. It’s because artists make more money from gigs than record sales, it’s the norm now.

I toyed with the idea of allowing people to upload music directly to Radiant and have a portion of the subscription fee go to them, musician-to-user. It's a hard thing to do unless we have over a million users which we don't yet. The other option is discovery through Bandcamp and allowing users to integrate their favorite Bandcamp artists into Radiant. That’s something I’m still looking at.

We do have gigs in Radiant, and we do suggest obscure local bar events in the app. We’re trying to change the situation, including working with not just Ticketmaster but other vendors like Eventbrite, Bandsintown, and so on. I will continue to support local and up-and-coming artists to the best of my ability. I personally listen to a fair amount of local Dublin bands — for example, florence road get heavy play time in my household.