dropdown HOME
What does this tool do?
This tool utilizes Spotify’s API to find song recommendations for a given, user-inputted “seed” song. From the “seed” song, the tool extracts all of the Spotify MIR features available. Then, the user selects how they would like their output songs to be matched, and the tool identifies N songs that align with the user-inputted criteria. The output of this tool is a .csv file that contains the seed song, recommendations, and Spotify MIR features of all songs. The intention of this tool is to allow for greater experimental control for researchers, or to help music listeners find new music that they may enjoy.
Why was this tool created?
This tool was originally created for a project investigating music-evoked emotion — specifically, nostalgia. We aimed to use personalized nostalgic stimuli for each participant, but needed to identify a method of finding musically-matched “control” songs to go along with each personalized nostalgic song. The goal of musically matching songs was to disentangle the effects of the music-evoked emotion from the effects of lower-level musical features such as tempo, or loudness. We used this tool to identify a set of 10 candidate non-nostalgic songs that we then presented to participants to identify whether they were familiar, or nostalgic. Familiar, non-nostalgic songs were selected as eventual Control songs for the study.

While the creation of this tool was for one particular case, we envision that this tool will be useful for many different cases and research questions involving music, psychology, neuroscience, and computer science.
How do I use this tool?
1. Collect your seed song(s). In original uses of this tool, we collected seed songs from participants, asking them to list songs that made them feel nostalgic.

2. Decide whether you want to import songs manually or via a spreadsheet.
a. If manually, type the title and artist of the song into the text box.
b. If via spreadsheet, download the template spreadsheet and format your list of songs accordingly. Then upload.

3. Once your songs load, select the musical features that you would like to match based on. For example, perhaps you want to find other songs that were released in the same year as your seed song. Or, maybe you want to find songs that have similar levels of “danceability”. You may select as many criteria as you like. In the original use of this tool, we found that
matching based on valence, energy, release date, and popularity was sufficient to implicitly match for all other features.

4. Click next, and download your output .csv file. This file will contain your seed songs and their features, and your recommendations and their features.
How can I use this tool in a participant-facing survey?
For our original study, we integrated this music-matching tool in a participant-facing Qualtrics survey in order to investigate a particular music-evoked emotion. We did this using the javascript tools in Qualtrics.

You can do the same. For example, if you want participants to self-select songs that evoke a memory, and you’d like to present these songs and a collection of musically-matched algorithm-selected songs from SoundsLikeThis, you can follow the steps below.

1. Identify how you want your user-inputted and algorithm-outputted songs to be matched. For our work, we set the difference in Valence and Energy to no more than .15.

2. Download our original application (note, in order for this to work you will need to download Javascript and Node.js to your computer).
   a. Unzip the folder, and cd to the folder from your terminal
   b. Go to this GitHub template → Use this template → create a new repository → repository name "/.github.io" → (optional) set to Private
   c. Go to your GitHub account → Settings → Developer Settings → Personal Access Tokens → tokens (classic)
   d. Generate a new token and give it all repo permissions. Set the expiration to never
   e. In the github_token variable of the .env file, paste the token you get from the result of the previous step
   f. In "index_BCI.js" substitute "greert" for your GitHub username at both instances
   g. Navigate (cd) to the folder where you saved the folder SoundsLikeThis_js... Type “node index_BCI.js” into terminal
   h. Go to the website displayed in the terminal output. Log in to your premium Spotify account.
   i. Now the app is running and you may continue!

3. Create your Qualtrics survey. You may download a copy (a .QSF file) of a simplified example from our lab here. In this example, we asked participants to enter a “nostalgic song”, and then the goal was to find a musically-matched song that was unfamiliar. If a musically-matched song was rated as familiar, the survey would present the participant with another musically-matched song up to 10 more times. (See instructions on how to import a QSF file into Qualtrics here).

4. Click on the song input block, and navigate to the “ Javascript” menu.

5. Edit the Javascript as necessary. Specifically, you will want to edit the following sections:
   a. In each song input section, edit content that says "greert" to replace with your own GitHub username.
   b. min_ar, max_ar, min_val, max_val, min_pop. These are variables that indicate how you want to match your songs based on arousal, valence, and popularity. They are set in the example to .15 for valence and arousal and minimum of 80 for popularity. You can change these values here.
   c. Number of recommendations. If you want more or fewer recommendations than 10, you can edit this throughout the javascript block (e.g, rec_array.length).

6. Save your project and test thoroughly.

Tool authors
This tool was created at the University of Southern California’s Brain and Creativity Institute (directed by Drs. Antonio and Hanna Damasio), the Brain and Music Lab (directed by Dr. Assal Habibi), and the Signal Analysis and Interpretation Laboratory (directed by Shrikanth Narayanan).
Sarah Hennessy, PhD developed this tool while obtaining her PhD in Brain and Cognitive Sciences at USC’s Brain and Creativity Institute and Brain and Music Lab. Her projects in collaboration with Timothy Greer on the neural and behavioral correlates of music-evoked nostalgia utilized this tool to optimize experimental control in nostalgic stimuli. Sarah is now a postdoctoral fellow at University of Arizona.
Timothy Greer, PhD built this tool while obtaining his PhD in Computer Science at the Signal Analysis and Interpretation Laboratory in USC’s Viterbi School of Engineering. Tim is now an Applied Scientist on Amazon’s Music Personalization Team.
Marcus Au implemented this tool in the public web-based platform from which you view it today while obtaining his Bachelor’s degree in Computer Science from the University of Southern California.
Caitlin Noel designed the front end interface of this website while obtaining her Bachelor’s degree in Neuroscience from the University of Southern California.
Created by Sarah Hennessy from the USC Brain and Music Lab
2024 ・ Los Angeles, CA ・ Last updated: 02/05/2025
Cite this Tool
Publications
If you use this tool in your research please cite it and let us know , so that we can include your work in our database.

1. Hennessy, S., Greer, T., Narayanan, S., Habibi, A., (in press). Unique affective profile of nostalgic music: An extension and conceptual replication of Barrett et al., 2010. Emotion.