Wednesday, March 16, 2016

ChordEase 1.0.13 adds new harmonizer features

ChordEase 1.0.13 introduces several new harmonizer features, including chord constraint and harmony groups. Chord constraint lets you restrict a harmony line to a user-specified set of chord tones. Harmony groups are useful for avoiding note collisions in multipart harmony. Example patches that demonstrate multipart harmonization are included in the distribution.

This version also improves the handling of MIDI devices. For example, the missing device dialog now has a retry button, giving you the opportunity to plug in the missing device and try again. Also ChordEase now does a better job of locating MIDI devices that were moved to a different USB port. Many other minor new features and bug fixes are included, such as coloring the piano dialog's keys in order to indicate scale tones.

ChordEase makes it easier to play music with complicated chords. No matter what the chords are, you can play as if they were all in the key of C. You don't need to play sharps or flats, because ChordEase automatically adds them for you. Though ChordEase is intended for jazz, it could be useful for any type of music that modulates frequently. ChordEase alters your notes in real time in order to make them harmonically correct, while preserving their rhythm and dynamics. By delegating rapid music theory calculations to ChordEase, you gain freedom to concentrate on other aspects of improvisation and performance, such as feel and aesthetics.

ChordEase is free software (GPL version 3).


Saturday, August 8, 2015

ChordEase 1.0.12 adds spontaneous tonality and chord substitution

The latest version of ChordEase (1.0.12) lets you specify the chord via continuous controllers, without having to load a song. This was achieved by adding a Chord bar containing drop lists for the current chord’s root, type, bass note, scale, and mode, all remotely controllable via MIDI. If no song is loaded, these new parameters affect the default chord instead. The ability to change the default chord while playing enables a new usage scenario in which tonality is determined spontaneously by navigating a multi-dimensional parameter space, instead of by stepping through a preset chord progression. The tonality can also be automated via functions e.g. periodic waveforms or randomness, provided you have a synth or other device that contains such functions and can output MIDI messages corresponding to them.

ChordEase 1.0.12 also introduces chord substitution, which is supported by switching between two or more chord dictionaries. A chord dictionary defines the set of chord types that a song can use, by mapping each type to a scale and mode. Substituting a different dictionary alters the harmonic content of all your songs at once, by redefining their chord types. Substitution can be remotely controlled via MIDI, so it's possible to switch dictionaries seamlessly during a performance. For example you might have one dictionary for playing melodies and another dictionary for soloing, with a third dictionary containing unorthodox definitions for playing "out".

This version also adds other interesting features and fixes many bugs, some of them critical; see the release notes for details.

Thursday, May 28, 2015

ChordEase 1.0.11 adds tagging, tap tempo, adaptive arpeggios, and more

ChordEase 1.0.11 adds some major new features, including:

  • Tagging: Spontaneous repetition of one or more measures.
  • Tap tempo: Enter tempos via tapping instead of numerically.
  • Adaptive arpeggios: Arpeggios that span a chord change adapt to the new chord, by combining notes from both chords to create hybrids.
  • Chord dictionary dialog: A full-featured editor for editing the chord dictionary.

Various bugs were also fixed in this version; for a complete list, and links to documentation of the new features, see the release notes.


Release notes

Tuesday, May 26, 2015

Pitch class sets and other amusing distractions

I'm almost done with the ChordEase documentation, but I keep getting distracted, not only by the internet, but by something much harder to resist: other programming projects! Programming problems are like catnip to me. The catnip that tempts me the most lately is the foundation of atonal music, AKA Pitch Class Sets: "Pitch Class Sets are a method for describing harmonies in 20th century music. These notations and methods can describe and manipulate any type of chord that can be created within a 12-tone (equally tempered) scale."

Paul Nelson, the guy who made that site, is one of my heroes. Pitch class sets allow us to reduce any set of notes to its fundamental pattern, called the "Prime Form". There are surprisingly few of them. For example, for 7 notes, there are only 35 unique patterns (or 38, depending on your standard). All of the thousands of other combinations are merely transpositions and/or inversions of the prime forms. Here's the Table of Prime Forms (from Paul again).

All told there are only 208 prime forms, an astonishingly low number. The major (diatonic) scale is one of them of course. They have codes, called Forte codes (after the guy who invented all this, Allen Forte, recently deceased). The major scale's code is "7-35". Pitch class sets seem opaque at first, but they have deep implications, especially for atonal music. The work of Schoenberg, Stravinsky, etc. would have been unimaginable without them.

Almost all the music you'll ever hear will use perhaps two or three of the 208 pitch class sets (unless you listen to a lot of atonal music!) I would be very surprised if Paul McCartney knows more than a handful of them. This is interestingly similar to the fact that almost all music is restricted to a single meter at a time.

I'm an innovator in terms of rhythm (due to extensive use of polymeter), but in terms of pitch, not so much, and I would like to change that. My first step is basically repeating Paul Nelson's work. I've already made a program that can reduce any set of pitches to its prime form. Soon I'll be able to generate his table too. It might seem like a waste of time to reinvent this particular wheel, but the process allows me to familiarize myself with the underlying concepts. For the moment it's a purely academic exercise, but one possible application would be add the prime forms (of heptatonic scales only) to ChordEase. This would allow ChordEase to be used for atonal music!

I don't always work in a straight line. A lot of what I do is pure research. Sometimes the results are useful, sometimes not. My primary motivation is to satisfy my curiosity, and I'm a very curious cat.

Wednesday, October 22, 2014

ChordEase adds synchronization via MIDI clocks, cycle of thirds

The latest version of ChordEase (1.0.09) can be synchronized with an external device. Timing synchronization is implemented via MIDI clock messages, combined with the Start, Stop, Continue, and Song Position MIDI messages. ChordEase can be a slave or a master. For details, see Patch Bar/Sync in the documentation.

This version also adds a "Thirds" non-diatonic notes rule, which causes successive white keys to form the cycle of thirds. This makes it much easier (and more fun) to play arpeggios. Interval distances are greatly reduced: each input octave spans two output octaves. This facilitates the playing of melodic lines that are unusually wide in terms of range. It also could be of interest to people with physical limitations that might otherwise prevent them from playing wide intervals.

For a complete list of changes, see the release notes. And, here's the download link.

Tuesday, September 23, 2014

ChordEase and cybernetics

Collaboration between computers and people is the essence of the ChordEase project. The idea is to create a cybernetic organism, in which a performer cooperates with a machine in order to acquire new degrees of freedom that would otherwise be inaccessible. In this narrow sense, a person driving a car also constitutes a cybernetic organism. The car and the person cooperate to achieve a new degree of freedom, i.e. the person can now move around at 60 MPH. All tools have an element of cybernetics, but especially tools that embed information, control systems, sensors, feedback etc. By enabling a person to extend his or her power, tools create a new more powerful organism, a kind of meta-human or cyborg. So in the same way that a person using a portable vacuum becomes a vacuuming cyborg, a person using ChordEase becomes an improvising cyborg.

ChordEase is actually a very specific cybernetic experiment, organized around a simple hypothesis, which is that computers excel at rapid calculations, whereas people excel at rhythm, feel, and aesthetics. Rapid music theory calculations are a crucial component of improvising, and they're exactly the type of rule-based deterministic work that computers are optimized for. So the work of improvising should ideally be divided up between the person and the machine in such a way as to maximize the capabilities of each. The computer handles the brute-force music theory calculations, and the person handles everything else. In particular the person should avoid delegating anything related to rhythm and feel, because these qualities are fundamentally cultural and biological, and therefore very difficult to reduce to simple rules that a computer can follow. Rhythm originates in aspects of our nervous system that we share in common with most other animals, and is therefore inextricably entwined with our most basic drives, such as predation and procreation.

More generally it could be argued that machines will never make truly convincing aesthetic choices autonomously, simply because machines don't suffer, but let's leave that for next time...

Wednesday, September 3, 2014

Why ChordEase is a tough sell

ChordEase is much more difficult to market than most products. Most products address an already existing need, and consequently have plenty of competition, but also an obvious built-in market. By comparison ChordEase is a new invention, and thus has no competition, but no easily accessible market either. The hardest problem in marketing is creating new needs, i.e. persuading people that they should try something that they never wanted or even imagined. This is harder still when the new thing is complex and takes effort to understand.

ChordEase is effectively a new kind of instrument, but it's not a physical instrument; instead it uses artificial intelligence to enhance ordinary MIDI instruments, so that they can be approached in a radically new way. It's also a meta-instrument, in the sense that it offers the same capabilities to every musician, regardless of what instrument they play. It's especially useful to people who approach music rhythmically, because it can translate rhythmic input into harmonic and melodic output.

The main goals of ChordEase are 1) to facilitate the performance of harmonically challenging music, and 2) to enable the performance of music that would otherwise be physically impossible. Like any new instrument, ChordEase has many subtleties and mastery of it requires practice, but it has the potential to be a game-changer and open up new aesthetic vistas. My hope is that people will eventually take interest in ChordEase, use it to create their own art, and support its further development in whatever way they can.