Change channel is broken stafftext properties.
Load the attached file ChannelSetTest (created in 2.0).
Hit play
Expected result the sounds should switch channels from normal to mute at the Stafftext.
Actual result the trumpet is muted all the way through.
By contrast load the file ChannelTest (created in 1.3)
On playback you get the expected result (albeit a beat late).
This points to a possible problem in the signal change code in stafftextproperties.cpp
The Aeolus change messages are working ok
MuseScore 2 revision 6de066c
Windows 8 Professional
Attachment | Size |
---|---|
ChannelSetTest.mscz | 1.66 KB |
ChannelTest.mscz | 1.66 KB |
Comments
See also #18398: import of v1.2 file: arco/pizz wrong position and playback which I suspect is related. I'd been wondering why my string quartet scores were playing back pizz!
Any progress here? This affects one of the listed 2.0 Milestones.
https://github.com/musescore/MuseScore/pull/683
It turns out there were two bugs here. The first caused staff text to get applied at the wrong time, the third prevented a channel change to "normal" from having any effect at all. The latter problem stemmed from channels with no explicit name tag being sometimes given the name "normal" and sometimes not. I've fixed it to always given them this name.
A side effect of this change is that any instrument with an explicitly-named "normal" channel will now be written to the score without the name. This shouldn't be a problem in practice. But it causes some of the tests to fail because instruments.xml contains one instrument definition - "Cymbal" - that includes an explicitly-named "normal" channel. So tests that use this instrument fail just on account of the missing tag.
I could fix all the tests, and instruments.xml too, so there are no more explicit "normal" name tags - but that's 70 files to update. Or, I could have my code invent a new internal name to use ("default", say) just to work around this. I've got to go deal with some other things right now, if someone wants to weigh in soon, I'm all ears.
what's 2nd? ;-)
OK, there were actually three problems, but the first two were related. I started wording it one way, then partially edited it :-)
Although it is true that Cymbal could cause a problem, it's actually not true that the failing tests include cymbals. What they actually have in common is that they are all *import* tests. This is good; it gives me a much easier fix, I think.
Would it help if I edited the "normal" tags out of the instrumnets.xml file?
Or conversely should it be edited so each normal channel is defined as such?
Let me know - will not be a long job - my nerd instincts tell me it should be the latter :)
Actually, my patch already removes the only explicit "normal" definition in instruments.xml - in the Cymbal instrument. We don't have to manually edit all the translated versions, do we?
My fix seems good. Unnamed channels previously got assigned "normal" in several places in the code already - just not in the one place it was really needed. So I fixed that.
While we *could* add explicit normal declarations to everything in instruments.xml, this seems unnecessary - especially when you consider most instruments only have one channel. 1.X files will have empty channel names so the code has to handle them anyhow.
So, no action needed - assuming my PR gets merged, it's all a done deal.
Fixed in c1a5f5ac72
Automatically closed -- issue fixed for 2 weeks with no activity.