Project for course "Computational Intelligence Fundamentals" at Faculty of Technical Sciences, University of Novi Sad.
- Team members: Danijel Radulović, Dragan Ćulibrk (https://github.com/draganculibrk9)
- Teaching assistant: Aleksandar Lukić
- Problem:
Generating music using LSTM neural network. Based on the sequence of notes/chords, the next note/chord should be provided. Preprocessing MIDI files, extracting notes and chords and mapping them to numbers provided a training set for the neural network. After the training of the model, notes/chords are generated, based on the randomly selected sequence of notes from the training set.
As the second approach for generating music, we used PixelCNN++ implementation of neural network. Preprocessed MIDI files are converted to images which are used as a training set for the network.
We used PixelCNN++: A PixelCNN Implementation with Discretized Logistic Mixture Likelihood and Other Modifications, by Tim Salimans, Andrej Karpathy, Xi Chen, Diederik P. Kingma, and Yaroslav Bulatov. https://github.com/openai/pixel-cnn
To run this code you need the following:
- Python3
- Music21
- Joblib
- ImageIO
- PIL
- Numpy
- Keras and Tensorflow