LoopAuditioneer user guide

Quick links to subjects

At present LoopAuditioneer can work on files in two different ways. Either in single file mode, where one file at a time is loaded, or in batch mode where all wav files in a source folder will be processed into any target folder (effectivly either overwriting existing source files or creating copies with the modifications).

Single file mode

In single file mode one start with selecting a folder to work with. Then all wav files in that folder will be listed in a list box. Double clicking on a file in the list or simply selecting one file and then using the toolbar icon or menu command will open the file.

The currently open filename will be displayed and if any loop or cue data is present it will be presented in the tables. Of course one will also see the waveform with loops and cues drawn over it (if they exist). The current sustainsection will also be marked on the waveform in a slightly different color thus indicating where in the data loops will be searched.

A screenshot showing the LoopAuditioneer GUI

The audio waveform will adapt itself depending on the window size and it's also now possible to zoom in on amplitude of the waveform. The only way to get more details in time is by increasing the width or maximizing the window.

Playback

A screenshot showing the loop parameter dialog After selecting a loop or cue, which is done by clicking on it's row in the table, it's possible to play back the audio (from toolbar icon or menu item). If a loop is selected playback will start at the beginning of the file and then continue in the loop until either another loop or cue is selected or playback stopped. If a cue is selected then playback will start at the cue marker (usually the release marker) and play to the end of file and then stop.

With the 0.8.6 release the user now has the possibility to select audio Api and Device to use and not only rely on what is detected as system default. The Linux binaries distributed will be compiled with Pulse, Jack and ALSA support. Windows will have DS and WASAPI.

Manual loop creation/editing

Loops can be manually created in the opened file if one knows what samples the start- and endpoint should have. It's just to click on the toolbar icon or use the menu item to open the dialog where the values can be entered.

Since the 0.8.7 release when the manual loop creation dialog is invoked, a basic loop suggestion around the endpoints of the current sustainsection will be presented based on a simple zero crossing detection.

If the sustainsection is set to manual (the automatic detection of sustainsection is disabled in the autoloop settings) it's possible to adjust the endpoints of the sustainsection directly on the waveform display. Thus it's possible to create loops in specific areas of the audio file fairly easily in a manual way. This might be useful when the automatic detection fail to produce good results.

The same dialog can be triggered on already existing loops as well for editing the start and end values. To do so just right click on the row for the loop in the table.

Manual cue creation/editing

A screenshot showing the Add cue context pop-up menu To create a new cue place the mouse marker on the waveform at the desired position and right click. In the context menu that pops up, click on "Add cue". If you change your mind before clicking on "Add cue" it's just to click somewhere else to close the pop up menu.

If you wish to edit the position of a cue, left click on the cue marker flag once and then left click again at the desired position on the waveform and the cue will be moved.

For all cue creation or positioning the application will calculate which position closest around where the user clicked will have the lowest RMS power (and thus be closest to zero) and place the marker there automatically.

Automatic loop detection

The settings for automatic loop detection can easily be adjusted in the dialog and any changes will be saved when the application is closed. To adjust the settings no file will even have to be loaded, and the settings used in single file mode will also be used for batch processing where the user won't be asked for the settings before the batch is run. Thus, to alter any settings when searching in batch mode you must return to the main window.

When the user is happy with the settings and have stored them, there's no need to revisit the settings dialog unless one wants to change the settings. Instead it's just to click on the magnifying glass to start automatic search for loops (or selecting the option from the menu or by using keyboard shortcut).

How the settings control loop detection

First of all one have the choice of letting the application detecting the sustain section or if one wants to have manual control of where in the audio data loops should be searched. If the autodetection checkbox is unchecked the start and end sliders can be moved to what percentage of the audio data respecive position should have. This can sometimes be useful if there are defects in the audio data that should not be within a loop, or if one really wants finer control of where the loop should be. When autodetecting the sustain section the application will scan the file both from the start and from the end and try to find all the stable part of the note, with just a little offset from the beginning to let the note stabilize itself.

Please note that if the sample is very short then it's best to not use the auto detection of sustainsection, but instead use the sliders to assure that a usable section is searched.

The checkbox labeled "Search w. brute force" will alter the search method described later and will instead search all loops matching the minimum looplength, and quality before finally making a selection of the best quality ranking ones matching the minimum loop distance. Enabling this feature will result in longer search times but should make it possible to find high quality loops.

The derivative threshold will decide which parts of the audio data that will be considered suitable for being loop point candidates. Basically the program will first search for where the signal is changing the most and then add all points beneth the threshold as candidates. Thus increasing the threshold will allow more points to be candidates (even if the audio data changes more at that position) and lowering it will reduce the amount of candidates (but the ones that will be added will be guaranteed to have less changes happening in the audio data).

