Page 1 of 1

Mapping any* tuning

PostPosted: Sun, 10 Apr 2016, 10:46
by Bo
Here's how to map any* tuning on your Terpstra. Let's assume working with the Virtual Terpstra Keyboard app.

Once you got the tuning in place, you'll notice the options Right Facing Steps and Up/Right Facing Steps.

The easiest way to get started using these is to refer to Erv Wilson's paper "On Linear Notations and the Bonsanquet Keyboard" published in Xenharmonikôn 3, available online here:

Inside you'll find how to map 7, 8, 9, 12, 13, 16, 17, 18, 19, 22, 23, 26, 29, 31, 41 & 43 tone tunings*. These can be equal or unequal temperaments, rational tunings from the harmonic series (just intonation), moments of symmetry scales, and pretty much anything you can imagine.

Here's an example from page 8, where the mapping of 12, 19, 31 and 43 tone scales are shown on the same diagram (cropped below):


For a 43-tone scale, use the numbers at the top of the keys, marked with red ovals. From the image, Right Facing Steps: 7 and Up/Right Facing Steps: 3.

For a 31-tone scale, use the numbers on the right hand side of the keys, marked with blue ovals. From the image, Right Facing Steps: 5 and Up/Right Facing Steps: 2.

For a 12-tone scale, use the numbers on the left hand side of the keys, marked with orange rectangles. From the image, Right Facing Steps: 2 but Up/Right Facing Steps: 1. That's because even if there's no number on the left hand side of the up/right facing key, for this layout the entire mapping gets duplicated above and below, just like on the Jankó keyboard. If this sounds complicated, try it and it will make sense!

And for a 19-tone scale, use the numbers at the bottom of the keys, marked with azure rectangles. From the image, Right Facing Steps: 3 and Up/Right Facing Steps: 1. The same is true here as for the 12-tone layout, and in fact for any tuning, no matter how many tones*: at one point, the entire arrangement will be repeated above and below itself.

I have started counting from 0, since that makes the step progression most obvious. But it can start anywhere. Take the number 1 in the azure rectangle at the bottom of the bottom key. It will progress by +3 right facing steps: 4, 7, 10, 13, 16, 19 and +1 up/right facing steps: 2, 3, 1 again, then 2, 3, 1, 2, and so on.

That's it! This is all you need to know to get mapping right away. Below are some extra thoughts and math.


Kite Giedraitis posted this on the Xenharmonic Alliance II Facebook Group, when the campaign was live:

Kite Giedraitis wrote:Looking at the non-12 layouts, if 1 step in the 4:00 direction goes up A steps and 1 step in the 1:00 direction goes up B steps, and the octave is where it usually is, there are 7A+5B steps to the octave. Assuming A&B are relatively prime. The LLsLLLs scale is the same shape in all these layouts. This means once you get used to the layout you can play in all these EDOs: 12, 17, 19, 22, 26, 27, 29, 31, 32, 33, 37, 39, 40, 41, 42, 43, 45, 46, 47 (twice), 49, 50, 52, 53, 55, 56.

Now I'm not that sure I fully understand Kite's details, although I get his idea:

The coolest thing about these templates is that no matter the tuning, you always get the diatonic scale under the same finger position!

This works because every key is surrounded by 6 others, so there are 3 different step-directions and their "inverses". But once 2 of them are known, the 3rd is automatically generated.

Terpstra's hexagonal layout is in fact the playing surface of a tonal array topologically equivalent to Euler's Tonnetz, which is a conceptual lattice diagram representing tonal space, also known as 5-Limit Tuning Lattice (see also Harmonic Lattice Diagrams), Tri-Axial Matrix Model of Musical Harmony, Harmonic Table layout, or Sonome.

Image copyright: Siemen Terpstra

By the very design of the keybed, the only way to have "octaves" (of all tones!) at the same horizontal level is to go 5 steps pseudo-right and 2 steps pseudo-down.


So all the work consists in finding a solution of integers to the equation

  • 5*x + 2*y = N-tone tuning.
From this the complete layout can be generated. But there is one condition needing to be fulfilled, in order for the pattern to work: x and y must never be both even or odd.

However, gedankenwelt94 had something to add to the above. This part of the conversation is copied from a topic started on the Y! Tuning Group:

gedankenwelt94 wrote:Interesting, I haven't thought of this simple approach. You're correct that both x and y being even is an important special case. If x and y are both odd, you won't find solutions in this case, but it's not generally a problem; a counter example is 5*5 + 2*3 = 31, which describes the meantone diatonic scale as a subscale of either a 31-note meantone MOS, or 31-EDO.

The important thing is that d = gcd(x, y) divides N. So if d > 1, the whole equation 5*x + 2*y = N can be divided by d, which leads to solutions for N/d-note tunings, which isn't desired, since we're interested in solutions for an N-note tuning. We can still "fix" this and get a usable solution by dividing x and y by d, and chaining the pattern d times together, meaning we get an MOS which has d periods per octave.

Fortunately, if you're mathematically challenged like me, you don't have to understand all that in order to use Wilson's mappings with your tuning.

*There are a few tunings which, although can be mapped on the Terpstra, they won't be isomorphic. These are the numbers not specified in this post (like 10, 24, etc).

Re: Mapping any* tuning

PostPosted: Sat, 14 Jan 2017, 07:58
by Bo
ADDENDUM for the Terpstra WebApp

While all the above works for the physical Terpstra controller and the virtual version, what follows is suitable for the virtual app only, since it can do something the controller can't: Rotation.

On the downside, the virtual version has a flat keybed with no velocity, while the controller's playing surface is terraced in pseudo-3D and its key sensing mechanism makes it highly expressive.

First, let's take a look at the default value for the angle of rotation (built into the hardware).
Figures in black are multiples of the black line's size (the height, in the 90° rotated legend) and were calculated with geometric formulas.

We know from trigonometry that the value of the angle can be calculated in 3 ways:


This specific geometry reflects the tilling of the Jankó layout, so that after 12 "chromatic" steps going higher in pitch, thus higher on the keyboard, the "octaves" are at the same horizontal level.

The beauty of it is, this property remains true for any tuning, having any number of tones, based on a single "circle of fifths".

But on the WebApp, we can modify the angle so that horizontal "interval of equivalence" is achieved after any desired number of steps.

That can be done by implementing the above calculations for our specific needs.