This repository contains backend code the musicAi website.
musicAi is projected created by Alden Bauman, Fahim Billah, Mir Hossain, Deev Patel & Ian Rinehart as a capstone project for CS 425 & CS 426 at UNR during the 2020-2021 school year. It aims to allow users of all backgrounds to leverage machine learning to generate new music.
This repository holds the backed Python/NodeJS code for musicAi. It supports running a LSTM based TensorFlow model to generate new music and interfacing with the results. It is meant to be fully compatible with the front end. The code in this repository also contains references to a MySQL database hosted on freedb where user login data and information is stored. The code also connects to the main musicAi website on freehosting via FTP.
This directory contains NodeJS code providing endpoints to kick off training jobs and get their status. This allows to front end to live stream training results as view old jobs. There are also endpoints to interface with Twitter and YouTube. On Twitter, we allow users to automatically generate posts with any generated songs. On YouTube, we allow users to download songs in a format that is compatible with training.
This directory contains the code for training and running the LSTM based ML model for generating new songs. The training is done with the help of TensorFlow. We have tested the training script on python 3.8.5 with Tensorflow GPU version 2.4.1 linked to cuda 11.0 on Ubuntu 20.04 LTS. We do not have plans on supporting training with any other configuration as there is only meant to be one training server that interfaces with the frontend code via a NodeJS server. We also make use of python 3.9.0+ to convert music between various file types necessary for user convenience.