Distance Matrix
Let’s say we want to play A->G on the third octave.
If the A3 (note A on third octave) is on button 1, 2 and 3, and G3 is on button 4 and 5, there are 6 possible paths to play A3->G3:
[1,4] [1,5] [2,4] [2,5] [3,4] [3,5]
where [1,4] is playing first button 1, second button 4. You might already notice that this will grow quickly if searching a complete tune.
If [1,4] is an easy step, and [1,5] is not, we prefer the [1,4]. We will need a kind of a score to compare both options, and therefore we calculate a so called Distance Matrix. It describes the level of difficulty to play note on button y after note on button x.
The difficulty of playing note y after note x depends on:
- stay on the same side (left or right): same side is a tiny little bit easier,
- stay on the same row: (c, g or top row): I don’t care, no score
- samefinger, same side = hopping: severe penalty
- prefer g and c row: g and c row preferred over top row
- prefer finger: playing on the inside button is good. Therefore a benefit if it’s the first (or second) button on a row
- switch from push to pull or vice versa: a small penalty
- same note? than play it on the same button.
Distance from button to button
The lower the value in the distance-matrix, the easier the play from button -> button.
We calculate the score by comparing the two buttons:
- whether they are on the same side of the tina → sameside(f,t)
- DELETED:: — whether they are on the same row → samerow(f,t) ::DELETED
- whether you switch from Push to Pull → ppchng(f,t)
or by the attributes of the next button:
- which row (top row, c row, g row) → prefrow(f,t)
- preferred finger is 1, or 2. This will play on the inner buttons if possible → preffing(f,t)
or hopping:
- samefinger, same side, no switch from push to pull => hopping. Severe penalty → hopp(f,t)