
tonespace
user manual
v1.0.150
Contents
Navigation along the axes of the
space
Appendix : Setting up tonespace with
a DAW / host
I don’t have a host – what do I do?
Cubase SX3 (Cubase LE similar)
You can best think of tonespace as a different, more intuitive music keyboard, combined with a chord generator, or chorder.
It
automatically generates chords to midi-out, while you wander around in a
grid-like space. It supports over 50 different grids, 14 scales, 18 keys, 30+
chord types and 15 chord voicings. Great for slow IDM chord pads. Or try the
blues scale with your bass rythm track of choice for some sweet jamming.
Tonespace can also be used as a fun
educational tool for anybody wishing to learn about scales, keys and chords.
Tonespace
is a VST instrument plugin which implements a combination of a virtual,
on-screen keyboard and a chorder. It
works by taking user input from the keyboard, converting that input to chords and
then sending these chords as midi note-on/note-off events to its output.

Tonespace
supports a number of ways of getting user input:
The
output is always the VSTi midi output port. This output can be routed to
The plugin also allows automation of its parameters by hosts that support this.
Please
note : this manual assumes you have already set up tonespace properly for your
host. Please see the appendix for setup
for information on how to do this.
The main
element in tonespace is the colored on-screen grid, which we call a space. A space is a two-dimensional
spreadsheet which contains midi note numbers.
When you click on a cell in the space the corresponding midi note is
played (or a chord based on that note, as you will see later).
Also,
some cells are colored, others are not. This means that only the colored notes
are part of the currently selected scale and key (Blues scale and key of G
in the picture below). Only colored notes can be played. But more about that
later.

The note
numbers increase from left to right and from bottom to top. In the picture above the increase is 2
semitones in horizontal direction and 5 semitones in vertical direction. This space is called M2-P4 [2:5] or [2:5] for
short [1].
As you
can guess, other combinations of horizontal/vertical increases are possible,
leading to other spaces. You can select
these spaces by choosing a value for the SPACE
combobox in the parameter section of the screen.
![]()
There are
two wellknown spaces, named after the researchers who discovered them:
These two
spaces have special properties. One of those properties is for instance that
certain common chords look like very simple shapes when drawn on the space.
Let’s look
at a grid based on Balzano’s space. If we draw a major chord in that space, it
will have a horizontally mirrored L-shape:

This is
easy to see if you look at the offsets of the three notes within a major chord,
which are [0 4 7]. So, starting the chord from middle C (midi 60) we get midi
notes 60+0, 60+4 and 60+7. These offsets
we also call intervals.
If we
draw a minor chord (with intervals [0 3 7]) , it will have a vertically
mirrored L-shape:

What’s so
useful about this, is that compact shapes in the space (shapes consisting of
cells close to eachother) apparently correlate with interesting chords. We can now turn this around : if you would
draw a compact shape at random in the space, there is a good chance that this
shape turns out to be a useful chord.
This is one of things the tonespace chord fitting algorithm is based on.
More about that later.
Another
interesting property of the Balzano space is that one of its diagonals turns
out to be the chromatic scale (1 semitone increase) and the other diagonal
appears to be the cycle of fifths (7 semitone increase). This means you can navigate (move the mouse)
easily along a chromatic sequence and along the cycle of fifths simply by just
following the diagonals. Plus there is a
useful progression on the horizontal and vertical axes too, in steps of major
and minor thirds respectively (4 and 3 semitone increases resp.).

The
Longuet-Higgins space has comparable properties, which we will not describe in
detail here.
You can
find a much more thorough treatment of the theory behind these spaces and
earlier implementations in [Holland, 1987]. Note that the tonespace implementation deviates
in some respects from what is described in this paper, but the general
principles still apply.
We will
now explain a bit more about scales, keys and chord intervals.
Before
moving on to scales, let’s first select a suitable space. Among the selectable
spaces there is one that is particularly useful for understanding the concept
of a scale, which is Octaves [1:12].
This space has a row for each of the 9 octaves, with each octave containing 12
semitone columns.

Now let’s
choose a scale to apply to this space. You can control the scale using the SCALE parameter in tonespace.
![]()
Shown
above is the chromatic scale, which
is just a fancy word for saying that all notes are allowed for playing [2].
So there are no black cells here, only colored ones.
Musicians
do not often use the chromatic scale, because if you would use all of these
notes, it is possible to select two or more notes that do not sound well
together (they are dissonant).
Therefore, it is standard procedure to throw away a bunch of notes from
each octave and only work with the remaining set. Such a set we call a scale. Notes within a scale
tend to sound pleasant when played together.
For
example, let’s choose another scale called the Major scale, also known
as the Ionian scale. By applying the
major scale, some columns are blackened in the space. These won’t react any
more when you click them with the mouse. Their notes are forbidden.

