-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Staff rotation may cause mismatched bounding box #1207
Comments
@yinanazhou it's very clear! Was a solution for this discussed, finally? Or is this what you're thinking about now? |
@JoyfulGen I don't think we have a solution for now. |
I think it would be good to find a few pages with this rotated staff issue and see what happens to those MEI files outside Neon (i.e. in Cantus Ultimus). @JoyfulGen if you could come up with a few particularly curvy/wavy staff files that you've corrected, maybe @dchiller could think about how much of a problem they create. |
To be honest, even after these multiple conversations at lab meeting, I still feel slightly confused about what the issue is (I suspect this is because I'm a relative newcomer to MEI and have only ever experienced Neon through presentations). So an example would be helpful! And maybe someone else could try to explain again? But also maybe best to wait for an example. |
Hello! Here's an example from the Neon perspective (as far as I understand the situation): As you can see, the last staff of Einsie 190v starts pretty straight, but then it gets all curvy and fun: If I align the Neon staff very strictly with the beginning of the folio staff, you can see that the curve of the folio staff means that Neon is way off at the end: The pitches of neume components in Neon are calculated by where they fall on the Neon staff. So in a situation like this one, if I want the pitches to be correct, I can't put the neume components exactly where they are on the page. I have to put them on the equivalent line or space on the Neon staff, which means that their true position is misaligned with the original folio image: However! I realized when investigating this that extreme cases like this one don't often happen, because it's usually possible to fuss a little bit and make the staff align relatively well all the way across. It's not really perfect anymore, but it's close enough all the way through. This looks like that: Even in my compromise situation, however, the position of the custos is off by a full step. As I understand it, the concern is that the MEI will have the correct pitch, but not the correct absolute position, which will be a problem in Cantus Ultimus when a user will ask for a certain element to be highlighted on the folio image itself. Here's the video of the demo, if you want to witness the full fussing: Curvy.staff.demo.mov@annamorphism, @yinanazhou, @dchiller, did I get that right? |
Thanks for this example @JoyfulGen ! I'm getting it bit by bit!
So, if I'm understanding correctly:
Is that correct? And the thing that we have been discussing with Ich is that he would like 4 to be different (that the bounding box information come from the OMR and not from the Neon corrections? One last question for now: In this case, would it solve the problem (not saying we should do this, but just trying to make sure I understand) for you to do this sort of imperfect staff placement -- things in Neon are a little off from the image but not so bad and all the pitches are correct -- and then just have the custos be the one thing where it looks really off from the image but is at the "right pitch"? In other words, if you did the "I have to place this thing far away from what's in the image so that neon will think it's at the correct pitch" for the custos only? If you did, it would be the case that everything in the MEI is "correct" except to bounding box for that custos? |
Thanks @JoyfulGen for this great example! So I guess the question for me is, what degree of tolerance is acceptable? |
Thanks! And clefs are presumably ever more important to have correct in the Neon renderings, because they affect the calculated pitch of any following notes.
I guess this depends on what the use of the bounding boxes is for. In CU, I already think we draw the boxes too tightly (because you can hardly see what you are looking at in the search results without a little space -- something your two images show very well). But are there use cases for the MEI where the bounding box position of the notehead very specifically is critical? |
I mean, I can imagine questions that could draw on both an accurate sense of position on the page (bounding boxes) and some sort of musical information from the MEI--e.g. "what is the usual distance scribe A draws her custos from the last note, compared to scribe B?" To my mind they aren't really use cases we're set up to answer, more like exploratory questions you could ask if you happened to have that data; I wouldn't really expect to do them within CU. |
Yeah, I mean, I think in some broad sense Neon should handle wavy staff lines. It's supposed to correct MEI from OMR, so it's contrary to purpose that it would introduce errors to bounding boxes. At the same time, it sounds like this situation is rare enough and the applications for very exact bounding boxes unclear enough that this is a very minor issue. To your point Anna, do we really want Neon to be in the business of doing the math of lines and manifolds? Probably not. For CU, as I understand it the use case is to be able to draw a box around the element in the image so that someone can find it more easily on a huge page of neumes... this is true for search, it's true for singalong, etc. So as far as CU goes, I think just expanding bounding boxes a little bit is the best bet. |
Just fyi, in answer to this question:
This is what I've been doing so far! Extreme cases where the staff is so curved that even fussing doesn't align the neumes are quite rare; most of the time it's really just the custos that's off. In Einsie, I would say that is actually quite common; the absolute position of most of the final custodes of verso folios is off by a step. |
When Neon gets the OMR output file, Verovio renders the neume position based on the pitch of the neume (to make sure the pitch of the neume match with how it is displayed on the rendered staff), instead of the exact position in the score according to the bounding box. This may cause a mismatched bounding box in Cantus Ultimus when the staff is extremely rotated/wavy.
@annamorphism @JoyfulGen, please feel free to correct me if I'm not being clear.
The text was updated successfully, but these errors were encountered: