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

Semitone/Cent units for Floaty Delay playrate? #7923

Open
Andreya-Autumn opened this issue Dec 16, 2024 · 6 comments
Open

Semitone/Cent units for Floaty Delay playrate? #7923

Andreya-Autumn opened this issue Dec 16, 2024 · 6 comments
Labels
Discussion Effects UI Issues related to UI look&feel

Comments

@Andreya-Autumn
Copy link
Collaborator

Advantage: More familiarity.
Disadvantage: May lead folks away from exploring other proportions.

You use extend for a unit switch. But it doesn't actually change anything about how the slider works, so it seems a bit overkill. So probably let's think about this and decide on one for 1.4

@Andreya-Autumn Andreya-Autumn added UI Issues related to UI look&feel Discussion labels Dec 16, 2024
@Andreya-Autumn Andreya-Autumn added this to the Surge XT 1.4.0 milestone Dec 16, 2024
@baconpaul
Copy link
Collaborator

There’s an alternate tooltip display in Param. That’s how the filter cutoff shows 440 and a4 on the left. Wonder if that would work here?

@baconpaul
Copy link
Collaborator

Would require a bit of plumbing and a pmd extension but would be doable

@Andreya-Autumn
Copy link
Collaborator Author

Oooh, that's a good idea. @mkruselj that's what it should be right?

@mkruselj
Copy link
Collaborator

Yeah I suppose. I forgot this one is libized so it abides by different rules to how we used to do things in Surge codebase...

Also to add here, Jacky's request to be able to type in ratios and it converts to decimal, would be great to have.

@Andreya-Autumn
Copy link
Collaborator Author

Yeah 100%

We have it for pitch sliders, if that method is not in paramMetaData already we should add it for sure.

@baconpaul
Copy link
Collaborator

So the param metadata already has a valueForAlternate method but right now it always returns std::nullopt

but since floaty types have types in surge you could do the alternate in Parameter.cpp. Find Parameter::get_display_alt and then you can case it based on type in there since the valueForAlternate check will always fall through.

diff --git a/src/common/Parameter.cpp b/src/common/Parameter.cpp
index c6b38f72..bb89959f 100644
--- a/src/common/Parameter.cpp
+++ b/src/common/Parameter.cpp
@@ -3417,6 +3417,11 @@ void Parameter::get_display_alt(char *txt, bool external, float ef) const
         snprintf(txt, TXT_SIZE, "%s", bin.c_str());
         break;
     }
+    case ct_floaty_delay_playrate:
+    {
+        snprintf(txt, TXT_SIZE, "foo");
+        break;
+    }
     case ct_percent_bipolar_w_dynamic_unipolar_formatting:
     {

the type-in is harder. We need alternate inversion functions in the PMD which we dont' have right now.

So my advice for right now is

1: code up the alternate display in surge
2. don't do the alternate typeins
3. open an issue in basic blocks or leave this one open for the PMD extension required

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion Effects UI Issues related to UI look&feel
Projects
None yet
Development

No branches or pull requests

3 participants