Hello Hans,
To add to larason2's reply (thanks, larason2):
I've made a minimal CODM ODF and a test rank of samples to test the settings I'd suggested previously, i.e.:
mdyde wrote:Rank.NumberOfPipes=73
Rank.MIDINoteNumberOfFirstPipe=36
Rank.Samples_MIDINoteNumIncrementFromPipesToSamples=-12 [that's *minus* 12]
Rank.Samples_RankBasePitch64ftHarmNumIfAssumedTunedToConcertPitch=0 (assuming that the pitch has been detected and stored within the sample files, which most sample set producers do, otherwise 8).
... and for an 8' stop:
StopRank.RankID=[the ID of the Rank object above]
StopRank.NumberOfMappedDivisionKeys=61
StopRank.MIDINoteNumOfFirstMappedDivisionKey=36
StopRank.MIDINoteNumIncrementFromDivisionToRank=0
Those settings do work properly with my test rank (which has samples with filenames starting at 024, with 024 being ~65 Hz), provided that Rank.Samples_RankBasePitch64ftHarmNumIfAssumedTunedToConcertPitch=0.
I would always recommend using Rank.Samples_RankBasePitch64ftHarmNumIfAssumedTunedToConcertPitch=0 (which means "read samples' pitches from the exact pitch values stored in the samples by the sample set producer) anyway, unless there's a good reason not to (e.g. if the sample set producer hasn't stored any pitches, but most do), since using the stored values (if any) is likely to give more accurate tuning.
However, if you set Rank.Samples_RankBasePitch64ftHarmNumIfAssumedTunedToConcertPitch=8 then in this case the rank would actually sound one octave too high, so my original reply was incorrect in that respect -- my apologies.
Rank.Samples_RankBasePitch64ftHarmNumIfAssumedTunedToConcertPitch specifies the samples' pitches relative to the MIDI note numbers of their filenames, hence you would need to set Rank.Samples_RankBasePitch64ftHarmNumIfAssumedTunedToConcertPitch=16 (not 8) in this case. If you do that, you should find it works (but I'd still recommend using 0 instead if possible anyway).
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.