Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kaliv0/composer-engine-in-java
https://github.com/kaliv0/composer-engine-in-java
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kaliv0/composer-engine-in-java
- Owner: kaliv0
- License: mit
- Created: 2023-04-01T07:32:52.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-13T08:16:13.000Z (over 1 year ago)
- Last Synced: 2024-02-21T17:01:13.611Z (9 months ago)
- Language: Java
- Size: 421 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Composer-Engine-in-Java
A console application written in *Java* 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:
- *_RandomKeySelector_* => chooses a random key to be constructed
- *_KeyGenerator_* => creates the main scale of the given key
- *_Chromatizer_* => appends the required chromatic signs for the chosen key signature
- *_ChordGenerator_* => generates all of the main chords in the tonality with their applied dominants
- *_ProgressionGenerator_* => creates a simple chord progression in the chosen key applying the traditional laws of tonal harmony
- *_Colorizer_* => inserts applied dominants, ii-v 'movements' and appends final cadence
- *_TonalMapper_* => maps the progression to specific chords in the particular key
- *_ChordMapper_* => maps the chord abbreviations to full representation of the chords
- *_DominantMapper_* => reads dominant seventh chords and modifies them where necessary
- *_NoteAlterator_* => adds accidentals for raising or lowering chord tones
- *_Randomizer_* => helper function for random selection of integers used throughout the application
- *_MidiCreator_* => creates MIDI file with the generated progression
- *_Generator_* => main entry point of the application========================================================================
Example progression generated by the application:
which could be realized on the piano in the following manner:
A short piano piece based on the progression can be found here:
https://soundcloud.com/user-962833289/embers-m4a?si=fb17f612ce27482a8535aff6ff6629dd&utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing