hydrogen
hydrogen copied to clipboard
[feat. Req] Substitute an instrument in a song
Sometimes user may want to substitute an instrument with another, keeping the notes. The way I would do it is adding the new instrument, select and moving all the notes to it and deleting the old one. Is there another way?
I don't believe there currently is, no. It's something I've occasionally been annoyed by, as I think it's a reasonable expected behaviour to be able to drag instruments to rearrange independently of the notes assigned to them.
(One particular situation being in dragging an instrument from the sound library; sometimes I want to just replace an instrument with another rather than add a new instrument)
I see two potential interaction models that would support this. First
- show the gaps between instruments differently from the instruments
- highlight the gap or instrument that the mouse cursor is currently over
- dropping the dragged instrument onto a gap behaves as presently
- dropping the new instrument on top of another instrument "replaces" that instrument, keeping the assigned notes of the original instrument.
This very naturally supports the "drop new intsrument from sound library on top" model, but it's not intuitively obvious what should happen to any notes associated with the dragged instrument. Discarded? Merged? etc.
The other potential model would be to introduce a "mode" (or possibly a separate dialog) where dragging instruments in the instrument list would be independent of the notes. This would support reassigning instruments between drumkits fairly well.
In any case, I think the PatternEditorInstrumentList should be made to highlight the gap where a dropped instrument will be moved to.
I originally tried pressing some key (ctrl, alt...) while dropping a new instrument, or seeing if there was a "change instrument" option in right click menu, but the first model you describe seems faster to use to me
show the gaps between instruments differently from the instruments highlight the gap or instrument that the mouse cursor is currently over
maybe just highlight the gap (as a thick line) or the instrument when mouse is over is sufficient?
but it's not intuitively obvious what should happen to any notes associated with the dragged instrument. Discarded? Merged?
Why discarded? I would keep the notes or I don't understand
Yes! Especially if have a full song at hand and want to test e.g. a different hihat or a whole different drumkit the lack of this feature is very annoying. I solve it using a elisp function.
Regarding the second approach: With the mapping in #1070 one could reload the drumkit in order to swap/replace instruments.
But in general I would also favor the first approach and keep/assign the notes to the new instrument. The only problem I do see here is that from a user perspective I would expect to be able to drag instruments from any drumkit into the pattern editor and not just by the one loaded.
Thanks for the elisp function
The only problem I do see here is that from a user perspective I would expect to be able to drag instruments from any drumkit into the pattern editor and not just by the one loaded.
Yes, instruments should be dragged from the drumkit library panel on the right (replacing or not depending on the cursor position) Instead dragging an instrument from the pattern window should just change the order, like now.
I am linking another issue #168 that asks the same feature so we can close both together