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

Surge's control changes at preset loading don't refresh hosts' corresponding knobs or values. #6607

Closed
phazec opened this issue Sep 11, 2022 · 10 comments · Fixed by #6780
Closed
Labels
Bug Report Item submitted using the Bug Report template Host Automation Issues related to DAW (host) automation
Milestone

Comments

@phazec
Copy link

phazec commented Sep 11, 2022

Bug Description:
If you load a new preset with SurgeXT's preset loader, no values refreshed in host. It seemed first time like a takeover issue, but it's basically just this: no automation "actual" value, nor GUI knobs on host side refresh to their real value when you load a new preset. The big impact on my workflow is: I have a default preset saved for SurgeXT in Ableton Live. Surge's 8 macro knobs are made to show up as first 8 controls on live's little plugin GUI at bottom of the screen (Opening VST controls with [>] button on it and pressing Configure just to move Surge's controls to show up on Push 2's knobs. When you load a new preset in Surge, Live's GUI "Macro1..8" controls stay greyed at previous presets' last value and instantly jump there when you start to move given Push knobs. They are rotary encoders showing actual values on screen. This behavior completely destroys this simple use case.

Surge XT Version
Version: Surge XT 1.1.1.ecf7fe6
Build: 2022-08-25 @ 21:56:20 on 'WIN-KDGQ3UVP6AT/pipeline' with 'MSVC-19.29.30146.0' using JUCE 6.1.6
System: Windows 64-bit VST3 on Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz (Windows 10)
Host: Ableton Live 11 @ 44.1 kHz

Reproduction Steps:
Ableton live 11, change to midi clip view on Surge's track (Shift+Tab from device view), switch to envelopes view (two dots connected backslash form, Alt+2), move any of Surge's controls (one is enough), switch/load preset in Surge, watch that parameter changing on Surge's GUI and not changing on Live's GUI.
My use case: Switch to Device view (Shift+Tab from Clip view), open Surge's extended view on it with little triangle button pointing down/right. Press Configure button, it stays active. Move any controls on Surge GUI, watch them appearing on Live's Device view, Switch off "Configure" mode, and load a new preset in Surge. None of them will move. When you move any of them, their corresponding controls on Surge will jump to that wrong value first.

  1. Go to '...'
  2. Click on '...'
  3. Scroll down to '...'
  4. See error

Expected Behavior:
Please give the host your controls new state when required! Especially on preset load.

Screenshots:
https://drive.google.com/drive/folders/1Q0YGVp2dTx6391n3MdCbsGKhF3zkZjQw?usp=sharing

Computer Information (please complete the following!):

  • OS: Windows 10
  • Host: Ableton Live 11
  • Version: 11

Additional Information:
Push2's knobs are practically unusable after Surge preset load (even when loading partial presets with that hamburger menu like button)

Edit: typo

@phazec phazec added the Bug Report Item submitted using the Bug Report template label Sep 11, 2022
@Andreya-Autumn Andreya-Autumn added Host Specific Issues related to specific host(s) or host features and removed Host Specific Issues related to specific host(s) or host features labels Sep 11, 2022
@Andreya-Autumn
Copy link
Collaborator

Ouch, that's unhelpful indeed.

Confirming this (and removing the "host specific" label I overzealously tacked on), I'm seeing the same behavior when showing Surge XT params in track controls in Reaper. The parameters in question cease to update when changing patches. Other synths do not do this, they update the values in the track controls when changing presets.

@baconpaul Any ideas?

@Andreya-Autumn
Copy link
Collaborator

Oh btw, this is only when changing the patch using SXT's internal patch selector. If I save some presets using Reapers preset management, and then switch between those, the track control parameters update correctly.
I'd hazard a guess, that's the same behavior you're getting @phazec ? Assuming Live has a preset system of its own that is.

@baconpaul
Copy link
Collaborator

Oh probably i just need to send an automation event on all params when patches change and have forgotten.

But oddly when I run it in LPX10 with the AU and bind a smart control to Cutoff Frequency and toggle through patches I see those change (and same with macro) so there's something about surge + VST3 + invalidation here for sure.

Will look for the 1.1.2 release.

@baconpaul baconpaul added this to the Surge XT 1.1.2 milestone Sep 11, 2022
@baconpaul baconpaul added the Host Automation Issues related to DAW (host) automation label Sep 11, 2022
@Andreya-Autumn
Copy link
Collaborator

I'm getting the same behavior with VST3 and AU in Reaper though!

@baconpaul
Copy link
Collaborator

Maybe logic cheats and repulls?
or maybe we sent an event reaper ignores?
but anyway we can debug for sure. Solid bug report.

@Andreya-Autumn
Copy link
Collaborator

Good! :)

@baconpaul
Copy link
Collaborator

OK I've confirmed this and it's a bit subtle. If a parameters name changes when you change patches, the value updates also. But if only the value changes, then nope.

Lemme see if I can get a fix into 1.1.2

@baconpaul
Copy link
Collaborator

Ahh no this is a bigger change; will bump this one into 113.

baconpaul added a commit to baconpaul/surge that referenced this issue Jan 9, 2023
A patch change can change the name or value of any param.
So when it happens send the maximal updateHostDispolay (excluding
latency). Trigger this with a new patchChanged atomic on the synth
which we set to true at the end of the off-thread load. Results
in bitwig showing all correct param changes on patch change in vst3
and presumably other compliant hosts would do same.

Closes surge-synthesizer#6607
baconpaul added a commit that referenced this issue Jan 9, 2023
A patch change can change the name or value of any param.
So when it happens send the maximal updateHostDispolay (excluding
latency). Trigger this with a new patchChanged atomic on the synth
which we set to true at the end of the off-thread load. Results
in bitwig showing all correct param changes on patch change in vst3
and presumably other compliant hosts would do same.

Closes #6607
@phazec
Copy link
Author

phazec commented Jan 9, 2023

Works perfectly, tiny CPU spikes, doesn't matter I think. Thank you so much!

@baconpaul
Copy link
Collaborator

Great! Thanks for confirming and reporting

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
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants