It is currently Thu Mar 28, 2024 7:02 am


Unifying an external rank

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

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Unifying an external rank

PostTue Nov 02, 2010 6:50 pm

I wish to unify a rank of external (physical) pipes to play from Hauptwerk along with virtual voices. To do this, I have copied "ExampleCustomOrgan1.CustomOrgan.Hauptwerk.xml". My first modification was to add a single external rank by borrowing an ExternalRankID from the Violin Diapason while leaving the V.D.'s rank definition in the file. The last point was suggested in your communications with Marco_M on August 20, 2010. The MIDINoteNumberOfFirstPipe was left as 36. I created stop and stoprank blocks by duplicating and adapting the corresponding blocks for the Violin Diapason. The modified file worked after some MIDI connections were made inside Hauptwerk. I was able to watch the messages moving to a MIDI device using "MIDI Monitor". A single MIDI NoteOn and NoteOff pair was generated for each key pressed on the virtual console.
Next, I tried to unify the rank of pipes by creating another external rank block and giving it the ExternalRankID of 7 as appropriated from the Clear Flute 4'. In this case the MIDINoteNumberOfFirstPipe was set to 49 to give the effect of playing the rank an octave higher, i.e., the rank was now unified at 8' and 4' pitches. The stop and stoprank blocks from the Clear Flute 4' were also modified to support this new external rank but the old rank block was left present for the same reason as given in the Marco_M communications above. The new CODM file compiled and executed in Hauptwerk. Unfortunately, it did not generate a MIDI NoteOn or NoteOff message corresponding to an octave above the keyboard note. The stop switch in the virtual console worked, but the "unification" at two pitches did not, i.e., the unison NoteOn was sent but not the octave one.
I want to know if I am asking Hauptwerk to do something it is not supposed to do. If so, at the moment, I don't see how to do unification within Hauptwerk, and I would like to know this before I put in a lot more time trying to do it this way.
Offline
User avatar

B. Milan

Site Admin

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

Re: Unifying an external rank

PostTue Nov 02, 2010 8:57 pm

Hello MLynch,

You would need to change the setting for MIDINoteNumIncrementFromDivisionToRank to be set at 12 for an octave higher output, the default unison is set to 0. The setting for MIDINoteNumberOfFirstPipe should be left at 36 (also note that normally an octave above low C would be 48 not 49 which is C#).

Have a look on page 114 of the CODM manual for the stoprank attributes pertaining to this:

If ActionTypeCode is a ‘Notes to notes’ type, then this sets the
pitch increment. For example, if 0 then the pipe with the same
MIDI note number as that of the division's key will sound when
the key is pressed. If 12, then the pipe an octave higher will
sound, -12 an octave below and so forth. If instead
ActionTypeCode is a ‘... to one note’ type, then this setting
specifies the (single) destination note. For example a value of
60 would indicate that middle C would always be triggered.

Please try this and let me know if it works, I haven't specifically tested using external rank outputs and would need to set up a testing facility in order to do so, but if you can get it working properly by trying the above please let me know.
Brett Milan
Owner
MILAN DIGITAL AUDIO
Offline
User avatar

mdyde

Moderator

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

Re: Unifying an external rank

PostWed Nov 03, 2010 4:14 am

Hello MLynch,

Also note that if you want to unify a particular rank so that it can be played at two (or more) pitches then you should have only one ExternalRank entry for it (the ExternalRank entry corresponds to and describes the real, physical rank of pipes) but two (or more) StopRank entries for that rank, each referencing it with the same ExternalRankID.

The StopRank table provides the necessary many-to-many relationship to support unification.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostWed Nov 03, 2010 10:44 am

Hi Martin and Brett.
Thanks for your quick reply to my unification questions for external ranks. I have tried your suggestions and have negative results. Martin, your suggestion about having a single ExternalRank entry makes a lot of sense, and Hauptwerk liked it. Brett, I took your advice concerning MIDINoteNumberOfFirstPipe. The ActionTypeCode was more confusing even after reference to page 114 of the CODM. I had used that set of pages in trying to understand the StopRank block. I tried using both 1 and 12 for the value of ActionTypeCode in several different tries and got the same result. Hauptwerk compiles the xml file and plays the external device at unison. MIDI Monitor confirms this when it shows the MIDI data stream being sent to the external device.

Now, I'm beginning to suspect that Hauptwerk really doesn't do what I want done. If I had an external device like the Ahlborn Expansion Module and had made suitable adjustments to the MIDI commands being output by Hauptwerk, then the virtual organ would have turned on stops in the expansion module. Here's the evidence. The adapted Custom Organ Design Example 1 sends out MIDI NoteOn and NoteOff messages from the virtual keyboard whether stops are drawn or not, including the stops for the external rank, i.e., given the default MIDI mapping, NoteOn and NoteOff messages are sent on channel 3 each time I tap a virtual key. If I draw an external stop, I see the NoteOn message go out on channel 10 telling the external system to turn on that stop. It seems to me that Hauptwerk is designed to work with an external rank or ranks as if they sat on a "straight" organ chest with a ventil or pitman action magnet that needed to be excited by the stop command.

Since Hauptwerk supports theater organs, where unification is the rule, I'm obviously not doing the right things to get Hauptwerk to implement the unification. In my vision of the way I need Hauptwerk to work, it should NOT send MIDI NoteOn/NoteOff messages from the keyboard to the pipes when a external rank stop is OFF. It should send the "unison-mapped" MIDI key numbers when the external rank is enabled at unison, e.g., DIAPASON 8'. It should send the "octave-mapped" MIDI key numbers when the external rank is enabled an octave higher, e.g., DIAPASON 4'. Then it should send both MIDI key numbers when both stops are enabled. In other words, Hauptwerk is actually implementing the unification. I think that is what you implied in your statement "The StopRank table provides the necessary many-to-many relationship to support unification" implies. So I haven't gotten there yet.

Thanks for your help so far. I'll keep plugging and will welcome any more comments. It would help me to know that Hauptwerk is intended to implement unification within itself with the help of the correct CODM.
Offline
User avatar

mdyde

Moderator

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

Re: Unifying an external rank

PostWed Nov 03, 2010 11:29 am

Since Hauptwerk supports theater organs, where unification is the rule, I'm obviously not doing the right things to get Hauptwerk to implement the unification. In my vision of the way I need Hauptwerk to work, it should NOT send MIDI NoteOn/NoteOff messages from the keyboard to the pipes when a external rank stop is OFF. It should send the "unison-mapped" MIDI key numbers when the external rank is enabled at unison, e.g., DIAPASON 8'. It should send the "octave-mapped" MIDI key numbers when the external rank is enabled an octave higher, e.g., DIAPASON 4'. Then it should send both MIDI key numbers when both stops are enabled. In other words, Hauptwerk is actually implementing the unification. I think that is what you implied in your statement "The StopRank table provides the necessary many-to-many relationship to support unification" implies. So I haven't gotten there yet.


Yes - that's the behaviour would get if your CODM ODF and MIDI settings are set up accordingly.

I.e. you can use the ExternalRank and StopRank tables to implement unification for an external sound source (pipework of a voice expander module) so that Hauptwerk acts as the relay and the external sound source behaves as a 'box of ranks', responding to pipe-on/off messages only (no stop-on/off messages used or needed).

It sounds from your description that you also have MIDI output configured at the stop and/or keyboard levels, which you wouldn't want for that type of configuration.

To eliminate any confusion, with no organ loaded, try deleting *all* entries on all of the 'General settings | ... MIDI output ...' screens, with the 'General settings | MIDI output paths' screen last (it won't let you delete its entries until you've deleted all entries on all of the other screens).

Now insert a single entry in the 'General settings | MIDI output paths' screen, giving it a meaningful name like 'Ahlborn expander' and selecting the appropriate MIDI port and channel.

Now insert a single entry in the 'General settings | Rank MIDI outputs' screen, e.g. named 'Ahlborn expander' and select your new MIDI output path (e.g. named 'Ahlborn expander'). Set the number of keys and note number of the first key to correspond to the maximum compass of the notes that your Ahlborn unit supports (e.g. note 36, 61 notes).

Now load your custom organ and go to the 'Organ settings | Connect organ ranks to rank MIDI outputs' screen. In the left-hand browse list locate the entry corresponding (by name) to your ExternalRank ODF entry. Select your 'Ahlborn expander' entry for it.

(See also the 'MIDI output: Rank MIDI outputs' section in the main Hauptwerk user guide for details, which starts on page 137 in the current v3.30 version of the guide.)

Providing that your CODM ODF is correct, it should then behave as you want.

Hope that helps.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostWed Nov 03, 2010 3:13 pm

Thanks for your suggestions Martin. They will take me a while to work through. It is very helpful to know that Hauptwerk is intended to work the way I want to use it. I will follow your suggestions and also read a good deal more in the CODM manual.

Thanks, MLynch
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostWed Nov 03, 2010 6:28 pm

Hi Martin and Brett,
With the fixes specified by Martin in the previous reply relating to setting up the 'General settings | MIDI output paths', the 'General settings | Rank MIDI outputs', and the 'Organ settings | Connect organ ranks to rank MIDI outputs' screens, the ExternalRank stops worked fine. I got carried away and created the stops Diapason 8, Diapason 4, Diapason 2 2/3, and Diapason 2. Since I had an Ahlborn module at hand, I tried them out using the Principal 8 on the Archive Classic Module. The four stops worked quite well, so I'm ready to try it on my pipes in the organ.

Brett, the <ActionTypeCode>1</ActionTypeCode> had to be 1 for all unified stops on this rank. I tried 12, as per your note above, but didn't get any sound.

I have listed one of the StopRank blocks below.

Thanks all, I'm looking forward to some pipe action in connection with the virtual organ soon. We'll see how bad the MIDI traffic gets.
MLynch




<stoprank>
<Name>Sw Diapason 2</Name>
<StopCode>2204</StopCode>
<RankTypeCode>2</RankTypeCode>
<RankID></RankID>
<ExternalRankID>3</ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>24</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>56</NumberOfMappedDivisionKeys>
<ActionTypeCode>1</ActionTypeCode>
<ActionEffectCode>1</ActionEffectCode>
<PipeMIDINoteNum036_PizzOrReitPeriodMs>0</PipeMIDINoteNum036_PizzOrReitPeriodMs>
<PipeMIDINoteNum096_PizzOrReitPeriodMs>0</PipeMIDINoteNum096_PizzOrReitPeriodMs>
<StopCodeToSwitchToAlternateRank></StopCodeToSwitchToAlternateRank>
<RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks>N</RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks>
<AlternateRankID></AlternateRankID>
<AlternateExternalRankID></AlternateExternalRankID>
</stoprank>
Offline
User avatar

B. Milan

Site Admin

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

Re: Unifying an external rank

PostWed Nov 03, 2010 6:48 pm

Glad to hear it is now working.

Brett, the <ActionTypeCode>1</ActionTypeCode> had to be 1 for all unified stops on this rank. I tried 12, as per your note above, but didn't get any sound.


I wrote that MIDINoteNumIncrementFromDivisionToRank needs to be set at whatever transposition you want it to affect, not the ActionTypeCode. Thus 12 for an octave higher, 24 for two octaves etc.

You would need to change the setting for MIDINoteNumIncrementFromDivisionToRank to be set at 12 for an octave higher output,
Brett Milan
Owner
MILAN DIGITAL AUDIO
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostTue Feb 01, 2011 2:31 pm

As indicated in my last post on Nov. 3, 2010, I used the XML file I was working on with my pipes. It worked fantastically, so much so that I went through several more iterations. As a result, I definitely was impressed with the capabilities of Hauptwerk. It's nice when a program exceeds one's expectations. Hauptwerk is even beyond that. Well done, Martin.

I have a question that is intended to integrate more of my pipes into an instrument. To set the scene, consider my Bourdon or Tibia 16' that has 97 pipes, which would not be unusual on a theater organ, where the rank would be unified to speak at pipes as high as 1 3/5'. The top several pipes would have MIDI note numbers above 127 if the MIDINoteNumberOfFirstPipe = 36. I've always used a MIDINoteNumberOf FirstPipe = 36 in my efforts so far since a few early trials of using 24 resulted in no MIDI output.

Now I need to deal with this problem, since it impacts not only the problem mentioned, but others as well. In response to the suggestion made by Martin in his post of Wed Nov 03, 2010 12:29 pm, I have dealt with the Hauptwerk screens 'General settings | MIDI output paths' , 'General settings | Rank MIDI outputs', and 'Organ settings | Connect organ ranks to rank MIDI outputs' to establish the working combination based on a 'Note number of first key: 36'. The <MIDINoteNumberOfFirstPipe> was set to 36 in the 'externalrank' block. As indicated, this combination works. I have given some reference material that summarizes the entire group of variables and a run of the organ observed by a program called MIDI Monitor that spies on MIDI traffic between Hauptwerk, in this case, and an Edirol UM1 MIDI interface that leads to the computer driving the rank of pipes. That computer can be set to map the MIDI Note Number of First Pipe to any value. It was set to 36 for the working situation.

My problem is that I have tried to simply change the 36 to 24, i.e.., map the rank to one octave lower, in one or more of the places that refer to the 'note number of first key'. The result was that no MIDI data was received on the MIDI Monitor when the new "design" was loaded. Each time I loaded the new "design", I filled in the 'General settings | MIDI output paths' , 'General settings | Rank MIDI outputs', and 'Organ settings | Connect organ ranks to rank MIDI outputs' screens. I had at least expected a MIDI Note of some value to be received.
The questions are:
1. Are there any other places or variables that must be set to specify the 'note number of first key'?
2. Do all the various locations identified above or in the reference information given below need to have the same value for this variable?
3. Of particular concern is the variable MIDINoteNumOfFirstMappedDivisionKey that appears in the 'stoprank' statements below. It doesn't seem to do anything in this case. The MIDINoteNumIncrementFromDivisionToRank works as intended to supply an 8' pitch from the 16' rank although the Divisions never show up in any of the General or Organ Settings screens.


Below is some [b]reference information[/b] concerning a working Kilgen Bourdon 16' rank that is played at 16' pitch on the Pedal and 8' pitch on the Swell.

Before loading the organ the following settings were made:
'General settings | MIDI output paths' = Alias: Kilgen Bourdon 16, MIDI output port: UM-1A UM-1, MIDI channel: 3, Key shift: 0.

and
'General settings | Rank MIDI outputs' = Name: Kilgen Bourdon 16, MIDI output path: UM-1A UM-1: 03 'Kilgen Bourdon 16',
Number of keys: 95, Note number of first key: 36.

After loading "Kilgen Organ 1-7" the following setting was made:
'Organ settings | Connect organ ranks to rank MIDI outputs' = Organ rank type: External MIDI rank, Organ external MIDI rank: Kilgen Bourdon 16


Here are the entries in the Kilgen Organ 1-7 XML listing that affect the information given by the MIDI Monitor.

<externalrank>
<ExternalRankID>1</ExternalRankID>
<Name>Kilgen Bourdon 16</Name>
<NumberOfPipes>96</NumberOfPipes>
<MIDINoteNumberOfFirstPipe>36</MIDINoteNumberOfFirstPipe>
</externalrank>

<stoprank>
<Name>Ped Bourdon 16</Name>
<StopCode>2011</StopCode>
<RankTypeCode>2</RankTypeCode>
<RankID></RankID>
<ExternalRankID>1</ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>32</NumberOfMappedDivisionKeys>

<stoprank>
<Name>Sw Flute 8</Name>
<StopCode>2201</StopCode>
<RankTypeCode>2</RankTypeCode>
<RankID></RankID>
<ExternalRankID>1</ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>61</NumberOfMappedDivisionKeys>

MIDI Monitor saw this when Pedal Bourdon 16 and Swell Flute 8 stops were engaged and
the key sequence Pedal low C, then Swell Low C, then Swell High C was played.
Time Source Message Chan Data
11:42:27.584 To UM-1 Note On 3 36 127
11:42:27.746 To UM-1 Note Off 3 36 127
11:42:31.072 To UM-1 Note On 3 48 127
11:42:31.271 To UM-1 Note Off 3 48 127
11:42:35.248 To UM-1 Note On 3 108 127
11:42:35.397 To UM-1 Note Off 3 108 127
Offline
User avatar

mdyde

Moderator

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

Re: Unifying an external rank

PostTue Feb 01, 2011 3:33 pm

I have a question that is intended to integrate more of my pipes into an instrument. To set the scene, consider my Bourdon or Tibia 16' that has 97 pipes, which would not be unusual on a theater organ, where the rank would be unified to speak at pipes as high as 1 3/5'. The top several pipes would have MIDI note numbers above 127 if the MIDINoteNumberOfFirstPipe = 36.


For that reason (note number >127), it's conventional to assign MIDI note numbers for 8' pitch. I.e. a 97-pipe Tibia 16 rank would normally be considered to start at MIDI note number 24 and finish at MIDI note number 24+97-1=120.

Of course that also relies on your external pipe rank's MIDI decoder numbering the MIDI notes of your real pipes the same (otherwise you would again run into the same problem of exceeding the 0-127 range that MIDI note-on/off messages can support).

Hence this is what you should do, using your Kilgen Bourdon 16 rank as an example:

- Configure the MIDI decoder for your real external 97-pipe Kilgen Bourdon rank so that its pipes respond on note numbers 24-120.

- On the 'General settings | Rank MIDI outputs' screen in Hauptwerk, set 'note number of first key' to 24 and 'number of pipes' to 97 for that rank's entry.

- On the 'General settings | MIDI output paths' make sure that the key shift for the relevant output remains at its default of 0.

- In your CODM ODF configure the ExternalRank entries as follows (I've highlighted in bold the entries that differ from the version from your post):

<externalrank>
<ExternalRankID>1</ExternalRankID>
<Name>Kilgen Bourdon 16</Name>
<NumberOfPipes>97</NumberOfPipes>
<MIDINoteNumberOfFirstPipe>24</MIDINoteNumberOfFirstPipe>
</externalrank>

- The two StopRank entries in your CODM ODF should be:

<stoprank>
<Name>Ped Bourdon 16</Name>
<StopCode>2011</StopCode>
<RankTypeCode>2</RankTypeCode>
<RankID></RankID>
<ExternalRankID>1</ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>-12</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>32</NumberOfMappedDivisionKeys>

<stoprank>
<Name>Sw Flute 8</Name>
<StopCode>2201</StopCode>
<RankTypeCode>2</RankTypeCode>
<RankID></RankID>
<ExternalRankID>1</ExternalRankID>
<MIDINoteNumIncrementFromDivisionToRank>0</MIDINoteNumIncrementFromDivisionToRank>
<MIDINoteNumOfFirstMappedDivisionKey>36</MIDINoteNumOfFirstMappedDivisionKey>
<NumberOfMappedDivisionKeys>61</NumberOfMappedDivisionKeys>

- Check that the starting MIDI note numbers are 36 for the Division objects in your CODM ODF (they should be) and that their key ranges are correct for the keyboard (e.g. 61-note or 32-note). For example, for the Swell you would have:

NumberOfKeys=61
MIDINoteNumOfFirstKey=36
NumberOfKeyActionNodesIfDifferentFromNumberOfKeys=<blank>
MIDINoteNumOfFirstKeyActionNodeIfDifferentFromFirstKey=<blank>

I.e. the important thing to remember is that you perform the unification with the StopRank entries and their note increments.

Hope that helps.
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostTue Feb 01, 2011 3:59 pm

Thanks for the quick reply. I'll get the fixes installed shortly and see where I went wrong. Hauptwerk is great!
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostTue Feb 01, 2011 4:34 pm

Thanks again, Martin. The fix you gave did it all. I had taken the wrong reference in my mind for the relative MIDI offsets. As indicated, the Division section's use in this case was not clear to me. I now see that it is the fundamental reference to which MIDI note numbers are fixed. That makes more sense than the way I was looking at it. This should clear up several of the problems I was having with succeeding steps. I had already used, in another organ version, the mapping of switched controls and keyboards to different ranges of note numbers into a specific MIDI channel using the General_ and Organ_ screens. That worked quite well and was very easy to do, so this problem that you just solved had to be a conceptual one on my part.

Now I get to hear some more pipes play. St Anne's ranks are really handy for trying out "what if" games with the organ specs. One can have a lifetime of fun with Hauptwerk. Thanks and on to HW4.
Offline
User avatar

mdyde

Moderator

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

Re: Unifying an external rank

PostTue Feb 01, 2011 4:41 pm

Thanks for the thanks. Glad to hear it worked!
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.
Offline

MLynch

Member

  • Posts: 14
  • Joined: Fri Dec 08, 2006 9:13 am

Re: Unifying an external rank

PostFri Feb 11, 2011 5:27 pm

I am taking the next step in using external ranks to build a virtual instrument using the CODM. After getting the Division key numbers matched to the MIDI note numbers expected by the external ranks, I have a nicely playing small, unified organ. The next step is to integrate two ranks that were wired in a strange way. One rank, which I called KilgenBourdon16 is mapped such that MIDI note numbers 24 thru 48 play the 2 lowest octaves of a 16' Bourdon set of pipes. The next 73 MIDI note numbers, i.e., 49 thru 121, play the 73 pipes of an 8' Stopped Diapason. This "rank" is played on MIDI channel 3. Another rank, called KilgenTibia4, is wired such that its 73 pipes are playable starting at MIDI Note Number 49, which is changeable if necessary. It plays on MIDI channel 11. I am trying to avoid rewiring the cables or rewriting the programs in the computers that control the pipes by taking advantage of Hauptwerk's capabilities to do miraculous wiring within itself.

I have tried two attacks unsuccessfully. The first involved making externalrank blocks for the three blocks I wanted to isolate, i.e., the 2 octaves of the Bourdon 16, the 6 octaves of the Stopped Diapason, and the 6 octaves of the Tibia 4. The last was no problem. The first pair gave trouble when I tried to use the Hauptwerk 'General settings | MIDI output paths' and 'General settings | Rank MIDI outputs' to assign the same MIDI channel, i.e., 3, to them. I had thought that some kind of pipe count and initial MIDI Note Number would keep them from appearing to overlap.

I need to determine if I can assign two or more external ranks to the same MIDI channel. I notice that I can assign a keyboard and stop controls to the same MIDI channel using the other windows under 'General settings'. That is what led to this approach. I have not given enough detail to debug this so I'm only asking at the moment if the multi-rank assignment can be made.

The other attack used only two externalrank blocks, the first containing the Bourdon 16 and Stopped Diapason in a rank having 97 pipes with the bottom MIDI note number of 24 and operating on MIDI channel 3. The second contained only the 6 octaves of the Tibia 4 as above, operating on MIDI channel 11. I used the SESQUIALTERA II (GT) from CODM example organ 2. The two stoprank statements I provided were similar and did exactly what they did in the example. They played both externalrank blocks at the same time instead of getting 24 pipes from the first for the lower 2 octaves of a BOURDON 16' stop and 8 pipes from the Tibia 4 for the remainder of the pedal board. So my first attempt at using the two stoprank statements didn't quite meet my needs, however, it worked as it was supposed to based on the example organ 2. I hope there is a parameter that I have failed to set to make this work in the sequential manner I want.

As above, I haven't given enough info for you to help me debug the problem. My question is primarily whether this approach is the proper way to use multiple stoprank statements to accomplish using part of one external rank and part of another to build up a sequence of notes.

Again, thanks for your help. As I said, I've not given enough info for debugging. I just need to know at the present whether either of these approaches can be used to solve this problem.

Mike
Offline
User avatar

mdyde

Moderator

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

Re: Unifying an external rank

PostSat Feb 12, 2011 5:05 am

Hello Mike,

Sorry - I'll be out for most of today and only have a few minutes to check the forum, so I've only had a chance to skim-read your post so far.

However, you would normally create a an ExternalRank for each continuous run of MIDI notes for a continuous run of physical pipes and then just use the StopRank entries to map the various sections to logical stops. There's nothing stopping you having multiple ExternalRank entries for a given MIDI channel if discontinuities in the physical pipework or discontinuities in its MIDI note numbering make that appropriate.

Does that help?
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 1 guest