Functional Chords, or FunChords for short, is a Python script for Ableton Push 2's User Mode to play with harmony. Instead of playing chords note by note, the user plays basic chords by hitting a single pad, or more complex chords by also pressing "modifier" pads. For example, to play Csus2, the player would hit the Sus2 modifier, and then hit the I chord pad. Modifier pads mimmic the language for harmony, where the first letter(s), such as Bb, indicate the root of the chords, and the following words describe the chord's quality, such as Bb sus2 #11.
The goal of this layout is to make simple chords (in the context of western music theory) easily accessible, and more complex chords easily attainable, without knowing their note by note makeup. Hopefully, this will give an opportunity to help untrained instrumentalists play with harmony.
This project is a work in progress, but you can see it in action here: https://youtu.be/7UAzr-PZgIo
Features on the roadmap include:
- Discover chords by playing notes in the pad piano area, ie play C and highlight chords that include C.
- Improving the automated voicing algorithms, and allow the user to easily cycle through different voicings of the current chord.
- Iterate on layouts: show the notes in the chord over different octaves, Tonnetz layout, group chord pads more closely, etc.
- Quality of life improvements such as allowing the user to change scale, voicing center, use the display, etc.