I love listening to local radio stations - I get relevant weather and traffic information and good music (for the most part). Unfortunately, local radio comes with deficiencies - the audio quality is not crisp and clear. I can't skip tracks. I have to suffer through advertisements. The music playlist is based on the music director's likes (or popular opinion) - not my preferences.

Streaming radio addresses some of these concerns. The audio quality is superb. I can skip tracks. Algorithms can sometimes recommend music I might like. That being said, streaming services have their drawbacks as well. Often, the algorithms don't always get it right (especially for soul/r&b music). Played songs are typically limited to the most popular tracks (rare grooves, remixes, and deep cuts are ignored). And... there's something impersonal about it; there's no "relationship" nor does it feel like an "event" (e.g. - I've gotta turn on the radio from 7PM - Midnight to listen to the Mel Devonne on Love Zone).

What if we could take traditional radio - with the personalities, relevant information, and human-curated playlists and merge it with the innovations of streaming services - recommendations based off preferences and the ability to skip tracks?

That's my goal for Smooth Grooves - a streaming service built like a traditional radio station.

  • There are music blocks dedicated to specific sub-genres of R&B/Soul music
  • Each program has a DJ with a specific personality
  • DJs provide information on tracks, what's coming next, and information like weather
  • Music played is based on your likes
  • You can skip tracks

What it does

Smooth Grooves is a music skill that plays rhythm and blues, soul, down tempo, and pop. Users simply start the skill, and start listening to whatever program is currently playing. Each program has a distinct sound and personality, with unique "cards" (shows in devices with screens), interlude music, catch phrases, and a digital DJ, created with Polly Voices.

Morning Jam

  • 6AM - 12PM
  • hosted by Brian
  • upbeat songs (think: Earth Wind and Fire's Fantasy)

Soul Siesta

  • 12PM - 5PM
  • a mix of upbeat and mid-tempo songs (Bobby Brown's Roni)
  • hosted by Salli

Rock and Soul

The Hush

  • 7-12PM
  • the "quiet storm" format. Mid-tempo songs, ballads, with a focus on love and romance (Luther Vandross Superstar)
  • Hosted by Matthew Melvin, the Earl of Groove

The Afterset

  • 12PM - 6AM
  • Downtempo, Alternative R&B, future R&B (H.E.R's Could've Been)
  • Hosted by Joanna

Basic versus Premium Subscriptions

Users start with a "Basic" subscription. This entitles them to:

  • Playback on one device (at a time)
  • 4 skips an hour
  • Song playback limited to the "hits" and radio plays (e.g. -songs that you might typically hear on the radio)

Users have the ability to upgrade to a premium subscription, with unlocks the following features:

  • Multi-device playback
  • Unlimited skips
  • Full access to the music catalog - including album deep cuts and "rare" songs (remixes, live versions, out of print music)
  • less frequent DJ interruptions (approx once an 80mins versus once every 40 mins)

Users are periodically provided the option to upgrade and can ask about upgrades by asking "Ask Smooth Grooves what can I buy?". Users also get "teases" of what they are missing (Playback will occasionally include a deep cut with the DJ saying that this is a bonus track reserved for Premium members).

Users also have the ability to provide address information. This enables the DJs to provide periodic weather forecasts.

How I built it

The skill, and it's supporting "infrastructure" is made up of the following components

Alexa Skill

  • Leverages the audio player functionality to stream music
  • DynamoDB/S3 for storing music files, metadata, and user preferences
  • Integration with Polly and FFMPEG for creating AI disc jockeys, interludes, and station breaks

Content Management System


  • Scripts that upload music and properly log metadata (song, artist, title, album art)
  • Music Management System that allows me to curate each track with custom metadata fields (which are used for searching, recommendations, and tracking payments to ASCAP/BMI/SoundExchange)

Contant Rights

While not part of the system, per se, I did have to pay licensing fees for the music with ASCAP, BMI, ad SoundExchange

What's next for Smooth Grooves

  • Adding traffic alerts
  • Adding notifications on upcoming concerts, song release, etc - based on user preferences ("liked" songs and artists)
  • Weekend programs (Sunday Brunch - light jazz; Rappers in Love - smooth hip/hop)
  • Updated algorithms that take input from other sources in addition to user likes

A deep dive on my thought process around this skill

Note: This GOES DEEP into why I made this skill. The questions I get most of the time, when I talk about Smooth Grooves, are:

  1. How is this different from Pandora
  2. How much do the music rights cost
  3. How do you choose what's played?

Let's tackle each one.

How is this different from Pandora?

First, let me start with a few praises of Pandora. Their music genome project is ambitious and worthy of recognition. They still use real people to curate their music catalog... which gives their recommendations a level of refinement missing from other streaming services.

However, there are a few challenges. Their music catalog is limited, and they (justifiably so) focus most of their time/cost/efforts on pop and rock. That means their R&B/soul recommendations are limited and they don't go "deep" (there are a lot of hits and well known songs, but no deep cuts and remixes). I felt that Smooth Grooves could fill that gap.

The other major challenge is that I felt like Pandora couldn't predict my mood. at 9PM, I want to listen to slow jams. Often, Pandora would play something upbeat and inappropriate to the mood I was trying to set.

Urban R&B radio stations have adopted a format that is typically well accepted by its listeners. I wanted to adopt that framework for my Smooth Grooves (e.g. - when you play Smooth Grooves an 10PM, you're getting "quiet storm" music).

So, in many ways, it's like Pandora, with a few key differences.

  • No radio ads
  • Each music program focuses on a type of music, and is restricted to certain hours
  • Focus on deep cuts and remixes

How Much Do Music Rights Cost?

So, music rights are expensive. I won't get into exact prices, but I will say that covering performance rights and songwriters rights can cost upwards of $1000 a year.... and that's before you play for each individual stream (e.g. - you pay $0.X to play Janet Jackson's "Funny How Time Flies").

That being said, I'm willing to pay the upfront cost, based on the following:

  • I believe there is a gap in the marketplace for this skill
  • Alexa devices are perfectly built for music playback - especially if the playlist is already curated
  • African Americans (who might traditionally listen to this radio format) are a growing segment of smart speaker users

How do you choose what's played?

There a human side and a coding/computer side to it.

First, the human element: I've been listening to soul music since I was born. Some of my earliest memories are laying in bed listening to my dad play classic albums by George Benson, Patti LaBelle, Teddy Pendergrass, and other in the living room (the bass would shake the house!). So, over time, I amassed quite a music collections of soul music (along with jazz, and hip hop, with some rock sprinkled in there).

Anyway, not only did I collect this music - I was anal in cataloging the music - year, composer, album art, guest artists, etc. In addition, I was diligent about following music tastemasters and listening to their recommendations (Oliver Wang, Questlove, Giles Peterson,, etc). So, all of that "hobby" listening allowed me to build a sizeable catalog of music, that was already partially indexed.

This is where the computer part comes in. First, I start with the songs that everyone loves, then determine how they are related to other songs (genre, sub genre, artist, album, producer, composer). The next part is connecting the "inspired by" songs. For example, if you like D'Angelo's Another Life then the electric sitar that is featured on the intro might mean that you also like The Stylistics' Betcha By Golly Now. So, now if you like that, then you probably will like other Stylistics songs... most of their catalog produced by Thom Bell. Thom Bell also produced Deniece Williams' Silly... and if you like that Deniece Williams' song, then you'll probably like Free, produced by Maurice White, of Earth Wind and Fire....and if you like that....

So, those connections exists, but have to be figured out in near-real time based on your likes and what you did (or didn't skip) during playback. That's where the code comes in. In full transparency, the recommendation algorithm is still in beta, and most of the recommendations happen offline at this point. As we gain more users, we'll be able to study their listening habits to tune the algorithm and provide better recommendations at time of playback.

Share this project: