It is currently Fri May 03, 2024 6:26 pm


Couplers

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

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Couplers

PostMon Aug 17, 2009 1:56 pm

Joe Hardy has just pointed out that in Theatre Organ ODFs recently generated by the CODM, standard divisional Octave and Sub-Octave Couplers do not seem to be performing properly. Where the rank samples have sufficient pipes defined, the Octave Coupler for any division, does not sound the possible top octave and the Sub-Octave Coupler does not sound the possible bottom octave.

I've checked this behaviour against the Connoisseur sample sets and they do not display this restriction. I can only assume that is because Neil's ODF would have been generated using MySQL from scratch and he would have added the necessary switches by hand.

I've checked the relevant section of the CODM manual and there does not appear to be any parameter that can be changed that would affect this behaviour.

Does the CODM impose a restriction?
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

mdyde

Moderator

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

Re: Couplers

PostMon Aug 17, 2009 2:19 pm

Hello Alan,

No - there's no restriction as far as I know.

Assuming the Coupler object in question in your CODM ODF couples at the division (rather than key) level, make sure that you've set the following two attributes of the target Division object to allow the full compass of the pipework:

Division.NumberOfKeyActionNodesIfDifferentFromNumberOfKeys
Division.MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostMon Aug 17, 2009 7:10 pm

mdyde wrote:Hello Alan,

No - there's no restriction as far as I know.

Assuming the Coupler object in question in your CODM ODF couples at the division (rather than key) level, make sure that you've set the following two attributes of the target Division object to allow the full compass of the pipework:

Division.NumberOfKeyActionNodesIfDifferentFromNumberOfKeys
Division.MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey

Hi Martin.

I have these relevant settings for the Great Octave Coupler

<CouplerCode>1212</CouplerCode>
<Name>Coupler: Gt: Octave</Name>
<CoupleDestinationKeyboardRatherThanKeyAction>N</CoupleDestinationKeyboardRatherThanKeyAction>

and I tried these settings on the Great division, but they did not work:

<DivisionCode>3</DivisionCode>
<Name>GREAT</Name>
<ShortName>Gt</ShortName>
<NumberOfKeys>61</NumberOfKeys>
<MIDINoteNumOfFirstKey>36</MIDINoteNumOfFirstKey>
<NumberOfKeyActionNodesIfDifferentFromNumberOfKeys>85</NumberOfKeyActionNodesIfDifferentFromNumberOfKeys>
<MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey>24</MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey>

Using the Open Diapason 8' as a test stop, this rank has samples from MIDI #24 to MIDI #108 and I set Unison Off and Octave (coupler) On notes cease to sound after MIDI #96.
A similar scenario exists for the Sub-Octave in the lower direction.

I even tried defining a Custom Coupler (code 10021) with the same parameters, but that acts in the same way.

Playing the Great Open Diapason stop at 4' pitch works fine and sounds notes right up to MIDI #108.
.
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

B. Milan

Site Admin

  • Posts: 4392
  • Joined: Sat Aug 30, 2003 10:15 am
  • Location: Sarasota, FL. USA

Re: Couplers

PostMon Aug 17, 2009 7:42 pm

Hello Alan,

Try setting

<MIDINoteNumOfFirstKey>36</MIDINoteNumOfFirstKey>

to

<MIDINoteNumOfFirstKey>24</MIDINoteNumOfFirstKey>

That should then work properly for the extended coupler compass.

You will also need to change<NumberOfKeys>61</NumberOfKeys>, to something like 97 which should be appropriate for the standard theatre organ unification coupling scheme.

The StopRank table specifies the actual starting note per stop, so those are the ones that require the exact MIDI note starting number, ie usually 36 and usually 24 for the 16' extensions. The Division and Keyboard keys need to specify the entire compass as a whole.

I hope that helps.
Brett Milan
Owner
MILAN DIGITAL AUDIO
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostMon Aug 17, 2009 10:21 pm

B. Milan wrote:Hello Alan,

Try setting

<MIDINoteNumOfFirstKey>36</MIDINoteNumOfFirstKey>

to

<MIDINoteNumOfFirstKey>24</MIDINoteNumOfFirstKey>

That should then work properly for the extended coupler compass.

You will also need to change<NumberOfKeys>61</NumberOfKeys>, to something like 97 which should be appropriate for the standard theatre organ unification coupling scheme.

The StopRank table specifies the actual starting note per stop, so those are the ones that require the exact MIDI note starting number, ie usually 36 and usually 24 for the 16' extensions. The Division and Keyboard keys need to specify the entire compass as a whole.

I hope that helps.

Hi Brett.

'Fraid not. :(
It's an interesting effect, but not the desired one.
<MIDINoteNumOfFirstKey>24</MIDINoteNumOfFirstKey> moves the entire compass down one octave so middle C sounds an octave below and the bottom octave of the 8' pitch goes missing.
<NumberOfKeys>97</NumberOfKeys> extends the entire keyboard by 3 octaves and the visual effect is a 97 note keyboard which no longer fits the screen. :lol:
I can hand craft it later in MySQL, but it doesn't help those who rely solely on the CODM.
From my previous post, Martin's suggested settings actually have no detectable effect, which is strange.
I'm baffled. :)
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

B. Milan

Site Admin

  • Posts: 4392
  • Joined: Sat Aug 30, 2003 10:15 am
  • Location: Sarasota, FL. USA

Re: Couplers

PostTue Aug 18, 2009 12:44 am

My apologies, you are correct. I was thinking full ODF and not CODM formatting, the line items are very similar but have different overall functions.

Please let us conduct some tests and we'll report back.
Brett Milan
Owner
MILAN DIGITAL AUDIO
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostTue Aug 18, 2009 2:38 am

B. Milan wrote:My apologies, you are correct. I was thinking full ODF and not CODM formatting, the line items are very similar but have different overall functions.

Please let us conduct some tests and we'll report back.

Thanks Brett.
Sanity restored. :)
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

mdyde

Moderator

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

Re: Couplers

PostTue Aug 18, 2009 6:25 am

Hello Alan,

Brett forwarded your test CODM ODF to me, and I've had a look and can see the problem:

In the StopRank table for your Diaphonic Diapason 8 stop you've told Hauptwerk only to connect to pipes with note numbers above 36 (i.e. not to play the bottom extension octave for that stop, which is why you don't currently hear it for that stop, whether or not the sub coupler is on):

================

<stoprank>
<Name>Gt Diaph Diap 8</Name>
<StopCode>2217</StopCode>
...
<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>

================

You need to change the following setting:

MIDINoteNumOfFirstMappedDivisionKey = 24

The MIDINoteNumIncrementFromDivisionToRank and NumberOfMappedDivisionKeys attributes are correct for this StopRank entry, but not for the some of the others. This is how you currently have them set:

================

<stoprank>
<Name>Diaphone 16</Name>
...
<MIDINoteNumIncrementFromDivisionToRank>-12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>97</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt Diaph Diap 8</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt: Octave 4</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>

================

... whereas this is how they should be set (assuming there are 85 pipes in the rank, with the lowest pipe being 16' pitch):

================

<stoprank>
<Name>Diaphone 16</Name>
...
<MIDINoteNumIncrementFromDivisionToRank>-12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>73</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt Diaph Diap 8</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt: Octave 4</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>73</NumberOfMappedDivisionKeys>
...
</stoprank>


================

If I make those changes to your CODM ODF then it works properly.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostTue Aug 18, 2009 11:48 am

mdyde wrote:Hello Alan,

Brett forwarded your test CODM ODF to me, and I've had a look and can see the problem:

In the StopRank table for your Diaphonic Diapason 8 stop you've told Hauptwerk only to connect to pipes with note numbers above 36 (i.e. not to play the bottom extension octave for that stop, which is why you don't currently hear it for that stop, whether or not the sub coupler is on):................

...................If I make those changes to your CODM ODF then it works properly.

Thanks Martin.

I was hoping that Brett might have forwarded the ODF to you.
I have obviously goofed. :oops:
One of those things that needs to be learned thoroughly. :)
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostTue Aug 18, 2009 4:58 pm

mdyde wrote:
<stoprank>
<Name>Gt Diaph Diap 8</Name>
<StopCode>2217</StopCode>
...
<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>

================

You need to change the following setting:

MIDINoteNumOfFirstMappedDivisionKey = 24

================

<stoprank>
<Name>Diaphone 16</Name>
...
<MIDINoteNumIncrementFromDivisionToRank>-12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>97</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt Diaph Diap 8</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt: Octave 4</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>

================

... whereas this is how they should be set (assuming there are 85 pipes in the rank, with the lowest pipe being 16' pitch):

================

<stoprank>
<Name>Diaphone 16</Name>
...
<MIDINoteNumIncrementFromDivisionToRank>-12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>73</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt Diaph Diap 8</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
...
</stoprank>
<stoprank>
<Name>Gt: Octave 4</Name>
...

<MIDINoteNumIncrementFromDivisionToRank>12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>73</NumberOfMappedDivisionKeys>
...
</stoprank>



Sorry Martin, having previously replied before making the changes, I am now very confused. :?:

Firstly something seems to have got mangled because the settings that were incorrect in your example, are not the same as the CODM ODF that I sent Brett.
Secondly, I have tried every which way to make your changes work, including ensuring that I have regenerated caches etc (just in case) and I cannot produce standard Theatre Organ behaviour with HW Sub and Octave couplers, generated by the CODM.
I am happy to send you my ODF again, either directly or via Brett, if you think it might help.

Here is the relevant section of my Diaphonic Diapason Rank and the StopRank settings copied directly from my xml ODF. The only edit is <Samples_InstallationPackageID>:

<rank>
<RankID>1</RankID>
<Name>Diaphonic Diapason</Name>
<NumberOfPipes>85</NumberOfPipes>
<MIDINoteNumberOfFirstPipe>24</MIDINoteNumberOfFirstPipe>
<IsPercussive>N</IsPercussive>
<Samples_InstallationPackageID>xxxx</Samples_InstallationPackageID>
<Samples_MainSampleFileFolder>DiaphonicDiapason/Attack</Samples_MainSampleFileFolder>
<Samples_SamplesAreProtected>N</Samples_SamplesAreProtected>
<Samples_ReleaseSamplesStoredInSeparateFilesIfNotPercussive>Y</Samples_ReleaseSamplesStoredInSeparateFilesIfNotPercussive>
<Samples_RelSampleFileFolderIfRelSamplesStoredInSeparateFiles>DiaphonicDiapason/Release</Samples_RelSampleFileFolderIfRelSamplesStoredInSeparateFiles>
<Samples_MIDINoteNumIncrementFromPipesToSamples>0</Samples_MIDINoteNumIncrementFromPipesToSamples>
<Samples_SampleMIDINoteNumOfFirstAvailableSample>24</Samples_SampleMIDINoteNumOfFirstAvailableSample>
<Samples_SampleMIDINoteNumOfLastAvailableSample>108</Samples_SampleMIDINoteNumOfLastAvailableSample>
<Samples_MIDINoteNumIncBetweenSamples>1</Samples_MIDINoteNumIncBetweenSamples>
<Samples_AssumeTunedToConcertPitchAndEqualTemp>N</Samples_AssumeTunedToConcertPitchAndEqualTemp>
etc
</Rank>

The parameters correspond directly with the sample names/numbers in the folder.

<stoprank>
<Name>Diaphone 16</Name>
<StopCode>2204</StopCode>
<RankTypeCode>1</RankTypeCode>
<RankID>1</RankID>
<ExternalRankID></ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>-12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>61</NumberOfMappedDivisionKeys>
<ActionTypeCode>1</ActionTypeCode>
<ActionEffectCode>1</ActionEffectCode>
etc
</stoprank>

<stoprank>
<Name>Gt Diaph Diap 8</Name>
<StopCode>2217</StopCode>
<RankTypeCode>1</RankTypeCode>
<RankID>1</RankID>
<ExternalRankID></ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>61</NumberOfMappedDivisionKeys>
<ActionTypeCode>1</ActionTypeCode>
<ActionEffectCode>1</ActionEffectCode>
etc
</stoprank>

<stoprank>
<Name>Gt: Octave 4</Name>
<StopCode>2228</StopCode>
<RankTypeCode>1</RankTypeCode>
<RankID>1</RankID>
<ExternalRankID></ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>61</NumberOfMappedDivisionKeys>
<ActionTypeCode>1</ActionTypeCode>
<ActionEffectCode>1</ActionEffectCode>
etc
</stoprank>

I have of course tried substituting your figures for mine, as suggested.

If I select the appropriate 16', 8' or 4' stop, one at a time, I can hear the entire range of the rank from #24 to #108

Leaving MIDI keyboards out of the equation for now, if I use the mouse to play low C on the Great manual and have the 16' stop selected, I hear note 24 (the lowest sample) as expected. If I now use the 8' stop instead of the 16' stop, with Unison Off and Sub-Octave couplers engaged, I do not hear note 24 as expected, although it works fine in the Connoisseur series I'm using as a known test standard.
Conversely, if I play top C on the same keyboard with the 4' stop (only) selected, I hear note 108 as expected. If I now use the 8' stop instead of the 4' stop with the Unison Off and Octave couplers engaged, I do not hear note 108 as expected. Again this works OK in Connoisseur, so I deduce from this that at least Hauptwerk itself cannot be at fault.

Also in your example you show
<NumberOfMappedDivisionKeys>73</NumberOfMappedDivisionKeys>
for the 4' StopRank entry.

Why is the figure 73 and not the full 85 for this rank?

If I am missing the point, I am happy to admit it and I hope it is all my fault, because that means I should be able to fix it and learn something. :)

I really do appreciate your prompt help and I do hope you can shed some light on my failure to make this work.
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

B. Milan

Site Admin

  • Posts: 4392
  • Joined: Sat Aug 30, 2003 10:15 am
  • Location: Sarasota, FL. USA

Re: Couplers

PostTue Aug 18, 2009 5:24 pm

Hello Alan,

The file settings Martin posted were ones that I had actually created as a test and sent to him. I substituted samples to test, I suppose he didn't realize that this wasn't your file and that I had made them for testing a single rank with the coupler settings we are dealing with. Since we don't have your samples or images I created a simple test CODM file with my own.

The key here is that the settings for the 8' stop need to have the lower MIDI note starting number of 24, not the 16' since the 8' needs to couple downwards for the sub octave. See Martin's post above which states that.

Also in your example you show
<NumberOfMappedDivisionKeys>73</NumberOfMappedDivisionKeys>
for the 4' StopRank entry.

Why is the figure 73 and not the full 85 for this rank?


Again, this was just a quick mock-up test I made and not all settings were meant to be used, so disregard that and leave it at 85.
Brett Milan
Owner
MILAN DIGITAL AUDIO
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostTue Aug 18, 2009 9:04 pm

B. Milan wrote:Hello Alan,

The file settings Martin posted were ones that I had actually created as a test and sent to him. I substituted samples to test, I suppose he didn't realize that this wasn't your file and that I had made them for testing a single rank with the coupler settings we are dealing with. Since we don't have your samples or images I created a simple test CODM file with my own.

The key here is that the settings for the 8' stop need to have the lower MIDI note starting number of 24, not the 16' since the 8' needs to couple downwards for the sub octave. See Martin's post above which states that.

Again, this was just a quick mock-up test I made and not all settings were meant to be used, so disregard that and leave it at 85.

HI Brett.

Thanks for clearing that up. The altered figures make sense now. :)

I've done as requested and set:
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
and
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
for the Diaphonic Diapason
but sorry to say, the couplers still don't work.

Would it help if I send you the untremmed and tremmed samples for that rank, so you can test with:
<StopCodeToSwitchToAlternateRank>2651</StopCodeToSwitchToAlternateRank>
<RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks>N</RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks>
<AlternateRankID>521</AlternateRankID>
also in place, just in case that switch is having an effect on the test?

Am I correct in assuming that the:
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
is to define the 16' octave
and
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
is to ensure that Hauptwerk knows to extend the range through the 4' octave?

From what I observe, Hauptwerk is 'seeing' the entire rank 16' thru 4' and plays notes 24 thru 108 on selection with stops alone. It is just the couplers that still won't behave for me.
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

B. Milan

Site Admin

  • Posts: 4392
  • Joined: Sat Aug 30, 2003 10:15 am
  • Location: Sarasota, FL. USA

Re: Couplers

PostTue Aug 18, 2009 9:34 pm

Hello Alan,

If you don't mind sending the samples for that rank so we can load it (will need console images as well) I think that would be the quickest way to get you on your way. It definitely works properly once set correctly as we tested it yesterday, so we can simply add the proper settings to your files directly then you should be able to see how its done. There shouldn't be a reason why the StopCodeToSwitchToAlternateRank would have an effect, but probably best to use your actual files regardless.

Am I correct in assuming that the:
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
is to define the 16' octave
and
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
is to ensure that Hauptwerk knows to extend the range through the 4' octave?


Correct, but again, the MIDI note 24 should be applied for the 8' stop so that Hauptwerk sees to add an octave lower to that stop for the coupler to be able to extend the notes when activated.

Here is the grid from MySQL for the correct settings in the StopRank table of my test CODM file:

+-----------------+--------+----------------------------------------+-------------------------------------+----------------------------+
| Name | RankID | MIDINoteNumIncrementFromDivisionToRank | MIDINoteNumOfFirstMappedDivisionKey | NumberOfMappedDivisionKeys |
+-----------------+--------+----------------------------------------+-------------------------------------+----------------------------+
| Diaphone 16 | 1 | -12 | 36 | 85 |
| Gt Diaph Diap 8 | 1 | 0 | 24 | 85 |
| Gt: Octave 4 | 1 | 12 | 24 | 85 |
+-----------------+--------+----------------------------------------+-------------------------------------+----------------------------+

Do your settings look similar now?
Brett Milan
Owner
MILAN DIGITAL AUDIO
Offline
User avatar

wurlitzerwilly

Member

  • Posts: 944
  • Joined: Tue Mar 06, 2007 11:21 am
  • Location: South Coast, UK.

Re: Couplers

PostWed Aug 19, 2009 3:24 am

B. Milan wrote:Hello Alan,

If you don't mind sending the samples for that rank so we can load it (will need console images as well) I think that would be the quickest way to get you on your way. It definitely works properly once set correctly as we tested it yesterday, so we can simply add the proper settings to your files directly then you should be able to see how its done. There shouldn't be a reason why the StopCodeToSwitchToAlternateRank would have an effect, but probably best to use your actual files regardless.


Here is the grid from MySQL for the correct settings in the StopRank table of my test CODM file:

+-----------------+--------+----------------------------------------+-------------------------------------+----------------------------+
| Name | RankID | MIDINoteNumIncrementFromDivisionToRank | MIDINoteNumOfFirstMappedDivisionKey | NumberOfMappedDivisionKeys |
+-----------------+--------+----------------------------------------+-------------------------------------+----------------------------+
| Diaphone 16 | 1 | -12 | 36 | 85 |
| Gt Diaph Diap 8 | 1 | 0 | 24 | 85 |
| Gt: Octave 4 | 1 | 12 | 24 | 85 |
+-----------------+--------+----------------------------------------+-------------------------------------+----------------------------+

Do your settings look similar now?


Hi Brett.

Thanks for all your assistance.

Give me a few hours to put it all together and I'll send you the necessary files.

Yes, my settings are exactly the same as yours for the StopRank entries and I've even taken the precaution of loading the raw ODF into Ultraedit and reading the settings manually.

I'm afraid the couplers still don't work. :(
Quite a mystery.
Perhaps it will all become clear after I send you the necessary files.
Regards,

Alan.
(Paramount Organ Works)
Offline
User avatar

mdyde

Moderator

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

Re: Couplers

PostWed Aug 19, 2009 6:55 am

Hello Alan,

Am I correct in assuming that the:
<MIDINoteNumOfFirstMappedDivisionKey>24</MIDINoteNumOfFirstMappedDivisionKey>
is to define the 16' octave
and
<NumberOfMappedDivisionKeys>85</NumberOfMappedDivisionKeys>
is to ensure that Hauptwerk knows to extend the range through the 4' octave?


Yes - those two settings of the StopRank table tell Hauptwerk the range of the rank's pipes that are allowed to sound via that particular stop.

So if it's an 85 note rank that starts at 16' C (=note 24) and you want the stop to be able to work across the rank's entire compass (e.g. when played via octave/sub couplers) then yes - the correct settings would be 24 and 85 respectively.

Hence in general (unless you specifically want to restrict the compass of certain stops, e.g. for composite/mixture stops that use several different separately-sampled ranks for different parts of their compass), you would normally want the following settings to match for corresponding ranks:

StopRank.MIDINoteNumOfFirstMappedDivisionKey = Rank.MIDINoteNumberOfFirstPipe
StopRank.NumberOfMappedDivisionKeys = Rank.NumberOfPipes

You would also need:

Division.MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey and
Division.NumberOfKeyActionNodesIfDifferentFromNumberOfKeys

... to correspond to the values above for the maximum possible rank compass for all ranks attached to that division. E.g. just set those two values to 12 and 109 if the maximal rank range was 9 octaves starting from 32' C.

Assuming you don't have any special partial-compass/multi-sample-rank stops, for simplicity you could instead just set *all* occurrences of the following settings to 12:

Division.MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey
StopRank.MIDINoteNumOfFirstMappedDivisionKey

... and *all* occurrences of the following settings to 109:

Division.NumberOfKeyActionNodesIfDifferentFromNumberOfKeys
StopRank.NumberOfMappedDivisionKeys

Although the compasses thus defined would be more than needed in most cases, it won't hurt (apart from a potential negligible additional CPU overhead) because Hauptwerk will simply ignore anything that tries to go beyond the compass of a given rank.

You would then just need to make sure that you have the settings correct for the Rank entries themselves, so that you tell Hauptwerk the true compasses of the ranks and samples. E.g. for an 85-note rank starting at 16' C the settings should be:

Rank.MIDINoteNumberOfFirstPipe = 24
Rank.NumberOfPipes = 85
Rank.Samples_SampleMIDINoteNumOfFirstAvailableSample = 24
Rank.Samples_SampleMIDINoteNumOfLastAvailableSample = 108 (=24 + 85 - 1)

Sorry Martin, having previously replied before making the changes, I am now very confused.

Firstly something seems to have got mangled because the settings that were incorrect in your example, are not the same as the CODM ODF that I sent Brett.


Sorry for the confusion (I'd incorrectly assumed the file I had from Brett was identical to your original).

Would it help if I send you the untremmed and tremmed samples for that rank, so you can test with:
<StopCodeToSwitchToAlternateRank>2651</StopCodeToSwitchToAlternateRank>
<RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks>N</RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks>
<AlternateRankID>521</AlternateRankID>
also in place, just in case that switch is having an effect on the test?


The alternate rank settings shouldn't have any bearing on compasses, but you could test that for yourself by just temporarily clearing those entries.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Next

Return to Custom Organ Design Module (CODM)

Who is online

Users browsing this forum: No registered users and 5 guests