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

Automation Hosts learn the wrong names (Live, Bitwig, VST2, AU) #247

Closed
esaruoho opened this issue Jan 9, 2019 · 13 comments
Closed

Automation Hosts learn the wrong names (Live, Bitwig, VST2, AU) #247

esaruoho opened this issue Jan 9, 2019 · 13 comments

Comments

@esaruoho
Copy link
Collaborator

esaruoho commented Jan 9, 2019

Steps to replicate:

  1. Launch Ableton Live
  2. Load Surge (VST or AU)
  3. Click on "Configure"
  4. Move a slider in Surge

Expected result:
the slider's slider will appear in Ableton Live

Current Result:
the slider's slider appears, but when you let go of tweaking the slider, another "twin" slider appears.

surge_ableton_live
surge_ableton_livev2

for instance,
Filter EG Decay "twin" is LFO4 Deform
F2 Cutoff "twin" is LFO 3 Rate
FX1 Send "twin" is F2 Envmod
Output Pan "twin" is F2 Resonance
F2 Resonance "twin" is LFO3 Magnitude
F2 Keytrack "twin" is LFO3 Unipolar

and so on and so on.

@baconpaul
Copy link
Collaborator

Any way to get a demo version of live? I’ve never used it.

@esaruoho
Copy link
Collaborator Author

esaruoho commented Jan 9, 2019

@baconpaul
Copy link
Collaborator

I think this and #193 sound super similar right?

@esaruoho
Copy link
Collaborator Author

@baconpaul well it could be related, if bitwig is a kind of "only one can get bound with a click" (i.e. it discards the first one of the "two" bindings)..

@esaruoho
Copy link
Collaborator Author

@baconpaul to know for sure, i'd have to have bitwig installed..

@baconpaul
Copy link
Collaborator

OK so in bitwig I just automated Filter EG Decay and got the binding to only one thing, which was LFO4 Deform. So bitwig and Live are doing the same thing.

Which means this and #193 are the same problem.

And which means I can debug it because I can use bitwig!

Note that the vst3 in bitwig basically totally doesn't work on automation.

So definitely something interesting here.

@baconpaul
Copy link
Collaborator

OK I'm going to consolidate into one issue. From #193

From aMUSEd on kvraudio:
There is something odd going on with host automation assignments for Scene B. If I try and 'learn' params from the filters in scene B in Bitwig for example (in order to create a device panel map), by clicking learn then selecting the filter cutoff, res etc, what gets learnt is LFO params, not filter params. The only way to map filter params (or any params from Scene B) is via the drop-down selector but that is an endless list and very disorganised.

@baconpaul baconpaul changed the title Ableton Live & macOS Surge VST output "extra strings" when being configured. Automation Hosts learn the wrong names (Live, Bitwig, VST2, AU) Jan 11, 2019
@baconpaul
Copy link
Collaborator

OK so may need some help from @kurasu here at least to understand the protocol

I instrumented the VST2 host and ran it in bitwig. When I wiggle osc1 pitch (which is parameter 118) in learn mode the output is

Entering getParameterName @ 10:21:02
GetParameterName 167 167 Osc2 Level 10:21:02
GetParameterDisplay 167 167 0.00 dB
Entering getParameterName @ 10:21:02
GetParameterName 167 167 Osc2 Level 10:21:02
GetParameterDisplay 167 167 0.00 dB
Entering setParameter @ 10:21:02
SetParameter 118 118 0.499639 10:21:02
Entering setParameter @ 10:21:02
SetParameter 118 118 0.499995 10:21:02

so the right parameter is set (118) but the wrong one is initially queried (167).

BitWig seems to learn the first queried one; Live seems to learn both.

But my question is: How does the host know in learn mode to do that first query to 167? There is no other VST call happening. I'll dig around some more.

@baconpaul
Copy link
Collaborator

Ahh the host calls AudioEffectX::beginEdit and ::endEdit around the move. I bet that path will lead me there.

@baconpaul
Copy link
Collaborator

OK I absolutely know the problem here now. But I don't quite know the fix.
The controls in SurgeGuiEditor are made with a tag that adds "start_paramtags" to it. So the tags are off by about 50.

In SurgeGuiEditor::beginEdit() it strips this off. But that function isn't called.

Instead the beginEdits come from CControl which doesn't know to do the transformation.

So we need to do the "- start_paramtags" somewhere else too; probably in the ::beginEdit in the Vst2Host. But start_paramtags is local to the .cpp file so I need to figure out the right function I can call from src/vst2.

But very close on this one.

@baconpaul
Copy link
Collaborator

automate

Yup that's exactly it

So let me put my code back together and then I will make a PR for @kurasu to review that fixes VST2. Then we have to fix VST3 and AU I guess

@baconpaul
Copy link
Collaborator

Got it working on Logic also.

automate-logic

I think it's just VST3 that has a problem now.

@esaruoho
Copy link
Collaborator Author

thanks for the lovely fixes on this ticket, @baconpaul

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants