Create compositions and practice music theory with Composia. Export your creations to MIDI or PDF.
Composia is a project I started in order to apply music theory concepts - and help me learn them.
There are a number components that Ive had to build: theory, database, sheet music generation, menu system, and synth.
- Theory
So far I have programmed in Keys, Solfege, Scales, Chords, Phrases, Figures, Compositions and Part Writing. Getting the part-writing to work was very challenging. It doesnt follow the rules 100% in order to allow the user some more freedom to create.
- Database
I had to create a way to store compositions in such a way to retain context and allow AI to use for generation in future versions.
- Sheet Music Generation
The most difficult part so far has been the sheet music generation & exporting with realtime pinch zoom. At first I thought it wouldnt be SO complicated but turns out allowing for 4 voices and all the variations of notes and rests is very tricky. There is still a lot to do but its at least stable now.
- Menu System
Since I had to keep creating different menus to test various aspects I decided to go with a "neuron" menu system. This was also a giant pain to build but has made things easy once it was put into place.
- Synth
This is currently the weakest part of the project, but it produces a basic sound for the notes. I decided to use overtones to make a note sound louder. The louder the note the more overtones are attached.