A simple console application written in JavaScript that generates a chord progression in a given musical key. The progression could be used for improvisation and educational purposes.
===================================================
Composer.App supports the following functionalities:
- random-key-selector.js => chooses a random key to be constructed
- key-generator.js => creates the main scale of the given key
- chromatizer.js => appends the required chromatic signs for the chosen key signature
- chord-generator.js => generates all of the main chords in the tonality with their applied dominants
- progression-generator.js => creates a simple chord progression in the chosen key applying the traditional laws of tonal harmony
- colorizer.js => inserts applied dominants, ii-v 'movements' and appends final cadence
- tonal-mapper.js => maps the progression to specific chords in the particular key
- chord-mapper.js => maps the chord abbreviations to full representation of the chords
- dominant-mapper.js => reads dominant seventh chords and modifies them where necessary
- note-alterator.js => adds accidentals for raising or lowering chord tones
- randomizer.js => helper function for random selection of integers used throughout the application
- app.js => main entry point of the application
===================================================
Example progression generated by the application:
which could be realized on the piano in the following manner: