Every Noise
Some people claim they enjoy listening to all genres. There are jokes about how these people have never experienced the most absurd of songs, like the "slurpcore" of Ville Kallio's "Toxic Crisis", the "meme rap" of Yuno Miles' "Put The Money In The Bag", or the "noise" of Merzbow's Pulse Demon album. If someone truly enjoys all genres (beyond just "I like its quirkiness"), then I would think they don't have a taste in music.
Moreover, I feel like not many people can even say that they have listened to all genres. I believe there are a lot of obscure genres that only niche communities know about. For example, I would say denpa-kei music is rarely heard of outside of Japanese rhythm games. I wondered if it was truly possible to listen to all genres.
However, a few years ago, I discovered a website called Every Noise at Once which lists every single music genre recognized by Spotify. I recognize Spotify doesn't have any "authority" in defining music genres, and I know this site might not be a complete list. Nonetheless, I think it offers the most complete picture of the genre landscape, and it's probably the easiest way to discover virtually every significant genre - it even makes finding new songs simple. On the home screen, the genres are plotted on a 2D graph, where the horizontal position represents how atmospheric or bouncy the genre is and the vertical position represents how organic or electronic the genre is. You can search the genres an artist is involved in, find similar artists in those genres, discover genres similar or opposite to another, and preview the most popular song from a genre or artist with just a simple click.
I decided to challenge myself to listen to every single genre (defined by Spotify). In the process, I hoped to find interesting music I had never heard before and learn about genres that I despised listening to. I also wanted to be able to give a definitive answer whenever someone asked me what my favorite genres were.
I started my Every Noise journey in early 2023 as part of my New Year's resolution, but due to the website's regular updates to the genres and the sheer number of genres, I had a hard time running through the entire list. I didn't want to miss any new genres, and I wanted to explore and judge using only the hottest song in each genre at the moment, so I started over a few times whenever I slacked on progress for too long. Eventually (and unfortunately), Glenn, the maker of the website, lost internal data access to Spotify, so the site has been static since December 2023. I saw this as a sign for me to finally push through all 6291 genres.
The Plan
For a "smooth" and simple listening experience, I wanted to listen to genres from the top of the page to the bottom of the page, ie. moving from electronic to organic sounds. Going in this order also would make it easier to know where to pick up from if I had to stop the playlist.
On the home page, when you click on a genre, it previews the most popular song from that genre for 30 seconds. I knew that I couldn't physically handle clicking 6291 buttons in 30-second intervals, so I made a short Javascript script to help automate the process. You can copy-paste this into the console while browsing the Every Noise website to see it in action.
function playFrom(start) {
Array.from(document.getElementsByClassName("genre"))
.sort((g1, g2) => g1.offsetTop - g2.offsetTop)
.slice(start)
.forEach((g, i) => {
setTimeout(() => {
g.click();
console.log(start + i);
}, i * 30000);
});
}
playFrom(912); // play the 913th genre from the top of the page
Since this playlist would take a whopping hours, I decided to let the script run in the background as I work on other tasks. I also outlined my plan: whenever I heard a song that caught my ear, I would note down the associated genre. I would also occasionally glance at the website to see the names of the genres I had listened to recently and which ones were up next. In the last quarter of the genres playlist, when the songs became less sharp and more ambient, I would start paying closer attention to the songs, since it's difficult to judge those types of songs from a mere 30 seconds. After a first pass of all genres, I would then deep dive into the genres I noted and verify whether I actually liked them by listening to other artists in the genre.
However, I quickly realized that I was not going to be able to listen to all genres in just a few number of listening sessions. It got annoying having to keep track of the genre I last listened to. Additionally, since the simple console script I wrote used timeouts, I also couldn't pause the playlist without refreshing the website or running the below command:
const id = window.setInterval(function(){}, Number.MAX_SAFE_INTEGER);
for (let i = 1; i < id; i++) {
window.clearInterval(i);
}
Then, I had an idea: I could make a simple Chrome extension to keep track of my progress and provide playing/stopping capabilities.
Making the Chrome Extension
It turns out that making a Chrome extension is relatively easy if you already know how to make a website. From what I gathered, there are only a few major differences:
- A
manifest.jsonto provide relevant information about the files and permissions the extension will use to run - Four useful roles for files: background, content, popup, options
- Background scripts listen for browser events and aren't tied to a specific tab
- Content scripts work with the website's content
- Popup files affect everything that happens within the extension's popup UI
- Options files for extension customization
- Chrome API for communications between the roles and browser integrations
For my extension, I wanted to have a simple music player popup that would keep track of progress and play/pause music by interacting with the website's genre buttons.
Therefore, outside of the manifest.json, I just needed a content script and popup files (html/css/js).
Below is my manifest.json.
{
"manifest_version": 3,
"name": "Every Noise Explorer",
"version": "1.0",
"description": "Every Noise music player",
"permissions": [
"storage" // to keep track of progress
],
"content_scripts": [
{
"js": ["content.js"],
"matches": [
"https://everynoise.com/*"
]
}
],
"action": {
"default_popup": "popup.html"
}
}
As I already had the main play/pause functionality written, I just had to make sure I could control playback from the popup and show information on the currently playing genre.
This was easily achieved with the chrome.tabs.sendMessage, chrome.runtime.sendMessage, and chrome.runtime.onMessage Chrome APIs.
Syncing information to the extension's storage was also really easy thanks to the chrome.storage.sync API.
Since I just wanted a simple MVP, I didn't spend much time tweaking the CSS and got the extension working quickly. If you want to see the extension code, you can find it on my GitHub here. I might make some small edits when I find the time - there are some minor bugs here and there.
My Findings
I found a lot of new genres I never heard of before. Out of the genres I discovered, one that I particularly liked was "neurofunk", a darker drum and bass genre. I also found some genres I liked because of their mesmerizing instrumentation or styles, such as "darbuka" and "glitchcore".
There were quite a number of genres with interesting names. It made me wonder how the genres came to be and who at Spotify was responsible for finding/naming these genres. Here's just a small sample of them:
- samurai trap
- no beat
- country rap
- bardcore
- meme rap
- birthday
- whale song
- 528hz
- prank
- industrial noise
Also, I appreciated how sometimes, artist names reflect the genre they're in. For example, a lot of drift and gym phonk artists have names in all caps with frequent usage of V's, X's, and Z's. On the other hand, a fair amount of lo-fi beats and lo-fi sleep artists have full lowercase names.
Other random notes:
- How are there so many subgenres in metal?!
- The sound of rain was in the top "song" for the "sound effects", "sound", and "environmental" genres
- I forgot that Spotify has other audio besides songs, such as comedy, fairy tale readings, and radio shows.
Takeaways
As a producer and consumer of music, I found this challenge as a great way to broaden my understanding of music. I'm still figuring out my artistic voice, but I am now better equipped with a stronger understanding of what songs I like. I'll use this knowledge as a guide for which music genres I should experiment with, knowing that I'll likely enjoy the process and result. Before this journey, I had tried making a emo rock song; however, since I didn't quite like emo rock, I also didn't quite like the production process, and the song didn't turn out great.
I also learned a lot about what it takes to make a Chrome extension. In hindsight, I could've just scraped the website, made a Spotify playlist, and created a mapping from song name to genre. However, at least I can now say that I know how to make a Chrome extension.