LSTMusic is a web application that uses machine learning techniques to extend melodies. It was created as part of my final year University Project.
In other words, it takes a melody, does a bit of AI magic, and spits something a bit longer out!
Visit LSTMusic.
I've aimed for the site to be as self-explanatory as possible, but here's a quick guide if you're struggling:
- Input a melody to the site's Piano roll.
- Click the 'Extend' button.
- Wait for the site to extend your melody.
- View and play using your extended melody using the playback buttons.
Turns out other people are much better at making certain things than I am, despite my best efforts.
This project would not have been possible without the following libraries, frameworks and online resources:
- GitHub Pages - A free hosting service provided by GitHub.
- WebAudio-PianoRoll - A JavaScript library for creating interactive piano roll interfaces.
- html-midi-player - A JavaScript library for playing & displaying MIDI files in the browser.
- TensorFlow - An open-source machine learning library which I've used.
- Magenta - A research project exploring the role of machine learning as a tool, and the primary inspiration of this project.
- Flask - The Python web framework used.
LSTMusic derives its name from LSTM, which stands for Long Short-Term Memory, a type of Recurrent Neural Network used in this project for music generation.
This project serves as a demonstration of the skills and knowledge which I have picked up during my time at University.
This project has also given me a chance to pick up new skills related to web development, including
frontend dev, backend development, API design, and deployment.
us, I believe that this project is a good reflection of the skills and knowledge I have acquired during my course.
- Polyphonic melodies aren't supported, so songs with only one note at a time can be inputted and extended.
- Generated music is not guaranteed to be musically coherent or pleasant to listen to.
- Generated music has a heavy bias towards classical music, as the model was trained on a dataset of classical music.
- The site is not optimised for mobile devices.
- The site is not optimised for screen readers or other assistive technologies.
- There is a shocking lack of security features, so please don't break anything. ❤️