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

VST3 in some DAWs don’t disable scene width properly when changing filter config #3096

Closed
baconpaul opened this issue Nov 10, 2020 · 6 comments · Fixed by #3190
Closed
Labels
Bug Report Item submitted using the Bug Report template Host Automation Issues related to DAW (host) automation VST3 VST3 plugin related issues
Milestone

Comments

@baconpaul
Copy link
Collaborator

Gonna be the same type of bug as #2991

@baconpaul baconpaul added VST3 VST3 plugin related issues Host Automation Issues related to DAW (host) automation Bug Report Item submitted using the Bug Report template labels Nov 10, 2020
@baconpaul baconpaul added this to the 1.8.0 milestone Nov 10, 2020
@baconpaul baconpaul changed the title Vst3 in live doesn’t disable width properly as you drag filter Vst3 in some DAWs doesn’t disable width properly as you drag filter Nov 10, 2020
@baconpaul
Copy link
Collaborator Author

OK this i s avery different bug. For some reason the param UI updates are getting surpassed sometimes. Even in Reaper. Will need a bit of time to fix this one.

@mkruselj mkruselj changed the title Vst3 in some DAWs doesn’t disable width properly as you drag filter VST3 in some DAWs don’t disable scene width properly when changing filter config Nov 11, 2020
@VincyZed
Copy link
Collaborator

Looks like the issue I described over on Discord is the same as this one.

@baconpaul
Copy link
Collaborator Author

RealProb

Right so here's a picture in live (look! I'm running live!) on mac vst3. If I click the value it works fine. But if I automate it with a continuous automator it doesn't. So clearly my 'set value of filter config to 0.742' is correctly setting the code path to change the config but not the code path to modify the width slider.

Now I know that should be able to knock this one down pretty easily.

@baconpaul
Copy link
Collaborator Author

It seems that not every automation change live sends comes through line 797 of SGE; but they do not seem to. I wonder why.

@baconpaul
Copy link
Collaborator Author

OK I now know exactly why this is happening. A fix is a teensy bit tricky but short version is

1: Live sends the VST3 changes a lot and that fills up our change buffer due to bug 1 in setParameter01. Basically the loop to see if the param refresh is true should be < 0 || == index
2: When the change buffer fills up we use a different code path to refresh everything (that was the "korridor automation stops at 8 fix") but that code path doesn't update sliders. That's bug 2 in SGE and is a wee bit trickier.
3: When you fix #1, it seems the width activation is off by one. That is, it comes on on D2 and RNG not on < > and what not.

But I'll have a fix to this one sometime today. Have caught it in the debugger with a clear explanation of the bugs!

@baconpaul
Copy link
Collaborator Author

OK so have 1 and 2 fixed; now just 3 left which I think is a round vs floor type thing. Off for the afternoon but will get this one closed today.

baconpaul added a commit to baconpaul/surge that referenced this issue Nov 21, 2020
1. Automation would fill the refresh_parameter if many messages
   came between idle, which previously would drop messages, but
   now would over-refresh. Two updates on a param between idles is
   the same as one
2. Rounding and integer handling in the idle loop was incorrect for
   fm and filterblock activation
3. In the event of overflow, the wrong codepath ran mis-reactivating
   some sliders. So consolidate the all-changed codepath and the
   some-changed codepath in idle.

Closes surge-synthesizer#3096
baconpaul added a commit to baconpaul/surge that referenced this issue Nov 21, 2020
1. Automation would fill the refresh_parameter if many messages
   came between idle, which previously would drop messages, but
   now would over-refresh. Two updates on a param between idles is
   the same as one
2. Rounding and integer handling in the idle loop was incorrect for
   fm and filterblock activation
3. In the event of overflow, the wrong codepath ran mis-reactivating
   some sliders. So consolidate the all-changed codepath and the
   some-changed codepath in idle.

Closes surge-synthesizer#3096
mkruselj pushed a commit that referenced this issue Nov 21, 2020
1. Automation would fill the refresh_parameter if many messages
   came between idle, which previously would drop messages, but
   now would over-refresh. Two updates on a param between idles is
   the same as one
2. Rounding and integer handling in the idle loop was incorrect for
   fm and filterblock activation
3. In the event of overflow, the wrong codepath ran mis-reactivating
   some sliders. So consolidate the all-changed codepath and the
   some-changed codepath in idle.

Closes #3096
@mkruselj mkruselj added this to the 1.8.0 milestone Jan 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Report Item submitted using the Bug Report template Host Automation Issues related to DAW (host) automation VST3 VST3 plugin related issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants