Extend Peak Indicator Reset Options
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
### Enhancement Summary
Usually my projects end up with many mixer channels (over 8 usually), and I find myself manually clicking the Peak Indicator on all the channels after some plugin causes temporary clipping. Now, all of the peak indicators indicate a 10.0 or something that is well above the regular level of a song, and I have to manually click every single peak indicator. I propose that we add a context menu to the peak indicators, so that when right-clicked, additional reset options show up. Keeping the current left click behavior would be fine, as long as we put a tooltip in the bottom left informing users of this (similar to the one that appears when dragging a MIDI clip in the Song Editor).
Also, I don't know what term we should use in the context menu completely. For now, I made a mockup with the word "sender", but this doesn't seem very intuitive. If anyone has a better idea as to what channels sending to the selected channel should be called, please feel free to improve upon this.
### Implementation Details / Mockup
Here I have a rough sketch of what would be in the context menu
(Note: To reset all peak indicators, one can just reset senders recursively on the master channel. I am well aware that any completely unlinked channels will not be affected by this, but I don't think that should matter, as you wouldn't be able to hear that channel normally either)
**IMPLEMENTATION**
To implement this, it should be fairly straightforward. ~~Two new methods, `void reset_senders` & `void reset_senders_recursive` in `MixerChannelView` can be implemented. Because `MixerChannel::m_recieves` is `public` and `MixerChannelView` is where the current click-to-reset function in implemented, it can be added in `MixerChannelView.cpp`~~. One thing that I'm not entirely sure on is how to distinguish between a right click on the actual channel as opposed to the tiny `PeakIndicator`, tho I believe we can add more code in `PeakIndicator::mousePressEvent` to distinguish between the left clicks and right clicks, but this might make routing back to the (I'm not a GUI guy). One thing that might need to be done, though, is making the peak indicator bigger, because it might be difficult to right-click in such a small area.
(EDIT: I believe I am mistaken as to how the current reset system works. I confused `MixerChannelView::reset` with `PeakIndicator::resetPeakToMinusInf`, so implementation might be a little more confusing that I believed it be.)
### Please search the issue tracker for existing feature requests before submitting your own.
- [x] I have searched all existing issues and confirmed that this is not a duplicate.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading MixerChannelView.cpp, MixerChannel, and PeakIndicator::mousePressEvent to verify how the current peak reset works and how mouse events are routed. Determine how the proposed context-menu reset options should cover related senders and recursive senders, while preserving left-click reset behavior and providing the requested tooltip; confirm the interaction manually in the mixer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100