The minimum loop length simply tells the program to not search for loops shorter than this value. A lower value will result in more loops found and longer search time. A higher value will make sure that no loop will be shorter than that value and speed up the search process as fewer candidates will be matched against each other.

A screenshot showing the settings dialog for autosearching loop points The minimum time between loops will make sure than no loop start will be closer to another loop start than this value. This will also mean that when a loop with sufficiently good quality is found the application will not search for any loop starting closer than this value, even if it could possibly be a better loop to be found there (except if brute force is enabled). Increasing this value will of course increase the distance between loop starts and speed up the loop searching, while decreasing the value will allow more loops to be considered and also increase the processing time.

The quality factor will control which loop candidates will actually be considered good enough. The value as such is used in the (cross) correlation of the start and end points, and is expressed as total number of sample differences in the correlation window (two samples before start or end point and two samples after) for 16 bit short data, but since the searching is actually done with floating point data instead the value is internally converted to the correct scaling no matter what audio format the file uses. Higher values will allow bigger differences between start and end, and also increase the numbers of loops that will be found, but then the loopstart and end can possibly be less correlated to each other.

The number of candidates value will control the maximum number of candidates to check. A higher value will of course mean more points to check and match to each other, which in turn means longer processing time. The application will actually in the first pass select all possible loop candidates within the sustainsection (decided from derivative threshold) and then if the number of candidates value is less than the found amount it will make sure that the candidates to consider in the loop searching will be evenly distributed across the sustainsection.

Loops to return value controls how many loops will actually be shown to the user after searching is complete. The value can be between one and eight. Do note that LoopAuditioneer can handle any amount of loops in the application but only 16 max will actually be saved to file!

Loop pool multiple tell the program to stop looking for loops when it has found this number multiplied with loops to return value of loops with correlation better (lower) than the quality value. Higher value means more loops to choose between but also longer search time.

Before returning the found loops to the user, the found loops will be sorted according to correlation quality and the ones with the best values will be first to be returned, but it's not necessarily the best ones nevertheless, only your ears will be able to tell if a loop is good enough or not!

No loops found!

If you get this message when autosearching for loops the following changes might help you get better results. I recommend you try them in the order I've written them one at a time cumulatively until you (hopefully) get some results. The exact combination of the settings that will work best for a certain sample might be different to the next one you process (unfortunately).

By following this strategy you should be getting some loops found, but they might not be good or seamless.

The loops are no good!

So, the program does find loops for you but they aren't seamless (have clicks and pops at the loop point). Here are some strategies to (if possible) improve the results. This is especially useful strategies if the program really returns as many loops as you ask for.

If you find that not as many loops are returned as you ask for and still the quality of those found are not good enough, you might have to combine the changes from the previous section with these until you get something good. So far this autosearch has produced at least as good loops as any other software I've tried, but the settings really have to be tweaked quite a bit in certian cases.

Crossfading loops

As a last resort if no seamless loops can be found there's a possibility that a crossfade might fix the issue. Select a loop in the table and right click and choose crossfade loop (or click in the toolbar or use the menu). Usually linear fades gives best results. However, please note that this feature of course will change the audio data so use it with care.

Waveform overlay at looppoints

How the waveform overlay dialog works is to take a number of samples around the looppoints (for the currently selected loop) for each channel and graphically overlay the start- and endpoint so that you can see how well they match. The number of samples displayed can be configured in the lower left corner. The actual looppoint should be centered in the display (if possible). The loopstart and loopend has different colors in the waveform overlay, but if they match really well you'll only see one!

While the waveform overlay can be an useful tool for additional control, the best way to create loops is to use the automatic detection, and assess their quality by ear.

Autodetect pitch

A screenshot of the auto pitch detection dialog From the toolbar bell icon or from the menu item (or keyboard) it's possible to invoke the pitch dialog when an audio file is open. The program will automatically try to detect the pitch in the sample by a FFT-based, it's relative HPS (harmonic product spectrum) and a time domain based algorithms. This information is also presented as dwMIDIUnityNote and dwMIDIPitchFraction which can be saved to the file. It's also possible to instead manually edit the values from this dialog if the checkbox is unchecked.

Also note that already existing information in the audio file will be presented in this dialog in the lower (initially disabled) part. The MIDI note and Pitch fraction that already exist in the file will also show up in the file list in the main window.

