Pipe Organs in Logic Pro X EXS24 sampler - converting from Hauptwerk format

Note: for a more detailed guide on creating EXS24 instruments from samples, using SoundFont files, see Creating a pipe organ instrument in Logic Pro X

In my earlier blog postings, I talked about creating pipe organs in the EXS24 sampler using samples taken from a SoundFont file. This update post is about doing the same thing, but using Hauptwerk organ files to get hold of the samples. While most Hauptwerk organ files are commercial, and you probably not be allowed to do this conversion, there are a few free ones out there, including the fantastic Jeux D'orgues files managed by Joseph Basquin. The samples in this file are from the 19th century Stiehr-Mockers organ at the Eglise Protestante in Romanswiller - a town in the Alsace region of France not far from the German border. You can download the files here. Joseph has also created a Silbermann organ, available for sale at a very reasonable price on his site. Listen to some demos of this virtual organ - it really is a superb instrument and excels at playing J.S. Bach's music - a contemporary of Silbermann. The two ultimately worked together on creating these organs, with Bach exploiting the emphasised reed ranks of the Silbermann organs in much of his music.

Back to the freely available Stiehr-Mockers organ. As the samples in this Hauptwerk file are better quality than those in the much older SoundFont file, I've been converting these into EXS24 instruments (available very soon!). The instructions are basically the same as on my other blog posts, but I'll do a quick rundown here, emphasising the attributes of a Hauptwerk organ fileset that are relevant to the process. I'll also quickly go through the steps in the EXS24 sampler,including organising your ranks by manual. You'll see that it's extremely easy (and quick) to create an EXS24 instrument from these files. In a future article, I'll explain the last part of this blog post in more detail: fine tuning the EXS24 settings to improve the sound of your pipe organs, covering things like tremulant/vibrato.

1. Save and unpack the Hauptwerk file. 

You can find the example file at Jeux D'orgues Stiehr Mockers Organ. Unpack the Hauptwerk .rar file, and examine the directory structure. You'll see two directories: Organ Definitions contains the master Hauptwerk .xml file that configures the organ, including its manuals, ranks and sound file references. The second is called OrganInstallationPackages and contains one directory: 001131. In this latter directory you'll see a list of subdirectories: one for each of the ranks (a rank is simply a set of pipes with the same timbre).

2. Copy the instrument sample files.

In the OrganInstallationPackages/00131, choose an organ rank you'd like to import. We'll choose GOTrompette8 (Great manual, Trompette 8 foot pipes), and this directory you can see all the sample files - in this case, one per key. Importing these samples will make us a Trompette 8 rank. This is an 8 foot 'reed' rank on the actual organ. Hauptwerk organ files themselves are sophisticated, but the all-important loop start and end points for the sample are stored with the .wav sample file itself. Loop points are not specified in the Hauptwerk organ definition (the .xml configuration files).

3. Create a new instrument in EXS24.

Make a track, choose the EXS24 sampler, and select the blank '---' instrument so you've got a clean slate to work with. Click the 'edit' button and you'll see an empty list that will contain the samples.

4. Copy the sample files into the EXS24

You can now drag/drop the sample files from the GOTrompette8 directory into the EXS24 sample list. The biggest time save here is the fact that the correct sample loop start/end points are picked up automatically from the .wav files, saving you a lot of work.
As you import, you'll be asked to select a key range mapping option. Choose 'Contiguous Zones' with a zone width of 1 note because in most cases, sample files are provided for every note. You can leave the starting key a C1.

Automatically mapping samples to notes
Check your key mappings visually to ensure they make sense (no overlapping samples), and you can optionally extend the range of the lowest and highest samples to ensure the entire keyboard is covered if you wish.

Extending key mappings to cover keyboard

5. Make a new group to contain the samples.

While this step is not necessary when creating a single rank instrument, it becomes important if you choose to create 'stop' instruments that include multiple ranks eg. Principaux 8 4 2. Click 'Group' and name the group to the instrument eg. GO Flute 4. Select all the samples (Command-A) and drag them to this new group. Check the key mappings visually to make sure they're correct, but the defaults should work as the key namings match the actual key eg. C#3 for the middle C# note.

6. Save your instrument, including the sample files.

Unless you perform this step, your samples will not be copied and will be referenced from wherever you dragged them, meaning you'll break your instrument if you move the original sample files. To avoid this, copy and save everything needed for the EXS24 instrument in one place (namely a directory of samples, and the .exs instrument definition file itself). To do this, in the EXS24 Edit window, click 'Instrument' and then 'Export Sampler Instrument and Sampler Files'.

Saving an entire instrument in one place

Save the files in a new 'Jeux D'Orgues' directory under /Users/yourname/Music/Audio Music Apps/Sampler Instruments/Jeux D'orgues. Now, the instrument (and its samples) will be available under 'JeuxDorgue -> GOFlute4' when choosing one in the EXS24. You can remove the original sample files if you no longer need them. Note that an EXS24 instrument is made up of two types of files. The first is the .exs file, which names the instrument (as the file name). The second is the directory of samples. The default save puts the .exs file under 'Sampler Instruments' and the directory of samples there too. You can (very carefully) reorganise the directories in 'Sampler Instruments' to have sub-directories for eg. the manuals - just create additional directories for the manual names in 'Sampler Instruments'. In my case, I made a top-level directory called 'Jeux D'orgues' in 'Sampler Instruments', then created 'Great', 'Pedal' and 'Positif' directories which contain the actual sample sets. Note that the Stiehr-Mockers organ has two manuals: Great and Swell (or Grand Orgues and Positif in French) as well as a pedal. It's easy to lose the links between the .exs file and the sample set directories. If this happens, you will see a message saying multiple sample files are found for a single .wav file. You can relink to the correct sample directory if it appears, but I found it easier to start again because sometimes the correct sample directory did not appear in the list. Always use the 'Export Sampler Instrument and Sampler Files' menu option in EXS24 edit to save your files, so you have a copy of all the sample files in the default location ('Sampler Instruments').

That's it - you've created a new instrument in the EXS24 with correct loop points and it should play just fine as it is.

Optional points to finesse your instrument.

1. Fix the velocity.

When playing a real organ, there's not 'touch' to the keys. An organ pipe is either on or off. You can replicate this touch (or rather lack of touch) in the EXS24 by setting the Velocity Level start and end to maximum. You may however want to leave the defaults as is, allowing you control the volume of the organ (and more specifically, the key press sound volume) by key pressure.

Setting fixed velocity on key down - adjust both level settings to 'full'

2. Emulate tremulant and vibrato

In a real organ, a mixed tremolo and vibrato effect is gained by modifying the air pressure to the pipe quickly over time, and is typically used with reed ranks (eg. Cornet). You can emulate a similar effect in the EXS24 by using one of the two LFOs as a modulator. To do this, choose an empty modulator slot. For vibrato (where the pitch modulates), set Dest (destination) to 'pitch', via to 'maximum' and Src (Source) to LFO 1. For tremolo (where the amplitude modulates) create another modulation effect with the same settings, but choose 'volume' for Dest. Change the LFO 1 Rate (frequency) to around 10Hz. You can fine tune the effect by changing the control ranges (the green and orange triangles in the picture). For tremolo, adjust the tuning range to something like -2 to -3 cent. For vibrato, change the control ranges for volume to something like -20%. Regarding the LFO wave, I found the top sawtooth wave the most realistic, despite initially suspecting a smoother sin wave would be better - experiment to get the best sounds. Note that these settings will affect the track, regardless of which instrument you use. You'll really do need to muck around with these settings: my attempts were not terribly realistic!

Note that Hauptwerk achieves a much more realistic effect by using an actual LFO sample to modulate the pipe sound - this is clever as it means you can add an extremely realistic tremulant to pipe organ sounds without having to add a whole new set of samples, note by note.

EXS24 LFO 1 Settings to emulate tremulant

3. Key release sounds

When an organ key is released, a slight clicking noise can be heard as the mechnical actuators close the airflow to the pipes. This effect is more pronounced when close to the divisions (the actual location of the pipes), and is almost inaudible further away. You can emulate this clicking sound in the EXS24 by adding an additional 'click' sample to your .exs file, setting its range to the entire keyboard and allocating to its own new group. You then edit the group as a whole (by clicking the 'Groups' button at the top left of the screen) and adjusting the 'Trigger' setting to 'Key Release'. You also need to click the 'Dcy' (Decay) toggle, and set a decay time (in milliseconds) that covers the entire click sound. You may want to decrease the Mixer volume in the sample to reduce the effect - loud clicks are distracting, and not realistic in a typical church organ setting unless you're very close to the pipes themselves.

'Group' display in EXS24 edit screen, showing the key release group with 'Dcy' clicked and a decay time (500 msec).

A better way to achieve the effect (assuming each of your samples has recorded the key release sound) would be for the sample to play, start its loop then at key release play the remainder of the sample (with its click), but I don't believe there's a way in the EXS24 to do this. The benefit of this approach would be that the key release click would be the actual one associated with the individual pipe sound and it is likely to include at least some of the harmonics of the individual key. I think this is they way Hauptwerk handles the situation, and in addition to matching the entire pipe sound, the approach removes the need to include additional 'click' samples. The EXS24 method is an efficient, if slightly less accurate workaround. Note that when applying the effect in the EXS24 you need to ensure your 'click' sample is restricted to the mechanical noise only ie. try to avoid any pre-click note harmonics in your sample, otherwise you'll hear the remnants of a tone during the click - regardless of the tone of the key you're pressing.


Creating multi-rank stop instruments

In a real organ, a stop may activate multiple ranks (sets of pipes that all play notes of the same timbre). For instance Principaux 8 4 2 includes Montre 8, Flute 4 and Doublette 2 ranks. You can achieve the same thing in the EXS24, but beware of some complications or complexities. Here are three methods to achieve a stop effect - I recommend option 2, but option 1 is the 'purest' way to achieve the stop effect even if it presents more technical difficulties (and is sometimes impossible with your samples).

1. Multiple samples per note, with cross-fading

In the EXS24 edit screen, after adding a single sample set for one rank, and putting it in its own group, add the second rank samples. Make sure the key ranges overlay the first instrument correctly. You'll see the multiple samples per note stacked up above the keyboard keys (see image below). An issue will probably arise when you do this though: you're likely to hear clicks or odd periodic noises which signify sample looping offset problems. These occur because the loop points in the 2 samples used for a single note are not likely to be at the same point, or are out of phase. To fix this, you can try increasing the Cross Fade for each note - I needed to set them at around 100 to 200 to get the clicks sufficiently suppressed. In the image below, you can see two things. The first is the 3 overlaying samples (above the keyboard) representing samples for 3 ranks (Montre 8, Flute 4 and Doublette 2) that make up the Principaux 8 4 2 stop. The second is the choice of a crossfade setting of 150 for the 3 Middle C samples. This reduces (but doesn't remove all together) the clicking noise due to misaligned loop points.

Multi-rank stop instrument with crossfade for Middle C

2. Routing multiple instruments to same channels

An easier and perhaps overall better way to emulate stops is to send the output from your first rank to the second rank you want to include as part of a stop. You do this in the MIDI Environment of Logic Pro X (press Cmd-0). First I add two tracks, one for each rank. Then you drag the channel output to the second track, and vice versa. Let's say I want to create a Mixture stop comprised of Bourdon 8 and Octave 4 ranks. I've dragged the channel output of Bourdon 8 to Octave 4, and back again from Octave 4 to Bourdon 8.

Now, pressing a key in either track plays the same note in Bourdon 8 and Octave 4 ranks. Voila: a stop that includes 2 ranks. After you've set up your stop tracks, you may want to rename them to - in this case both tracks are called 'Mixture. You could also get more specific and name them 'Bourdon 8 Octave 4' if you need to remember which ranks go to make up the stop.

3. Duplicate the track regions

There's also a simpler, but less ideal way to achieve a multi-rank stop setting effect: simply copy the track redion to the second rank track, playing the same notes in two different tracks at the same time.

This is obviously not the best way to handle stops, as you now now have two copies of the same MIDI sequenced notes to maintain (they should obviously remain exactly the same). Unfortunately, you can copy aliased regions to different tracks, which would have a better way to ensure the notes are always in sync.

The result

To hear the Stiehr-Mockers EXS24 organ in action, click here to listen to a rendition of Bach's famous chorale "Wachet auf, ruft uns die Stimme" (BWV645). The source of the file is a MIDI recording. The registration is as follows:

GreatTrompette 8
PositifBourdon 8, Prestant 4
PedalSubasse 16

The chorale melody is performed by the reed stop Trompette 8 and demonstrates Bach's mastery of the overlay. To achieve two ranks on the Positif manual, two tracks were added, both containing the same MIDI sequence, one set to Bourdon 8 and one set to Prestant 4. This is an easy way to replicate a 'stop' given the complexity of making real stops (one key plays pipes from multiple ranks). See above for another solution, namely routing a single MIDI channel to multiple tracks which avoids the need to copy the MIDI sequence.


Popular Posts