Giter VIP home page Giter VIP logo

Comments (5)

angusmoncrieff avatar angusmoncrieff commented on August 25, 2024

Hi Eduardo, I've done this up to G6, mostly using this fingering chart, and by consulting a friend of mine who is a woodwind teacher and an excellent clarinettist.

First thing, I believe this is this needs to be fixed:

            } else if (instrument === 'wind.reed.clarinet.bflat') {
                this.transpose = 5;        // was 4

The codes are below - but it seems one can not really ignore the alternate fingerings (I've pasted my friend's messages at the bottom fyi). For my own purposes I have implemented each set of alternatives as an array (so I'm afraid you won't be able to simply paste this in to your code). Unfortunately, the first fingering in the array is not necessarily more standard than the others, and may or may not be optimal in any particular context.

            this.mapping = [
                // 1st Octave (D#3-B4)
                '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AD\uE0B2\uE0B3\uE0B5\uE0BA',
                [
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AD\uE0B2\uE0B3\uE0B5\uE0B9',  // E 'LR'
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AD\uE0B2\uE0B3\uE0B5',        // E 'L'
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B8'         // E 'R'
                ],
                [
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B9',    // F 'R'
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AB\uE0B2\uE0B3\uE0B5'     // F 'L'
                ],
                [
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AC\uE0B2\uE0B3\uE0B5\uE0B9', // F# LR
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AC\uE0B2\uE0B3\uE0B5',       // F# L
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B6'        // F# R
                ],
                '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5', '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B7', '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3', // A
                '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2', // Bb
                [
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B3', // B
                    '\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B4'
                ],
                '\uE0A3\uE0A6\uE0A7\uE0A9',       // C
                '\uE0A3\uE0A6\uE0A7\uE0A9\uE0AA',  // C#
                '\uE0A3\uE0A6\uE0A7', // D
                [
                    '\uE0A3\uE0A6\uE0A7\uE0B1', // Eb
                    '\uE0A3\uE0A6\uE0A7\uE0A8', // Eb
                    '\uE0A3\uE0A6\uE0B2'        // Eb
                ],
                '\uE0A3\uE0A6',  // E
                '\uE0A3',  // F
                [
                    '\uE0A6',                 // F#
                    '\uE0A3\uE0B0\uE0B1'
                ],
                '',   // G
                '\uE0A5', // G#
                '\uE0A4',
                '\uE0A2\uE0A4',
                [     // B
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0AD\uE0B2\uE0B3\uE0B5\uE0B9', // LR 
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0AD\uE0B2\uE0B3\uE0B5',       // L
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B8'        // R
                ],
                // 2nd Octave (C5-B5)
                [     // C
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B9',      // R
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0AB\uE0B2\uE0B3\uE0B5'       // L
                ],
                [   // C#
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0AC\uE0B2\uE0B3\uE0B5',         // L
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0AC\uE0B2\uE0B3\uE0B5\uE0B9',   // LR
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B6'          // R
                ],
                '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5',
                '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3\uE0B5\uE0B7', // D#
                '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B3',
                '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2',
                [     // F#
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B3',
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0B2\uE0B4'
                ],
                '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9', // G
                '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A9\uE0AA', // G# 
                '\uE0A2\uE0A3\uE0A6\uE0A7',
                [  // A#
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0B1',
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0A8',
                    '\uE0A2\uE0A3\uE0A6\uE0B2'
                ],
                '\uE0A2\uE0A3\uE0A6',
                // 3nd Octave (C6-B6)
                '\uE0A2\uE0A3',
                '\uE0A2\uE0A3\uE0A7\uE0A9\uE0B2\uE0B3',
                '\uE0A2\uE0A3\uE0A7\uE0A9\uE0B2\uE0B7', // D
                [  // D#
                    '\uE0A2\uE0A3\uE0A7\uE0A9\uE0B2\uE0B4\uE0B7',
                    '\uE0A2\uE0A3\uE0A7\uE0A9\uE0B3\uE0B7'
                ],
                '\uE0A2\uE0A3\uE0A7\uE0A9\uE0B7',  // E
                '\uE0A2\uE0A3\uE0A7\uE0A9\uE0AA\uE0B7', // F
                [
                    '\uE0A2\uE0A3\uE0A7\uE0B7',  // F#
                    '\uE0A2\uE0A3\uE0A6\uE0A7\uE0B2\uE0B3\uE0B5\uE0B7'
                ],
                [
                    '\uE0A2\uE0A3\uE0A7\uE0B2\uE0B3\uE0B7',  // G
                    '\uE0A2\uE0A3\uE0A7\uE0A9\uE0B2\uE0B3\uE0B7'
                ],
                '', '', '', '',
                // 4th Octave (C7-A7)
                '', '', '', '', '', '', '', '', '', '', '', '',
            ];

Here are my friend's messages FYI:

Unfortunately this is a clarinet we are dealing with so many of the "alternative" fingering are actually standard fingerings depending on what key you are in etc.

You need at least 2 fingerings for bottom E, F and F#, two fingerings for the Eb above that and arguably for B the the next F#. That's without trill keys.

The clarinet, uniquely, overblows in twelfths so all the fingerings from bottom E to F a 9th above are repeated from the B a 7th above middle C to C above the stave. So your fingering for B above middle C is actually a third variation on the fingering for bottom E and what I would use as long as I wasn't expecting a C# any time soon!

Then from C# above the stave you're into a third register and then a 4th and it gets really complicated and varies from player to player, although there are standard fingerings. You should really go up to G above the stave as this would be considered standard range.

When I get on my Mac I'll scan a fingering chart and maybe highlight the ones you could leave out as being a bit specialist but the bottom line is it's far far more complicated than sax or flute. More notes, same number of fingers!

It's not called the misery stick for nothing!

=================
Hi Angus,

That’s a comprehensive fingering chart - anything beyond that would be considered niche.

One of the basic principles of which fingering to use is to try and prevent “sliding” with the little fingers (the clarinet seems to be gratuitously designed to make this difficult) - you should be using left and then right, or vice versa. So, for me, because your app is designed around scales you need to show the correct (or one of the correct) series of fingering. It’s not a problem for Eb major, that’s all correct, but with four flats onward and two sharps onwards it would be helpful to show the correct little finger sequence as a first choice unless it’s purely designed for use by teachers.

from fingering-diagram.

eduardomourar avatar eduardomourar commented on August 25, 2024

@gusmoney, I will have a look into this. My idea to implement alternative fingering was to present an option to the user in the musescore interface (checkboxes).

from fingering-diagram.

angusmoncrieff avatar angusmoncrieff commented on August 25, 2024

@eduardomourar not 100% sure what you mean - but what I understand from my clarinettist friend is that the same pitch might be played by different fingerings even in the same phrase, depending on the context around each occurrence of it. (see his last paragraph, above: 'One of the basic principles..')

from fingering-diagram.

eduardomourar avatar eduardomourar commented on August 25, 2024

@gusmoney, available now in v1.5.0. Kept your suggestion of multiple fingerings, but we will be only selecting the first one (until we have another way to present options).

from fingering-diagram.

angusmoncrieff avatar angusmoncrieff commented on August 25, 2024

@eduardomourar cool - thanks for the update!

from fingering-diagram.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.