/Harmony-Explorer

A visual explorer for harmony chords

Primary LanguageJavaScript

Harmony-Explorer

Harmony-Explorer is a JavaScript application that lets you explore harmonies and chords using a visual directed graph.

Motivation

Composing a song starts with some basic parts, among them are chord progressions. I can't remember all the harmonies of the different keys, making it difficult to try different keys and chords.

With Harmony-Explorer, you can simply click around the seven main harmonies of any key to experiment with different progressions. Extended harmonies can also be reached using the chord graph and more complex chords can selected through the UI.

Screenshot

Alt text

Installation

MIDI is supported by the MIDI.js submodule.

Soundfonts are supported by the midi-js-soundfonts submodule.

To properly install these submodules, on version 1.6.5 of Git and later, you can simply use:

git clone --recursive https://github.com/dcorboy/Harmony-Explorer.git

For existing repos or older versions of Git, use

cd MIDI.js
git submodule update --init
cd ../midi-js-soundfonts
git submodule update --init

Usage

Play the current chord with the ♬ button. Chord name and notes are displayed under the Chord selection box.

Click on the colored graph below the main UI to follow the general progression of chords in C-Major (the default).

The Shift key will raise the chord an octave while the Ctrl key will lower the chord an octave.

Choose a different root note from the Key selection box on the top-left and either Major or Minor from the radio buttons below it.

More complex variations of the root note can be selected from the Chord selection box on the top-right.

Clicking the keyboard with the Alt/Option key pressed will add notes to the current chord. Clicking without Alt/Option will start a new custom chord.

Load sample chord progressions from popular songs by clicking the Samples button.

Load different instruments by clicking the Voice button.

Recording

  • To record the current chord, click the ☗ ♬ button
  • To record a rest measure, click the ☗ ⌀ button
  • To play back the recorded chords, click the ▶ button
  • To delete the last recorded chord, click the ⌫ button
  • To clear the current recording, click the ❌ button
  • Toggle the record mode by clicking the ⚫ button. In record mode, all chords played will be recorded.

License

GNU General Public License

© Copyright 2014 Dave Corboy dave@corboy.com

This file is part of Harmony-Explorer.

Harmony-Explorer is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Harmony-Explorer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

If you did not receive a copy of the GNU General Public License along with Harmony-Explorer, see http://www.gnu.org/licenses/.