Bug / user error. UP fingering c# sometimes flipps and gives c

Feel free to post any broad WARBL questions or comments here.
User avatar
admin
Site Admin
Posts: 673
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by admin »

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
fhenryco
Posts: 30
Joined: Tue Nov 02, 2021 11:43 am

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by fhenryco »

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
User avatar
admin
Site Admin
Posts: 673
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by admin »

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
fhenryco
Posts: 30
Joined: Tue Nov 02, 2021 11:43 am

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by fhenryco »

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#.
Attachments
soprano.png
soprano.png (97.56 KiB) Viewed 2568 times
User avatar
admin
Site Admin
Posts: 673
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by admin »

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.
Andrew Mowry
info@warbl.xyz
fhenryco
Posts: 30
Joined: Tue Nov 02, 2021 11:43 am

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by fhenryco »

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 ...
User avatar
admin
Site Admin
Posts: 673
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by admin »

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;
Andrew Mowry
info@warbl.xyz
fhenryco
Posts: 30
Joined: Tue Nov 02, 2021 11:43 am

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by fhenryco »

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
User avatar
admin
Site Admin
Posts: 673
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by admin »

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
fhenryco
Posts: 30
Joined: Tue Nov 02, 2021 11:43 am

Re: Bug / user error. UP fingering c# sometimes flipps and gives c

Post by fhenryco »

yes you can so that people can choose the best for their needs ... so far i did not notice any bad interference issue...
Post Reply