theory to "BANG" out a preset setting/bi-directional control
Posted: 31 Jul 2012 03:29
Hi,
I'm a Logic Pro user… After many hours making Lemur templates and setting things up in Logic's Environment, I am not far off from living in what I would consider a perfect Lemur world.
I have enabled "bi-directional control" for all of my templates through some simple cabling in Logic's environment, making the CCs for each Lemur object correspond to the CC that the plug-in outputs for the mapped parameter, and using a simple transformer to transform the output message from "F 2" (or "Fader 2" - what is sent by default) to a Control Change on whatever MIDI channel necessary.
This bi-directional control is great if you're flipping back and forth during sound design, making changes to the plug-in settings using both the GUI and also its corresponding Lemur template. This, however, is useless when it comes to quickly going through your presets and making minor adjustments to the setting since loading a preset does not lead to every parameter outputting its newly set CC value, therefore it doesn't update the position of the objects within your template to reflect the new preset settings loaded and makes any sort of preset-based workflow not Lemur friendly, or at least not in what I would consider an ideal way.
From research I've done, there is no way to technically "bang" a preset out from a soft-synth, there are only certain workarounds that I've been able to come up with...
Since the issue at hand is that loading a preset doesn't output the CC values of the parameters that are changed upon loading the preset, you somehow need to manually engage each of the plug-in parameters that you have objects in your Lemur template assigned to in order for the values of the parameters in the plug-in's preset to be outputted (and essentially "updated) to your template.
Simply clicking on a knob on the plug-in GUI will output its CC value without changing it, but doing this for an entire plug-in (or at least the majority of the parameters in it) requires multiple clicks and is a waste of time to manually do. I considered making a "clicking" macro using a 3rd party program but this would require the GUI being open and in a specific location on the screen and is not ideal to me.
Since clicking the knobs on the GUI seemed to be the only "ghost" way (that I could figure out) of getting the CC values to output without actually changing their value, I turned to the idea of relative messages…. Before proceeding with a Lemur based version of this, I first tested it with my Livid Code which has endless knobs set to send relative messages. I mapped a single knob on the Code to ALL of the parameters of the plug-in that I had my Lemur objects mapped to, having as many as 100 parameters mapped to a single relative-message sending knob…
With this setup, in order to do a faux "bang" of a preset back out to my template, all I have to do is use this "all-controlling" single knob to send a +1 relative message followed by a -1 message. This will increase the CC values of all the plug-in parameters by 1 and then decrease them by 1, leaving all of the parameters at their original location within the preset and get them to bang out to the Lemur. I know this isn't foolproof, any parameters set to 127 within the plug-in preset BEFORE executing this +1/-1 action will ultimately end up being at 126, one CC value less than what they originally were within the plug-in, but I'd rather put up with that than not be able to bang out my settings at all. This has worked without fail for me thus far with this relative message coming from the Code.
That being said, I am wondering if it is a possibility to write a script for a Lemur object (a pad/button, ideally) to send this same relative +1 followed by a relative -1 message. I have seen the Relative Midi Objects/Templates here on the site but what I specifically am looking to do is have this type of message triggered by a pad/button so I don't have to worry about making sure I increase/decrease the knob the correct amount. Instead, simply pressing a button to trigger the messages (even if I have to press two buttons, one for relative +1 and one for relative -1) is a much more "defined" action and introduces less variables.
Any feedback/suggestions on this "relative +1/relative-1" concept of banging out presets, guidance on how to create a script for a button to send this relative message, or insight into how to trigger a "ghost" or essentially "relative 0" message to map to my parameters, would be much appreciated!
Cheers
I'm a Logic Pro user… After many hours making Lemur templates and setting things up in Logic's Environment, I am not far off from living in what I would consider a perfect Lemur world.
I have enabled "bi-directional control" for all of my templates through some simple cabling in Logic's environment, making the CCs for each Lemur object correspond to the CC that the plug-in outputs for the mapped parameter, and using a simple transformer to transform the output message from "F 2" (or "Fader 2" - what is sent by default) to a Control Change on whatever MIDI channel necessary.
This bi-directional control is great if you're flipping back and forth during sound design, making changes to the plug-in settings using both the GUI and also its corresponding Lemur template. This, however, is useless when it comes to quickly going through your presets and making minor adjustments to the setting since loading a preset does not lead to every parameter outputting its newly set CC value, therefore it doesn't update the position of the objects within your template to reflect the new preset settings loaded and makes any sort of preset-based workflow not Lemur friendly, or at least not in what I would consider an ideal way.
From research I've done, there is no way to technically "bang" a preset out from a soft-synth, there are only certain workarounds that I've been able to come up with...
Since the issue at hand is that loading a preset doesn't output the CC values of the parameters that are changed upon loading the preset, you somehow need to manually engage each of the plug-in parameters that you have objects in your Lemur template assigned to in order for the values of the parameters in the plug-in's preset to be outputted (and essentially "updated) to your template.
Simply clicking on a knob on the plug-in GUI will output its CC value without changing it, but doing this for an entire plug-in (or at least the majority of the parameters in it) requires multiple clicks and is a waste of time to manually do. I considered making a "clicking" macro using a 3rd party program but this would require the GUI being open and in a specific location on the screen and is not ideal to me.
Since clicking the knobs on the GUI seemed to be the only "ghost" way (that I could figure out) of getting the CC values to output without actually changing their value, I turned to the idea of relative messages…. Before proceeding with a Lemur based version of this, I first tested it with my Livid Code which has endless knobs set to send relative messages. I mapped a single knob on the Code to ALL of the parameters of the plug-in that I had my Lemur objects mapped to, having as many as 100 parameters mapped to a single relative-message sending knob…
With this setup, in order to do a faux "bang" of a preset back out to my template, all I have to do is use this "all-controlling" single knob to send a +1 relative message followed by a -1 message. This will increase the CC values of all the plug-in parameters by 1 and then decrease them by 1, leaving all of the parameters at their original location within the preset and get them to bang out to the Lemur. I know this isn't foolproof, any parameters set to 127 within the plug-in preset BEFORE executing this +1/-1 action will ultimately end up being at 126, one CC value less than what they originally were within the plug-in, but I'd rather put up with that than not be able to bang out my settings at all. This has worked without fail for me thus far with this relative message coming from the Code.
That being said, I am wondering if it is a possibility to write a script for a Lemur object (a pad/button, ideally) to send this same relative +1 followed by a relative -1 message. I have seen the Relative Midi Objects/Templates here on the site but what I specifically am looking to do is have this type of message triggered by a pad/button so I don't have to worry about making sure I increase/decrease the knob the correct amount. Instead, simply pressing a button to trigger the messages (even if I have to press two buttons, one for relative +1 and one for relative -1) is a much more "defined" action and introduces less variables.
Any feedback/suggestions on this "relative +1/relative-1" concept of banging out presets, guidance on how to create a script for a button to send this relative message, or insight into how to trigger a "ghost" or essentially "relative 0" message to map to my parameters, would be much appreciated!
Cheers