Skip to content

Generative AI web app, built with Streamlit and GCP, that use deep learning to generate midi drum tracks from guitar tracks. Final group project at Le Wagon Data Science & AI bootcamp 2024.

Notifications You must be signed in to change notification settings

branchedelac/BandIt

 
 

Repository files navigation

logo

BandIt

The goal of the BandIt project is to train a model that allow music creators to generate custom musical arrangements in different instruments for a given song, based on a recording of one instrument. In this first implementation, we are focusing on guitar as the input instrument, and drums as the output instrument. We have limited our training dataset to songs within the rockc genre.

Exploring existing and custom transformer models, we are treating the task of generating a drum arrangment based on a guitar track as a form of translation task.

The code can be run locally using streamlit and uvicorn. The requirements.txt file contains requirements for the frontend, the requirements_prod.txt requirements for the backend. The Makefile includes some shorthand commands for this.

web interface

Repo structure

data

Contains midi (.mid) files.

backend

main.py - Currently contains the code used to generate a piano midi track from pop2piano, and then turn that into a drum midi track. In the future, we envision using our custom trained model.

api

API endpoints for making predictions.

ml_logic

Will contains functions for preprocessing, postprocessing, training?, and predicting with our custom model.

frontend

Contains the streamlit app that will serve as our user interface.

notebooks

Notebooks for exploration and development.

tests

Any tests and test data will go here.

About

Generative AI web app, built with Streamlit and GCP, that use deep learning to generate midi drum tracks from guitar tracks. Final group project at Le Wagon Data Science & AI bootcamp 2024.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%