/AIMusicGenerator

Music generation using LSTM and Pixel CNN

Primary LanguagePython

AIMusicGenerator

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

Setup

To run this code you need the following:

  • Python3
  • Music21
  • Joblib
  • ImageIO
  • PIL
  • Numpy
  • Keras and Tensorflow