Author Topic: Synchronization FX Bin plug-in parameters across strips  (Read 8703 times)

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1679
Synchronization FX Bin plug-in parameters across strips
« on: April 11, 2015, 04:56:41 PM »
Originated from the question in the official CW forum.

So, the goal is to make parameters in one instance of some FX plug-in(s) be always in sync with another instance of the same FX plug-in(s) (in different strip). Till there is such functionality in SONAR, that is the only reasonable way to do this.

Danger
Always use Strip Name based strip selection for synchronization purpose! Control Surface API has no access to SONAR internal strip IDs. If you specify synchronization between track number 1 and 2, and then insert new track between them, the synchronization will start to work with the original track 1 and the new track!

Caution
The nature of Control Surfaces in SONAR does not allow to make the synchronization in real time. There will be always some delay between the time the parameter is set and the time it is mirrored. With fastest available for CS speed, the delay is still up to ~1/13 of second. While that is not a problem for mixing purpose, for live performance and writing automations it can be "too long". Also some plug-ins will not propagate the new value till you finish parameter adjustment (release mouse button).

In such cases you normally do not want many parameters changes and you can use SONAR Grouping of concrete parameters. You can group automation parameters inside automation lanes, to make it work as expected either unset "read automation" for grouped parameters or remove the automation (delete the only point), grouping is not automation related, I just have not found other way to add such parameters into group. Note, that SONAR will sync all (even mentioned previously) plug-ins in real time then.

Setup
You will need AZ Controller installed. Also add it to the Control Surfaces in the SONAR Preferences. Do not set Input/Output. For our purpose we are not going to use is for real Control Surface (not that you can not include that configuration into some complete configuration, you can for example define a button which synchronize something once instead of continuous).
  • Create new project. Add one audio track. Add some FXes to it, for example "Channel Tools" and "biFilter".
  • Clone the track.
  • Rename tracks to "Sync1" and "Sync2" (names are just an example, that can be "Gtr","Vox" or whatever).
Configuration
Do not fear the length of the list. I describe every single click. I need less than a minute to reproduce it  :)
  • Open AZ Controller configuration window (Utilities/AZ Controller - 1)
  • Switch to the Options Tab
  • In "Tweak current configuration..." select "Reset configuration". We start from scratch
  • In "Hardware control" , after "<New control>" enter "First sync" (name does not matter), change "Unknown" to "System" (not really required) and press "Save" (the one just after, not other "Save"s...)
  • In "Software State" (not in "Hardware"!), after "<New set>" enter "My tracks" (name does not matter) and press "Save" in the near. You should see "My tracks" instead of "<New set>" now, and "Default" as the name of the first state
  • Change "Default" to "Sync2" (that should be exactly the name of your second track), press "Save".
  • In the dropbox where you see "Sync2" select "<New state>". Enter "Sync1" (the name of the first Track) and press "Save".
  • You can edit all names if you made a typo, but I hope you can find the way without explicit instruction.
  • Switch to the "Hardware" Tab. You should see "First sync" in the "Hardware Control". Press "Attach". You should see "((None)) First sync :" as the "Logical Control" now ("((None))" means we have no MIDI assigned, we do not need it in any case)
  • Switch to the "Logic" Tab. You should again see "((None)) First sync :" as the Logical control there.
  • Press "New". Change "Undefined" to "Monitor". "Monitor parameter value" to "Timer". "Normal" to "Once".
  • Press "New" again. Change "Undefined" to "Strip". Change "<First>" to "My tracks". Leave "Sync1" there.
  • In the action list you now see "Sync 1 Track Volume" and "Timer". What it important is that track selection is before monitor. "Sync 1 Track" is the "origin" for sync. The parameter ("Volume") is not going to be used there.
  • Switch to the "Feedback" tab. Press "New". Change "Underfined" to "Sync FX". Change "From" to "To". Change "<First>" to "My tracks" and "Sync1" to "Sync2".
  • You should see in the Actions list "Sync FX To Sync2 Track limit 3". It will do what it writes. Limit 3 is to avoid syncing something which is not in sync at all (has more that 3 parameters different). That can  happen if you selected strips incorrectly, you do not want sync EQ from Guitar with EQ on Drums, right? You can change the limit or set it to "No limit" if you want, but please do not complain you was not warned...
  • Switch to "Logic" Tab again. Select "Timer" in the Action list. Change "Once" to "Ultra" (as fast as possible, still it is 1/13 of second).

Test...
Open GUIs of all 4 plug-ins (use "Pin" in Platinum to see several instances of the same plug-in). Try to change some parameter in the "Sync1" track. You should see it is changing in the "Sync2". If not, please check the configuration.


Bugs, bugs, bugs...
When you change parameters in "biFilter", you can notice the change in other instance only after you release mouse button. But if you change parameter in the second track, it is "jumped" to the value in the first track (as excepted).

When you change parameters in "Channel tool", you can see the change is applied immediately. But in case you modify something in the second track, you do not see it is set back...

Sorry, bugs in SONAR and plug-ins are out of my control.

Syncing one FX only
Currently all plug-ins are synced. But let say you want just biFilter synced.
  • Switch to the "Logic" Tab.
  • Select "Timer" and change "Ultra" to "Once". We do not want syncing till we finish our change...
  • Press "New" and then "Move Down". We want an Action between Strip selection and timer. So, you should see "Sync1 Track..." "Undefined" "Timer" now.
  • Change "Undefined" to "FX". Change "<any>" to "biFilter2".
  • Select "Timer" and change "Once" to "Ultra". We want sync again, biFilter only this time.
Check that biFilter is (still) synced while Channel Tools is not.

All questions, comments, etc. are welcome. Thanks for testing, I wish you a good day!
« Last Edit: April 11, 2015, 06:10:48 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1679
Re: Synchronization FX Bin plug-in parameters across strips
« Reply #1 on: April 11, 2015, 05:09:29 PM »
.