Creating a pipe organ in Logic Pro

Note: An updated article on pipe organ creation in the newer Logic Pro X EXS24 mkII sampler using SoundFont files is available here. Although the article below is written for Logic Pro 9, it's almost exactly the same process in Logic Pro X.

Logic Pro includes a feature-packed sampler: the EXS24, and it's a straightforward task to create your own new instruments. While the EXS24 sampler instrument in Logic Pro includes a respectable church pipe organ in its factory settings, you may wish to extend the instrument by creating your own pipe organ samples and assembling them together to create your own custom pipe organ.

While there's plenty of good documentation on-line for the EXS24, there's not much about that's specific to creating organ-like sampling instruments so I've created this quick guide for anyone who wishes to duplicate some of the magnificent pipe organs out there. The simple set up in Logic Pro and EXS24 will never allow you to create the kind of quality pipe organ sounds you get from software like Hauptwerk, but you can still make a very satisfactory instrument of your own.

I'm not a technical expert on the highly complex art of electronic instrument creation, and prepared the following guide after an afternoon of mucking around, so any mistakes are my own. Please leave any suggestions/comments below, particularly if you have any tips on creating electronic organs.

1. Obtain Pipe Organ Samples.

Obviously, a sample-based electronic pipe organ instrument is going to require some sound samples, and while they're not enormously easy to find, a worthwhile place to explore is Jeux D'Orgues. With a Silbermann and Stiehr Mockers organ created, and available in multiple formats you've got the late Northern German Baroque and mid 19th century periods covered. Check out the soundcloud samples - the quality of these computer based organs is unbelievable, and a testament to their creator Joseph Basquin. He has also created an Android app, so you can play your pipe organ on the go!

Wherever you get your samples, you need a set comprising multiple notes in a keyboard (manual) range. The EXS24 will cope with pretty much any sound file format - I used .WAV, but .AIFF is also popular. To make things easier, it's important to name your samples logically ie. include the note number in the file name, or in the file itself. That way, the EXS24 will allocate the file to the correct note on the keyboard eg. Cornet 65 C3.wav when it comes time to load your sample files into your new instrument.

2. Create a new Logic Pro project with an EXS24 track

In your project, you'll need at least one track with its instrument set to EXS24.
After double-clicking the EXS24 in your track, you will see the main EXS24 panel from which you create your organ. Start things off by selecting 'No Instrument' to ensure there are no extraneous settings - it's best to start everything from scratch as there are a multitude of settings, most of which won't be used. 

No instrument selected, ready to 'edit'

3. Edit your new Instrument

By clicking the 'edit' button in the top right, you'll open the EXS24 Instrument Editor. You will then work with Zones and Groups to create the organ.


 A multi-grouped instrument: corresponds to a 'coupler' button on an organ manual

4. Defining Zones and Groups

The EXS24 is a 'multi-sampler' which means, in basic terms, that a single note can represent multiple sample files, played together.
In the context of a pipe organ, 'Zones' are effectively stops in an organ, and represent a rank of pipes. By creating multiple zones, you can make a coupled pipe organ - for instance, you might wish to create a new instrument that includes multiple stops eg. Flute 8' and Flute 4' together. In this case, you'd create two zones, called Flute 8 and Flute 4. If you then click on the zone, you will see an area of screen to which you will drag/drop your pipe organ .wav file.

5. Create a sample directory to store your pipe organ sample files

An important note on file locations: the EXS24 does not duplicate .wav files when it creates an instrument. It simple links to the location of the files, so for our purposes it's important you create and choose the right location. Your own samples to be used in the EXS24 reside by default in:

/Users/yourname/Library/Application Suport/Logic/NEW SAMPLE DIRECTORY.

Create a directory under and call it something like 'Samples'. Store all your sample files in this directory, using other new directories to categorise them. In my case, I created the following directory structure:

/Users/myname/Library/Application Support/Logic/Samples/Grand Orgue.

Under Grand Orgue, I made directories for each organ stop ie. Bourdon 8, Bourdon 16, Flute 4, Cornet etc. The EXS24 instrument itself will reside in:

/Users/myname/Library/Application Support/Logic/Sample Instruments

6. Loading a zone with sample files.

After selecting a zone (or 'stop' in organ parlance), you simply drag/drop your .wav files. You will be asked to nominate the first key to be loaded - this should match the frequency/note of the first file (lowest frequency). For a 'Flute 4' for instance, I nominated the sample file 036-C.wav to C2. The keyboard is displayed at the bottom of the editor, and you can work out where your sample notes start in reference to C3 (middle C).


7. Extend Key Range to cover notes for which there is no file.

In most cases, you are unlikely to have a separate sample file for every note on the keyboard. In this case, you extend the range of the sample file's keys by changing the Key Range Lo and Hi settings. The EXS24 sampler takes care of the frequency changes as you move from note to note in your range. As an example: the lowest note sample file you have loaded is 036-C.wav. To extend the range to cover lower keys, double click 'Lo' and change it to the lowest key on your keyboard. For an 88 key keyboard, the lowest note is A-1 (that's A minus 1). Do the same thing for the highest key sample file - again, the highest key on a standard 88 key keyboard is C7.
Note that the majority of pipe organs do not include a full 88 key (7 and a bit) octave manuals. They are more likely to be 5 octaves, so it's not unrealistic to have your organ stop cut out the lowest and highest octaves.

8. Save your new instrument

As we should now have a working instrument, save your EXS24 file by clicking 'Instrument - Save As...'. It will go into the default location of

/Users/myname/Library/Application Support/Logic/Sample Instruments

If you are just creating a single 'stop' ie rank of pipes played individually, you're done for now. If you are creating a coupled instrument, eg. Flute 8 + Flute 4, repeat steps 6, after first clicking the new zone you want to load the instruments into.

9. Setting Loop Points

A realistic electronic organ needs loop cues in its sound files. This is necessary because sample files are relatively short in time (eg. 1 sec), but the instrument player will want to hold a key down to obtain a continuous note sound. To achieve the effect of sostenato, you set loop points in your .wav file so the instrument knows what, and when to repeat. This leads us to a quick discussion on sample sound formats: you will need to choose one that allows for the storage of loop cue points: .wav and .aiff are probably the most common. MP3 does not allow for cue points, so can't be used as a sample when creating organ instruments.

Unless your samples have been accurately, and painstakingly worked on, you're likely to need to set your own loop points. To understand looping, a quick discussion on the components of a musical instruments sound is in order. When a key is pressed on a real pipe organ, there are 3 broad components to the sound.
  1. The first is the 'start'* of the sound, and is visible in a wave display as the first change from silence to sound. This will include one or more transients ('changes' in waveform) that represent the beginning of air blowing through the pipe, or even the sound of the key to pipe mechanical action. Timewise, this roughly equates to the 'attack' component at the start of a note playing.
  2. The second component of the sound is the rolling note* - this is visible as a relatively stable wave form and continues until almost the end of the wave file. A section of this component is used to set your loop ie. the repeating part of the sound as a key is held. It roughly correlates with the 'sustain' section of a note.
  3. The third component is the end of the key press*, and represents the corresponding reduction in sound and perhaps a subtle clicking sound as the pipe is 'reblocked' from the air blower. This is similar to the 'release' part of a note.
AttackLoop (Sustain)Decay


* This is, technically-speaking, a gross simplification! Although the comparisons to the ADSR (Attack, Decay, Sustain, Release) are not strictly technically valid, they do point roughly to the timing points in the sound.

To accurately create an electronic version of a pipe organ key press, you need to identify the repeating loop section of the wavefile that represents holding the key. As your sample file is likely to be short (ie. less than 2 seconds), you will need to identify this loop accurately so your instrument sounds correct when a keyboard (manual) key is held down. If you're lucky, your sample file may already nominate the start/end sample numbers of the loop, but otherwise you will need to edit the sound file. Fortunately, Logic Pro has a good sample editor that lets you do this relatively easily. Your challenge here is to identify the start of the repeating loop, and match a joining end of the loop that permits the loop to play without clicking, and with stability in the sound produced.

To edit the sample, click the arrow next to the file name in the EXS24 Instrument Editor, and select 'Open in Sample Editor' (or after selecting the note/file line, press Ctrl-W). You now return to the main Logic Pro window, with the sample loaded in the bottom section of the screen. Move the other windows out of the way (EXS24 and Instrument Editor - save first if need be), and adjust the scale of the frame so you can see the entire wave file. Notice the 'S. Loop' line at the bottom of the window - a green horizontal bar represents the currently selected loop region. Zoom in on this section, right click the green loop bar and click 'Sample Loop -> Selection'. You now have your default loop selected. Make sure the loop button in green is selected, and press play to see how the loop sounds. The ideal sound is one that includes no clicks, and remains stable - sounding like an organ key held down. If you zoom in hard to the start of the loop, you'll see the point in the waveform where it starts. Make a mental note of the 'shape' of this point ie. where it begins in the cycle eg. 'at the start of the 3 short sine-waves'. Now go to the end of the loop bar, and check to see where the final loop point is set. For the above example mental note, this would mean the end point is set 'at the beginning of the 3 short sine-waves'. Click the play button to hear the loop repeat, which (helpfully) you can do as you adjust the loop points. There's a bit of an art to choosing loop points, and you'll need to experiment to get things sounding right. An important setting option is 'Snap Edits to Zero crossings' under the 'Edit' button. I prefer to switch this off while setting loop points, as it allows the kind of detailed, granular control you need to get the points right.

There's a distinct tradeoff to manage when setting the length of your loop. Too short, and you may miss the subtletly ot the pipe organ sound, too long, and you may include too much variation in the loop which manifests itself as an odd, unnatural repeating. I prefer to go short rather than long to avoid this issue, but the most important thing is to set loop points so you don't hear any ugly clicks as the loop repeats. These sound like a low frequency hum, and are immediately discernable to the ear. The best strategy when setting loop points is to start and end the loops at the zero crossing (ie. where the loop volume hits zero), so the loop start and end join points are exactly the same volume wise - that is, zero.

Left/right channel phase mismatches when looping

