EVI and EWI Alternate Fingerings
-
I wanted complete lists of the alternate fingerings for the EVI and EWI modes, so I wrote a program to generate them. Here are links to PDFs arranged by note and by number (basically the binary representation plus 1).
-
Interesting ...
I am wondering, however, if some of the fingerings you have listed are "producing" a particular pitch because it was a hold-over from the most recent pitch you happened to be playing. My experience is that fingerings that are unassigned in a particular finger mapping simply continue to play that most-recent pitch.
Also, what I have begun mapping are the "don't care" finger positions. I have found it useful to combine fingerings using a "don't care" graphic notation (maybe a grey circle, rather than black or white ... although this does not work well if you are building a TTF/OTF font).
The "don't care" system is used by the Sylphyo itself, or at least by the developers in programming the Sylphyo for a new finger mapping.
-
It could be. I am very new to the Sylphyo and don't already play a wind instrument. I did test each note individually, and usually had to let go all or most of the keys before getting my fingers in the right places.
Also, these two fingerings are built up by rules (not sure if they are implemented that way in the mapping itself).
-
@williamjturkel I believe that there are no rules involved with finger mappings - at least they are not specified that way when developing a new finger mapping. There are finger patterns - like you show in your PDFs - with the addition of a "don't care" option for any given finger position.
I think anything that is not covered by (i.e. does not have a specified fingering) in the finger mapping results in a "do nothing" - i.e. continue playing the last pitch.
-
By rule-based, I mean that each key (or group of keys) adds or subtracts a particular number of semitones from a base note. (If you check the manual for those two fingerings you will see what I mean). So I don't think there should be any "don't care" options... every one of the 256 possible mappings should be specified by the algorithm, which is how I enumerated them.
But if the programmers just implemented a subset of those and left others as "don't care", then I am wrong.
-
Right ... those rule-based descriptions in the manual are great, but I am thinking that the Sylphyo engine does not actually work on rules (based on work I did programming two new finger mappings).
It seems to have a set of patterns that allow closed, open, and "don't care" finger positions. And if no pattern matches (i.e. the 2^8 (256) possible non-thumb fingerings are not completely covered), then I am thinking the Sylphyo ignores the fingering.
Very interesting that you generated the PDF programmatically - I have been working on a TTF font - it is currently an (old-style) Windows symbol font, but I am planning on converting it to a bona-fide Unicode font using the Private Use Areas.
-
I understand. I will try going through all of the EVI fingerings, preceding each one by a different note as specified in the user guide. That way I will be able to tell if there are any "don't care" settings.
-
OK. I have gone through all of the EVI alternate fingerings (the keymapping that I am using) and convinced myself that none have been encoded with "don't care". There really are 25 different ways to play an A in the same octave.
This is great news for people with disabilities, for example. If someone is missing a finger, or incapable of moving it into the right orientation, they might be able find a workaround.
It is also possible to find notes that are one finger (up or down) away from one another. (Hamming distance in the binary representation). These transitions may be easiest for beginners to play. Alternate fingerings may be useful for playing particularly difficult passages if a musician has time to practice, and so on.
-
Great work!
You're both right, in that generally the Sylphyo fingerings are described by a set of fingering-to-note mappings (fingerings being encoded as a series of closed/open/don't-care choices for each key), but in the case of the EVI and EWI fingerings they're actually generated based on the rules described in the manual, so there's no "unassigned" position (that would have resulted in continuing with the most recent pitch, as Clint correctly guessed).
A few technical details might be useful here. The Sylphyo firmware represents a fingering as a table of 512 entries containing relative pitch values. Each of the 512 entries corresponds to a finger position, with 512 = 2^9, as there are 8 keys plus whether an octave key is pressed or not. The tables are generated from YAML files, such as the ones Clint is working on (huge thanks!) for upcoming fingerings, that list finger positions (and includes a "don't care" state in addition to open and closed for each key) and their corresponding pitch. These files are later processed with a set of Python scripts that allow me to generate the data for the Sylphyo firmware, as well as check whether there's any error, missing position, or double assignment if needed.
Some years ago I've had a brief stint during which I tried making transpositionally-invariant fingerings based on intervals like major and minor thirds, and on this occasion I've enhanced the scripts with tools such as Hamming distance computation in order to be able to suggest optimal finger positions for a given melody, or to find what would be the best "standard" finger positions for these new fingerings. As I was soon hit with more urgent things to do I haven't gone further on this, but maybe I can share a few insights (or maybe small pieces of code?) with you guys if it can help.This kind of work is obviously very interesting too for people with disabilities, maybe as a starting point. In the past two years we've been working with a former trumpet teacher on a one-handed adaptation of the EVI fingering (currently not available to the general public), and one of the lessons was that generic solutions only go so far.
-
@join said in EVI and EWI Alternate Fingerings:
Hamming distance computation
I am thinking that Hamming Distance is a good starting point, but may have to be modified by issues of kinesiology such as "it's harder two swap two fingers (i.e. pick one up and put the other down) that are next to each other vs. on different hands". The condition where two fingers always move together (I think it's called Focal Hand Dystonia) may be an extreme example of this issue.
I wrote a quick YAML (Yet Another Markup Language?) parser in perl to check for errors and coverage, but wound up manipulating my experimental mappings in Excel and (gasp) pencil and paper.
One decision I am thinking for a designer of a finger mapping is:
"Should the finger mapping cover all the possible fingerings, or leave some NOP (no-operation) fingerings that would be ignored (i.e. play the most recent pitch)".
I chose to leave some NOP fingerings because
-
(a) I suspected that additional fingerings might take up storage (does not see to be the case, based on the description of @join), and
-
(b) the 15 NOP fingerings in my YAML spec (out of 64 non-pinky fingerings) do seem to me to be "mistakes" and are probably best left at the most recent pitch.
-
-
Good points about kinesiology and especially the idea that "generic solutions only go so far" when customizing an instrument to a person's particular abilities.
I would be very interested in any ideas for transpositionally invariant fingerings. I started exploring this because of similar work done with the EWI (especially by Bret Pimentel and Curt Sipe).
I also have code I am happy to share (Mathematica / Wolfram Language notebooks).