This repository contains the backend of Mosaikbox, an automatic music mixing system.
Besides the backend, this repository also contains the survey implementation for the user study conducted in the context of this project.
The frontend of Mosaikbox is available at mosaikbox-frontend.
The configuration is done in app/config/config.py. Following configuration needs to be done before running the app for the first time:
- Set the path where Mosaikbox stores its data by changing
COMPUTATION_PATH_DEVandCOMPUTATION_PATH_PROD, for local and production environments, respectively. - Change the
API_KEYof thehttps://genius.comAPI.
The app has been developed on a Macbook and thus has the mps GPU device hardcoded in the code for the torch models.
If you want to run the app on another GPU you will have to adopt the device type to your system at the following locations: music_source_separation.py and beats.py.
We strongly recommend using a GPU and discourage from running the app on a CPU, as the computation time is significantly longer.
- Python 3.11 (should work with 3.9+, at the time of writing some packages are not yet compatible with 3.12)
- Docker (for running the KeyFinderService and MongoDB for the survey)
python3.11 -m venv ./python_3.11_venv.nosync
source python_3.11_venv.nosync/bin/activate # activate venv
pip install -r requirements.txtdocker-compose up -d # start KeyFinderService and the MongoDB for the survey
uvicorn app.main:appThe frontend is available at mosaikbox-frontend