Bug / user error. UP fingering c# sometimes flipps and gives c
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
I see, they've changed the way USBcore.h works. I believe the above fix should work, and I'll make that change to the next "release" version as well, after I've had a chance to update the IDE and test it. It looks like they've made a few other changes that will be helpful for WARBL as well.
Andrew Mowry
info@warbl.xyz
info@warbl.xyz
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
I managed to program the warbl with my own fingerings for the recorder
eventually what seems to work is
#define USB_CONFIG_POWER_MA(mA) ((40)/2)
in USBCore.h
what does not work (iphone says the device needs too much power) is
#define USB_CONFIG_POWER 20
at the begining of the warbl_firmware file
eventually what seems to work is
#define USB_CONFIG_POWER_MA(mA) ((40)/2)
in USBCore.h
what does not work (iphone says the device needs too much power) is
#define USB_CONFIG_POWER 20
at the begining of the warbl_firmware file
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
Okay, thanks! Good to know. I'm not too surprised, as it was my understanding that the USB core files are compiled before the sketch itself.
Andrew Mowry
info@warbl.xyz
info@warbl.xyz
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
hello, i was wondering why for the soprano recorder the D# (midi 77) of your fingering chart is not the regular one for a soprano recorder which in principle woud be possible...
your defined (77) D# uses R4 which is not confortable as R4 is aligned with other holes on warbl. So i wanted to modify this setting for an alternative not using R4 but in the fingering chart txt file it seems that the thumb is assumed to always close the hole. Fingerings with open holes are apparently defined elsewhere and i don't know where and how to modify them. So my current best effort modification was to assign this D# with a close thumb new fingering as shown below. This is however not optimal (not an intuitive fingering) so i'm wondering how i could assign another fingering with open thumb hole for the D#.
your defined (77) D# uses R4 which is not confortable as R4 is aligned with other holes on warbl. So i wanted to modify this setting for an alternative not using R4 but in the fingering chart txt file it seems that the thumb is assumed to always close the hole. Fingerings with open holes are apparently defined elsewhere and i don't know where and how to modify them. So my current best effort modification was to assign this D# with a close thumb new fingering as shown below. This is however not optimal (not an intuitive fingering) so i'm wondering how i could assign another fingering with open thumb hole for the D#.
- Attachments
-
- soprano.png (97.56 KiB) Viewed 2624 times
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
I don't recall where that D# fingering came from, but most of those fingerings for accidentals have come from user suggestions over the years. I can change that if it's not correct. Which fingering would you like to see?
Some of those fingering charts don't include the thumb hole if the primary purpose of the thumb is to change registers. The reason is that every additional tone hole in the chart doubles the memory that the chart consumes, so we've made special cases to limit the chart size where possible. The "get_note" function checks to see if the thumb hole is covered and either modifies the register or checks for a few special cases. You could add another special case for your fingering there. If you search for "case kModeRecorder:" in the functions tab you'll see where. It looks like you'd add another if statement right under the line "return 76; //play D". I can also do this for you if you let me know what fingering pattern you'd like to use.
Some of those fingering charts don't include the thumb hole if the primary purpose of the thumb is to change registers. The reason is that every additional tone hole in the chart doubles the memory that the chart consumes, so we've made special cases to limit the chart size where possible. The "get_note" function checks to see if the thumb hole is covered and either modifies the register or checks for a few special cases. You could add another special case for your fingering there. If you search for "case kModeRecorder:" in the functions tab you'll see where. It looks like you'd add another if statement right under the line "return 76; //play D". I can also do this for you if you let me know what fingering pattern you'd like to use.
Andrew Mowry
info@warbl.xyz
info@warbl.xyz
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
Thanks i see the line in the code, the D# fingering i prefer would be just the one from the above figure except it would be with an open thumb hole:
so: thumb : 0 and from left to right : 011000
so if i understand correctly i should just add this line:
if (fingerPattern >> 1 == 0b00110000) return 77; //special fingering for D#
will try that tomorrow ...
so: thumb : 0 and from left to right : 011000
so if i understand correctly i should just add this line:
if (fingerPattern >> 1 == 0b00110000) return 77; //special fingering for D#
will try that tomorrow ...
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
Yep, that sounds right--here's the whole function, so you can just paste it in. If there aren't any objections I'll also make this change to the next firmware release.
case kModeRecorder: //this is especially messy, should be cleaned up
//If back thumb and L1 are open
if ((((fingerPattern & 0b110000000) == 0) && (fingerPattern & 0b011111111) != 0) && (fingerPattern >> 1) != 0b00101100) {
if (fingerPattern >> 1 == 0b00110000) { //special fingering for D#
return 77;
}
else {
return 76 //play D
;}
}
if (fingerPattern >> 1 == 0b01011010) return 88; //special fingering for high D
if (fingerPattern >> 1 == 0b01001100) return 86; //special fingering for high C
//otherwise check the chart.
tempCovered = (0b011111110 & fingerPattern) >> 1; //ignore thumb hole and bell sensor
ret = pgm_read_byte(&recorder_explicit[tempCovered].midi_note);
//If back thumb is open
if ((fingerPattern & 0b100000000) == 0 && (fingerPattern >> 1) != 0b00101100) {
ret = ret + 12;
}
return ret;
case kModeRecorder: //this is especially messy, should be cleaned up
//If back thumb and L1 are open
if ((((fingerPattern & 0b110000000) == 0) && (fingerPattern & 0b011111111) != 0) && (fingerPattern >> 1) != 0b00101100) {
if (fingerPattern >> 1 == 0b00110000) { //special fingering for D#
return 77;
}
else {
return 76 //play D
;}
}
if (fingerPattern >> 1 == 0b01011010) return 88; //special fingering for high D
if (fingerPattern >> 1 == 0b01001100) return 86; //special fingering for high C
//otherwise check the chart.
tempCovered = (0b011111110 & fingerPattern) >> 1; //ignore thumb hole and bell sensor
ret = pgm_read_byte(&recorder_explicit[tempCovered].midi_note);
//If back thumb is open
if ((fingerPattern & 0b100000000) == 0 && (fingerPattern >> 1) != 0b00101100) {
ret = ret + 12;
}
return ret;
Andrew Mowry
info@warbl.xyz
info@warbl.xyz
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
I just tried your new function and it works. For me it's perfect but i'm not sure that everybody will like the new fingering if some people already got used to the R4 fingerings. Thanks
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
Great, I'm glad it's working! I can include both fingerings unless you think the new one interferes with other notes.
Andrew Mowry
info@warbl.xyz
info@warbl.xyz
Re: Bug / user error. UP fingering c# sometimes flipps and gives c
yes you can so that people can choose the best for their needs ... so far i did not notice any bad interference issue...