This project aims to fuse 2 tracks of music together, using two methods. A Variational Auto Encoder and a Generative Adversarial Network. Included in this project are also:
- A website which showcases some examples as well as serves as an interface for both systems.
- A site scraper which was used to efficiently download midi samples from websites which offer them.
- A transposer which chages all midi file samples to the same key.
Three approaches were taken to achieve this task:
- Interpolation on Existing Music Passing 2 MIDI tracks through a Variational AutoEncoder.
- GAN given all of the Music as a Training Set A MIDI Track produced by a Generative Adversarial Network trained on a particular Training Set.
- New Music produced by GAN then interpolated by VAE Passing the 2 MIDI tracks produced by the Generative Adversarial Network through the Variational AutoEncoder.
-
Python 3.8.8
-
Flask version 1.1.2
-
note_seq version 0.0.3
-
magenta version 2.1.3
-
Keras version 2.4.3
-
Jinja2 version 2.11.3
-
music21 version 6.7.1
-
matplotlib version 3.4.1
-
numpy version 1.19.5
To install all above libraries at one go
pip install -r requirements.txt
- Open a terminal
- cd to current directory
- Run the following command
python -m flask run
- Open link given
Contributors names and contact info
- Paolo Bezzina - @PaoloBezzina
- Logan Formosa - @lowgunnn
- Yran Riahi - @YranRiahi
- David Dimech - @daviddimec
- Daniel Grech - @dangee303