Warner Music & Apple Music


An algorithm designed to aid in speech therapy.

Built with

View live site


Saylists are playlists made to aid speech therapy.

Most exercises designed for speech therapy involve repetition. Repetition is boring. When is repetition not boring? When it’s in music.

I created the algorithm that was used to identify sounds that would be beneficial for use in speech therapy. The algorithm was created using Node.js. The algorithm worked by identifying a specific sound in the lyrics, like S or T, then counting how many times it occured in the song. Next it would look for any double letters, like in the word ‘success’. This would be weighted higher in the score. Finally, it would calculate the distance between a target sound and the next target sound. The closer they were, the higher the score. I used the inverse-square law to correctly adjust the score. The score would be inversely proportional to the distance.

The website was created using React.

The initial data used contained ~500,000 songs in an SQL database. The algorithm was then given to Apple to use on their song data.


The data we used had 500,000 songs but they were from a wide variety of genres. We wanted songs from popular artists at the time which unfortunately our data did not include. To get around this I seeded in some additional songs so we could test the algorithm against.

Figuring out which sounds would be the most helpful and tweaking the algorithm to find those sounds proved a challenge. I adjusted the algorithm multiple times to fit various criteria and it went through many score calculation iterations.