Sat Jul 25, 2020 2:38 pm
I have a working implementation of this transfer function (mine is a “Great Reeds on Choir”). It’s true that independent couplers (or duplicate stops) provide more flexibility; in my case, however, I’m creating an imitation of a specific instrument, so it is desirable to replicate the couplers as they are.
Along the lines that others have already commented, I created a floating GtReeds division [DivisionCode=8], and two complementary couplers (“Great Reeds Unison” and “Great Reeds to Choir”). Great Reeds Unison is enabled by default. Placing one coupler behind the other on the display works fine to ensure they are both operated as one. (I guess this may work better/worse depending on the chosen style for the drawknob; I used the small white drawknob [ControlStyleID=8], from the definitions provided for ExampleCustomOrgan2.) Display priority seems to depend on the order of the definitions in XML – whichever is listed later in the XML ends up on top.
Note these couplers should be excluded from the divisional pistons to ensure they stay in sync (always one on, one off).
Things got interesting with the Pedal couplers, though.. it’s easy to create a hidden GtReeds-to-Pedal coupler whose state is copied from Great-to-Pedal coupler; the limitation is the GtReeds follow the Great-to-Pedal coupler regardless of Great-to-Choir transfer setting. A more elaborate solution is required if the Pedal coupling is to adapt according to the Great-to-Choir transfer setting: the requirement is the GtReeds-to-Pedal coupler must be conditional on the Gt-to-Pedal AND GtReeds-Unison couplers.
The solution I found is to create another floating division [DivisionCode=9], couple the GtReeds to Division 9 (conditional on GtReeds-Unison), and couple Division 9 to Pedal (conditional on Gt-to-Pedal). Note that the latter coupler must be configured to couple the keyboard, not the key action [CoupleDestinationKeyboardRatherThanKeyAction=Y]; this means the Pedal effectively plays Division 9 when coupled. The important settings for these couplers are noted below.
GtReeds to Division 9:
- CouplerCode = 10060
- OverrideSourceDivisionToSpecifiedDivisionCode = 9
- OverrideDestDivisionToSpecifiedDivisionCode = 8
- CouplerCodeFromWhichToCopyState = 10010 (Great Reeds Unison)
Division 9 to Pedal:
- CouplerCode = 10000
- OverrideDestDivisionToSpecifiedDivisionCode = 9
- CoupleDestinationKeyboardRatherThanKeyAction=Y
- CouplerCodeFromWhichToCopyState = 1006 (Great to Pedal)
Similar is required for the Choir-to-Pedal coupler, using another floating division [10], and two couplers similar to the Great-to-Pedal configuration above. Now I understand why Hauptwerk made provision for as many as nine floating divisions!
I hope this is helpful.