PerryAsleep / GrooveAuthor

GrooveAuthor is an editor for authoring StepMania charts.
MIT License
21 stars 2 forks source link

[FEATURE REQUEST] start/stop selection #21

Open Piols opened 1 month ago

Piols commented 1 month ago

From what I can see the only way to select notes i through mouse dragging (other than selecting all notes with ctrl+A). Mouse selection can be pretty convenient for certain tasks. However, not all of them. A common scenario when I'm charting is I want to select a sizeable section of the chart (like 16 measures, or from halfway point of the chart to the end) and do something with it (mirror, copy, ...). That's when mouse selection can be inconvenient. I either have to start my selection and then scroll far while having the mouse button pressed, or zoom out quite a lot and then select the region with surgical precision. That's less convenient and more prone to errors, than just pressing a button to mark the start of a section I want to select (at current receptors position) and then press it again to mark the end of the section. Maybe there exists a better alternative of similar or better convenience for the task, but I'm not aware of it.

PerryAsleep commented 1 month ago

Thank you for the suggestion.

I modeled the selection behaviors off of common spreadsheet / text editing methods. So ctrl+click and shift+click should work as you'd expect if you are familiar with those methods. ctrl+click will toggle adding/removing the clicked note from the selection. shift+click will extend the selection from the last selected note to the newly selected notes. So you can click any note, then shift+click any other note, and all the notes between the two will be added to the selection. That should allow you to easily select 16 measures of notes, or the notes from half the chart.

Please let me know if this input method is getting you what you need.

Piols commented 1 month ago

I was not aware of it working like this, this is indeed very convenient and flexible. A small QoL improvement I could suggest is that shift+left click could select all notes between last selected note (if it exists) and current mouse position, so that one wouldn't have to aim right for the note to select the region, just anywhere past it. But this is not really that important.

My only issue with the current selection system, and let me stress that I think that the current selection system is good and this issue is personal, is that I try to minimize mouse use when charting. So if there was an alternative way to do it with keyboard in the future (like maybe a keybind to select arrows currently on the receptor/closest to receptor, working with the shift & ctrl selection magic), I would definitely appreciate it.

But to shed some light to my point of view and give some context, I'm going to also say this. Maybe this is not necessary at all and would be going in the wrong direction. I think my biggest issue when charting with charting editors is switching my right hand between keyboard and mouse. When given the option, I try to customize my editors to minimize how often I need to switch between them, because it's slow. Mostly I've tried to put as many things on keyboard as I can, have both hands on the keyboard most of the time and only switch to mouse when necessary. This is also the context for the issues I sent in today.

But I don't think there would be anything wrong with the opposite approach. Instead of trying to move everything from mouse to right hand side of the keyboard, trying to move everything from the right side of the keyboard to mouse. This would have several benefits. First, mouse offers different kind of input, allowing for doing some tasks more comfortably than on the keyboard (like this selection magic, jumping to any point in the chart or just scrolling). Secondly I don't think it's possible to fully eliminate the need to use the mouse, but it's definitely possible to completely eliminate the need of using right hand on the keyboard. If I could chart comfortably without ever needing to put my right hand on the keyboard, I'd be very satisfied.

Currently the things I, and I imagine most charters, use right hand for is chart traversal (up/down, pageup/pagedown, home/end), changing snap and music rate. Chart traversal can be comfortably done using the mouse anyway (in ways that can't be done on keyboard as well). So if there alternative, convenient ways to change snaps and music rate (for example like I described in #20 and #22 for example; or alternatively they could be selected via UI with mouse), then I would also be very happy.

I'm sorry I went offtopic, but I hope this tangent into what I think makes a good control scheme for a charting editor proves insightful.

PerryAsleep commented 1 month ago

Thank you for taking the time to provide all that context! What you are describing makes a lot of sense. I left a few comments on the other requests.

Adding support for this would be simple:

shift+left click could select all notes between last selected note (if it exists) and current mouse position

For potential additional inputs to better support keyboard selection and navigation I wonder if this would work (following with the text / spreadsheet methods): If you hold shift and press up or down then the selection captures the row you were on when you starting holding shift, up to and including the new row. Basically trying to replicate the behavior in a text editor with shift and up/down. What do you think?