When to use what type of detection? The time domain pitch detection is generally more accurate with single pipe samples of lower to medium frequencies. The FFT based detection on the other hand is better with multiple pipes (like a mixture) and higher frequencies (say around the 072-C of a 8' stop) and in some instances the HPS method will give the best average. With very difficult samples I still use another analysis software (like Praat) to detect the correct pitch peaks and set it with the manual method.

The autodetection of pitch is also possible to do as a batch process, but then this dialog won't be shown to the user, only the detected (and stored) pitch frequenzy for every file processed. There are processes for FFT, HPS and time domain as well as an option to only list the detected pitches and the deviation from standard equal temperament at a1=440 Hz. This listing can be useful if one wants to manually add pitch correction in the .organ file for the pipes. The listing of course does not change or write anything to the files!

Saving or save as...

The user has the possibility to save the current file, in effect overwriting it, or to save it as a copy under another name or in another folder. When saved or saved as only the loops and cues that have the checkbox ticked (selected) in the Save column will be written to the file. Also there's a limitation of max 16 loops and 99 cue markers that can be written, if more than that is present only the first ones (up to limitation) will be saved.

Batch processing

A screenshot showing the batch process dialog If the batch process dialog is invoked, either by toolbar icon or from menu, the user has the possibility to select a source folder from which every wav file will be processed and saved to the target folder. The destination can be the same as the source or any other folder. The user even has the option to create a new folder for the target (for natural reasons the source folder must already exist!).

The few different batch processes that can be chosen at the moment won't need much comments. Just remember that when batch searching for loop points the same settings will be used for the whole batch and they must be set from the main window.

Already existing loops and cues will not be overwritten when running the batch, but the number limitation still apply of course. This makes it possible to run the same batch with different settings to get different results.

Zooming and keyboard shortcuts

To make it easier to accurately set the release marker it's now also possible to zoom in/out on the amplitude of the waveform. To do so just use the toolbar icons or menu items in the view menu. Or of course by the keyboard shortcuts that are available.

The currently available keyboard shortcuts are:

Ctrl + O
- opens a dialog to select working folder
Ctrl + F
- opens the selected file from the listbox
Ctrl + Alt + U
- opens the next upper file in the listbox (closing any currently open file without saving)
Ctrl + Alt + N
- opens the next lower file in the listbox (closing any currently open file without saving)
Ctrl + S
- saves the current file (overwrites it)
Shift + Ctrl + S
- save as...
Ctrl + Alt + S
- saves currently open file, then close it and open next lower file in listbox
Ctrl + A
- opens the autoloop settings dialog
Ctrl + Q
- Exit the program
Ctrl + +
- zoom in on amplitude
Ctrl + -
- zoom out on amplitude
Spacebar
- start/stop playback of selected loop/cue
Ctrl + V
- loop only playback, start near selected loop end
Ctrl + N
- opens a dialog to manually add a new loop
Ctrl + Z
- autosearch for loops with current autoloop settings
Ctrl + B
- opens up the batch process dialog
Ctrl + D
- opens the auto-pitchdetection/pitch information dialog
Ctrl + X
- opens the crossfade dialog for selected loop
Ctrl + W
- opens the waveform overlay for selected loop
Ctrl + C
- opens the cut & fade in/out dialog
Ctrl + I
- opens the INFO text dialog
F1
- shows the help information dialog
A
- increase volume multiple
Z
- decrease volume multiple
S
- navigate up (to next) the file list in the listctrl
X
- navigate down (to next) the file list in the listctrl
D
- navigate to next (upper) loop in the looplist
C
- navigate to next (lower) loop in the looplist
F
- navigate to next (upper) cue in the cuelist
V
- navigate to next (lower) cue in the cuelist
W
- toggle selected loop/cue save option on/off
E
- toggle all loop(s) save option on/off
Q
- toggle all cue(s) save option on/off

Boosting the playback volume

For softer samples (with low amplitude) it's now possible to boost the playback volume by dragging the slider handle to the right. Each step will increase the volume by doubling (should be approximately a +6 dB increase) the previous volume boost. One can in other words have a multiple of x1 (normal/natural) furthest to the left or x2, x4, x8 or x16 to the amplitude. This feature is now also available from keyboard shortcuts (see above).

Cut and fade in/out

A screenshot showing the cut and fade dialog It's possible to cut from both beginning and end of a sample as well as performing both fade ins and out. Each feature can be used alone or in combination. This feature exist both in single file mode and in batch process mode.

The dialog when choosing this tool for an opened file have four spin controls. Each of them control the specific part of the feature: cut from beginning, fade in, cut from end, fade out. The values are expressed as milliseconds. A value of 0 means that that option of the feature will not be used. All the cuts are performed before any eventual fade(s).

Trim away unused sample data

Sometimes the size of the samples need to be minimized and for that reason it's possible to trim away all unused sample data after the last loop and the release marker, or all data after the last loop if no cue marker exist. This feature is only available as a batch process.

Feedback

If you have any suggestions about the software, bug reports or thoughts about the value range of the settings, you are welcome to contact the author. See the README file or use the contact information on the Sourcefoge page.