The
picture above makes clear what a scale really is : it is a set of note offsets,
or intervals, that defines which are the “good” notes. For the major scale
these intervals are [0 2 4 5 7 9 11] [3]. When these seven intervals are applied to the
octave of middle C, it means we only get to keep midi notes 60+0, 60+2, 60+4,
60+5, 60+7, 60+9 and 60+11.
The major
scale happens to contain 7 intervals, yielding 7 midi notes when added to the
midi start note of the octave. Many other scales do too. But there are also
scales with just 5 notes (e.g. pentatonic
scales). There is no hard rule about how many notes there can be in a scale.
You have to find a balance: if there are too many, dissonances occur more
easily. If there are too few, less variation can be used in the chords and
melody.
So
musicians that play together have to agree first on the scale to use (if they
want to avoid playing notes that don’t go well together). But this is not
enough. They also have to agree on the key
they will use. The key (in tonespace at least) is just a fancy word for the starting note or better, the starting pitch class of the scale [4]. A key of C means we start at the first pitch
class (being zero). A key of C# means we start at the second pitch class (being
1). A key of D means the third pitch class (being 2). And so forth.
You can
control the key using the KEY
parameter in tonespace.
![]()
Note:
when you hear someone saying : “let’s play in the key of C Major”, actually
this says two things at once:
This
means that, starting from C (offset 0),
you will use only notes that you find
at the relative offsets [0 2 4 5 7 9 11].
For the key of C that starting pitch class would be 0, therefore, for
the middle octave which starts at midi 60, we get to keep midi 60+0+0, 60+0+2,
60+0+4, 60+0+5, 60+0+7, 60+0+9 and 70+0+11.
This is shown in the space fragment below:

Should
you instead agree on D Major, then
the intervals would remain the same (major), but the starting pitch class would
be different (offset 2), leading to the following midi notes in the scale/key
: 60+2+0, 60+2+2, 60+2+4, 60+2+5,
60+2+7, 60+2+9 and 60+2+11. The result looks like this:

Notice
how you get the same pattern of allowed notes starting from either C in the
first picture and starting from D in the second picture. It is just shifted
upward by 2 semitones.
Should
you agree instead on C Minor, then
the starting note remains the same as C Major (offset 0), but now the intervals
that you add to that starting note will be different (minor) : [0 2 3 5 7 8
10], yielding midi notes 60+0+0, 60+0+2, 60+0+3, 60+0+5, 60+0+7, 60+0+8 and
60+0+10. Which looks like this:

So keep
in mind that the resulting note selection is always a function of these two
things : the scale (the intervals) and the starting note to which the intervals
are added. You are encouraged to play a bit with the SCALE and KEY parameters
in tonespace to get a feel of how scales and keys interact to select a bunch of
notes.
Notice
also how the underlying space never changes.
Applying a scale and key is in fact just putting a filter onto the
space, making certain cells black and adjusting the note labels in each
cell. It does however not alter the
location of the midi notes within the space.
Often you
will encounter the set of roman numerals I to VII in music literature. What are these? Very simple, they are nothing
but names for the the seven notes in a scale (assuming you use a scale with
seven notes – 5 note scales use only I..V).
They are called scale degrees.
For
instance, look again at the notes in the C major scale:
They are
C, D, E, F, G, A and B respectively.

Now let’s
display them as roman numerals You can do this by selecting the appropriate
value in the DISPLAY combobox:
![]()
The
result looks like this:

This the
same scale, the same key, but just different labels. Why bother then? Well,
this allows you to indicate the n-th note of a scale regardless which type of scale/key you are using.
For instance
compare with D Major:
Original
notation: D, E, F#, G, A, B, C#

And its
roman numeral notation:

Did you
notice how the I .. VII set has shifted two positions to the right? That’s
because we now start at D instead of C.
Why is
scale/key-independent note labeling useful?
One example is when you want to specify the root notes of a series of
successive chords to play (called a chord
progression) within a scale/key,
without knowing up-front what that scale/key is. That way it suffices to write down the chord
progression just once as roman numerals (e.g. I–III–IV) which you can then apply to a myriad of scale/key
combinations later.
Okay, you
now know how to choose a space to navigate in. You also know how to limit the number
of allowed notes in that space by choosing a scale and key. And you are able to
adjust the note label display as needed.
Now let’s examine the last bit that’s missing from the picture : chords.
Like a
scale, a chord is defined by a set of intervals. However, the number of notes in this set is
typically much lower, with three or four being common.
We can
classify chords after the number of notes in them:
In
tonespace 1.0 we support dyads, triads and tetrachords only.
You can
select a chord in tonespace by setting two parameters. First set the CHORD
ASSIST parameter to Manual.
![]()
Then set
the CHORD parameter to any of the
chords in the combobox. For instance let’s set it to Major:
![]()
A major
chord is a triad defined by the intervals [0 4 7]. Let’s see what happens when
we try to play this chord on our space.
To make things easy, set your other parameters as follows :
