ChordAL
ChordAL copied to clipboard
Code accompanying ICCC 2019 Creative Submission paper - "ChordAL: A Chord-Based Approach for Music Generation using Bi-LSTMs".
ChordAL - A chord-based approach for AI music generation

Extended abstract: TBA
Full thesis: TBA

Check out ChordAL's music on Soundcloud!
Introduction
It seems to be very intuitive for human composers to write songs based on chord progressions. However, not much work is done on exploring how we could generate melodies based on given chord progressions.
Here we propose ChordAL, which is a chord-based learning system for music composition using deep learning.
Architecture
The generation process is divided into 3 parts: chord generation, chord-to-note generation, and music styling. For more information, please refer to our extended abstract.
We see chord-to-note generation tasks to be similar as neural machine translation tasks, which trains on a large amount of parallel datasets between chords and notes.
File Structure
Each folder is structured to be a component of ChordAL's system:
chord: chord generationdataset: data-loading related functionsevaluation: automated evaluation test on generated piecegenerator: combines chord and melody with music stylingmodels: models used / experimented in ChordALnote: melody generation based on chordsvisualizer: Flask web application for demonstration
Dependencies
P.S.: According to the installation versions of dependencies, it is recommended that the python version is the latest Python 3.6(3.6.8 maybe?)
Try ChordAL yourself!
pip install -r requirements.txt
cd visualizer
python3 main.py
You can then try it on your browser at localhost:5000. Enjoy and hope you like it!
References
For training, we use McGill Chord Dataset, Nottingham dataset cleaned by Jukedeck, and CSV leadsheet database published by MARG Seoul, Korea. These are the more-established parallel dataset of chords and notes, to the best of our knowledge.
Some code references from Keras and Tensorflow tutorials are being used during development.
Author
Tan Hao Hao
Nanyang Technological University, School of Computer Science and Engineering
tanh0207 (at) e.ntu.edu.sg
Code is licensed under the MIT License.