Hello Tim,
I've made a document for you to show exactly what the two 'tone matching' algorithms do:
http://downloadhauptwerk.com/misc/Hauptwerk4ToneMatchingAlgorithms.pdf
Those two were originally primarily designed to minimise the occurrences of dissonances on any given channel in equal temperament when used with 3-5 outputs in a group.
For the cyclic algorithms the audio output number within the group to which a pipe will be routed is calculated as follows:
midi_note_num = <MIDI note number>
note_in_oct = (midi_note_num) mod 12
oct_num = (midi_note_num) / 12
num_outputs = <number of audio outputs in the group>
rank_seq_num = (a number generated for the rank by sorting the ranks by RankID and then assigning an incremented number to each in turn (0 for the first rank, 1 for the second rank, etc.)>
---
'Cyclic within octave, octaves and ranks cycled' algorithm:
output_num = ( (note_in_oct) + (oct_num) + (rank_seq_num) ) mod (num_outputs)
---
'Cyclic within octave, octaves constant (C/C# split)' algorithm:
output_num = (note_in_oct) mod (num_outputs)
---
'Cyclic across whole rank compass' algorithm:
output_num = (midi_note_num) mod (num_outputs)
---