Skip to content

ThaDuyx/ScaileAI

Repository files navigation

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)

About

Python backend for the Scaile app. AI generator using LSTM as neureal network generation for chord progressions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages