I've been trying some test cases here, and found a bug (and fixed it for the forthcoming Hauptwerk v4.0.0) which might or might not be the issue in your case:
In the current version (v3.30) you need to have the referenced object appearing *before* the referencing object (the object with ...FromWhichToCopyState set) in the CODM organ definition file. Otherwise you can get a crash or strange results. My apologies for that.
Does that solve the problem?
If not, are you loading a combination file by default? Since the combination file would have been created by the previous version of your ODF, maybe that's causing the invalid result (although the development build of Hauptwerk v4 that I'm using handles and corrects that situation correctly and transparently). Please try deleting/renaming the combination file if so.
For a test case I took a copy of the ExampleCustomOrgan2 CODM ODF and modified the Tremulant section as follows, so that the Choir tremulant switch automatically turns on the Swell tremulant:
- Code: Select all
<ObjectList ObjectType="tremulant">
<tremulant>
<TremulantCode>1730</TremulantCode>
<Name>Tremulant: Choir</Name>
<DisplayName>TREMULANT</DisplayName>
<DefaultToEngaged>N</DefaultToEngaged>
<SwitchIsLatching>Y</SwitchIsLatching>
<StoreInDivisionalCombinations>Y</StoreInDivisionalCombinations>
<StoreInGeneralCombinations>Y</StoreInGeneralCombinations>
<AccessibleForMIDIInputAndOutput>Y</AccessibleForMIDIInputAndOutput>
<TremulantCodeFromWhichToCopyState></TremulantCodeFromWhichToCopyState>
<FrequencyHz>4.6</FrequencyHz>
<MaxFrequencyRandomisationPct>15</MaxFrequencyRandomisationPct>
<MaxDepthRandomisationPct>15</MaxDepthRandomisationPct>
<PercussiveEngagingSoundEffect_RankID>21</PercussiveEngagingSoundEffect_RankID>
<PercussiveEngagingSoundEffect_MIDINoteNumber>0</PercussiveEngagingSoundEffect_MIDINoteNumber>
<PercussiveDisengagingSoundEffect_RankID>21</PercussiveDisengagingSoundEffect_RankID>
<PercussiveDisengagingSoundEffect_MIDINoteNumber>0</PercussiveDisengagingSoundEffect_MIDINoteNumber>
<SustainingSoundEffect_RankID></SustainingSoundEffect_RankID>
<SustainingSoundEffect_MIDINoteNumber>0</SustainingSoundEffect_MIDINoteNumber>
<CustomDisplay1_DisplayPageID>1</CustomDisplay1_DisplayPageID>
<CustomDisplay1_Text>TREMULANT</CustomDisplay1_Text>
<CustomDisplay1_ControlStyleID>10</CustomDisplay1_ControlStyleID>
<CustomDisplay1_PosPixels_X>734</CustomDisplay1_PosPixels_X>
<CustomDisplay1_PosPixels_Y>287</CustomDisplay1_PosPixels_Y>
<CustomDisplay2_DisplayPageID></CustomDisplay2_DisplayPageID>
<CustomDisplay2_Text></CustomDisplay2_Text>
<CustomDisplay2_ControlStyleID></CustomDisplay2_ControlStyleID>
<CustomDisplay2_PosPixels_X>0</CustomDisplay2_PosPixels_X>
<CustomDisplay2_PosPixels_Y>0</CustomDisplay2_PosPixels_Y>
</tremulant>
<tremulant>
<TremulantCode>1720</TremulantCode>
<Name>Tremulant: Swell</Name>
<DisplayName>TREMULANT</DisplayName>
<DefaultToEngaged>N</DefaultToEngaged>
<SwitchIsLatching>Y</SwitchIsLatching>
<StoreInDivisionalCombinations>N</StoreInDivisionalCombinations>
<StoreInGeneralCombinations>N</StoreInGeneralCombinations>
<AccessibleForMIDIInputAndOutput>N</AccessibleForMIDIInputAndOutput>
<TremulantCodeFromWhichToCopyState>1730</TremulantCodeFromWhichToCopyState>
<FrequencyHz>5.2</FrequencyHz>
<MaxFrequencyRandomisationPct>15</MaxFrequencyRandomisationPct>
<MaxDepthRandomisationPct>15</MaxDepthRandomisationPct>
<PercussiveEngagingSoundEffect_RankID>21</PercussiveEngagingSoundEffect_RankID>
<PercussiveEngagingSoundEffect_MIDINoteNumber>0</PercussiveEngagingSoundEffect_MIDINoteNumber>
<PercussiveDisengagingSoundEffect_RankID>21</PercussiveDisengagingSoundEffect_RankID>
<PercussiveDisengagingSoundEffect_MIDINoteNumber>0</PercussiveDisengagingSoundEffect_MIDINoteNumber>
<SustainingSoundEffect_RankID></SustainingSoundEffect_RankID>
<SustainingSoundEffect_MIDINoteNumber>0</SustainingSoundEffect_MIDINoteNumber>
<CustomDisplay1_DisplayPageID></CustomDisplay1_DisplayPageID>
<CustomDisplay1_Text></CustomDisplay1_Text>
<CustomDisplay1_ControlStyleID></CustomDisplay1_ControlStyleID>
<CustomDisplay1_PosPixels_X></CustomDisplay1_PosPixels_X>
<CustomDisplay1_PosPixels_Y></CustomDisplay1_PosPixels_Y>
<CustomDisplay2_DisplayPageID></CustomDisplay2_DisplayPageID>
<CustomDisplay2_Text></CustomDisplay2_Text>
<CustomDisplay2_ControlStyleID></CustomDisplay2_ControlStyleID>
<CustomDisplay2_PosPixels_X></CustomDisplay2_PosPixels_X>
<CustomDisplay2_PosPixels_Y></CustomDisplay2_PosPixels_Y>
</tremulant>
</ObjectList>
</Hauptwerk>
That worked properly for me.
When using TremulantCodeFromWhichToCopyState you need all of the following to be set exactly as follows for the object:
- Code: Select all
DefaultToEngaged=N
StoreInDivisionalCombinations=N
StoreInGeneralCombinations=N
AccessibleForMIDIInputAndOutput=N
CustomDisplay1_DisplayPageID=<blank>
CustomDisplay1_Text=<blank>
CustomDisplay1_ControlStyleID=<blank>
CustomDisplay1_PosPixels_X=<blank>
CustomDisplay1_PosPixels_Y=<blank>
CustomDisplay2_DisplayPageID=<blank>
CustomDisplay2_Text=<blank>
CustomDisplay2_ControlStyleID=<blank>
CustomDisplay2_PosPixels_X=<blank>
CustomDisplay2_PosPixels_Y=<blank>