Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 1.75 KB

README.md

File metadata and controls

42 lines (30 loc) · 1.75 KB

ScaileAI

A Python project used for creative purposes. The application generates chord progressions in the MIDI format through a LSTM recurrent neural network. The application is setup as a local server structure waiting for HTTP request. It works in conjunction with the Scaile app but can be expanded to a website environment.

  • Developed in Python

Purpose of the project

  • The purpose of the project was to explore if it was possible to generate chord progressions from a Neural Network. The object was to maintain the harmonic elements of the training data and generate a variety of chords with a sense of knowledge in music theory. Essentially matching the harmonic structure of a chord progression.

Generating

  • By running the main.py project the training will start. This requires a path to a directory loaded with MIDI files.
  • The training will first map the chords using the music21 framework resulting in a data structure of a list of chords.
  • The data will be mapped to a String format and converted to Integer for working with Keras.
  • When the training is done this will be converted back using music21 and streamed into a MIDI file.

How To Use

  1. Place MIDI in folder
  2. Run main.py
  3. Run generate.py

Tools

Data

  • The training data consisted of a large bank of chord progression MIDI files made by the company 'Unison' which is listed in the project.

Software

  • Visual Studio Code

Frameworks

  • Music21
  • Keras
  • Flask

iOS App

Supporting Files

  • MIDI files (.mid)