LOFI is a ML-supported lo-fi music generator. We trained a VAE model in PyTorch to represent a lo-fi track as a vector of 100 features. A lo-fi track consists of chords, melodies, and other musical parameters. The web client uses Tone.js to make a dusty lo-fi track out of these parameters.
Click here for a pre-generated lo-fi playlist!
- Client: The client is written in TypeScript and built with Webpack. It uses Tone.js to generate music.
- Model: The model is implemented in PyTorch. We synthesized various datasets, including Hooktheory and Spotify.
- Server: The server is a basic Flask instance that deploys the trained model checkpoint. The client communicates with the server using a REST API.
If you only want to tinker around with the client, you will only need the client
folder. This will use the project's server as the backend.
If you want to deploy your own model, you can either train your own model (see the instructions in the model
) or download the pre-trained checkpoint from here. Once you have deployed the server, change the server address inside client\src\api.ts
.