Hello Graham,
The documentation for the SampleRateCode attribute of the _General table in the CODM user's guide (page 50 in the v3.30 version) covers it:
The sample rate that will be used by Hauptwerk for all audio output from the organ. It is not necessary that the value corresponds to the sample rate of all samples, since sample rate conversion happens automatically when required, but it should be set to the highest sample rate commonly used by any samples used for the organ, so that the best possible audio quality is obtained. The valid codes are as follows:
1. 22050 Hertz.
2. 44100 Hertz.
3. 48000 Hertz.
4. 96000 Hertz.
So even if your samples are at 44.1 kHz you can still set that attribute for 48 kHz and Hauptwerk will re-pitch them in real time to 48 kHz. However, because real-time per-pipe pitch shifting is used, and because the pitch difference between 44.1 kHz and 48 kHz is fairly large, the quality will suffer a bit.
Hence it's preferable to re-pitch the samples using a high-quality (slow) off-line pitch shifting algorithm in an audio editor if possible.
Also no real-time anti-aliasing filter will be applied (which again would be too CPU-intensive for applying on a per-pipe basis), so you must ensure that the samples don't contain any frequencies above the target Nyquist frequency if you're reducing the sample rate (e.g. 22050 Hz if down-sampling to 44.1 kHz from a higher rate).
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.