-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Demo: Piano-Roll chop, stamp, strum, bulldozer and mode switcher #6140
base: master
Are you sure you want to change the base?
Conversation
- Temporary edit modes instead of Knife specific code - Detune is temporary now (exited with right mouse button)
- More use of m_action - Knife and Detune applies on mouse release
Also, right mouse button always activates draw mode
I dig it! (bulldozer-esque pun? 😄) |
Don't have time to deep dive but I'm a bit concerned about
Personally I think it would be good if right click was available for context menus when possible, so dedicating it as an "reset mode" shortcut would be a conflict. Of course RMB currently deletes notes so there's already a conflict, but that could be solved by e.g. allowing right click on an empty space to launch a menu (requiring a note to be clicked to enter erase mode). Does this PR create additional conflicts with RMB as a context menu? Another concern is that (without having used it, to be fair) it seems clunky to go to the toolbar every time you want to access these tools. While they save time, there's an initial investment of moving the mouse up and back that makes them feel less convenient and immediate than they could be. I think you could kill two birds with one stone if the modes and tools were available with a right click. Then you could e.g.
In combination with this I would probably collapse erase and select mode into the mode selection dropdown. They seem just as niche to me as some of the other modes introduced here, because I'm not sure who would click a box select icon instead of ctrl dragging, or click erase mode instead of RMB-ing or select + deleting. |
Good suggestion, although a delicate topic. Related #1569
Previously Knife used RMB to exit. The new thing here is that Select and Erase does that too. And the new modes of course. RMB in draw mode is still erase.
RMB on empty space and dragging over notes should also erase IMO. |
My reptile brain wants erase on right mouse button, no matter how hard I try to relearn. Better not change that (unless it becomes a user configurable option).
Here's some more experimentation: ctrl right click to open a context menu. This is where all your actions be put. I just stuffed some stuff there at the moment. Menu content could perhaps depend on if user clicked on a note vs empty space. And to switch between all them lovely new tools, use ctrl right drag to access this NEW FANCY HEXAGONAL GESTURE THINGY 🎊 hexmenu.mp4 |
Strum tool is currently half broken btw |
Hi @allejok96 : Really like the ideas because I am desperately missing such kind of humanization tools - not only strumming but also the randomization of the velocity and note length because it takes really some (unnecessary) time to this manually. (please correct me if it is already possible and I am not aware of it :-)) But I think the strumming would need some more settings. Somehow like in FL Studio where you can e.g. preserve the ends - as described here: https://www.image-line.com/fl-studio-learning/fl-studio-online-manual/html/pianoroll_strum.htm Maybe adding some kind of "humanization panel" which is docked somewhere (left side?) in the piano roll and contains the controls? |
@spechtstatt thanks for the feedback. #1165 is what you want. Also it sounds like you want strum to be applied automatically to all chords? This strum tool is manual use only, and in hindsight I think that might be useless. You could achieve something strummy right now with the arpeggio, but it's also severely broken. I've been running lmms with this patch for a while and this is my evaluation so far:
|
No, I would just keep the approach with applying the operations for the selected notes only because the strumming may not be applied for all chords at once but varied along the progression - e.g. like it is often done in lofi. I am not sure if I understand the approaches of @musikBear correctly, but it seems to me that they are more track related (like the arpeggio) and it sounds to me that the chord selection seems to contain some "magic"? I think it would be much more flexible to just have a relatively simple editing helper which is just applied to the selected notes. This allows also for an easy mixing of manual and "automatic" editing - like humanize the notes (velocity/start/length/padding and so on) and adapt it afterwards. (But as I said: maybe my interpretation is incorrect) |
For reference, the strumming feature created by musikBear: https://www.youtube.com/watch?v=OlBtU0JYvyY |
Thank you - this is very impressive. If I am interpreting this correctly it is based on the quantization setting. But I am not sure if this limitation is necessary. Maybe this can be done in a more free way by using a kind of knob. Like switching into a specific mode with a button and controlling what is applied with a knob. This could basically be done for all the humanization stuff. The only difficulty is the initial value of this knob. But maybe this could be overcome in an easy way by resetting the knob value if the selection changes and also when the mode is selected/changed? |
And I also think that all the nice editing features are sadly too hidden for the users. We could use an additional toolbar as many graphic programs do. Something like this: The bar would contain some of the existing functionality (maybe slightly extended to be more complete - to be honest I didn't really understand what "min length is last" and "max length as last" is doing so I left it out for now) and also the new humanization stuff grouped at the right with the humanizer knob. Every humanizer button would be a disjunctive state for the knob. I imagine that pressing one of the modes would allow for a flexible and smooth increase or decrease of the selected humanization effect. |
I wouldn't say that things in a drop down menu are hidden from users. They menu is in plain sight and if you find it too hard to click twice you can learn the key combo instead, which may be even faster than moving to the toolbar and clicking a button. But that's just my opinion. We could do some form of tear-off menu toolbar thing like most word processors do, and then we'd have the best of both worlds... (very nice concept art btw!)
"Last" as in "Note length: Last note". Yeah I know, it's terrible, and it's my fault. It was a hack mainly for the Fill tool, because it may create undesirably long notes. Click the note you want as reference and then click the min/max button. The whole feature is illogical and should probably be reworked.
Edit: let's move the humanization discussion to #1165 as this PR is more about click-and-drag driven editing tools. |
(Damn - I have really to take care what I criticize :-)) |
Mine is note-stack dependent, and only for selected notes. |
There is no humanization code in this PR... The images by @spechtstatt are just prototypes right? @musikBear what happened to your humanization code? |
Yes - its (unfortunately) always easier to just make an UI concept art than to finally do the really hard work and implement it :-) |
That is also in that PR. |
This is only meant as a showcase. Everything will have to be redone when #6063 get merged. So don't look at the code right now. It's horrible. Let's focus the discussion on the UX aspect.
video.mp4
Motivation
There are many cool features in Pianoroll that is hidden behind modifier keys. And sometimes the order of pressing down keys matter. Like shift-press-move vs press-shift-move and shift-ctrl-resize vs ctrl-shift-resize. This draft suggests splitting out all these features into dedicated edit modes.
Quick edit mode button
Knife improvements
Stamp tool
Strum tool
Related #2380
Bulldozer
Related #1643
I can't seem to find a good logic when it comes to resizing in bulldozer mode...
Stuff removed from Draw mode
In favor of the dedicated edit modes.