| Contents |
|
Next | ||||||||||||||||||||||||||||||
With the number of GUI data types, it's inevitable that you'll run across situations where you'd like to make a connection, but can't because
Happily, there are quite a few modules available to help you out in such situations, including both native SynthEdit sub-controls and add-ons from the DH_Sub-ControlPak. Of course, the first rule is always to understand exactly why you need to make the connection, and how it will produce the intended effect. Sometimes there's a good reason why it doesn't make sense to connect different data types. When you need to replicate a value from a left side GUI pin so that you can use it in more than one place, use a splitter. SynthEdit provides a Bool Splitter. The DH_Sub-ControlPak adds Float, Int, and Text Splitters.
Having bidirectional GUI connections is great, but SynthEdit still insists that left side pins can only be connected to right side pins (and vice-versa). Sometimes, what may appear to be a problem turns out to be just a matter of getting used to the bidirectional idea. I still have to remind myself that an "output" can be on the left side.
So far, I haven't run across a need for a redirector for any of the other GUI data types besides text, but they would be easy to add, so if the need arises, let me know.
The following table shows the modules available for
converting between each pair of types. Types being converted from are listed
down the left side, and types converted to are shown along the top.
The rule used for converting from Floats to Bools is that any positive Float value equates to a Boolean TRUE, while a zero or negative value equates to FALSE. When converting from Bools to Floats, you can specify your own Lo Val to be output when the input Bool value is FALSE, and Hi Val to be output when the input Bool value is TRUE. Float to Int conversions round the Float value to the nearest integer. Less frequently used conversions can still be accomplished when needed by chaining conversion modules together, e.g., DH_IntToFloat-->Float to Bool. As we've already seen, there is an assortment of Patch Mem modules available to convert GUI values to voltage and other non-GUI data types:
It's also possible to go the other way, from voltage to Float:
The DH_BoolToVoltage module provides a way to use a Bool value to select which of 2 voltages to output. Note that this module bypasses patch memory, so its value is not stored as a parameter. It is intended for use where this is not a requirement, i.e., dynamic values that would not need to be saved as a control setting. One place this would be useful is if you want to trigger some action in the synth or effect when a different panel is selected. In the diagram below, the Bool value for each panel choice is split off and connected to a DH_BoolToVoltage. When the selection changes, the output voltages also change.
The DH_Sub-ControlPak includes 2 modules that convert from voltage to numeric GUI values: DH_VoltageToInt, and DH_VoltageToFloat. These modules also bypass patch memory, and so should be used cautiously. If you're working with values that should be saved with a patch, use the native SynthEdit Volts to Float with one of the Patch Mem - Float Out modules. |
Next | |||||||||||||||||||||||||||||||