We use a file format quite similar to HarmonicalChordInput files to define a vocabulary of chord types. It's very simple: just clusters of points in the tonal space, each with a name.

This is used by the Interactive Tonal Space. It can read in a chord vocabulary and dump them onto the tonal space on request, rooted at whatever point you choose.


The format is simple.

As with HarmonicalChordInput, you can use # to mark a comment:

# Commented out line

You must define the file format at the start of the file using the format directive:

@format: chord-vocab

Define a chord type by giving its name, a :, then a list of 3D tonal space coordinates. These are relative to the root (0,0,0). The chord will be moved so it's relative to the chosen point when the chord type is used.

maj7: (0,0,0) (0,1,0) (1,1,0) (1,0,0)