COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 10-04-2016, 02:03 PM   #1
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 51
Default Parameter count in WDL plugin

Hi all,
A little light hearted post this evening.
I'm intrigued to know if anyone is building or has built any plugins using WDL (I'm only building for VST2 atm) with particularly high automatable parameter counts.
I'm currently working on a plugin, please excuse any details as of yet, but for reasons sensible to me I have a particularly high count, term, well, 4864 to be precise.
I'm very surprised that I don't seem to be running into any problems whatsoever so far. Obviously it would be nigh on impossible for anyone to automate all of the parameters simultaneously, but I've opted for this approach for maximum flexibility.
I might add, I don't have gui controls for all of these parameters, I'm using a self butchered control creation/deletion/changing of assigned parameter setup.
Any takers ?
leighhunt is offline   Reply With Quote
Old 10-04-2016, 11:16 PM   #2
jack461
Human being with feelings
 
jack461's Avatar
 
Join Date: Nov 2013
Location: France
Posts: 181
Default

Quote:
Originally Posted by leighhunt View Post
I'm intrigued to know if anyone is building or has built any plugins using WDL (I'm only building for VST2 atm) with particularly high automatable parameter counts.
Well, I am working on a plugin which manages 32 "tabs" in which I can load/define "algorithms". For each tab I reserve 32 automatable parameters (my most complex algorithms so far use a dozen or so of them). This accounts for a number of 1050 parameters, including 26 global plugin parameters. To answer your question, I have changed the available parameters per tab to 256, so I have a total parameter count of 8218. Everything seems to work correctly. The parameters names look like "t20.p17" for parameter 17 of tab 20, but the algorithm can change the names, which turns out to be a mess for the user, since the same name can now happen many times in the automation window of the track -- but it works anyway...

By the way, I'm working on Mac and only build VST2 and AU plugins. What kind of plugin are you building ?

Last edited by jack461; 10-04-2016 at 11:34 PM.
jack461 is online now   Reply With Quote
Old 10-05-2016, 01:32 AM   #3
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 51
Default

Wow! It seems our projects have something in common.
I have two areas of tabs, one with 16 pages of 8 sections with 22 parameters, fixed to their assignment.
The other is 16 pages of 4 sections with variable assignment depending on the mode, which is where all the reassigning comes in. I reserve 32 parameters for each of these.

I have noticed that when I change the name of a parameter though, that the name doesn't update in an existing automation lane unless it is deselected then reselected (that might be the same for track controls, I'll have to dig back into my notes to see where I am with that). Do you have any thoughts on that perchance?

Basically, my plugin is a huge modulation matrix, designed for Reaper only, as I'm making extensive use of the C++ api. What's yours?

I spent far to much time in the past trying to achieve something like this with Ableton and M4L / python control scripts, and before that by building a mini daw in maxmsp. It seems Reaper is by far more suitable for my aims.It's been a massive learning curve, but results so far are quite impressive.
(Lots of falling asleep at night dreaming of TrackFxGUIDs and persistence in a changing project!)
leighhunt is offline   Reply With Quote
Old 10-05-2016, 03:11 AM   #4
jack461
Human being with feelings
 
jack461's Avatar
 
Join Date: Nov 2013
Location: France
Posts: 181
Default

Hi leighhunt!

This seems quite interesting !

I am not sure of what I do exactly with the parameters names. I'll have to dig again in the source code to remember precisely. But I will do that and I'll tell you.

I will send you a private message, so you can contact me, and I'll send you the "reference manual" of my plugin (it really is a "slow work in progress" that I intend to release in the public domain later)...

Regards !
jack461 is online now   Reply With Quote
Old 10-05-2016, 05:03 AM   #5
random_id
Human being with feelings
 
random_id's Avatar
 
Join Date: May 2012
Location: PA, USA
Posts: 356
Default

I am also doing a modular plugin, too. I have 500 params blocked out, but the plugin might only use 10 or so depending on the user configuration.

I think you need to call InformHostOfProgramChange() after the plugin changes the parameters. This appears to be working in Reaper. I have to test some other hosts, but the names appear correct with respect to automation.
__________________
Website: LVC-Audio
random_id is offline   Reply With Quote
Old 10-05-2016, 05:08 AM   #6
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 51
Default

Quote:
Originally Posted by random_id View Post
I am also doing a modular plugin, too. I have 500 params blocked out, but the plugin might only use 10 or so depending on the user configuration.

I think you need to call InformHostOfProgramChange() after the plugin changes the parameters. This appears to be working in Reaper. I have to test some other hosts, but the names appear correct with respect to automation.
Ahh, thanks for that, I'll keep note and give it a try when my head is back in that part of the programming.
leighhunt is offline   Reply With Quote
Old 10-05-2016, 01:23 PM   #7
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 51
Default