If you're struggling to get your loop right, and seem to be unable to avoid annoying clicks, one problem might be that your left and right channels are out of phase. While this adds richness to the original sound, it hampers loop setting, because unfortunately there's only a single loop start/end point to cover both channels and it can be very difficult to find left and right channel zero points that coincide in time. You have a few options to deal with this problem:
  1. find another area (sample start to sample end) where the channels are in phase
  2. increase the size of your loop, and simply keep looking for zero cross points that are in sync in both the left and right channel ie. in phase
  3. if you have access to more advanced sound file editing software (eg. Audacity, or SoundTrack Pro), fix the phasing around the area you want to loop ie. move the left or right channel slightly so the zero cross points line up. This option is the most difficult, as you may need to stretch the audio slightly to get the phases lining up, which is not ideal
  4. re-sample your sound file in mono, in which case the phasing problem is gone. This sounds worse than it actually is: a mono organ pipe sound, processed with reverb and perhaps a little chorus still gives a good effect.
Here's an example where the left and right channels are out of phase:



An out-of-phase left and right channel - see point above green loop bar start

Setting good loop points: summary
  • Aim to start and end loop on zero-crossings
  • Switch off 'Snap edits to zero-crossings' (part of the 'edit' dropdown) to place cue points more accurately
  • Large loops are more 'accurate' or richer sounding, but may contain harmonics, or changes in the sound over time that make the loop sound too noticeable.
  • Small loops repeat more consistently, but can lose richness and sound artificial - although for pipe organs you'd be surprised how natural a relatively small loop can still sound.
  • As the .wav file contains one loop pointer for both left and right channels, an out-of-phase sound can be very difficult to loop. Choose another area in the file to loop, or consider re-phasing the channels to get a better loop (need advanced software for this).


Once your satisfied with your loop settings, you can save the file by clicking 'Audio File - Update File Information'. The wave file will now unload from the sample editor, and you can return to the EXS24 instrument settings screen.

10. Adjusting Volume for Multi-Zone Instruments.

If you're setting up a pipe organ instrument that plays multiple sounds at the same time (the effect you get when pulling out multiple stops on a real pipe organ, or pushing a coupler button), you will need to decrease the volume of the sounds to avoid distortion. This can be done for an entire group - simply click the 'Groups' button at the top left of the EXS24 Instrument Editor, and adjust (decrease) the volume for each group. I find -12 decibels works well for a 4-ranked pipe organ.

11. Key Off Triggers

A real pipe organ makes a distinctive sound when a key is released that represents the quiet 'click' that you hear as the pipe stop is released. You can duplicate this effect in the EXS24 by creating a new group eg. 'Pipe Key Release', adding the sample sounds and in the group settings, set the Key Trigger to 'Key Release' instead of the default 'Key Press'. This is advanced usage, and adds signficant size (and memory requirement) to your instrument file, so is not necessary for your basic organ. High quality custom electronic organs like Hauptwerk and Jeux D'Orgue include these wave files in their set up.

12. Modify the EXS24 Level to replicate single velocity setting.

Unlike a piano, an organ key press results in a single velocity - the note is either on or off. You can replicate this effect in the EXS24 by dragging the lower velocity slider up to the upper slider. You many not want the velocity at the highest (top) setting though - rather set it at the point where the volume sounds natural and there's no distortion.

Level setting before

Level setting after - note not at full level

13. Other EXS24 Settings.

The EXS24 also includes a host of other settings that modify the way the samples are played, included Envelope ASDR (Attack/Sustain/Delay/Release), a tuner/detuner, 2 LFO's as well as a basic filter containing Cutoff, Resonance, Drive and bandwidth settings. You may wish to play around with these to get a more realistic sounds, but they're not necessary at first.

14. Distributing your work.

The EXS24 makes it easy to share your work with others. In the EXS24 Instrument Editor, simply click 'Instrument - Export Sampler Instrument and Sampler Files' and save to a location. Other users can install the new instrument you've created by simply unpacking your files into their:
/Users/username/Library/Application Support/Logic Sampler and Sampler Instrument directories. Within Logic Pro, the new instrument will appear in the EXS24 load instrument window.

Pipe Organs and the Logic Pro Environment

Once you've set up you organ instrument, you'll want to use it like a real organ, and this means creating the equivalent of 'couplers' to mimic the effect of pulling multiple stops. The alternative is to make many instruments in EXS24, each of which includes/excludes the various pipe rank combinations, but that would add to your file sizes significantly.

I haven't worked out how to do this yet, but know that will involve the use of the Logic Pro environment. What I'd like to able to do is to create new instruments (with no software instrument loaded) that simply link up to multiple other selected pipe organ (pipe rank) instruments. For example, I'd have separate tracks (and EXS24 instruments) for Flute 4', Flute 2', Bourdon 8' and Cornet. Then I want a new track that links its MIDI output to multiple instruments eg. just the Flute 4' + Flute 8', like a real coupler. A more advanced environment might even allow me to create a graphical interface that has 'stops', of which more than one can be chosed at the same time. I'm pretty sure Logic Pro can do all this, but need to experiment more before I can update this blog. Any tips greatfully accepted!

Comments