Melodia’s smart music station lies at the core of Melodia’s paradigm. Instead of forcing the user to shuffle play the same playlists or choose between different generic stations, Melodia offers the user one smart station that is personalized to their unique taste and adapts to their every moment.
Melodia’s objective is to provide the optimal flow of music while requiring minimal effort on behalf of the user.
Melodia’s smart station is based on a sequence learning method that predicts the optimial next value (i.e., track) to be played at any given time. The smart station can be thought of as a long chain of tracks that have been played to the user from the beginning of time, with context and feedback values associated with each track at each timestamp.
Context values pertain to contextual data associated with the timestep at which a given track was played, such as the time of day, day of week, user’s activity and location, etc. Feedback values pertain to how the track was consumed by the user, such as whether the track was skipped or listened to fully, how long the track was listened to before being skipped, whether the user liked or disliked the track, etc.
Melodia’s algorithms then determines the optimal next track to be played based on the data obtained from all the previous timestemps.
Smart Station Flow Chart
To simplify the API, you need only call the method station.getSmartTracks with the context and feedback values of the immediately previous track that was played. All the datapoints before that will already have been recorded by Melodia’s database to predict the next optimal track.
To offer the best user experience, tracks may be buffered in the immediate next timesteps of the smart station. Doing so prevents long lags in fetching tracks if the user happens to be skipping songs too fast.
In order to optimize the buffered tracks, Melodia employs a dynamic matching technique to curate the selection of buffered tracks and its ordering. To better illustrate this, assume we fetch
N tracks as our buffer at timestep
T, ordered as follows:
track_N. With dynamic matching, instead of simply selecting the top tracks for timestep
track_N are chosen with the assumption that the previous track in the buffer was skipped by the user. In other words,
track_2 will not just be optimized to timestep
T (as was
track_1), but rather optimized to timestep
T+1 along with the assumption made that
track_1 was skipped by the user.
Of course, once any of the buffered tracks are substantially played (yeilding the possibility user will play till the end), then a request can be made for a new set of buffered tracks to replace the upcoming buffered tracks, if any.
Optionally, for platforms such as fitness and health applications, Melodia offers the ability to futher customize the suggestions to a specific range of tempo. For example, the platform may choose to adjust the tempo of the smart station according to how fast the user is running, or the inclination at which they are running.
The Melodia API also offers seed-based radio stations, where the seed can be a track, artist, or genre. Such a station can be thought of as a smart station of its own, with the extra constraint of having the tracks following the theme of a given seed.
Though similar in nature to other services, Melodia’s seed-based station offers a much more personalized and advanced station due to its sequence learning techniques and context-based recommendations.