Rudolf Cardinal (rudolf@pobox.com), Feb 2025. Version of 2025-02-22.
Hauptwerk is virtual pipe organ software. That is, it takes input from physical organ keyboards (manuals and pedalboards) via MIDI, and makes sounds that reproduce recorded physical pipe organs.
This short page deals with a particular way to set up Hauptwerk audio, via a consumer-type surround sound (e.g. 5.1) system. The main innovation is to “overlap” stereo pairs, creating more stereo spatial locations. The principles are extensible to any other audio system with more than two speakers, where channels are individually addressable.
Note: Using a “standard” consumer surround sound system is NOT what Hauptwerk experts recommend. The normal recommendation is to arrange all speakers in stereo pairs—often lots of pairs—plus at least one subwoofer. The typical recommendation is to use studio monitors, i.e. self-powered speakers. However, sometimes other practical reasons force a different setup, such as the use of an audiovisual (AV) receiver. If that’s the case, how can we get the best out of it?
This process involves reconfiguring Hauptwerk audio, so there is always scope to mess things up. You might want to launch Hauptwerk in an alternative config, and edit that. For example, if you normally launch “Hauptwerk” from the Windows desktop, you could launch “Hauptwerk (alt config 1)” (or 2, or 3) instead, and edit that config. That way, your original configuration will be untouched.
I have a rectangular room with a typical 5.1 system: an AV receiver with five full-bandwidth channels connected to unpowered speakers, and one powered subwoofer for low-frequency sounds. It has approximately this speaker layout:
SOUTH Front_L Centre [Subwoofer] Front_R +----------------+ | |||||||||||||| | | |||||||||||||| | CONSOLE +----------------+ E |||||||||||||| W A +----------------+ E S | Organist | BENCH S T +----------------+ T Rear_L Rear_R NORTH
This isn’t to scale, but it will suffice. Note also that subwoofers are effectively un-directional/omnidirectional, because humans are poor at localizing low-frequency sounds, so I’ll omit the subwoofer from diagrams that follow.
If we use a stereo signal to a conventional AV receiver, it is likely to be able to spread that signal to all 5.1 speakers. That’s good—it’ll sound much better than just using the front L/R pair—but it will still give just a sense of left/right stereo; only one stereo channel is in use.
If we have a signal to our receiver that conveys more than stereo (e.g. using multiple channels on an audio interface, and a 7.1 multichannel input option on our receiver), it is simple in Hauptwerk to arrange speakers in standard, non-overlapping, stereo pairs. So we might get two stereo pairs, front and rear, like this, plus the subwoofer, but with the centre speaker unused:
<--------------------------------------------------------------------------> Front_L Front_R +----------------+ | |||||||||||||| | | |||||||||||||| | +----------------+ |||||||||||||| +----------------+ | Organist | +----------------+ Rear_L Rear_R <-------------------------------------------------------------------------->
However, we can also create overlapping stereo pairs. That allows us to set up a quadraphonic (quadrophonic) 4-manual organ, for example with the Great division to the South, Swell to the East, Choir to the North, and Solo to the West; plus some distribution of the Pedal division—again, plus the subwoofer. (For a real quadraphonic organ, see e.g. the Kuhn/Goll organ at the St Laurenzenkirche, St Gallen, Switzerland in a video tour by the Scott Brothers Duo, or Jonathan Scott’s performance of the Nutcracker Suite on it.) The next diagram illustrates five stereo pairs:
<--------------------------------------------------------------------------> <------------------------------------><------------------------------------> ^ Front_L Centre Front_R ^ | +----------------+ | | | |||||||||||||| | | | | |||||||||||||| | | | +----------------+ | | |||||||||||||| | | +----------------+ | | | Organist | | | +----------------+ | | | | | | | | | | | v Rear_L Rear_R v <-------------------------------------------------------------------------->
We can also create multi-speaker groups and assign a single rank (set of pipes) or division (group of ranks controlled by a keyboard) to a group of individual speakers, and Hauptwerk will assign different individual pipes to different speakers, making the sound move around as you play a scale. Overall, there are quite a few possibilities; I’ll illustrate a couple.
You need Hauptwerk with a basic console, and a sound system with at least 3 speakers to make use of this method. You need hardware that can address the speakers individually, not just e.g. “expand” stereo sound to more than two speakers.
My equipment is as follows:
Some tutorials:
Some “prior art” on using Hauptwerk with 5.1 surround-sound systems:
I’ve not found the “overlapping stereo pairs” method elsewhere.
You should set up complex audio in this order:
The audio flow is as follows (from top to bottom):
Element | How to control it | Notes |
---|---|---|
RANK (of pipes) ↓ |
via RANK VOICING |
|
PERSPECTIVE, a.k.a. rank output perspective ↓ |
Sound: via RANK VOICING. Flow: via RANK ROUTING. |
|
GROUP, a.k.a. mixer bus group (optional) ↓ |
via BUS GROUPS |
|
PRIMARY BUS ↓ |
via AUDIO MIXER |
|
INTERMEDIATE BUS, a.k.a. intermediate mix ↓ |
via AUDIO MIXER |
|
MASTER BUS, a.k.a. master mix. ↓ |
via AUDIO MIXER |
|
AUDIO INTERFACE, a.k.a. audio output (device) channel. | via AUDIO DEVICES |
|
(Then there are 128 mixer presets, which encompass a large number of these settings each. Ignore for now.)
For editing, open these LEFT TO RIGHT (to mimic sound flow left to right across the screen):
Then, effectively, you set things up by working from right to left on your screen.
The key feature is that we create some single-speaker devices with unusual stereo balance, then recombine them to create new stereo pairs. Hauptwerk can use non-consecutive channels for stereo (v9 Advanced User Guide, page 37) but only by remapping them; and we want to use both conventional and unusual pairs, so we have to use a different approach.
My front centre speaker is too loud by default. The receiver is set to adjust it, but I’m not convinced that this adjustment applies to multichannel 7.1 input mode. Therefore I have an adjustment CentreCorrection = −14 dB, applied to this speaker in a couple of places in the configuration below. Ignore it if this doesn’t suit your needs, or adapt the method for this or any other speaker if you have one that is somewhat unbalanced.
We use simple, obvious channel names:
Output channel | Name |
---|---|
0001 (Out 1) | CH1_PHONES_L |
0002 (Out 2) | CH2_PHONES_R |
0003 (Out 3) | CH3_FRONT_L |
0004 (Out 4) | CH4_FRONT_R |
0005 (Out 5) | CH5_FRONT_CENTRE |
0006 (Out 6) | CH6_SUBWOOFER |
0007 (Out 7) | CH7_REAR_L |
0008 (Out 8) | CH8_REAR_R |
0009 (Out 9) | [unused] |
0010 (Out 10) | [unused] |
0011 (SPDIF 1) | CH11_SPDIF_L [for testing; also the main Windows output route] |
0012 (SPDIF 2) | CH12_SPDIF_R [for testing; also the main Windows output route] |
0013–0128 | [channel not available on this audio device] |
Here we set up many of the simple devices. Individual order is not wholly important, but there is a hierarchy across primary/intermediate/master buses, so if you want a primary bus to address unusually configured devices, those devices need to be configured as intermediate or master buses.
Note that mono(phonic) outputs appear a long way down the list compared to stereo(phonic) outputs! But they are there.
Bus | Name | Destination | Other settings |
---|---|---|---|
Master mix 1 | Main_recording_headphones |
[OUTPUT] Stereo, CH1_PHONES_L / CH2_PHONES_R (for testing: [OUTPUT] CH11_SPDIF_L / CH12_SPDIF_R) |
— |
Master mix 2 | Front_L_R_speakers | [OUTPUT] Stereo, CH3_FRONT_L / CH4_FRONT_R | — |
Master mix 3 | Front_L_speaker | [OUTPUT] Mono, CH3_FRONT_L | — |
Master mix 4 | Front_R_speaker | [OUTPUT] Mono, CH4_FRONT_R | — |
Master mix 5 | Front_centre_speaker | [OUTPUT] Mono, CH5_FRONT_CENTRE | Level adjust CentreCorrection = −14 dB; this is an arbitrary per-speaker setting just because mine is a bit loud otherwise (see above). You may prefer differently. |
Master mix 6 | Subwoofer | [OUTPUT] Mono, CH6_SUBWOOFER | — |
Master mix 7 | Rear_L_speaker | [OUTPUT] Mono, CH7_REAR_L | — |
Master mix 8 | Rear_R_speaker | [OUTPUT] Mono, CH8_REAR_R | — |
Here we see the unusual individual speaker setups.
Bus | Name | Destination | Other settings |
---|---|---|---|
Intermediate mix 1 | Rear_L_speaker_as_L_channel | [OUTPUT] Mono, CH7_REAR_L | Stereo balance full LEFT (−100%); level adjust +6 dB. |
Intermediate mix 2 | Front_L_speaker_as_R_channel | [OUTPUT] Mono, CH3_FRONT_L | Stereo balance full RIGHT (+100%); level adjust +6 dB. |
Intermediate mix 3 | Front_R_speaker_as_R_channel | [OUTPUT] Mono, CH4_FRONT_R | Stereo balance full RIGHT (+100%); level adjust +6 dB. |
Intermediate mix 4 | Rear_R_speaker_as_L_channel | [OUTPUT] Mono, CH8_REAR_R | Stereo balance full LEFT (−100%); level adjust +6 dB. |
Intermediate mix 5 | Front_L_speaker_as_L_channel | [OUTPUT] Mono, CH3_FRONT_L | Stereo balance full LEFT (−100%); level adjust +6 dB. |
Intermediate mix 6 | Front_centre_speaker_as_R_channel | [OUTPUT] Mono, CH5_FRONT_CENTRE | Stereo balance full RIGHT (+100%); level adjust +6 dB + CentreCorrection = −8 dB. |
Intermediate mix 7 | Front_centre_speaker_as_L_channel | [OUTPUT] Mono, CH5_FRONT_CENTRE | Stereo balance full LEFT (−100%); level adjust +6 dB + CentreCorrection = −8 dB. |
Intermediate mix 8 | Front_R_speaker_as_R_channel | [OUTPUT] Mono, CH4_FRONT_R | Stereo balance full RIGHT (+100%); level adjust +6 dB. |
These level adjustments are not arbitrary (except for the centre speaker adjustment C, described above), but are based on a principle. See volume explanation below.
Note:
Bus | Name | Destination | Other settings | Comments |
---|---|---|---|---|
Primary 1 | Front_L_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Front_L_speaker | Level adjust +6 dB to Front_L_speaker only. | Single speaker. |
Primary 2 | Rear_L_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Rear_L_speaker | Level adjust +6 dB to Rear_L_speaker only. | Single speaker. |
Primary 3 | Front_L_R_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Front_L_R_speakers | — | STANDARD STEREO PAIR. |
Primary 4 | Rear_L_and_Front_L_primary | [master] Main_recording_headphones + [master] Subwoofer + [intermediate] Rear_L_speaker_as_L_channel + [intermediate] Front_L_speaker_as_R_channel | — | UNUSUAL BUT OBVIOUS STEREO PAIR. |
Primary 5 | Front_centre_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Front_centre_speaker | Level adjust +6 dB to Front_centre_speaker only. | Single speaker. |
Primary 6 | Front_R_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Front_R_speaker | Level adjust +6 dB to Front_R_speaker only. | Single speaker. |
Primary 7 | Rear_R_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Rear_R_speaker | Level adjust +6 dB to Rear_R_speaker only. | Single speaker. |
Primary 8 | Rear_L_R_primary | [master] Main_recording_headphones + [master] Subwoofer + [OUTPUT] Stereo CH7_REAR_L / CH8_REAR_R | — | STANDARD STEREO PAIR. |
Primary 9 | Rear_R_and_Front_R_primary | [master] Main_recording_headphones + [master] Subwoofer + [intermediate] Rear_R_speaker_as_L_channel + [intermediate] Front_R_speaker_as_R_channel | — | UNUSUAL BUT OBVIOUS STEREO PAIR. |
Primary 10 | Front_L_and_centre_primary | [master] Main_recording_headphones + [master] Subwoofer + [intermediate] Front_L_speaker_as_L_channel + [intermediate] Front_centre_speaker_as_R_channel | — | Unusual stereo pair. |
Primary 11 | Front_centre_and_R_primary | [master] Main_recording_headphones + [master] Subwoofer + [intermediate] Front_centre_speaker_as_L_channel + [intermediate] Front_R_speaker_as_R_channel | — | Unusual stereo pair. |
Primary 12 | Front_and_Rear_pairs_primary | [master] Main_recording_headphones + [master] Subwoofer + [master] Front_L_R_speakers + [OUTPUT] Stereo CH7_REAR_L / CH8_REAR_R | Level adjust −6 dB to (a) Front_L_R_speakers, and (b) the direct stereo output, only. | A double stereo pair; whole-room left/right. |
Primary 13 | Left_and_Right_pairs_primary | [master] Main_recording_headphones + [master] Subwoofer + [intermediate] Rear_L_speaker_as_L_channel + [intermediate] Front_L_speaker_as_R_channel + [intermediate] Rear_R_speaker_as_L_channel + [intermediate] Front_R_speaker_as_R_channel | Level adjust −6 dB to the four intermediate bus destinations, only. | A double stereo pair; whole-room front/back. See above regarding the unusual orientation necessary for this one. |
Primary 14 | SILENCE_primary | (nothing!) | — | Silence. Routing a rank to this device is one quick way of silencing it, e.g. for blower or keyboard action noises. |
Primary 15 | TEST_primary | (flexible, as you choose) | — | You can only route ranks to primary buses, and bus groups. So having a “spare” primary bus is useful for dynamic experimentation with your speakers. You can route an easily localizable sound (e.g. a prominent Solo reed) here, then play with its output settings. |
Primary 16 (and onwards) |
— | — | — | — |
See volume explanation below for a discussion of the level adjustments. The aim is that all resulting bus groups have the same effective volume as a standard single stereo pair, and just differ spatially.
I’ve used a different naming convention for bus groups. You should only need to set mixer/bus group settings once, but you may have lots of virtual organs to map to bus groups, so I find it helpful to have bus groups with standard names even for bus groups that route to a single destination.
Group name | Destination bus(es) |
---|---|
South_group_1_mono_pair_Front_L_R | Front_L_primary, Front_R_primary |
South_group_2_stereo_Front_LR | Front_L_R_primary |
South_group_3_triplet_Front_L_C_R | Front_L_primary, Front_centre_primary, Front_R_primary |
South_group_4_stereo_x2 | Front_L_and_centre_primary, Front_centre_and_R_primary |
North_group_1_mono_pair_Rear_L_R | Rear_L_primary, Rear_R_primary |
North_group_2_stereo_Rear_LR | Rear_L_R_primary |
East_group_1_mono_pair_Rear_L_Front_L | Rear_L_primary, Front_L_primary |
East_group_2_stereo_Rear_L_Front_L | Rear_L_and_Front_L_primary |
West_group_1_mono_pair_Front_R_Rear_R | Front_R_primary, Rear_R_primary |
West_group_2_stereo_Rear_R_Front_R | Rear_R_and_Front_R_primary |
Quad_group_1_mono_x4_corners | Front_L_primary, Front_R_primary, Rear_L_primary, Rear_R_primary |
Quad_group_2_front_stereo_rear_stereo | Front_L_R_primary, Rear_L_R_primary |
Quad_group_3_left_stereo_right_stereo | Rear_L_and_Front_L_primary, Rear_R_and_Front_R_primary |
Quint_group_1_mono_x5 | Front_L_primary, Rear_L_primary, Front_centre_primary, Front_R_primary, Rear_R_primary |
Quint_group_2_front_stereo_centre_rear_stereo | Front_L_R_primary, Front_centre_primary, Rear_L_R_primary |
Quint_group_3_left_stereo_centre_right_stereo | Rear_L_and_Front_L_primary, Front_centre_primary, Rear_R_and_Front_R_primary |
Now we’re ready to play!
This example sets up the Peterborough Cathedral virtual organ, from Audio Angelorum, in a quadraphonic style, with each manual division in a different compass direction, plus a more diffuse distribution of the Pedal division. Note the console positioning in the diagram above: in the centre, facing south. The “console noises”, such as key and stop noises, are routed to the single speaker by the console. Each division has quite a few ranks, but they are grouped alphabetically; * denotes a wildcard.
Rank(s) | Destination | Comments |
---|---|---|
Blower noises | SILENCE_primary | I prefer without them. |
Choir * | North_group_2_stereo_Rear_LR | North = Choir |
Great * | South_group_2_stereo_Front_LR | South = Great |
Key Action Noises * Pallet Action Noises * |
Front_centre_primary | Console |
Pedal * | Quint_group_1_mono_x5 | Pedal = everywhere |
Solo * | West_group_2_stereo_Rear_R_Front_R | West = Solo |
Solo Tuba 8 | West_group_1_mono_pair_Front_R_Rear_R | West = Solo, but perhaps extra spatial drama here? |
Stop Action Noises * | Front_centre_primary | Console |
Swell * [includes “Swell Action Noises”—swell shutters?] | East_group_2_stereo_Rear_L_Front_L | East = Swell |
Tremulant Noises | Front_centre_primary [?] | Console? |
By default, perspectives other than #1 do nothing.
It is then very quick to apply this system to other organs, just using RANK ROUTING.
Hauptwerk’s basic audio concept is of a stereo channel. In the configuration outlined above, we fiddle around with this somewhat. But imagine that at any instant, a stereo signal is represented by two “level” values, a left value and a right value, and let’s suppose that these levels are each represented by numbers in the range 0–100. The numbers will then change rapidly (e.g. at 44.1 kHz) to produce sound. But at one instant, we can imagine a stereo signal such as L = 50, R = 50 (balanced), or L = 90, R = 10 (louder on the left). And then we can think about the way this signal flows through Hauptwerk, from ranks to audio devices.
BUS GROUP versus STEREO PAIR L_mono R_mono L R C-G E-C C-E-G-C C-E-G-CSo, relative to a stereo pair, I’d expect that a two-bus group like this will probably cause (roughly) a halving of apparent power, or a change of −3 dB. But empirically it is −6 dB! Some other comparisons:
Bus group | Speakers per pipe | Versus | Speakers per pipe | Expected power factor | Expected dB | Empirical dB |
---|---|---|---|---|---|---|
n × {primary bus to 1 × mono speaker}, regardless of n | 1 | 1 × {primary bus to stereo pair} | 2 | 0.5 | −3 | −6 |
n × {primary bus to 1 × mono speaker}, regardless of n | 1 | group of 2 × {primary bus to stereo pair} | 2 | 0.5 | −3 | −6 |
n × {primary bus to 1 × mono speaker}, regardless of n | 1 | 1 × {primary bus to 2 × stereo pair} | 4 | 0.25 | −6 | −12 |
n × {primary bus to 1 × stereo pair}, regardless of n | 2 | 1 × {primary bus to stereo pair} | 2 | 1 | 0 | 0 |
n × {primary bus to 1 × stereo pair}, regardless of n | 2 | 1 × {primary bus to 2 × stereo pair} | 4 | 0.5 | −3 | −6 |
Therefore, we use approximately these corrections:
Of course, you may want to vary these to get the best results for your setup.
It works. The organ sound comes alive!