blue icon indicating copy to clipboard operation
blue copied to clipboard

add a split tool in the score timeline [sf#17]

Open kunstmusik opened this issue 11 years ago • 4 comments

This tool would be like the scissors in most DAW software. It would allow the user to divide one object into two or more pieces. For example, one 10 second GenericScore object could be cut into two objects, one 3 seconds and one 7 seconds. The 7 second block could also be cut into three segments, perhaps 2 seconds, 2 seconds, and 3 seconds.

kunstmusik avatar Feb 18 '14 22:02 kunstmusik

Another option to split an Object could be like the Split in Reaper Pressing S on the keyboard creates a red line (like the green and yellow line), and the selected Object(s) can be split.

The left Object can leave their events intact, while in the right Object all the events should change their start time to 0. This can be done be doing: begin start time events of right Object minus duration of left cut Object.

tjingboem avatar Oct 26 '20 13:10 tjingboem

The issue with this has always been that it makes sense for certain objects like pianorolls but not so much for other objects (i.e., script-based objects like PythonObject or ObjectBuilder). I think one way to deal with this is to have objects be marked as "splittable" and to implement that for objects which make sense. I'll have to think about how deal with the user-interaction to make it feel right but can work that out through testing and iteration.

kunstmusik avatar Oct 26 '20 13:10 kunstmusik

Alternatively you could just have a rule that something like a python object just duplicates when split. I'm not sure if that's a good idea, but it would make it consistent.

In effect it would be a duplicate, but the old object would now end at the line, and the new object would start at the line and extend to the old position. I can see this being useful in certain situations, and it makes a certain amount of sense I think.

cianoc avatar Oct 26 '20 15:10 cianoc

What happens when I split a piano roll that repeats, or has time behavior set to 'none'. The former isn't clear to me. Should the new object start half way through the pattern and then it loops back to the beginning, which feels logical but a nightmare in many other ways.

For the latter you'd get an empty clip, which feels logical and so is probably fine.

cianoc avatar Oct 26 '20 15:10 cianoc