![]() ![]() A typical 4-minute song at CD quality (44 kHz, 16-bit) has over 10 million timesteps. Generating music at the audio level is challenging since the sequences are very long. A different approach is to model music directly as raw audio. īut symbolic generators have limitations-they cannot capture human voices or many of the more subtle timbres, dynamics, and expressivity that are essential to music. This has led to impressive results like producing Bach chorals, polyphonic music with multiple instruments, as well as minute long musical pieces. A prominent approach is to generate music symbolically in the form of a piano roll, which specifies the timing, pitch, velocity, and instrument of each note to be played. Let me know what you think, and tell me which new bands you’ve discovered.Automatic music generation dates back to more than half a century. Getting the artists website and social accounts would also make a great addition, giving you more access to that new favorite (or not so favorite) band you just discovered. I’d have to figure out a way to match the artist on multiple platforms, like taking an artist I received from the Spotify API and finding it’s counterpart on Apple Music or Tidal. Looking ahead, I’d love to be able to integrate other streaming service API’s so that the user can be redirected to the service of their choice, instead of just Spotify. The combination of React components and utility-class styling makes building reusable components that look good really simple. Turns out if you’re coming from a C/C++ (or any statically typed language) background, it really isn’t that difficult to transition to from JavaScript.Īll of the styling was done with TailwindCSS, which is my new favorite utility-class library. Both frontend and back are written in TypeScript - after watching some Pluralsight courses on the topic, I was looking for an excuse to try it out. The website is built with React on the frontend, and Node.js with Express on the backend. “In the end”, meaning seven hours of debugging later, but nonetheless, the app is deployed. Getting the frontend to communicate with the backend turned out to be way more time consuming than I thought it would be (I swear it ran on my machine), but in the end it ran just fine. I created all the React components that I needed, added some styles and tied it all together. I had the artist data, now all that was left to do was to create a frontend that would display all that data nicely. Once I had my random artist, I’d need to make one more API call to get the artist’s albums, and then I’d be set. The one thing Spotify didn’t have was an API endpoint to access a random artist, but after reading this article on how to get random tracks using the Spotify API, I realized I could do something similar in order to get a random artist. ![]() Spotify was my next choice, and after diving into their API documentation, it seemed like the right choice. Refreshing the page (or clicking on the next button) would load another artist, so the website could be used as a random artist generator.Īfter initially building out a prototype for the website that would eventually become bandDotRand, I realized that the Musixmatch API wasn’t going to cut it, and I had to find a music API that would better suit my needs. Every artist or album on the page would include a link to that artist / album on a music streaming service, so you could actually listen to anything you found interesting. Instead of getting a random song, my new idea was to create an app that would get a random artist and display it alongside the artists discography and related artists. The song was generated through the Musixmatch API, and would include basic song properties, such as the song ID, name, album, artist, etc. I quickly created a program that exposed an API endpoint and returned a random song when it received a request. I had built the app for my capstone project, but there the main focus was on the infrastructure, not on the app itself. After completing my DevOps project last month, I wanted to take the app I had built and turn it into something more permanent, something with a graphical user interface that could be used outside of the terminal. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |