It is currently Fri Mar 29, 2024 6:11 am


TremulantCodeFromWhichToCopyState

Using the CODM to create your own organ definitions, exchange CODM organ definitions, ...
  • Author
  • Message
Offline

Don Springer

Member

  • Posts: 83
  • Joined: Mon Sep 10, 2007 6:38 pm

TremulantCodeFromWhichToCopyState

PostWed Jun 09, 2010 5:17 pm

I seem to get an error when I try to use this link. I get "The 'CombinationElementID' attribute of the CombinationSetElement object named '' does not specify a valid CombinationElement object. I have set the Store in divisional and store in general combinations to N as well as the AccessibleforMidi. I am wondering if there is an additional limitation, like the tremulant from which to copy must be in the same division as the others. The documentation does not say this, but the error message does not seem to pertain to codm elements. Any advice would be welcome. I have a large number of tremulants and am wearing out my mouse clicking on them.
Offline
User avatar

mdyde

Moderator

  • Posts: 15446
  • Joined: Fri Mar 14, 2003 1:19 pm
  • Location: UK

Re: TremulantCodeFromWhichToCopyState

PostThu Jun 10, 2010 6:46 am

Hello Don,

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>
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline

Don Springer

Member

  • Posts: 83
  • Joined: Mon Sep 10, 2007 6:38 pm

Re: TremulantCodeFromWhichToCopyState

PostThu Jun 10, 2010 8:31 am

Thank you very much Martin for the reply.
I believe the issue was the combination file. (I had it set to load last used).
I do not know if I also had run into the other issue you referred to because I always used the first trem in the list as the master, and then associated the subsequent ones with it. So I think my default brain pattern would have avoided this bug.
I am up to 94 ranks 399 stops and 27 tremulants.
The sound is already quite impressive, but I am thinking about pruning back because of the time it would require to voice this large of an organ. Needless to say, the display screens are filled to capacity.
One additional question if I may.
Do the two displays add to the background overhead, or is there only overhead to the one that is actually selected at the time? (In otherwords, would overhead be reduced by only having one display of the stops, and blanking out the other?)
Offline
User avatar

mdyde

Moderator

  • Posts: 15446
  • Joined: Fri Mar 14, 2003 1:19 pm
  • Location: UK

Re: TremulantCodeFromWhichToCopyState

PostThu Jun 10, 2010 8:50 am

Hello Don,

A display page won't have any significant overheads unless have it actually open on a screen (and even then it should be pretty much negligible). If you use additional distinct image files, then of course those would potentially occupy a certain amount of extra memory.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.

Return to Custom Organ Design Module (CODM)

Who is online

Users browsing this forum: No registered users and 1 guest