Is there any way to always have the same CC’s assigned for specific Instruments?
I know some come with default CC’s assigned (e.g. ZynAddSubFX has nice mappings), but I’d prefer if all the stuff I frequently use has some default assignments.
Can it be done? (searched manual but could not find it)
Wow - I sure think the answer to “can it be done?” is yes, but I can’t quite tell what you want to do.
What are the other instruments (and what are they) not defaulting that you want to set? Can you give us more idea what the issue is that’s bothering you, maybe an example, etc.
I’m controlling the Zynthian with an external sequencer. That sequencer allows me to make preset definitions of the synths it is driving. Such a definition can contain CC assignments along with human readable names. For example I made a preset for ZynAddSubFX giving access to all default assigned CC’s. I can use modulators on my sequencer and assign it to filter cutoff with ease.
Just as an example, JC303 doesn’t have default CC’s assigned.
In this case it might make most sense to define it in code (due to limited parameters) though.
But I can imagine for more complicated synths, establishing a default that works for everyone (and doesn’t conflict) can be tricky. So I was thinkingof having something like a config file per synth where such params are globally defined.
Synths like noise maker and helm are examples of what I am using atm
As you highlight, having default CC binding for every parameter of every processor (synths, audio processors, etc.) is not practical. They would conflict with each other and there are not enough CC to allocate to all parameters. Which parameters should be default mapped then becomes a matter of opinion of which there would be as many opinions as there are people asked! So it does not make sense to add default CC binding, apart from a few obvious ones like sustain pedal and modulation wheel. I have removed some default CC binding recently (from sooperlooper) because it was causing more issues than it was solving.
We don’t currently have a way for a user to configure default binding for each instrument. Maybe you might want to report a feature request for this. I can see it could be useful although it may prove challening to implement and maintain.
One way you could do this is to use the recenly added “merge snapshot” feature. You could create a snapshot with just the instrument you want, e.g. JC303 with its CC bindings and then “Load Merge Chains” to add it to the current state. This should give you what you want with the same effort as creating custom configuration. I would recommend creating a snapshot folder for these templates. FYI I have this folder structure for my snapshots:
Folder name
Use
000 - Factory
The factory supplied snapshots
001 Templates
Template snapshots that I use to build from or merge from
But that seems to be on snapshot level, I thought custom CC are currently on subsnapshot level. So I would need to do the merge thing on every existing subsnapshot, correct? Wont this overwrite other things?
I just tried this with SooperLooper. But it does not restore CC bindings with Load Merge Chains.
And indeed CC bindings are not stored if one saves a chain as a snapshot. Only if one saves the entire configuration (which could have just a single chain) as a snapshot.
The way we save and recall CC binding will change in the future. You may find that chain based binding is restored but global binding is not… possibly - I can’t test today. The work I have been doing on a dev branch has involved me testing that CC binding is restored by ZS3 (and hence snapshot which loads zs3-0). I will have to consider the point about binding then changing zs3. This area is a bit fluid. I had envisaged a layered approach where zs3-0 has the main config and other zs3 layer over this but it isn’t that simple and is not actually implemented that way… Leave that with us - we need to think about it.
I can’t test today buy you could… Try creating a snapshot with several zs3 and then add cc binding and save to zs3-0. Clear everything and load the snapshot. CC binding should work. Then load another zs3 and see what happens to CC binding.
You are right: global binding is not restored, but chain based (active chain) is. Regardless of how you create the snapshot it seems (chain to snapshot or all to snapshot).