[This video accompanies SYNTONIQ KEYBOARD -> Shift and Transpose.]
[Present on the screen: a video of one of the controllers when in use, the web UI, and a terminal window.]
In this video, I demonstrate the Syntoniq keyboard's shift and transpose features. In a nutshell, shift allows you to slide all the keys over so you can reach notes that are off the edges of the keyboard, and transpose allows you to retune a scale based on other notes in any other scale that's loaded into the keyboard.
First, a reminder: the Syntoniq keyboard supports two different kinds of layouts: isomorphic and manual. This video will focus only on isomorphic layouts, but rest assured that both of these features work with manual layouts as well. I'll cover that in a later video.
With an isomorphic layout, you have to specify three things: the location of the anchor pitch, which is the tonic pitch of the scale, the number of scale degrees to move up when you move one column to the right on the keyboard, and the number of scale degrees to move up when you move one row up on the keyboard. On a hexagonal keyboard, we define "up" as "up and to the left."
These topics are best understood with a demonstration, so let's dive in. I'll start off with the HexBoard, and at the end, I'll demonstrate the same capabilities with the Launchpad.
[Load the first layout, 12-EDO-h2v5.]
This is the first layout, which you can see is called "12-EDO-h2v5". This is a naming convention I've adopted for the built-in keyboard configuration. The h2v5 part of the name indicates "two steps horizontal" (that's h2) and "five steps vertical" (that's v5). Here's what that means. Here's a c [play c], and now a d [play d]. The d is one column to the right of the c, and its pitch is two scale degrees higher. In 12-EDO, that sounds like a whole tone. You can also see that relationship in the note's relative pitch, which is shown as ^1|6. This is two to the power of one sixth, which is also two to the power of two twelfths. It might be more obvious if the keyboard showed the pitch as ^2|12, and you can write it that way. When Syntoniq shows you a pitch, it always shows it in a canonical form. That way, you can tell at a glance whether two pitches are the same. Let's go up one row from c. There you'll find f. [play c, then f.] This goes up a fourth, which is five chromatic scale degrees in 12-EDO. Here, you can see the pitch as ^5|12.
With an isomorphic layout, all you need to know to calculate a pitch is how far away it is from the anchor. Take a look at this. If I go up two rows and to the right one column, I'm moving up two times five [play the keys one and two rows above], that's 10, plus two [play the key to the right], that's twelve, and you can see that we have arrived at c', indicating c one octave higher. Or this: [point to c] go up one row [play f] and to the left two columns [play e% and then c#]. This brings us to c#, whose pitch is ^1|12. This is one scale degree above the base because 5 minus $2 \times 2$ is 1. This note is cyan because it's one scale degree above the tonic. Notice when I press this key, two lights light up on the web UI and keyboard. That's because there's another c# five columns to the right and two rows below this one. Notice that these numbers are 5 and 2, just like the definition of the layout. The math will always work this way: isomorphic keyboards always repeat. They don't always cover all available notes...but I talk about that in the manual section for the layout engine. In this layout, all the notes are covered.
While you can see two instances of the c# note, you can only see one of c. Where's the other one? Of course, it's five columns to the right and two rows down. Let's count. [Play each key and] 1, 2, 3, 4, 5 to the right, and 1...oops we fell off the edge of the keyboard! That c should be right here [touch the spot right off the keyboard where the note would be]. What if we really needed that note? That's where shift comes in. We can just slide all the keys to the left. Let's slide everything to the left by two columns. That would put the c right here [point to the location]. Here's how to do it.
First, I'll touch the shift key. You can see here on the web UI that the shift key is assigned to the sixth command key. Transpose is on the seventh. To remember which is which, just remember that shift comes alphabetically before transpose. When I touch the key, it turns from red, indicating that it's inactive, to green, indicating that it's active. Now I can touch any key as long as I pick one that's far enough to the right. I'll pick this one. [Touch the green key on the far right edge one row below our starting key where we fell off the edge.] When I press it, notice that the shift key has turned purple. Now I'm going to just touch the key two columns to the left [do it], and there you go...all the keys moved. Notice that the shift key turned red again, and that the second key I touched is now green, just like the first key. You can also observe that our missing c is right where it should be: one row below. When I touch that, you hear the c, and the original c, now two keys to the left of its previous position, also lights up.
You can think of shifting like this as scrolling around in an infinite document. With the HexBoard and 12-EDO, you can probably get all the notes you need at once, but you might still want to shift based on what key you're in. With scales that have more notes per cycle (meaning, in this case, octave), the shift function can be essential because sometimes you can't physically reach all the notes in the scale at once.
Before we move off of shift, I'll show you a few more things about it. In the previous example, I used the shift key modally, meaning that when I pressed it, the keyboard entered "shift mode." You can also use it like a modifier key where you hold it down while you're pressing the keys. Let's move one key to the right that way. As I do this, [press shift and hold it], notice that the shift key is green right after I press it [touch the new c], and as soon as I touch the first note it turns purple, [touch the key one column to the right], and as soon as I touch the second key, the shift key turns red again [then release the shift key]. Another thing about the shift key's user interface: after you touch the first key, if you want to cancel, just touch shift again if you're using it modally, or release if you're using it as a modifier. Like this. [touch shift] Shift is green, [touch a key] shift is purple, [touch shift], shift is red again and nothing changed.
Now let's move onto transpose. I'm going to press reset to get everything back to its default state. [Press reset.] For this part of the demo, I'll pick the 19-EDO layout. I'm actually going to transpose the 12-EDO layout by one step of 19-EDO. I'll pick the third layout [press layout and indicate on the web UI that 3 is 19-EDO-h3v2], which is 19-EDO-h3v2 and is on the third key [indicate on the web UI, then touch the third key on the keyboard]. Notice that there's a lot more gray here but that we can still see all our scale colors because 19-EDO has good approximations for all the intervals we color. Let's get oriented. Here's the tonic [touch c]. Here's the major third, which is pink even though it's a little flat compared to 12-EDO [touch the pink e key], and here's the blue fifth [touch g, which is blue, then play the triad]. This has a different shape from 12-EDO because we used different step sizes. We could have defined one of the standard layouts that would have given us the same chord shapes as our 12-EDO layout, but this layout of three horizontal steps and 2 vertical steps makes it easier for us to reach all the notes in the scale. You can see the cyan single-step key here [touch the cyan key one column to the right and one row down]. Let's play these two pitches so you can get the sound of them in your ear. [play c, c# back and forth a few times].
Now let's demonstrate transpose. Transpose works just like shift: you can use the transpose key, which is the bottom command key, modally or as a modifier, and cancel works the same way. The difference is that you can use "transpose" across layouts. While shift takes the position of the first key and assigns it to the second key, transpose takes the pitch of the first key and assigns it to the second key. Here's how it works. I'll play c again so you can hear it [play c], now c# [play c#]. Now I'm going to touch transpose [touch transpose] See how it turns green? Now I'll touch the c#. [Do that.] Notice that transpose is purple, indicating that we are waiting for the second note. At this point, I could touch any other note on the keyboard, but I can actually switch layouts if I want. I'll touch the layout selection key and select the first layout. [do that] Now I'm back on 12-EDO, and the transpose key is still purple. I'll touch c. Transpose is red, indicating that the operation completed. What changed? There's no visual feedback on the web UI or the keyboard, but if I press c, its pitch is now the pitch of the 19-EDO c#. We can see this on the console output. I'll touch d. Let's look at the console output.
[Draw attention to the following two lines of console output. Do not read them.]
Note: c (base × 1 = 220*^23|76), scale=12-EDO, base=220*^23|76 (transposition: 220*^1|4 × ^1|19)
Note: d (base × ^1|6 = 220*^107|228), scale=12-EDO, base=220*^23|76 (transposition: 220*^1|4 × ^1|19)
Look at the second line. We have Note: d indicating the note name, and then we have the pitch as base times ^1|6 as before, but now the pitch is two twenty times two to the 107 over 228 [220*^107|228]. That's the final computed pitch. The rest of the line deconstructs it for us. We see this is the scale 12-EDO with the base pitch of [say two twenty times two to the 23 over 76] 220*^23|76, and that this is our original base pitch, which is 220*^1|4 times [say two to the 1 over 19] ^1|19. That's a lot of information, but it fully deconstructs this pitch. While 220*^107|228 is a mouthful, it's exact, and especially with this deconstruction, it carries a lot more meaning than saying d is 163.158¢ above the base or than that the frequency was 304.576 Hertz. The 163¢ gives you a hint about what the note sounds like, but it doesn't tell you where that pitch came from.
Using one scale to transpose another scale is an example of what you can do with the Syntoniq keyboard and the Syntoniq language as well, and you can see that the console output would help you know how to code this in the Syntoniq language. These features can be very useful when working with complex just intonation tunings or scales with more notes than you can reach on the keyboard!
Before we wrap up, let's do a quick fly over with the Launchpad.
[Disconnect, restart syntoniq-kbd with the Launchpad.]
I'll select the 12-EDO layout. [Do that.] There's c. [Play c.] Remember how our octaves were two rows up and one column to the right but how they looked vertically aligned on the HexBoard? Well, since this is a rectangular grid, everything skews right as we go up. It's a little easier to see the pitch relationships here even though the hexagonal layout is generally easier to work with. We can see our f [play f], and c# [play c#], and on this layout, our other c is actually visible, right below the green key as before, since things skew left as we go down.
Shift works the same way. The shift key is up here in the upper left corner [indicate on the web UI and physical keyboard]. I can use it modally [touch shift, then c, then the note to its right]...see how the notes all moved? and as a modifier [press shift, touch c, then the note to its left, then release shift]...there everything's back.
Now let's do transpose. I'll select 19-EDO, which is the second layout. [Do that.] There's my c and c# [play back and forth a few times]. The transpose key is the one labeled Note [indicate on the keyboard and web UI] and is red. I'll touch it [touch it]...it turns green...now I'll touch the c# [do that]...transpose turns purple...now I'll select the first layout...see transpose is still purple...and finally the c [do that]...transpose is red. Now when I play c [do that], it sounds up one 19-EDO step, and you can see on the console [indicate] all our 23 over 76 stuff and the transposition indicating ^1|19.
That covers shift and transpose. In the next video, I'll dive into manual layouts.