Skip to content
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

XY cutoff/res control in filter analysis pane #6747

Closed
PopeKehoeIII opened this issue Dec 14, 2022 · 5 comments · Fixed by #6884
Closed

XY cutoff/res control in filter analysis pane #6747

PopeKehoeIII opened this issue Dec 14, 2022 · 5 comments · Fixed by #6884
Labels
Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Milestone

Comments

@PopeKehoeIII
Copy link

as discussed on discord:

Would be in the words of baconpaul a "cute idea" to allow clicking on the filter analysis window to control cutoff on the X axis and resonance on the Y axis.

this lets you tweak both params simultaneously with a mouse, turns a previously display-only part of screen into a control surface, and would provide the pretty satisfying experience of really dragging around the cutoff point and resonance peak directly on the curve.

@PopeKehoeIII PopeKehoeIII added the Feature Request New feature request label Dec 14, 2022
@mkruselj mkruselj added the UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. label Dec 14, 2022
@mkruselj mkruselj added this to the Surge XT 1.1.x milestone Dec 14, 2022
@Alexander-Zyurkalov
Copy link
Contributor

looking

@baconpaul
Copy link
Collaborator

baconpaul commented Feb 27, 2023

Basically 2 steps

Add an onMouseDragged handler to the preview which shows the cutoff and res line with a ball under the mouse

Use changes there to send the param changed event probably by just faking the call to surge gui editor value changed with the appropriate tag

the tricky bit is you want bidirectional either slider or pane to edit both and right now we are one way

good second issue lemme know if you need help

@baconpaul
Copy link
Collaborator

Oh you probably also want to change cursor type over the plot too once this is working

@mkruselj mkruselj modified the milestones: Surge XT 1.x, Surge XT 1.2 Feb 27, 2023
@mkruselj
Copy link
Collaborator

Another important thing - cutoff frequency to which Cutoff gets set should absolutely match the markings on the plot, so you will likely need to convert normalized 0...1 range (0 being 10 Hz and 1 being 24kHz) to how the Cutoff parameter is scaled in semitones (-60 to +70, 0 being MIDI note 69 or A440).

In fact, since our Cutoff slider goes to max 25087 Hz, it might be prudent to take this chance and modify L148 of FilterAnalysis.cpp to increase the maximum frequency of the plot to 25k.

@baconpaul
Copy link
Collaborator

probably a first step is to put a mark on the filter analyzer for resonance and cutoff at paint time so you can see the slider -> plot feedback path working then when you make the reverse you know you have the units correct. just a thought tho

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants