Bagpipe ornaments
I love that the bagpipe ornamentation tool is there, and my piper friend who helped me compose a piece recently was very impressed that MuseScore2 even had the tool available.
There are, as I see it, two problems.
There are inaccuracies with pitch - the 'concert pitch' button must always be used, pipe music I've seen is always written at concert pitch, at least for the Highland pipes. It's just that A is tuned to close to 470.
The major problem is that ornamentation timing during playback is way off.
Playback is useless with the timing of ornamentation so far off - basically it's too slow. Musescore gives too much time value to the grace notes - often times even playing them as actual 32nd notes rather than as part of the duration of the actual note they lead in to. Maybe there's a work-around for it?
Comments
If you use the bagpipe from the instruments list, that is transposing by a major second, and then those embellishments pitches fit.
In reply to If you use the bagpipe from… by Jojo-Schmitz
I'll give that a try. The main problem isn't the embellishment pitches, but the note time value. It's far too long, to the point you can't distinguish the melody from the ornamentation.
In reply to I'll give that a try. The… by sjlawson
There not a lot you can do about that. Unless you want to spend a lot of time with the piano roll editor and tweak the notes' settings one by one.
In reply to I'll give that a try. The… by sjlawson
Hmm... listened to it again, and it seems like some are correct, and some are just a little messed up. I'm noticing that the ones that are correct play like acciaccaturas, but some play like Appoggiatura. It should be noted that grace notes for bagpipes are always acciaccaturas, even when written without the slash through the grace note. Still - I'm grateful the bagpipe ornamentation tool exists at all. Just if someone wants to improve it, that's the main problem. Eh... maybe I'll have a look. It is open source, right?
In reply to Hmm... listened to it again,… by sjlawson
Examples for either, working and non-working embelishments, which play like acciaccaturas, which like Appoggiatura?
And yes, it is open source ;-)
In reply to Examples for either, working… by Jojo-Schmitz
I notice mainly, single 32nd notes (single grace) seem to play as appoggiaturas rather than acciaccatura. Picking the acciaccatura grace note is an o-kay work-around, but pipe music isn't typically written that way. I'm looking at the source now, but unsure where the gracenote type is determined. Reading through bagpembell.cpp and bagpembell.h...
I notice the larger embellishments seem correct for quarter notes, but are played too long in the case of embellishments to longer notes, suggesting they are being interpreted as appoggiaturas.
In reply to I notice mainly, single 32nd… by sjlawson
see also https://musescore.org/en/node/277742
In reply to see also https://musescore… by Jojo-Schmitz
I'm open to submitting a pull request for a fix... but I'm unsure where to apply a fix. Where can I get acquainted with how gracenote playback in handled in the code?
In reply to I'm open to submitting a… by sjlawson
See libmscore/rendermidi.cpp. That's where pretty much everything about playback is handled. Do a search for "grace" in that file and you should be able to find that code, it's pretty well localized.
But, if the issue is that they should simply have been created as acciccaturas instead of appoggiatures, then I wouldn't look to the playback code - I'd fix how they are actually created in the palette.
In reply to See libmscore/rendermidi.cpp… by Marc Sabatella
As said above: It should be noted that grace notes for bagpipes are always acciaccaturas, even when written without the slash through the grace note.
So here apparently we need appoggiaturas that sound like acciaccaturas. Or acciaccaturas that look like appoggiaturas.
Maybe they get get added to the pallete as acciaccaturas with the slash through the stem removed or made invisible?
In reply to As said above: _ It should… by Jojo-Schmitz
OK, some more investigation on that:
Bagpipe Embellishments not only look like
NoteType::GRACE32
, they also get added as such in libmscore/note.cpp, with the duration of an 8th of a quarternote and the corresponding playback.Changing this here to
NoteType::ACCIACCATURA
would trigger a special case for playback in libmscore/rendermidi.cpp, which would be desired here, but also trigger libmscore/chord.cpp, so get that slash though stem, which is not wanted.So it seems we'd need a special
NoteType::BAGPIPE_EMBELISHMENT
that triggers one but not the other?In reply to OK, some more investigation… by Jojo-Schmitz
Not only bagpipe embellishments should be played as acciaccaturas without a slash through the stem, but also in other places where there is more than one grace note before a chord. See for example the three-note grace notes before the quarter notes from rehearsal mark D onwards in Grieg's Peer Gynt suite no. 1, mvt. 4 "In the Hall of the Mountain King" here
I have always understood such grace notes to mean "play us as quickly as you can". If I am wrong and I have always understood such multiple grace notes before a note wrong, this comment can be ignored.
In reply to Not only bagpipe… by Louis Cloete
My gut feel is that you are right - multiple grace should automatically switch to the accuaccatura algorithm. Ultimate of course we should providemore control via the Inspector, but I think I would favor score this simple change.
In reply to My gut feel is that you are… by Marc Sabatella
Only that it ain't that simple. How to tell whether there is more than one grace note in a row before having rendered their playback?
In reply to Only that it ain't that… by Jojo-Schmitz
We always know the full array of grace notes for a note before we begin rendering playback for any of them. It's a necessary step in calculating start times and lengths for any of them.
In reply to We always know the full… by Marc Sabatella
So simply change
if (graceChord->noteType() == NoteType::ACCIACCATURA) {
to
if (graceChord->noteType() == NoteType::ACCIACCATURA || nb > 1) {
at libmscore/rendermidi.cpp?
In reply to So silly change if … by Jojo-Schmitz
Could be! I haven't had a working build environment since the big switch to MSVC, but I do plan to deal with that soon.
My main concern here is whether this breaks some other use case, like using grace notes to implement cadenzas.
In reply to Could be! I haven't had a… by Marc Sabatella
Well, it pretty sure would break that :-(
BTW, you still can use MinGW...
In reply to Well, it pretty sure would… by Jojo-Schmitz
Good to know about MinGW, for some reason I thought that option was gone now.
In reply to Good to know about MinGW,… by Marc Sabatella
you now can even use Qt 5.12's 64bit MinGW
In reply to Could be! I haven't had a… by Marc Sabatella
Can't the new timewise input mode work better for cadenzas, now that it exists? Then you just need to change the noteheads to small.
In reply to Can't the new timewise input… by Louis Cloete
Rather setting the chords to small. Yes that would work (and maybe even better, as you don't need any 'parent' note to attach these fake cadenzas to), also these could get entered as (small) custom tuplets (with bracket and number disabled), thus not requiring an unregular measure.
Question is what happens to 'gracenote cadenzas' from existing 2.x scores? Do we care? After all they look the same, just may sound different? And having used a workaround in an older version shouldn't keep us from providing better means in a newer version, breaking the old workaround, or should it? We even did this in 2.x, with voltas and repeat lists.
What the heck, here we go: https://github.com/musescore/MuseScore/pull/4105
If you're on Windows you may want to give the build at https://ci.appveyor.com/project/MuseScore/musescore/builds/20060666/art… a try
In reply to Rather setting the chords to… by Jojo-Schmitz
A thought: what if we made it so any string of 2-4 grace notes were treated as acciaccaturas, but longer ones remained appoggiaturas? Too hacky?
In reply to A thought: what if we made… by Marc Sabatella
Bagpipe embellishments can have up to 7 in a row.
In reply to A thought: what if we made… by Marc Sabatella
Too hacky and inconsistent in results for the user.
In reply to A thought: what if we made… by Marc Sabatella
I think that is a bit hacky ;-)
I had another (unrelated) idea: how about changing libmscore/chord.cpp, function
virtual void layoutStem1()
(https://github.com/musescore/MuseScore/blob/master/libmscore/chord.cpp#…) line 10:if ((_noteType == NoteType::ACCIACCATURA) && !(beam() && beam()->elements().front() != this)) {
to
if ((_noteType == NoteType::ACCIACCATURA) && (this->parent()->graceNotes().size() == 1)) {
That would get rid of the thing where you get a slash through the first stem if you enter more than one acciaccatura (I think). That always look a bit strange to me. That would also maybe give us a solution to the cadenza appoggiaturas. I think the original workaround (add an invisible, non-playing note and add appoggiaturas to it) is already a hack, however, so I am not too worried if people have to fix that in files created with 2.x and opened with 3.0.
In reply to I think that is a bit hacky … by Louis Cloete
Slash through first stem is correct albeit optional. You are welcome to hide it if you like, and that's way easier than adding manually for those who prefer it.
In reply to Slash through first stem is… by Marc Sabatella
I did not know it was optional. I haven't seen that in any published sheet music, but it is as you say, it's easy enough to hide it. Do you think it is a common enough use case to want to hide the slash when you put more than one acciaccatura before a note to warrant a checkbox in the inspector?
In reply to I did not know it was… by Louis Cloete
I think a check box for a slash in the inspector for ALL grace notes is a great idea. Just have it checked for which ever one the programmer thinks is right and everyone else can adjust it if needed.
In reply to I think a check box for a… by mike320
Absolutely, it should be easy to add or remove the slash, or to change the playback of any given grace note from acciccatura to appoggiatura, or to make the acciccaturas play before the beat - all the sorts of thigns described in #13811: Select playback method of Grace Notes, Arpeggio & Glissando and Articulations & Ornaments et al.
In reply to Not only bagpipe… by Louis Cloete
Depends on the bagpipe...
In reply to Hmm... listened to it again,… by sjlawson
Just a small comment - When it comes to Western music notation, "BAGPIPES" does not stand for "Great Highland Bagpipes", but rather just "Bag-pipes" :-D
I am very glad that the shortcuts exist for score notation of "special" ornamentation signs, and that there are efforts being made to correctly represent the sound... But it would be nice to keep it as universal as possible.
PS. In the case, that I was a bit too obscure in my comment:
- I am a researcher of Bagpipes at the Sibelius Academy in Helsinki. There are millions of bagpipers in the world that do not play the Scottish variety of the instrument. It would be great if we could include them since I - would say - they are the ones who will make the most creative and advanced use of a program like Musescore. Most bagpipes in the world are at concert pitch 440Hz, many are fully chromatic or can play in the second octave. Many are set in a family or consort of instruments, and function as transposing instruments. Most use early music ornamentation or need still to develop new signs to represent ornamentation or other "actions"/expression/articulation.
I dare say that Galicia (Gaita) is one of the world's bagpipes breaking more ground in terms of scoring.
Thank you for listening.
Cheers