From: Chris C. <ca...@al...> - 2002-03-05 10:46:45
|
Guillaume Laurent wrote: > What we need is a way to get > any of the following combinations > > note rest rest rest > rest note rest rest > rest rest note rest > rest rest rest note > > depending on where the mouse click triggering the insertion occurred. > [...] > I don't understand how normalizing rests will solve the problem. What the normalization code does is remove all the existing rests in an area, find the gaps where no notes are playing[*], and fill those with normalized rests. So, in your example, if you have a 4/4 bar containing a single rest and you insert a note (say) three quarters of the way through and then normalize, you'll end up with a long rest, then the note, then a short rest. Do you specifically want "rest rest note rest" rather than "long- rest note rest"? (btw, how does Logic -- or any other editor -- decide how precise to make the positioning of the note within the rest? Can you place a note a quaver in from the start of a semibreve rest? Can you place a shorter note at any point other than the start within a crotchet rest?) My gut feeling is that although we can probably make the existing insert code work reasonably well where you try to insert somewhere other than at the time of an existing event, it may be tricky to make it do exactly what you want for all the possible insertions you could do with the matrix editor. And also, we should probably try to offer a choice of whether the matrix view does all that split/tie stuff necessary for notation or just inserts events raw -- if the latter, then we wouldn't want to be using the notation insert methods anyway, we'd be much better off just sticking in the new event and normalizing the rests. Chris [*] actually it doesn't find places where no notes are playing -- that would mean scanning right back to the start of the segment, as a note can be arbitrarily long. Instead it finds places where one event has ended but no other has started -- there may still be other notes playing at the time. Fortunately in most cases this is what you actually want in the notation. |