App Crash and B1 Hang

• Nov 24, 2016 - 02:42

I've encountered a problem with a new score that is causing MuseScore to crash or hang everytime I try to play it. OS = Win7 Pro; MuseScore = 2.0.1 (b25f81d).

The score was created yesterday and saved and re-opened normally. I exported the rough version to PDF and printed it. However, there were problems with playback order (the piece comprises a rondo and three couplets that should play in the following order: R, R, C1, R, C2, R, C3, R, Coda; and they weren't) so today I opened the last-saved version and started to experiment with the repeats, voltas, and segnos.

I added segnos, staff text, and DS, and modified the DS tags trying to make it play from the segno to a certain staff text and then jump to another staff text. I also added a number of fermatas and removed all the repeats and voltas except for the first section (the rondo). I got it to play through once, but it ignored all the jumps. I then put the repeats back in, but once I did that, any attempt to play the score caused the app to crash or hang. This happened at least five or six times in a row.

Here is the report on the latest AppHang:

Description:
A problem caused this program to stop interacting with Windows.

Problem signature:
Problem Event Name: AppHangB1
Application Name: MuseScore.exe
Application Version: 0.0.0.0
Application Timestamp: 0fd4f8a8
Hang Signature: dfa5
Hang Type: 0
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 4105
Additional Hang Signature 1: dfa50b29d918c0663ce0abb846670c01
Additional Hang Signature 2: 6f53
Additional Hang Signature 3: 6f534b7746b7dee52ab94fe352fa1d9b
Additional Hang Signature 4: dfa5
Additional Hang Signature 5: dfa50b29d918c0663ce0abb846670c01
Additional Hang Signature 6: 6f53
Additional Hang Signature 7: 6f534b7746b7dee52ab94fe352fa1d9b

I finally opened the oldest version and manually removed the changes I'd made and saved under a new file name. That file now plays as it did last night.

Attached is the last corrupted version before I stopped saving them (the one entitled DO NOT ATTEMPT TO OPEN... etc.), as well as a version previous to that which plays but does not honour the jumps. (I tried uploading one of the earlier crash versions, but the forum software refused it.)

Can anyone figure out what caused the problem?


Comments

No hang here, both files open and play back just fine (sort of, no repeats, no jumps and playback stops at 1st end repeat barline, see below). MuseScore 2.0.3, Windows 7

As to your D.S. not working: they are set to jump to "1er Couplet", "2e Couplet", "3e Couplet", but there are no jump marks ("To Coda", Coda, etc) by that Name, so nothing to jump to. The staff texts are not working for this. And the measures containg the end repeat bar have the repeat counter set to 1, that ain't gonna work.
Actually I guess 'repeat count' should better be named 'play count', as that is what it really is. Play twice -> repeat once

In reply to by Jojo-Schmitz

I was in the process of trying to unsnarl the DS and jumps on my own when I got that series of crashes, but I almost never use these functions so I'm not that familiar with them.

I think I understand the concept of setting a jump mark, but how do I create distinct marks for each of the several places to which I need the playback to jump?

PS--I agree, 'repeat count' would be better named as 'play count'....

In reply to by Jojo-Schmitz

Jojo, you're going to have to help me out here. I thought that's what I was doing when I set the 'play up to' and 'continue at' fields to the staff texts, but that was just a guess (obviously a wrong one).

The page in the Handbook states:

Jumps generally consist of three parts:
•Jump to tag
•Play up to tag
•Continue at tag

Tags are names you give to certain measure positions.

What is the proper syntax to enter those 'certain measure positions' in the appropriate fields? Should I write 'measure 15' or 'm. 15' or '15' or what...? And do I need to enter the beat number as well...?

In reply to by Jojo-Schmitz

Thanks, I'll try that on this score tomorrow just to see if I can make it work properly. It's past midnight here and I've got a long day tomorrow.

As a matter of fact, I managed to get the playback order worked out earlier tonight out by dumping the DS and segnos and using repeats and voltas. Your comment about 'repeat count' actually being the 'play count' helped; setting that parameter to '1' in all cases made the program skip to the next volta after a single playback, which is what was required here.

However, it appears that even an 'open' volta line needs to be extended to cover the entire section that's to be played or the program can't interpret it correctly. (Can anyone confirm if this is still the case for 2.0.3? If so, I will file a feature request to change it for 3.0.)

The point is, human musicians would normally read an open volta to indicate the start of the alternate 'ending' of a repeated section, and play from there after repeating the earlier section until they encounter a new repeat instruction (if there is none, they will simply play to the end, no problem). The program, however, does not read the next repeat barline ( :|| ) as a 'tag' to end the volta, and (as far as I know) there is no 'end-volta' line or tag available so the only way to tell the program what to play is to span the entire section with the line.

This is graphically unacceptable in most cases.

As it is not possible to make only part of a volta line invisible, I was obliged to make the entire thing invisible and then overlay that with an inactive 'graphic-only' line from the palette, suitably tweaked so it looks like a volta line. This works, but it's a kludge, IMO. It would be a heck of a lot better if an open volta line created a start tag and and simultaneouosly set a flag or something on the next repeat barline to designate it as the end tag for that volta.

The revised score is attached. Let me know what you think. And thanks, as always.

Attachment Size
Les Baricades rev 20161124.mscz 43.77 KB

In reply to by Jojo-Schmitz

I finally got a chance to work over that score again, this time using segnos and D.S. and taking out the repeats and voltas (except for the repeat of the rondo and the first volta for that). With the hint you gave me I figured out I had to go into the Inspector for the jump INSTRUCTION--the D.S., for instance--as well as for the MARKER itself (the segno, varseg, whatever) and there I could name the markers anything I want. I also figured out that the marker symbols are editable as plain text, so I can write those Couplet names as jump markers to avoid having a bunch of invisible, numbered varsegnos scattered all over the score. (See notes 1 and 2 below.)

I've managed to make the score play in the proper order, but there's an odd hiccup wherein m.10 plays back simultaneously with mm.23, 30, and 53 after the jumps going to the markers on those measures. The 'play until' instruction isn't being properly read for some reason. Nothing I've tried has solved this.

I also did a bit of research in the issue tracker to find out the status of this problem, and turned up this list of issues. Having read through most of those threads, I learned that the 'doubled playback' problem which exists in the attached score is a known issue, as well as a number of other things.

I also learned that none of the developers seem to be taking on any improvements to the repeats and jumps code, even though complaints about it keep coming up again and again. As you know too well, I am not competent to mess with the code, but a lot of what I see as the problem lies in the documentation. The Handbook page needs a serious re-write to address the more complex uses of repeats and jumps, and I will volunteer to take on that task in the next few days. I can only hope that one of the real developers will find the time to address the remaining bugs and/or issues in this area (see list of issues above). Can you tell us, from your experience, if this is a particularly difficult set of issues to address? Or is it simply a matter of priorities?
---------------------------

Note 1: It would be useful, IMO, if a specific 'jump marker' text could be defined and assigned a shortcut. (IOW, type Ctrl+Shift+M (or something similar) and enter the exact text you want.)

Note 2: Failing that, it would be useful if the 'Jumps and Repeats' palette included a generic 'marker text' icon that could be double-clicked or dragged to the score much as the segnos, codas, and so forth are at present.

In reply to by Recorder485

I apologize in advance if the following comes off as defensive, but I feel some clarifications need to be made here.

In general, the only cases I can recall where simultaneous playback of measures happens are cases where the score contains errors. So I'm not sure which "known issue" you are referring to - perhaps you could post a link to a specific issue? The list you posted is kind of a hodge podge of feature requests and misunderstandings that probably should have been closed long ago, but I don't see any bugs there involving "double playback". Maybe I missed something in one of the responses, and the issue should be retitled to clarify?

Anyhow, your score contains some notations that would be confusing to a human musician and I can totally see why they'd lead to playback oddities as well. Like, there is a first ending but no second ending at measure 9, and it appears you are trying to use a segno as a "to coda" (also in measure 9), plus you have multiple DS's to the same segno. Also, the segno you are using place of a coda in measure 23 is indicated with a "custom" marker for which MuseScore won't generally understand the intended playback effect. It's not really at all clear how you intended this to work.

The code is designed to do the expected things with standard notation used in the standard ways. It shouldn't be surprising that non-standard notation will not be played back as you might happen to have intended. A DS is supposed to go to a segno and play until a "to coda", not until another segno, and the target of that jump should be an actual coda, not another segno or custom marking, etc. You can change the *text* of these markings to look however you like, but you cannot substitute a marking of one type for a marking of another and expect it to work properly.

On a broader note, I would also disagree that no improvements are being made. If you check the closed issues, you will actually quite a few fixed for each of the past several releases, including a whole giant slew of them for 2.0. It's true that there are a number of outstanding requests as well, but as you presumably realize, there are only so many people working on development, and most of the effort is focused on bug fixing and improving the core notation features, not the playback. And yet improvements to playback *do* occur regularly, with each release.

The main outstanding request that of course needs to be dealt with at some point is a way to indicate that repeats should be taken on the DS or DC. But if you check the paper trail on that on IRC and the developers mailing list, you'll see that some work *has* been done - it just isn't ready for use yet. There are also outstanding requests for better handling of ties into voltas, but here is an excellent illustration of the point that getting the *notation* right is a far higher priority than getting the playback right.

As for "generic marker text", again, MuseScore is designed to handle standard musical notation. Aside from segnos and codas used in expected way, I'm not aware of anything like a "generic marker text" in standard notation. Could you explain in more detail, preferably with reference to published scores, what you are asking for?

In reply to by Marc Sabatella

Well, if you felt the need to be defensive at any level, then I must have been offensive at some level myself, so please accept my apology for that, unintended as it was. Let's see if we can unsnarl this a bit, but before discussing your specific points, I should ask you two questions before I forget.

--First, did the score play-back for you in the correct order: Rondo, Rondo, 1st Couplet, Rondo, 2nd Couplet, Rondo, 3rd Couplet, Rondo, last measure? (Ignore the 'double playback' issue for the moment. I'll get to that below.)
--Second, did you open the file with 2.0.1 or 2.0.3? We both know there are some compatability issues between those versions; if I'm going to do a proper job of rewriting the handbook page for this I need to know if those incompatibilities affect repeats and jumps. I fully understand that the documentation has to refer to the most recent version.

That said, I'll take your points in the order mentioned and try to answer them as best I can.

In general, the only cases I can recall where simultaneous playback of measures happens are cases where the score contains errors. So I'm not sure which "known issue" you are referring to....

The issue was mentioned here in the issue tracker; apparently it was discussed in more detail on the Dutch forum (which discussion I did not read, as my Dutch language skills are essentially non-existant).

The score I posted almost certainly contains some 'errors'; it was an experimental version of the file in which I tried a number of different things to accomplish the playback order desired using jumps rather than repeats and voltas throughout. For instance, the 2nd ending at m.10 was removed to see if that would stop m.10 playing back simultaneously with the first measure of each of the succeeding couplets. It did not...but it also did not prevent the score from playing back in the proper order. In fact, removing that second volta made no difference of any sort...which is a bit of a puzzle in itself.

[Y]our score contains some notations that would be confusing to a human musician and I can totally see why they'd lead to playback oddities as well.

Here I will both agree and disagree. Yes, the score as I posted it contains notation that I would NOT use in a finished score precisely because it would confuse human musicians; but that file was, as labeled, an experimental score specifically created to see what the program would do with it. It was not intended to be read by humans. If it were, I would have replaced all the 'varsegno' symbols with the appropriate human-readable text ('1st Couplet', '2nd Couplet', etc.). But the underlying marker tags to those mis-used segno variations should NOT have confused the program, unless I completely misunderstand how it is supposed to work. (And, I have to say, if the score played back for you in the proper order (mentioned above), I don't think I do.) So I don't agree that, in this case, there's an implicit link between incorrect 'human' notation and incorrect use of tags or markers that only the program cares about.

In a broader sense, human musicians are almost endlessly adaptable, as demonstrated by the ability of jazz musicians to read charts that would make my head explode, or my ability to read Bach or Pisendel sketchbooks and manuscripts, which might give you headaches. ;o) In this particular case, Couperin's original (see attached file) uses segnos and those lovely 'non-directional' 18th-century repeats [ |:| ] along with text notations to send the performer back and forth in the score. A modern musician inexperienced in reading 18th century French notation would have to stop and look and think, but he'd eventually figure out what Couperin had in mind.

But a computer can't do that, and the genius of guys like you and Nicolas and Jojo is that you can bridge the gap between human intelligence and machine obedience. Without that, we'd all still be using Speedballs and India ink.

it appears you are trying to use a segno as a "to coda" (also in measure 9), plus you have multiple DS's to the same segno.

The segno variation marker in m.9 is simply a marker to which I need to refer from the several DS jump instructions later in the score. It does not imply a 'to coda' jump at all...to the computer. As mentioned, I would NOT use this notation for a human-readable score, and I apologise for not having taken the time to fix the graphics before posting that file. I was more concerned with the computer-readable instructions.

As far as I know, there is no theoretical objection to multiple DS marks referring back to the same segno; in fact in works comprising multiple repeated sections, I would almost say it is essential to be able to do so, both for humans and for computers. If that were not so, why would the program provide the ability to define 'jump to,' 'play until,' and 'continue at' points in a score?

jump instruction dialogue.png

The earlier version of the score , which was structured using repeats and voltas exclusively, accomplished the same thing, but required 5 voltas, each extended to span the entire played sections, and the graphic consequences of that are unacceptable for obvious reasons. With appropriate 'marker text' inserted, it seems to me that there is no reason both a human musician and a computer shouldn't be able to interpret multiple jumps properly. That is why I took the trouble to experiment with jumps and markers to see what the program is capable of doing in this respect.

I would also disagree that no improvements are being made. If you check the closed issues, you will actually quite a few fixed for each of the past several releases,

Sorry, Marc; I never thought to search for closed issues; I ran a simple search in the issue tracker for 'repeats and jumps' and what you saw is what turned up. I'm not that familiar with the exterior sites the developers use to discuss things beyond the borders of this forum; I apologise for having presumed no work was being done on the basis of what I found in that one issue-tracker search.

As for "generic marker text", again, MuseScore is designed to handle standard musical notation. Aside from segnos and codas used in expected way, I'm not aware of anything like a "generic marker text" in standard notation. Could you explain in more detail, preferably with reference to published scores, what you are asking for?

In older music, there is a lot of variation in the notation used for this sort of thing. As mentioned above, Couperin (who personally supervised the notation and engraving of the edition attached) used notation somewhat different to the standards used in modern editions, but it is still, with a small amount of study, clear enough for today's musicians to understand. Segnos were often used to refer back to other segnos; the phrase 'dal sengo' and its abbreviation 'D.S.' are later innovations, as is the 'directional' repeat barline. In olden days, as the saying goes, musicians were expected to figure this stuff out without being led by the hand. ;o)

Have a good evening. Let me know what you think about all this.

In reply to by Recorder485

--First, did the score play-back for you in the correct order: Rondo, Rondo, 1st Couplet, Rondo, 2nd Couplet, Rondo, 3rd Couplet, Rondo, last measure? (Ignore the 'double playback' issue for the moment. I'll get to that below.)
Yes it does, in 2.0.3, incl. that 'double playback:
I can fix that by removing the 1st varsegno, adding a To Coda to the measure before, naming it varsegno. I guess the reaseon is that a segno, coda, varsegno apply to the start of a measure, and that particuluar measure isn't really to be played back, as there is a jump into the corresponding repeat, which only takes the last turn, but a To Codo and Fine (and D.C, D.S. D.S al coda, etc) apply to the end of a measure.

In reply to by Jojo-Schmitz

Jojo, that did the trick. Your explanation makes it clear why this works, too, which is particularly important since this score was more of a 'learning experiment' rather than a serious attempt to produce a new edition. What I'm really interested in at this point is understanding exactly how these tools work so I can explain them clearly in the Handbook.

As Marc has pointed out, this sort of repeat structure is better done using ordinary repeats and voltas, since modern musicians are more used to those than multiple jumps using segnos. I would use jumps to set the playback in something like this only if I were publishing a 'replica edition' of the original (which would need to contain explanatory performance notes in the front matter to make it clear). Still, it's good to know it's possible when necessary.

Thanks for your help and clarifications.

In reply to by Recorder485

First: no worries about my taking offense. I used 2.0.3, and as far as I understand the intended order, I think it was correct. As I said, it's a bit hard to unravel based on the actual symbols, but taking the text at face value, yes, it was correct other than the double playback glitch.

The issue you link to that mentions double playback illustrates my point nicely: the file posted to that issue contains errors, and that is why the playback does not work as expected. As far as I know, the same is true of all other such reports. If there exists some case where a correct file also exhibits this problem, then someone needs to open an issue report showing how to reproduce the problem. If this happens, I see no reason to assume it won't be fixed in due order just most other actual bug reports dealing with volta playback have been fixed. Makes sense you wouldn't have thought to check closed issues, but hopefully it is now clear that if you want to get a sense of whether there has been work done in a given area, that's what you'd need to do.

Anyhow, as for the specifics of your score:

The first thing I see that think is likely to be confusing MuseScore is your use of the voltas. As I said, a first volta without a second - and then with a mysterious fifth at the end - seems likely to be problematic.

Aside from that, though, no, I *don't* think you used the other markings correctly. The symbol you have in measure 9 is, I assume, intended to indicate to jump to various different places in the score depending on the path you took to get there. As far as I know, this is not something that is likely to be inherently supported in the first place. I don't know that this sort of situation occurs in standard musical notation?

But even if there were to be any chance of it working, instead of using a segno in measure 9, the correct thing would have been a "To Coda" in measure 8. A segno is not intended to *start* a jump, it is intended to 8end* one. Only "DS" or "To Coda" are designed to actually do the jump. So I really don't think the markings you have really make sense to the program - it seems almost miraculous to me it happens to come as close as it does to the correct result.

But as I said, even if you fixed the segno in measure 9 by turning it into a "To Coda" at measure 8, and made the other necessary changes as well, I'm just not sure this type of roadmap would ever work. Again, I'm just not sure if there is support for multiple jumps from a single "To Coda". I don't recall ever seeing a request for such a feature, either, so it seems if it did work it almost be by pure luck.

It's worth playing with, because I can see how in rondo form such a feature could be useful. But definitely, the place to start is using the segnos and codas properly. The actual jumps should be associated with "DS" or "To Coda" only, not with a segno. At least, that is what seems would give the greatest chance of success, because that is how standard notation normally works and thus how things are designed to work in MuseScore.

But if you're looking for the simplest way to just get the playback to do what you want, I'd go back to using voltas for everything. You shouldn't need to extend them to cover the whole range - open ended should be fine. Plus you can mark them invisible if you prefer, then adding the more descriptive texts as plain text. At least, it seems to me this be likely to would work well and be easier.

In reply to by Marc Sabatella

Marc, Jojo's explanation of why I got 'double playback' in that version of the score makes the whole thing clear (see my answer to him above). As for the rest, I agree completely that this is not indeed the best way to indicate complex repeats for today's musicians. The only time I would use it would be if I needed to produce a 'replica edition' of something using 18th-century notation, which is very different to today's standards. (Take a careful look at Couperin's original and you will see what I'm talking about.) However, MuseScore's ability to set a jump instruction to go back to a particular marker, play until a second marker, and then jump to yet a third marker is obviously a valuable tool, if used properly. The elegant part of it all is the ability to re-name any of the markers or jump instructions as needed.

Standard verse/refrain/verse repeat structure doesn't require much jiggery-pokery to accomplish; nor does da capo al fine or dal segno al fine, both of which were used extensively in the Baroque and classical periods. But Rondo form, as you saw, is more complex, especially if the composer wants the rondo itself repeated twice between the couplets. In this particular piece, Couperin wanted it repeated only the first time before the playing of the first couplet, so MuseScore is able to handle the playback.

However, your assertion that:

You shouldn't need to extend [voltas] to cover the whole range - open ended should be fine.

doesn't reflect the current state of the program. If I don't extend the volta line to cover the entire section to be played, on subsequent repeats the playback jumps to to the end of the volta line instead of skipping the entire volta and going to the beginning of the next one, as a human musician would. (See, for example, https://musescore.org/en/node/85201.)

If this has not been fixed for 2.0.3, I would be willing to file a bug report/feature request to have it corrected. An 'open' volta line should not, IMO, need to be extended to cover the entire section.

Your thoughts?

In reply to by Recorder485

You're right; I assumed it would work but I guess it doesn't. The issue you linekd does cover this, but it's really about something else, so feel free to submit it separately.

I guess you could still make the full volta invisible and add a second dummy one (just an ordinary line) for the initial measure.

Do you still have an unanswered question? Please log in first to post your question.