Quote:
Originally Posted by random_id View Post
I am also doing a modular plugin, too. I have 500 params blocked out, but the plugin might only use 10 or so depending on the user configuration.

I think you need to call InformHostOfProgramChange() after the plugin changes the parameters. This appears to be working in Reaper. I have to test some other hosts, but the names appear correct with respect to automation.
Hi Random,
I just tested your suggestion, but I am still getting the same situation.
From my tests here are my results:
Test 1 -
1 - Create track control for my parameter.
2 - Change parameter name. (coded in plugin, currently via a non-visible to host button to test)
Result - Parameter name changes immediately for Track control.

Test 2 -
1 - Create track control for my parameter.
2 - Create automation lane for my parameter.
3 - Change parameter name. (coded in plugin, currently via a non-visible to host button to test)
Result - Parameter name changes immediately for Track control, parameter name remains at previous name in envelope lane header.

The envelope still affects the parameter correctly, but the only way I can get the envelope name to update is to clear the envelope, and create a new automation lane. Then the name shows correctly.

btw - I am changing parameter name with an additional function I added to IParam.h/cpp to change the mName of the parameter.

I wonder if I am just lucky that it updates in track controls, or unlucky that it doesn't in track envelopes???

Any thoughts received warmly.

Kind regards,
Leigh
leighhunt is offline   Reply With Quote
Old 10-07-2016, 04:22 AM   #8
jack461
Human being with feelings
 
jack461's Avatar
 
Join Date: Nov 2013
Location: France
Posts: 181
Default

Quote:
Originally Posted by leighhunt View Post
Any thoughts received warmly.
Hi, Leigh,

I do have exactly the same problem.
I, too, added a method in IParam.h, in the class IParam:
Code:
void SetName(const char* name) { strncpy(mName, name, MAX_PARAM_NAME_LEN); mName[MAX_PARAM_NAME_LEN - 1]=0; }
I have in my plugin various "tabulations", with params (one param for each knob) names "t1.p1", "t1.p2", "t1.p3" etc. for tab1, then "t2.p1", etc. for tab 2 and so forth.

In a first experiment, I add automation envelopes for "t1.p1" and "t1.p3". Then, I load an algorithm in tab 1, which changes these names to "left" and "right". The names are changed in the plugin GUI, but the names in REAPER envelopes still are "t1.p1" and "t1.p3".

Then, I load the same algorithm in tab 2. The names of controls "t2.p1" and "t2.p3" in the GUI are changed to "left" and "right". After that, I add automation envelopes for these two controls. The names of these two new envelopes, in REAPER, are, correctly "left" and "right".

Now, things become strange. In the window dialog "Envelopes for track 1", the names of "t1.p1" and "t1.p3" are correctly changed to "left" and "right", BUT they still are "t1.p1" and "t1.p3" in the list of envelopes displayed under the track.

Even stranger, If I uncheck these envelopes and recreate them, they appear again as they were, with their various inflexion points, and their names "t1.p1" and "t1.p3". Even If I delete all the points in an enveloppe, clic "bypass (delete if empty)", and check again the envelope check boxes, it still is resurrected as "t1.p1".

I have to choose in the "hide/clear" left-click menu of the envelope the option "clear envelope", then "yes" in the dialog box "would you also like to remove the envelope completely?" to really delete the envelope, and then be able to recreate it with its new name...

Clearly, it is nice not to loose too easily the contents of an envelope, but it is unfortunate that changing the name of a control is not reflected in the REAPER envelope GUI. Could we consider that as a bug - namely that the envelope GUI itself shows the initial name, which is inconsistant with the fact that the window dialog "Envelopes for track 1" shows the new name - and ask for a change ?

Regards.
jack461 is online now   Reply With Quote
Old 10-07-2016, 05:28 AM   #9
leighhunt
Human being with feelings
 
Join Date: Jun 2016
Location: London, UK
Posts: 51
Default

Hi..
Yes, all very odd.
In the interim I have implemented a midi loopback command , one assigned to 'Hide all envelopes', and the other to 'undo'.
(i have independent assignable midi ports in my plugin).
I output these messages to a midi iac bus to trigger the actions each time any parameter name changes.
Works flawlessly, momentarily hiding then undoing the hide operation reveals the correct name in the envelope, complete with intact envelope.
Obviously I would like to not have to do it this way in my finished plugin but, for now this works. I'll return to this issue later.
regards,
Leigh
leighhunt is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:33 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.