The Smarter Playlists Mixer

“The making of a great compilation tape, like breaking up, is hard to do and takes ages longer than it might seem. You gotta kick off with a killer, to grab attention. Then you got to take it up a notch, but you don’t wanna blow your wad, so then you got to cool it off a notch. There are a lot of rules.” — Rob Gordon, High Fidelity


A common usage for Smarter Playlists is to create playlists that mimic popular radio formats like Contemporary Hit Radio or Adult Contemporary. For example, RadioILoveIt (a site for radio broadcasters) describes how a typical Contemporary Hit Radio station may organize its music in the following 6 buckets:

  • A / Power currents: today’s most popular hits
  • N / New currents: unfamiliar songs (even if they are from a familiar artist)
  • B / Increasing currents: hits on the way up
  • C / Decreasing currents: hits on the way down
  • R / Recurrents: recent currents (e.g. less than 1 year old)
  • G / Golds: format classics (e.g. more than 1 year old)

These six buckets are then scheduled into a repeating clock sequence like so:

  • A – Power
  • R – Recurrent
  • C – Decreasing
  • N – New
  • A – Power
  • R – Recurrent
  • B – Increasing
  • G – Gold

(repeat of sequence, starting from the top)


We can do this sort of thing pretty easily with Smarter Playlists. Create a playlist for each of the six buckets, and then create a Smarter Playlists program that draws from each of the buckets like so:


2016-01-19 at 6.31 AM

This will give us a playlist of hundreds of tracks that match the 8 song cycle of power / recurrent / decreasing / new / power / recurrent / increasing / gold

This is a good start, but there are a few problems with this playlist. First,  we will get the same output every time we run the program, so we can mix things up a bit just by adding randomly selecting tracks from each of the inputs like so:

2016-01-19 at 6.43 AM

This will give us an 80 song place that repeats the 8 song cycle 10 times. There are still some problems with this however. Since we are using some of the same playlists multiple times as inputs (Power and Recurrents), it is possible that the same song could be sampled from each of these. Even if we weren’t reusing the same playlist as inputs, it is possible that a song may appear in more than one of the inputs anyway. The result is that we could end up with the same song appearing more than once in our output playlist. We can avoid this by adding a de-dup  node:

2016-01-19 at 6.50 AM

The de-dup node will remove any song from the stream of tracks bound for our playlist that have already been added to the playlist. While we are at it, we may want to remove other offending songs. We could, of course, just make sure that we don’t add songs we don’t like to the input playlists, but often times these playlists are not under our control – (I could be using the Spotify playlist Today’s Top Hits as my source for Power Tracks for example). Likewise, there may be some artists that I don’t particularly like. By adding an artist filter and a track filter I can make sure my playlist is free from any songs that I don’t like:

2016-01-19 at 7.00 AM

There’s still another problem.  A good playlist usually won’t have adjacent songs by the same artist. With this current program, there’s nothing to prevent that from happening. To fix this we can add  a separate artists node. This component will reorder the tracks passing through it to minimize the number of adjacent songs with the same artist

2016-01-19 at 7.04 AM

Now we have a program that generates a playlist that meets some of the basic criteria of a good playlist  – no duplicate tracks,  no adjacent songs by the same artist, no songs that I don’t like, no artists that I don’t like. Unfortunately, all of this filtering and re-ordering has wrecked havoc with our repeating 8 song cycle of power / recurrent / decreasing / new / power / recurrent / increasing / gold. When we de-dupped a song, we may have filtered out a ‘power’ song, when we removed a song by an artist that I don’t like, it could have been a ‘new’ song. The resulting playlist after all of this post filtering may look very different from what we wanted, and the listening experience will suffer for it. Here’s the track output for a run of this program.  If you look at the SRC column you can see that we are no longer respecting our repeating 8 song cycle:

2016-01-19 at 7.46 AM

We are starting with a ‘gold’ track, and as Rob Gordon says You gotta kick off with a killer, to grab attention. That should be a power track. The bottom line here is that it was not really possible in Alpha V2 of Smarter Playlists to create a playlist that has a defined order of songs like we see in commercial radio and still apply the usual filtering. In Smarter Playlists Alpha V3 we fix that with one new component.

Introducing the Mixer Component

So what do we do if we want to enforce a repeat song cycle, but still enforce a set of rules to ensure that we get a good playlist without repeating songs, artists and so on? We can use the newly added Mixer  component! The Mixer is designed for this very situation. It is essentially an Alternator component but with all of the typical post-filtering built in, so you can generate a cycle of songs that respect all of the rules of a good playlist.

Let’s refactor our Simple Playlist using the Mixer:

2016-01-19 at 7.54 AM

The Mixer replaces the alternator, de-dup, artist filter, song filter and the artist separator, making the program quite a bit smaller. But more importantly, the mixer will maintain the proper song cycle while enforcing the most common ‘good playlist’ rules.  Here’s the configuration editor for the Mixer:

2016-01-19 at 7.25 AM

As you can see, the Mixer has builtin support for de-duping tracks, maintaining a minimum artist separation and track filtering by banned artists and tracks. Inspecting the output of the program we can see that all the rules have been enforced (no dup tracks, no adjacent artists, no banned artists or tracks),  and we are still respecting our repeating 8 song cycle of power / recurrent / decreasing / new / power / recurrent / increasing / gold tracks:


2016-01-19 at 7.41 AM

Finishing Up

The Mixer component should make it easier to create broadcast-style playlists that follow a cycle, just like the pros do.  Give it a try at Smarter Playlists.

  1. #1 by OmarFx (@Omarpattonfx) on January 19, 2016 - 11:04 am

    this is truly great , smart playlists on apple music are useful but this is powerful, an iphone app would be the awsomest thing in this 2016, the app to end smart playlists in any other streaming service.

  2. #2 by OmarFx (@Omarpattonfx) on January 19, 2016 - 11:05 am

    this is awesome , maybe an iphone app would be the best thing that could happen to spotify this 2016

%d bloggers like this: