Bitbox is an online music web-app; engineered for those who prioritize the sound of their music. Bitbox uses algorithms to intuitively help you discover new music that has the sound characteristics you love.
Run:
git clone https://github.com/ner216/Bitbox.git
- Docker engine
- Python 3.9
- Linux system/WSL
This project uses the VGGish pre-trained model by TensorFlow.
- You can find this repository HERE
- You need to download the
vggish_model.ckptfile from HERE - You must add the downloaded
vggish_model.ckptfile toai-logic-tools/models/vggish/
This project uses a standalone audio library for serving music. To add music to Bitbox:
- Add your
.mp3music files to theaudio-backend/app/db/music/directory.
Run the following commands in the project directory
- Create a python 3.9 virtual environment in
ai-logic-tools/
- Run:
python3.9 -m venv .venv- Activate virtual environment
- Run:
. .venv/bin/activate- Install python modules with requirements file.
- Run:
.venv/bin/pip3 install -r requirements.txt- Generate the song match data file.
- Run:
.venv/bin/python3 find_similar_songs.py
In the root of the project directory, run:
sudo docker compose up. This will build the entire project and run it.
For Instructions regarding the web-app itself, see docs-app-manual/README.md.
This application consists of three parts;
- A react-native front-end website
- Location:
bitbox/
- Location:
- A python backend Flask application
- Location:
audio-backend/
- Location:
- A postgres database.
- This is a pre-made docker image that is pulled from dockerhub
- Database resources are at
audio-backend/app/db/
Each of the above parts have there own docker container--outlined in the docker-compose.yaml file. There is another, seperate python application inside of the
ai_logic_tools/directory. This application scans the music library and generates a list of song similarity matches. These are used for Bitbox's 'find similar song' feature.
The audio-backend and front-end website docker containers can be run seperate from the other containers. You can do this by building and running the dockerfile. The dockerfile for the audio-backend is located at
audio-backend/dockerfile. The dockerfile for the front-end is located atbitbox/dockerfile.
Using Ubuntu 24.04LTS in WSL, you can use the Docker snap package with
sudo snap install docker. Next, navigate to the project directory, and run:sudo docker compose up
This will start all three containers(Postgres database, Python back-end, React front-end).
Note: The first time you run this, Docker will pull and build all necessary images — this may take several minutes.
For contribution guidelines for the Bitbox repository, see the contribute.md file in the root of
the Bitbox repository.
For issues, open a GitHub issue here: https://github.com/ner216/Bitbox/issues