/Composer.App

Primary LanguageJavaScriptMIT LicenseMIT

Composer.App

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: