Skip to content

Instantly share code, notes, and snippets.

@MaxMatti
Last active May 13, 2025 19:00
Show Gist options
  • Save MaxMatti/7062e865926a2b2b6b7ea22f43a81ec7 to your computer and use it in GitHub Desktop.
Save MaxMatti/7062e865926a2b2b6b7ea22f43a81ec7 to your computer and use it in GitHub Desktop.
Electronic Music Genre Generator
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="author" content="Max Staff <[email protected]>" />
<meta name="license" content="LGPLv3" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/x-icon" href="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjUwIDI1MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIzLjYgMjQ3LjZhMzUgMzUgMCAwIDEtOC0xLjggMTE2IDExNiAwIDAgMS0xNy44LTguNWwtNy40LTRhOTQ5IDk0OSAwIDAgMS0zMi43LTE4Yy0xNC03LjctMzEuMi0xNy44LTM0LjYtMjAuMmE0NCA0NCAwIDAgMS04LjUtOC40Yy0yLTIuNi0zLTQuOC00LjEtOC4xLTEuNS00LjctMi05LjItMi41LTIybC0uNC0xMS4zYy0uNi0xNC4yLTEtMzcuMy0xLTUyLjMgMC0yMCAuNC0yNi40IDIuMi0zMy4zQTI1IDI1IDAgMCAxIDIwIDQ0LjJjMy41LTIuMyAxMi4yLTYuNCAyMC4zLTkuN2w1LjYtMi40YTIxODYgMjE4NiAwIDAgMSA0Ni42LTIxYzMuMi0xLjYgMTMtNS43IDE2LTYuN3E5LTMgMTctMi4zYzggLjggMTEuNSAyIDM1IDExLjhsMTguOCA3LjcgMTAuMiA0LjMgMTguMiA3LjdjMTguNyA4LjMgMjMuMSAxMC45IDI4LjQgMTYuNSAyLjEgMi4yIDIuOSAzLjIgMy44IDUuMiAzLjQgNyAzLjkgMTIuNiAzLjMgNDUtLjcgNDctMS43IDY4LTMuMyA3NS4yLTEgNC41LTMgOS01LjIgMTItNC42IDYuMy0xMC4yIDEwLjMtMzUuNiAyNS41bC0xNi40IDkuOWE0MTMgNDEzIDAgMCAxLTQwLjggMjIuNCAzNyAzNyAwIDAgMS0xOC4zIDIuMyIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik04NC41IDE5OWMtNS44LTEuNS0xMC42LTctMTEuMy0xMy0uNS00LjcgMi4yLTkuNiA2LjMtMTEuNSAxLjUtLjYgMi0uNyA0LjEtLjdhOSA5IDAgMCAxIDQuNS45bDIuMi44LS4xLTQ3LjNhNjk5IDY5OSAwIDAgMC0yMS41LTEwLjZjLS40IDAtLjQgMi41LS4zIDI3LjUuMiAyNy41LjIgMjcuNi0uMyAyOS43LTEuNiA2LTYuNiA5LjctMTIgOC45LTYuNy0xLTEyLTkuMS0xMC4yLTE1LjhxMS41LTUuMiA2LTcuNWMxLjUtLjggMi0uOSA0LS45IDEuOSAwIDIuNS4xIDMuOC43bDEuNy44Yy4yIDAtLjEtMzEuOS0uNC0zMi4zYTkgOSAwIDAgMC0yLjgtMS43bC0xNi04LjF2MjEuM2MwIDIwLjIgMCAyMS41LS40IDIyLjhxLTEuNyA1LTUuNyA2LjRhOSA5IDAgMCAxLTEwLTIgMTIgMTIgMCAwIDEtNC40LTkuOGMwLTMuNyAxLTYgMy43LTguOCAyLjItMi4yIDYtMy4zIDguMy0yLjNsMS40LjRjLjMgMCAuNC00LjMuNC0yNy42IDAtMjAgMC0yNy45LjMtMjguM3EuOS0xLjYgMS45LTEuN2MuNSAwIDEuNi40IDEyLjMgNS43bDQzIDIxYzIuNCAxLjEgMyAxLjcgNCAzLjRsLjYgMS4zLjIgMzMuN2MuMiAzNy4yLjMgMzUuNy0xLjQgMzlxLTIuNCA0LjYtNy41IDUuN2MtMS43LjMtMi42LjMtNC40LS4yTTYxIDExNi4ydi0yLjZsLTkuMy00LjctOS41LTQuN2MtLjMgMCAuMSA1LjIuNSA1LjYuNy44IDE3IDkgMTggOSAuMyAwIC40LS42LjMtMi42bTYxLjItNDJjLTYtLjgtOS40LTItMTEuNy00LjMtMS42LTEuNi0yLTIuNi0xLjctNC4yLjItMS4zIDEuOS0yLjkgNC0zLjlhMjggMjggMCAwIDEgMTQuMS0yLjJjNiAuMiA5LjkgMSAxMy42IDIuN2wxLjkgMUwxNDUgNjJhMTAzMSAxMDMxIDAgMCAwIDI3LjUtMTUuM3EwLS4yLS43LS42bC0xNi45LTdMMTIzLjYgMjZjLTEuNi0uNy0yLS43LTQgLjVhMTA1NCAxMDU0IDAgMCAxLTMzLjQgMTcuOEw4MS43IDQ3QTIzIDIzIDAgMCAxIDY4IDUwLjRhMjEgMjEgMCAwIDEtOS42LTEuNiA4IDggMCAwIDEtMy42LTNxLTEuMS0xLjcuMy0zLjZjMi0zIDguOS00LjcgMTYuOC00LjUgNC4zLjIgNi44LjYgOSAxLjdsMS41LjYgNC4xLTIuMSAyMC0xMC41IDE2LjItOC40IDMuMi0xLjcgMS40LjVhNDggNDggMCAwIDEgNi44IDIuOGwxMi40IDUuMSAzNS41IDE1YzQuNyAyIDUuNSAyLjQgNS42IDMuNSAwIDEtLjYgMS41LTMuOCAzLjNsLTEzLjEgNy4yLTI2LjIgMTQuNmMtNy42IDQuMi04LjIgNC41LTE0IDUuMS0zLjMuNC01IC4zLTguMi0uMSIvPjxwYXRoIGQ9Im0xMjguMiAyNDcuNy40LTFxLjUtLjYuNy0xLjRjMC0uNS4yLTE0LjcuMi0zMS43LjMtNjAgLjUtNzguOC43LTgyLjVhMzQgMzQgMCAwIDEgNC4yLTE1LjVjMS40LTIuNSA1LjktNy4xIDguNC04LjggMS45LTEuMyA3LjctNC40IDE5LjYtMTAuOGwyOS4zLTE1LjVMMjI1LjIgNjNjOS00LjcgMTEuMS02LjEgMTItOHEuNS0yLjEgMi4yIDEuNWMzLjIgNi41IDMuOCAxMy43IDMuMyA0MC43YTE0MjUgMTQyNSAwIDAgMS0yLjIgNjljLS44IDEyLTMuNCAxOC44LTkuMyAyNS00LjQgNC41LTEwLjcgOC44LTMxLjQgMjEuMmwtMTQuNiA4LjhhNzU4IDc1OCAwIDAgMS0zNS4xIDIwLjEgNTEgNTEgMCAwIDEtMTguNiA2LjVjLTIuNy40LTMgLjQtMy4zIDAiIGZpbGw9IiM4ODgiLz48cGF0aCBkPSJNMTQ3LjkgMjA3LjVxLTEtLjUtMS43LTJjLS43LTEuNC0uNy0xLjctLjctNC4xcTAtNC44IDIuMy05LjRjMy02LjIgOC4xLTExLjQgMTEuOC0xMS45cTEuNC0uMSAxLjYtLjdjLjMtLjUuNC02LjguNC0yNi41IDAtMTQuMy4yLTI2LjguMy0yNy45cS4xLTEuOC41LTIuNGMuMy0uMyA1LTIuOCAxMC40LTUuN2wzMS4xLTE2LjVhMjkwIDI5MCAwIDAgMSAyMS45LTExLjVjLjQuNC0uMiA2NC43LS42IDY2LjgtLjUgMi4zLTEuNSA1LjMtMi44IDcuOC0zLjYgNi45LTcuOCAxMC43LTExLjYgMTAuM3EtMi4yIDAtMy40LTIuNWMtLjYtMS4zLS43LTEuNy0uNy0zLjkgMC01LjUgMi44LTExLjggNy42LTE2LjZxMy41LTMuNCA2LTMuMyAxLjMgMCAxLjQtLjZjLjItLjUuNS0yNi4xLjQtMjcuNy0uMS0uNy0xLjEtLjMtNC42IDEuOGwtNS43IDMuMmMtNS42IDMtOS40IDUuNC05LjYgNS45bC0uNSAyMC4zYy0uMyAxNS4yLS40IDIwLjItLjcgMjEuNi0yIDkuMy05LjUgMTguNy0xNSAxOC43LTEuOCAwLTIuNy0uNS0zLjYtMi4xLS42LTEtLjYtMS4zLS41LTQuNSAwLTMgLjItMy43IDEtNS45IDEtMyAxLjctNC42IDMuNi03LjQgMi44LTQuMiA2LjctNy40IDkuNS03LjlxMS0uMSAxLjQtLjVjLjEtLjEuMy03LjQuNC0xNy45IDAtOS42LjItMjAgLjMtMjMgLjEtNS4zIDAtNi44LS43LTYuOGwtNi4yIDMtMjQuOCAxMy41Yy0uMi4zLS4zIDYuOC0uNSAyNy43bC0uMyAyOS4zYy0uNSA3LTYuMyAxNi4yLTEyIDE5LTIgMS00LjMgMS01LjcuM201OC4xLTg3YTI3NSAyNzUgMCAwIDEgMTYtOWMuMi0uNi41LTguOC4zLTkuNWwtLjUtLjZhMzMwIDMzMCAwIDAgMC0xOS4zIDEwLjZjLS4zLjYtLjYgOS0uMyA5LjdxLjIuNi42LjZ6Ii8+PC9zdmc+" />
<title>Electronic Music Genre Generator</title>
<style>
#favicon {
display: none;
}
body {
font-family: sans-serif;
text-align: center;
background-color: white;
color: black;
margin: 0;
padding: 0;
position: absolute;
top: 0;
left: 0;
width: 100%;
min-height: 100%;
}
a {
background-color: lightblue;
color: black;
}
a#reroll {
background-color: lightcoral;
}
@media (prefers-color-scheme: dark) {
body {
background-color: black;
color: white;
}
a {
background-color: midnightblue;
color: white;
}
a#reroll {
background-color: maroon;
}
}
h1 {
font-size: 2em;
margin: 2cm;
}
div.button-holder {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
a {
display: inline-flex;
align-items: center;
justify-content: center;
text-decoration: none;
font-size: 2em;
border-style: none;
border-radius: 0.2cm;
width: 6cm;
height: 2cm;
margin: 0.5cm;
cursor: pointer;
flex: none;
}
a > svg {
height: 1em;
}
iframe {
width: 80%;
height: 500px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<h1 id="title"></h1>
<div class="button-holder">
<a id="search-spotify" target="_newtab">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 168 168"><path fill="#1ED760" d="m83.996 0.277c-46.249 0-83.743 37.493-83.743 83.742 0 46.251 37.494 83.741 83.743 83.741 46.254 0 83.744-37.49 83.744-83.741 0-46.246-37.49-83.738-83.745-83.738l0.001-0.004zm38.404 120.78c-1.5 2.46-4.72 3.24-7.18 1.73-19.662-12.01-44.414-14.73-73.564-8.07-2.809 0.64-5.609-1.12-6.249-3.93-0.643-2.81 1.11-5.61 3.926-6.25 31.9-7.291 59.263-4.15 81.337 9.34 2.46 1.51 3.24 4.72 1.73 7.18zm10.25-22.805c-1.89 3.075-5.91 4.045-8.98 2.155-22.51-13.839-56.823-17.846-83.448-9.764-3.453 1.043-7.1-0.903-8.148-4.35-1.04-3.453 0.907-7.093 4.354-8.143 30.413-9.228 68.222-4.758 94.072 11.127 3.07 1.89 4.04 5.91 2.15 8.976v-0.001zm0.88-23.744c-26.99-16.031-71.52-17.505-97.289-9.684-4.138 1.255-8.514-1.081-9.768-5.219-1.254-4.14 1.08-8.513 5.221-9.771 29.581-8.98 78.756-7.245 109.83 11.202 3.73 2.209 4.95 7.016 2.74 10.733-2.2 3.722-7.02 4.949-10.73 2.739z"/></svg>&nbsp;Search
</a>
<a id="search-youtube" target="_newtab">
<svg viewBox="0 -3 28.57 25.57" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg"><g><path d="M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z" fill="#FF0000"></path><path d="M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z" fill="white"></path></g></svg>&nbsp;Search
</a>
<a id="search-youtubemusic" target="_newtab">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 176"><g><circle fill="#FF0000" cx="88" cy="88" r="88"/><path fill="#FFFFFF" d="M88,46c23.1,0,42,18.8,42,42s-18.8,42-42,42s-42-18.8-42-42S64.9,46,88,46 M88,42 c-25.4,0-46,20.6-46,46s20.6,46,46,46s46-20.6,46-46S113.4,42,88,42L88,42z"/><polygon fill="#FFFFFF" points="72,111 111,87 72,65"/></g></svg>&nbsp;Search
</a>
<a id="reroll" onclick="updateTitleAndIframe()">
<svg viewBox="0 0 250 250" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="M123.6 247.6a35 35 0 0 1-8-1.8 116 116 0 0 1-17.8-8.5l-7.4-4a949 949 0 0 1-32.7-18c-14-7.7-31.2-17.8-34.6-20.2a44 44 0 0 1-8.5-8.4c-2-2.6-3-4.8-4.1-8.1-1.5-4.7-2-9.2-2.5-22l-.4-11.3c-.6-14.2-1-37.3-1-52.3 0-20 .4-26.4 2.2-33.3A25 25 0 0 1 20 44.2c3.5-2.3 12.2-6.4 20.3-9.7l5.6-2.4a2186 2186 0 0 1 46.6-21c3.2-1.6 13-5.7 16-6.7q9-3 17-2.3c8 .8 11.5 2 35 11.8l18.8 7.7 10.2 4.3 18.2 7.7c18.7 8.3 23.1 10.9 28.4 16.5 2.1 2.2 2.9 3.2 3.8 5.2 3.4 7 3.9 12.6 3.3 45-.7 47-1.7 68-3.3 75.2-1 4.5-3 9-5.2 12-4.6 6.3-10.2 10.3-35.6 25.5l-16.4 9.9a413 413 0 0 1-40.8 22.4 37 37 0 0 1-18.3 2.3" fill="#fff"/><path d="M84.5 199c-5.8-1.5-10.6-7-11.3-13-.5-4.7 2.2-9.6 6.3-11.5 1.5-.6 2-.7 4.1-.7a9 9 0 0 1 4.5.9l2.2.8-.1-47.3a699 699 0 0 0-21.5-10.6c-.4 0-.4 2.5-.3 27.5.2 27.5.2 27.6-.3 29.7-1.6 6-6.6 9.7-12 8.9-6.7-1-12-9.1-10.2-15.8q1.5-5.2 6-7.5c1.5-.8 2-.9 4-.9 1.9 0 2.5.1 3.8.7l1.7.8c.2 0-.1-31.9-.4-32.3a9 9 0 0 0-2.8-1.7l-16-8.1v21.3c0 20.2 0 21.5-.4 22.8q-1.7 5-5.7 6.4a9 9 0 0 1-10-2 12 12 0 0 1-4.4-9.8c0-3.7 1-6 3.7-8.8 2.2-2.2 6-3.3 8.3-2.3l1.4.4c.3 0 .4-4.3.4-27.6 0-20 0-27.9.3-28.3q.9-1.6 1.9-1.7c.5 0 1.6.4 12.3 5.7l43 21c2.4 1.1 3 1.7 4 3.4l.6 1.3.2 33.7c.2 37.2.3 35.7-1.4 39q-2.4 4.6-7.5 5.7c-1.7.3-2.6.3-4.4-.2M61 116.2v-2.6l-9.3-4.7-9.5-4.7c-.3 0 .1 5.2.5 5.6.7.8 17 9 18 9 .3 0 .4-.6.3-2.6m61.2-42c-6-.8-9.4-2-11.7-4.3-1.6-1.6-2-2.6-1.7-4.2.2-1.3 1.9-2.9 4-3.9a28 28 0 0 1 14.1-2.2c6 .2 9.9 1 13.6 2.7l1.9 1L145 62a1031 1031 0 0 0 27.5-15.3q0-.2-.7-.6l-16.9-7L123.6 26c-1.6-.7-2-.7-4 .5a1054 1054 0 0 1-33.4 17.8L81.7 47A23 23 0 0 1 68 50.4a21 21 0 0 1-9.6-1.6 8 8 0 0 1-3.6-3q-1.1-1.7.3-3.6c2-3 8.9-4.7 16.8-4.5 4.3.2 6.8.6 9 1.7l1.5.6 4.1-2.1 20-10.5 16.2-8.4 3.2-1.7 1.4.5a48 48 0 0 1 6.8 2.8l12.4 5.1 35.5 15c4.7 2 5.5 2.4 5.6 3.5 0 1-.6 1.5-3.8 3.3l-13.1 7.2-26.2 14.6c-7.6 4.2-8.2 4.5-14 5.1-3.3.4-5 .3-8.2-.1"/><path d="m128.2 247.7.4-1q.5-.6.7-1.4c0-.5.2-14.7.2-31.7.3-60 .5-78.8.7-82.5a34 34 0 0 1 4.2-15.5c1.4-2.5 5.9-7.1 8.4-8.8 1.9-1.3 7.7-4.4 19.6-10.8l29.3-15.5L225.2 63c9-4.7 11.1-6.1 12-8q.5-2.1 2.2 1.5c3.2 6.5 3.8 13.7 3.3 40.7a1425 1425 0 0 1-2.2 69c-.8 12-3.4 18.8-9.3 25-4.4 4.5-10.7 8.8-31.4 21.2l-14.6 8.8a758 758 0 0 1-35.1 20.1 51 51 0 0 1-18.6 6.5c-2.7.4-3 .4-3.3 0" fill="#888"/><path d="M147.9 207.5q-1-.5-1.7-2c-.7-1.4-.7-1.7-.7-4.1q0-4.8 2.3-9.4c3-6.2 8.1-11.4 11.8-11.9q1.4-.1 1.6-.7c.3-.5.4-6.8.4-26.5 0-14.3.2-26.8.3-27.9q.1-1.8.5-2.4c.3-.3 5-2.8 10.4-5.7l31.1-16.5a290 290 0 0 1 21.9-11.5c.4.4-.2 64.7-.6 66.8-.5 2.3-1.5 5.3-2.8 7.8-3.6 6.9-7.8 10.7-11.6 10.3q-2.2 0-3.4-2.5c-.6-1.3-.7-1.7-.7-3.9 0-5.5 2.8-11.8 7.6-16.6q3.5-3.4 6-3.3 1.3 0 1.4-.6c.2-.5.5-26.1.4-27.7-.1-.7-1.1-.3-4.6 1.8l-5.7 3.2c-5.6 3-9.4 5.4-9.6 5.9l-.5 20.3c-.3 15.2-.4 20.2-.7 21.6-2 9.3-9.5 18.7-15 18.7-1.8 0-2.7-.5-3.6-2.1-.6-1-.6-1.3-.5-4.5 0-3 .2-3.7 1-5.9 1-3 1.7-4.6 3.6-7.4 2.8-4.2 6.7-7.4 9.5-7.9q1-.1 1.4-.5c.1-.1.3-7.4.4-17.9 0-9.6.2-20 .3-23 .1-5.3 0-6.8-.7-6.8l-6.2 3-24.8 13.5c-.2.3-.3 6.8-.5 27.7l-.3 29.3c-.5 7-6.3 16.2-12 19-2 1-4.3 1-5.7.3m58.1-87a275 275 0 0 1 16-9c.2-.6.5-8.8.3-9.5l-.5-.6a330 330 0 0 0-19.3 10.6c-.3.6-.6 9-.3 9.7q.2.6.6.6z"/></svg>&nbsp;Reroll
</a>
</div>
<script>
const prefixes = [
"2-step ",
"Acid ",
"Acid ",
"Acid ",
"Acid ",
"Acousmatic ",
"African ",
"Afro ",
"Afro ",
"Afro ",
"Afro ",
"Afro",
"Afro",
"Aggro",
"Algo",
"Alternative ",
"Alternative ",
"Alternative ",
"Ambient ",
"Ambient ",
"Ambient ",
"Ambient ",
"Asian ",
"Atmospheric ",
"Balearic ",
"Balearic ",
"Baltimore ",
"Bass ",
"Bass ",
"Bass",
"Berlin ",
"Big ",
"Big room ",
"Birmingham ",
"Bit",
"Black ",
"Bleep ",
"Blog ",
"body ",
"Bouncy ",
"Brazilian ",
"Brazilian ",
"Break",
"Break",
"Breakbeat ",
"Bro",
"Broken ",
"Brooklyn ",
"Chicago ",
"Chicago ",
"Chill",
"Chip",
"Christian ",
"City ",
"Cloud ",
"Cold ",
"Complex",
"Contemporary ",
"cosmic ",
"Crunk ",
"Cyber ",
"dance ",
"dance ",
"dance ",
"dance ",
"Dance-",
"Dance-",
"Dance-",
"Dancehall ",
"Danger ",
"Dark ",
"Dark ",
"dark ",
"Dark ",
"Dark ",
"Dark",
"Dark",
"Death ",
"Deconstructed ",
"Deep ",
"Denpa ",
"Detroit ",
"Digital ",
"Disco ",
"Disco ",
"Diva ",
"Down",
"Dream ",
"Dream",
"Drift ",
"Drill 'n' ",
"Drill",
"Drum and ",
"Drum",
"Drum",
"Dub ",
"Dub ",
"Dub",
"Dub",
"Dub",
"dub",
"Dungeon ",
"Dutch ",
"Early ",
"Elec",
"Electro ",
"Electro ",
"Electro ",
"Electro ",
"Electro",
"Electro",
"Electro",
"Electro-",
"Electroacoustic ",
"Electroacoustic ",
"Electroni",
"Electronic ",
"Electronic ",
"electronic ",
"Electronic ",
"Electronic ",
"electronic ",
"Emo ",
"Ethereal ",
"Ethnic ",
"Euphoric ",
"Euphoric ",
"Euro",
"Euro",
"Euro",
"Euro",
"Euro",
"Experimental ",
"Fidget ",
"Flash",
"Florida ",
"Folk",
"Free ",
"Free",
"French ",
"French",
"Funk ",
"Funk ",
"Funk ",
"Funk",
"Funk",
"Funky ",
"Future ",
"future ",
"Future ",
"Future ",
"Future ",
"Future ",
"Future",
"Garage ",
"Ghetto ",
"Ghetto",
"Glitch ",
"Goa ",
"Happy ",
"Hard ",
"Hard ",
"Hard ",
"hard ",
"hard ",
"Hard ",
"Hard ",
"Hard",
"Hard",
"Hard",
"Hard",
"Hard",
"Hard",
"Hardcore ",
"Harsh ",
"Harsh ",
"Haunt",
"Hi-",
"Hip ",
"Hip hop ",
"Hipster ",
"House ",
"Hyper",
"Hypnagogic ",
"Ill",
"Indie",
"Industrial ",
"Industrial ",
"Industrial ",
"Industrial ",
"Industrial ",
"Industrial ",
"Instrumental ",
"Intelligent ",
"Intelligent ",
"Italo ",
"Italo ",
"Italo ",
"J-",
"Jackin ",
"Jazz ",
"Jazz",
"Jazz",
"Jersey ",
"Juke ",
"Jump",
"Jungle ",
"Jungle ",
"Jungle",
"Kawaii ",
"Kraut",
"Lap",
"Latin ",
"Latin ",
"Liquid ",
"Live ",
"Live",
"Lo-fi ",
"Lofi ",
"Mainstream ",
"Mall",
"Manila ",
"Martial ",
"Melbourne ",
"Melodic ",
"Miami ",
"Micro",
"Micro",
"Midtempo ",
"Minimal ",
"Minimal ",
"Minimal ",
"Moombah",
"Moombah",
"Moombah",
"Mumble ",
"Neo ",
"Neoclassical ",
"Neoclassical ",
"Neuro",
"New ",
"New ",
"New ",
"New ",
"New ",
"New Jersey ",
"Night",
"Nintendo",
"Noise ",
"noise ",
"Nu ",
"Nu-",
"Nu-",
"Nu-skool ",
"Outsider ",
"Philly ",
"Phonk",
"Plunder",
"Post-",
"Post-",
"post-",
"Post-",
"Power ",
"Power ",
"Progressive ",
"Progressive ",
"Progressive ",
"Progressive ",
"Progressive ",
"Psy",
"Psy",
"Psychedelic ",
"Psychedelic ",
"Pumping ",
"Ragga ",
"Ragga",
"Ragga",
"Rally ",
"Rara ",
"Rave ",
"Raw",
"Reggae",
"Regional ",
"Russ ",
"Sample",
"Scouse ",
"Sequencer ",
"Sham",
"Shangaan ",
"Slap ",
"Snap ",
"Sophisti-",
"Soulful ",
"Sound",
"Soviet",
"Space ",
"Space ",
"Space ",
"Space",
"Speed ",
"Speed",
"Splitter",
"Stadium ",
"Synth",
"Synth-",
"Synth-",
"Synth-",
"Synth-",
"Tech ",
"Tech ",
"Tech",
"Tecno",
"Toytown ",
"Trance ",
"Trap",
"Trap",
"Tribal ",
"Tribal ",
"Trip ",
"Trip ",
"Tropical ",
"UK ",
"UK ",
"UK ",
"UK ",
"UK ",
"UK ",
"UK ",
"Uplifting ",
"Vapor",
"Vocal ",
"Witch ",
"Wonky ",
"World",
];
const suffixes = [
"",
"",
"",
"",
"",
"Ambient",
"ambient",
"bag",
"Baggy",
"bass",
"bass",
"bass",
"bass",
"bass",
"bass",
"bass",
"bass",
"bass",
"beat",
"beat",
"beat",
"beat",
"beat",
"beat",
"beats",
"bient",
"bient",
"Boogie",
"bounce",
"Breakbeat",
"breakbeat",
"breaks",
"breaks",
"breaks",
"breaks",
"breaks",
"carioca",
"Chill-out",
"clash",
"club",
"club",
"club",
"club",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"core",
"Crunk",
"cumbia",
"dance",
"dance",
"dance",
"dance",
"Darkcore",
"delia",
"Disco",
"disco",
"disco",
"disco",
"disco",
"disco",
"disco",
"drill",
"drill",
"Drone",
"drum and bass",
"drum and bass",
"dub",
"dub",
"Dub",
"EDM",
"EDM",
"electro",
"Electro",
"electro",
"electronic",
"electronic",
"electronic",
"electronica",
"electronics",
"Footwork",
"frenchcore",
"funk",
"funk",
"funk",
"funk",
"funk",
"funky",
"fusion genres",
"fusion genres",
"Gabber",
"garage",
"garage",
"garage",
"garage",
"gaze",
"Glitch",
"Grime",
"grind",
"guarachero",
"hardcore",
"hardcore",
"hardcore",
"hardcore",
"hardcore",
"hardcore",
"hardcore",
"hardstyle",
"hip hop",
"hip hop",
"hip hop",
"hip hop",
"hop",
"hop",
"hop",
"hop",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"house",
"improvisation",
"industrial",
"industrial",
"industrial",
"industrial",
"industrial",
"Isolationism",
"jack swing",
"jazz",
"Jump-up",
"Jungle",
"Kuduro",
"line",
"melody",
"metal",
"metal",
"metal",
"MIDI",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"music",
"New-age",
"new-age",
"noise",
"noise",
"NRG",
"NRG",
"ology",
"phonics",
"phonk",
"phonk",
"Plugg",
"poetry",
"polo",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"pop",
"psytrance",
"psytrance",
"psytrance",
"punk",
"punk",
"punk",
"R&B",
"R&B",
"rap",
"rap",
"rap",
"rave",
"rave",
"rave",
"Reductionism",
"rock",
"rock",
"rock",
"rock",
"rock",
"rock",
"rock",
"romantic",
"Sambass",
"scape",
"Schaffel",
"School",
"soft",
"soul",
"soul",
"sound",
"sound",
"sound",
"sound",
"step",
"step",
"step",
"step",
"step",
"step",
"step",
"step",
"step",
"step",
"step",
"step",
"style",
"style",
"style",
"style",
"style",
"style",
"swing",
"swing",
"synth",
"synth",
"synth",
"tech",
"tech",
"tech",
"tech",
"techno",
"Techno",
"techno",
"techno",
"techno",
"techno",
"techno",
"techno",
"techno",
"techno",
"techno",
"tek",
"tek",
"tekno",
"tempo",
"terror",
"ton",
"trance",
"trance",
"trance",
"trance",
"trance",
"trance",
"trance",
"trance",
"trance",
"trance",
"trance",
"Trap",
"trap",
"trap",
"trap",
"tro",
"tronica",
"tronica",
"tronica",
"tronica",
"tronica",
"tronica",
"tronica",
"tronica",
"tune",
"Underground",
"vapour",
"wall",
"Wave",
"wave",
"wave",
"wave",
"wave",
"wave",
"wave",
"wave",
"wave",
"wave",
"wave",
"wave",
];
function capitalization(word, suffix) {
if (word == "" || word.endsWith(" ") || word.endsWith("-")) {
return suffix[0].toUpperCase() + suffix.substring(1);
} else {
return suffix[0].toLowerCase() + suffix.substring(1);
}
}
function updateTitleAndIframe() {
let word = "";
if (Math.random() < 0.1) {
word += capitalization(word, prefixes[Math.floor(Math.random() * prefixes.length)]);
}
word += capitalization(word, prefixes[Math.floor(Math.random() * prefixes.length)]);
word += capitalization(word, suffixes[Math.floor(Math.random() * suffixes.length)]);
word = word.trim();
document.getElementById("title").innerHTML = `Your Electronic Music Genre of the Day: ${word}`;
const searchTerm = `${word.replaceAll(" ", "+")}`;
document.getElementById("search-spotify").href = `https://open.spotify.com/search/${searchTerm}`;
document.getElementById("search-youtube").href = `https://www.youtube.com/results?search_query=${searchTerm}`;
document.getElementById("search-youtubemusic").href = `https://music.youtube.com/search?q=${searchTerm}`;
}
updateTitleAndIframe();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment