Project for the subject Computational Intelligence Fundamentals
- Team members: Danijel Radulović, Dragan Ćulibrk
- 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