-
-
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
Basic ghost notes feature. #4575
Conversation
* Changed `int m_noteOpacity` to `unsigned char m_noteOpacity` (aslo converted the relative functions (`noteOpacity` and `setNoteOpacity`) to `unsigned char`) since the maximum value will be 255 and minimum 0.
Downloads for this pull requestGenerated by the LMMS pull requests bot. |
…n` in the PianoRoll header since we defined it as `pattern` in the cpp file as well.
You should handle the case where the ghost pattern is deleted. If not, you may get a crash after deleting the pattern. lmms/src/gui/editors/PianoRoll.cpp Lines 656 to 657 in a1415a3
|
…n` signal. * changed `and` to `&&` for MSVC support. - Thanks to PhysSong for the review.
@PhysSong yes it crashed indeed on deletion of the ghost pattern, so I connected to the Also changed the Thanks. |
This is definitely a much-needed feature! |
This is so good. I can't overstate how much this would help me. |
@Umcaruje please chime in on artwork or open a task for yourself and/or @RebeccaDeField to review it after merge. |
I’m also working on a feature to set ghost notes in the Automation Editor with the option to scale the ghost notes. I have something working but I need to clean it first before putting anything online, but should I open a new PR or just merge the code with this? The slider normally scaled the ghost notes vertically, on double click of the slider handle it controls the position offset. Styling is just there for example. |
I recommend a new PR. This one's near-ready for merge, so you can just rebase/fast forward the other PR off of master once this is merged. |
Ok great I'll do that, thanks. |
@cyberdevilnl I can't wait for this to get merged, Thank you for your work on this much needed feature! |
The artwork folks isn't that active right now so I don't think we can wait for them. What else is left to do here? |
Testing? If this one works well, why not merge this? The artwork stuff can be handled later. |
OK. I'll take it for a spin. :) |
Why even delay for the artwork folks, the art work is included in the commit? |
Tested works. Basically it works like this. When you have an open Piano Roll you can right click a pattern in the Song Editor and set it as ghost pattern in the open Piano Roll. If you have no Piano Roll open it's the last opened Pattern that is effected (and the pattern is opened in a Piano Roll window when the ghost pattern is set). You can clear the ghost pattern with a button but the ghost pattern is also not persistent so when you close the Piano Roll it will be forgotten. The artwork is adorable. It's good enough for master in my opinion but I want a second opinion. @cyberdevilnl Is the artwork your original? |
imo yes, until the user decides to remove the ghosts. Not only does persistence open more options, toggle-able features are always more user-friendly, than a rule based behaviour |
@zonkmachine : Yes I created the icons with Inkscape from scratch, feel free to use/replace them. @FeralBytes @musikBear : glad it’s been helpful :-) If there are behaviour changes needed please let me know. One thing I could think of is disabling/hiding the |
Yes. This is a good idea. Also, if you right click an empty pattern, maybe the context menu ghost icon should be disabled? |
@FeralBytes Actually hoping to have some more activity this year, but I agree that it would be best to commit now, update art later. I have some ideas on how the icons could be finished up, but I'm not available to work on it yet. |
Agreed. This shouldn't be a factor unless it's actively be worked on. Most features come with default artwork and is re-themed as time goes on. This should be the standard as to encourage the coding of features and discourage lengthy merge times. If we can get some more volunteer project maintainers we can shorten the merge time as well. <3 |
* Small change to comply more with the rest of the coding style.
@zonkmachine Good, I’ve made some changes. The context menu entry won’t be added if the pattern is empty and the |
@cyberdevilnl It definitely would be better with some persistence. But even so this is a huge productivity boost. Also several checks have failed but looks like they just took too long. How do we get the LMMS Bot to build a new PR app Image once all checks are passing? |
Don't believe there's a way yet and I'm not sure if the bot's still running for new PRs. @Reflexe? |
It seems like there was a problem with the bot and @Reflexe have fixed it. For some reason, however, there are no |
Better. 👍 |
I haven't looked deep into the code of this but @PhysSong had a go at it earlier in the thread. @cyberdevilnl Did you look into the ghost notes being remembered? It is a bit volatile at the moment as it's lost as soon as you exit the Piano Roll. |
@zonkmachine Ah I get what you mean, should be fixed now. |
* Don’t paint ghost if it’s the same pattern.
Great! Now the pattern is remembered for the complete session. The PR is well defined and works. You set a ghost pattern and it's set globally and is there until you either clear it, set another pattern or close the project. |
Merge? |
Lets you set a melody pattern as visible in the background of the Piano Roll as support when building a new pattern. The pattern is visible throughout the session or until cleared via the provided button.
This adds a option to the pattern context-menu to add the pattern as ghost notes to the Piano-Roll. Also added a button in the Piano-Roll to clear the ghost notes.
Edited by @tresf: Closes #4449, #4303, #520, Related: #1438, #696