On 09/24/2013 10:37 PM, Tom Breton (Tehom) wrote: > Yes. For some reason I thought that was an indication, but a quick look > at BaseProperties shows me that you are right, it's a specialized beam > group.
Hairpins, ottavas, slurs, things like that are indications. They have a beginning time, an end time, but no pitch. Tuplets have pitch, and they're often grouped together, so I suppose that's why Chris decided to hang that functionality off of the beaming logic. > Hmm. That stuff isn't set in MidiFile or Segment::insert, so I wonder > what's going on. Probably a quantizer is working on it after that. Yes, > createDocumentFromMIDIFile uses EventQuantizeCommand. Now I remember. > Bad news: Looks to me like NotationQuantizer is already doing it kinda the > way I described. It erases all those properties and recalculates tuplet > groups. Obviously it's not working so well. There are some comments > suggesting that the tuplet code there is not entirely right. It's getting the tupled/untupled just fine in THIS case, which is probably one of the more optimistic ones. I'm pretty sure this file I snagged was machine-generated. So what's missing is the grouping. The best case is Chris almost had it figured out, and we just have to bridge a little tiny gap. The worst case is we have to tear down the walls and rethink everything. > Yes. I just searched thru the source for BEAMED_GROUP_TUPLET* and what I > found is frightening. NotationQuantizer and SegmentNotationHelper each > try to do everything, and Segment, NoteRestInserter, NoteInsertionCommand, > and TupletCommand all fiddle with those properties. ISTM there should be > only one module that handles the tricky stuff (group ID, etc), and > everything else should call it. I wholeheartedly agree that's how it should be. Whether it's worth the effort to refactor all of it is another matter, I suppose. > Anyways, that might be moot. If the quantizer is buggy (and it clearly > is) and we fix it, it can fix groupings - which it *thinks* it's doing > now. Then there's much less need to do it automatically. Fix the quantizer, and we solve a lot of problems. The first thing I did trying to resolve this mess automatically was try the quantizer. The notes were obviously lined up with perfect mathematical precision, and it should have been an easy job to sort it out. This rabbit hole may or may not get tied up with automatic beaming. If it does, that's something that has been on my list of most hated bugs for nigh on 10 years now. Automatic beaming has a lot of bugs, and frequently does an awful job. I scarcely know where to begin on that one though. I've looked into it once or twice, and always slammed the lid shut and walked away. I bet they're closely related, but that's just a hunch. > Yes, I find that's cleanest way to do it. With larger tuplet groups, if a > note follows it I have to find an empty bar, insert everything there, then > copy it to where it is supposed to be. If it makes you feel any better--and it does me--I ran into a situation like that with MuseScore. I really want to love it so much I ditch Rosegarden and switch teams, but every time I get into some tricky situation I realize that doing notation with computer is just a bitch no matter what you do, and no matter who you are. Rosegarden is a big ball of quirks, hacks, and workarounds at this point, but it still has the home team advantage. Incidentally, now that I've spent some time with the development tree of MuseScore, I think it's appropriate to start taking Rosegarden in a direction where we work with LilyPond more closely instead of fighting against LilyPond. We have been heading down that road for a long time, but instead of implementing native versions of a bunch of things, I think we should just add more non-native things, and make it all easier to work with. I'm starting to get funky ideas, like a dialog where you can zoom in on an individual note, and it shows up like a character in a video game with little slots where you can put things from a palette. There are six slots where you can put a fingering, you can toggle every kind of mark, flip the stem, and whatever else comes to mind; all closely coupled to LilyPond in the end, with our on-screen display just essentially a crude rough draft that doesn't even attempt to show a lot of these things. We might have been better off on micro-positioning of various notation elements coupling it more closely to LilyPond, for example. What we've got in practice now attempts to translate across two totally different and unrelated scales, and it's quirky. MuseScore has taught me that you can have 500,001 excellent features that allow massive precision in positioning and tweaking everything, and you can have all that and your printed notation still looks crappy compared to LilyPond. -- D. Michael McIntyre ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk _______________________________________________ Rosegarden-devel mailing list Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel