I've been having a lot of off-list discussion with Mario Moles, and trying to help him come to grips with how to get things done in Rosegarden. I fixed a couple of bugs (which Heikki had to go back and fix correctly) to improve his success, but there is one huge issue standing in the way of his work.
It is an issue I have been thinking about for a long time myself. I started to do a tutorial explaining how to handle this situation, and I never wrote that tutorial, because it is totally impossible. A great deal of music in the real world has what we in America call "pickup notes." I'm not sure what this is called in the rest of the Anglosphere. The simple pattern has one short bar 0 with some number of notes that come before bar 1 (typically 1/4 or 1/8 of a bar,) then any number of complete bars, and a final short bar that fills up the time robbed by bar 0. This scenario can be accomplished now that the LilyPond exporter short bar padder has been improved so that it no longer attempts to fill in the missing space in the last bar. (It is virtually impossible to accomplish without using Segments -> Set Start Time to move the segment to the desired location with enough precision to avoid a cascade of 64th-sized errors. This is tedious, but not impossible, so it is acceptable.) (I'll include an attachment in a moment. This is how I am creating it.) I draw a segment four bars long starting at 1 and fill it up with quarter notes (crotchets.) I drag it to the right until I have 1/4 in bar 1 and 3/4 in bar 5. (Normally I would start a composition at 0 for this to make the bar numbers come out correctly, but that is not relevant to the overall problem, so we will keep the demonstration simple.) When I export this with my current build of SVN, this most simple example of the pattern now works perfectly well. This is real progress. Now, however, we hit a brick wall. It is very common to encounter this pattern in conjunction with a series of repeats. In practice with Rosegarden, the presence or absence of repeats does not seem to affect the outcome, so we will ignore the repeats for now, and just look at what happens with plain segments. Call the original segment A. Take a copy of the segment, B, and butt it up against segment A so that the time encompassed by bar 5 includes 3/4 of a bar from the right end of segment A and 1/4 of a bar from the left end of segment B. I have saved a copy of this, attached, for you guys to play with. If you delete segment B, you can see a working example of the simple scenario. If you leave segment B intact, you can see the mayhem that results. There are several problems here. I started to file this as a bug report, but it would have wound up being one of those all-in-one reports I have been working hard to discourage, so I decided to open a discussion instead, and hope it bears fruit. Rosegarden has no concept of a barline that falls anywhere other than on the absolute beat boundaries of the time signature. In 4/4, a bar is always 4/4, and Rosegarden has no idea what to do with this chunk of time inside the walls of bar 5. If you open both segments in a notation view, you see that the first note from segment B is actually rendered at the start of bar 5, directly overlapping the third-from-last note from segment A. This is complete garbage. The way bar 9 is presented on the rulers is also garbage, as they imply the missing time from the short bar, even though it has nowhere to go. If you preview this in LilyPond, you see even more garbage in the form of extra rests that were prepended to fill up the time missing from the beginning of segment B. The barline that should be drawn between segment A and segment B is not drawn. I will correct the LilyPond by hand to show how this should look. Tomrorow.. have to take wife to emergency room. shit! -- D. Michael McIntyre
pickup-notes.rg
Description: audio/rosegarden
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________ Rosegarden-devel mailing list [email protected] - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
