Dear Michael,
Navigation and cursor thoughts:
-------------------------------
The purple cursor is gone so you say, but it doesn't have to reappear as old
code had it, we can just use it "metaphorically" and overlay it or something
like it on the dark cursor. It's sole purpose it to mark the active staff.
Basically we are just changing the color of our current cursor and then
extending it in both direction with a dark color do the non-active staffs.
But that still leaves some navigation issues to consider. But since we are now
tied to a note or rest and all the cursors are unified, it is difficult to
decide what to do.
Without taking time to study how the current behavior is implemented, it is
difficult to know how to proceed. I'm imagining the current cursor location is
determined from the list of events in the segment, therefore only moving to
starts of events in the segment.
Maybe another way to approach this is to take from matrix view (which has a
grid setting). Matrix as Cherrett mentioned should be updated that movement in
time should follow the grid setting and not the beat setting, If this were so,
we could implement a "grid" setting in notation view that would advance the
ruler on the grid values when the keys are pressed to advance the notes. But
maintain our current "advance to end of the duration" feature when inserting
notes / rests.
So this would be yet another feature with setting (that I know Michael hates):
These option would include all the durations RG supports (using the duration
toolbar as a guide) and an option to just honor the notation toolbar setting,
and a final setting to honor events in the segment (which I think is the
current implementation).
This way you can have the current behavior; a sane way to navigate staffs and
"interprolate postion" if there is no event on the new staff, and multiple ways
to navigate the length of the staffs.
Overlapping segments and other related thoughts:
------------------------------------------------
I know we don't have time to figure this out now, but I wanted to provide some
more fuel to the idea--while I'm thinking about it.
Maybe a new approach is in order, but maybe just some new thinking.
We currently have overlapping segments that provide a variety of features for
us, but leave us no way to suborder them in any meaningful fashion.
We have tracks that are distinctly ordered and tied to outputs.
We also have the ability to have multiple tracks point to the single output.
Idea 1:
-------
So, what if we implemented some kind of track binding or sub-ordering.
This would all take place int the RG Main window. There are lots of variations
on a theme here.
A simple way would be just to allow the user to tell RG that track 1 is and
track 2 are grouped. RG will understand this that track 1 is the highest
priority track, and that track two is below it in priority, and that everything
in track one is to appear on the same staff as track one. Therefore all clefs
and keys are taken from the lowest (or highest priority track). But that
leaves lots of cases to consider concerning accidentals and stuff like that.
Hmm...
But at least in this way, if all three segments are selected for editing then
the "highest number track" gets the note or rest inserted into it. The idea
being is that is probably the track that is currently being worked on and needs
user input, the other tracks are already set.
If the user wants to work on an existing track (lower numbered track), they
just go to the RG main window and insert a new track below the others (a higher
number track), group it, and move the segment they want to work with there.
Then they open up notation view, and any new notes or rests or edits affect the
that track.
So the order is set in the RG main windows based on track numbers.
So what would overlapping segments be good for. I don't know. But maybe if we
took this further, we could "roll up" these subtracts and show them as
overlapping segments on the canvas and use the track subordering as a guide as
to where they get placed.
Idea 2:
-------
Well, with all of that said, we could just do it like lots of graphics programs
we could set a subordering with the overlapping segments and do a bring to top,
or set to bottom.
Idea 3:
-------
Another idea with tracks and overlapping segments is to allow a track height to
increase explicitly, instead automatically when segments overlap. Lets call
each of these a "lane".
By default a track will have one "lane" for segments and this will be the
default minimum for every track. Now, allow the user set a minimum number of
lanes for each track. This will keep the track expanded at least this minimum
at all times for the track.
In this way the segment in the "bottom" lane is the one the received the note /
rest insert events by default when multiples are selected for editing.
If overlaps occur, due to segment creation on move, etc, then the new one bumps
the other to the the nearest "free" lane or RG expands the lanes above the
minimum to accommodate the bumped segment. But the Minimum number of lanes
will be restored when any of the lanes become free of segments.
This method would allow users a visual way to organize their overlapping
segments and always know how RG will interpret them.
Idea 4:
-------
This could be used with any of the other ideas above or as a stand alone method.
As far as switching in notation view, we could just all users to switch via a
list of segment labels -- hoping the user chose to make good labels for the
segments, or they could just toggle through them in some fashion. Maybe the
currently edited segment label could be displayed in the status bar or listed
in some other prominent location. Or if this was in a combo box, the user
could select the segment they want to work with from the list, and the list
could also serve as a reminder as to which segment was the receiver any new
user input.
So we wouldn't have to highlight anything. It would be the user's job to know
what they were looking at on the page.
...
Well, those are my brainstorming ideas.
Sincerely,
Julie S.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel