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

Reply via email to