A simple application for manually identifying chords and constructing chord progressions using the mouse. I wrote this program for myself as a way to bridge the gap between my basic music theory knowledge and my lack of ear training. Use this program to quickly construct the outline of a composition or song that you can then fill in with more detail later. You can check out the source code on github. Included is an executable for Windows, a rich soundfont to get you started, and a folder with some example chord progressions I made while testing the software.
HOW TO USE:
The program has two tables. The right table corresponds to a list of "all" chords containing the notes highlighted in the input column. Each row corresponds to a note and each column corresponds to a different chord. The input acts as a filter to narrow down the range of possible chords to look through. Highlighted cells are are the notes of the chord that will be played if you click the column heading, while cells with text in them that are not highlighted are also in the chord but will not be played. The articulation of the chord ("inversion") can be changed from the initial result by selecting or deselecting notes. The darker shade corresponds to the root of the chord.
The left table corresponds to a sequence of chords that can be added to by copying/pasting chords (e.g. from the right table). The sequence can then be saved to a text file (*.chord) and loaded later from the File menu.
Controls for both tables are similar:
When you play a note or chord, the program uses the currently loaded soundfont to synthesize the sound. Notes played contiue to play until a new note or chord is played (or, if you "play" an empty cell to stop them). You can choose whether all notes in a chord are played simultaneously, or are played in an ascending/descending order with a small delay by moving the "Strum delay" slider. You can load a new soundfont with the "Load Soundfont" button, or choose a different instrument preset with the dropdown menu. The program comes with a default soundfont ("Timbres of Heaven" by Don Allen, http://midkar.com/soundfonts/ ) but you can find others to use. You can change the default startup values in the config.ini file (e.g. the soundfont loaded on startup, save path, and more).
An example use case:
Just a meme, but I wrote some interesting code to generate the "alignment" effect of stars viewed from a certain angle. The script is included in the .m file. The language is matlab but you can probably figure out how to port it if you want to use it.