Optimizing Real-Time Performance
When AudioMulch is installed the default configuration allows it to perform glitch-free audio synthesis and processing on most systems. Due to various factors, optimal real-time performance can only be achieved by tuning AudioMulch for a specific computer, operating system and audio interface. It is worth taking the time to tune AudioMulch to take advantage of the capabilities of your system because the program can be much more responsive than when used with the default settings.
This section discusses optimal performance in terms of two parameters: stability and latency. Stability is concerned with the reliability of the audio input and output. A stable system will deliver hours of continuous sound without a problem, an unstable system will contaminate the audio stream with glitches, clicks, pops, stutters and drop outs. Latency manifests as delays between audio entering your audio interface and emerging from your audio interface after having been processed by AudioMulch (audio latency), and as delays between modifying parameter values on screen or via MIDI and hearing the results (control latency). The lower the latency, the more usable the system is for real-time performance, as the system will be perceived to be operating in the moment rather than with a perceptible delay. Achieving a stable system with the lowest possible latency should be your goal when tuning AudioMulch.
One major cause of stability problems is external programs that perform periodic disk activity. On Windows, the following are commonly known to interfere with the stable operation of digital audio software:
- System Agent (included in the Microsoft Plus! pack) can be set to schedule disk scanning and defragmentation at any time. You should avoid having it wake up while using AudioMulch.
- Find Fast for Microsoft Office
- Screen Savers
- CD-ROM Auto-Insert Notification
- Other programs performing processor-intensive operations while using AudioMulch.
- Certain keyboard and mouse drivers.
As discussed below, you may also want to search the internet for the latest information about software that can interfere with stable low-latency audio performance.
Once known sources of instability have been reduced to a minimum AudioMulch settings can be altered to reduce latency until the audio begins to break up, and then eased off until reliable operation is achieved. The settings which determine latency are the audio buffer sizes and number of buffer settings associated with the audio driver. Some driver types provide individual settings for input and output, while others provide only one setting for both. Some driver types allow both the size and number of buffers to be adjusted, while others only allow adjustment of buffer sizes. In all cases latency can be reduced by decreasing the buffer sizes and/or the number of buffers. These settings can be altered on the Audio Driver page of the Settings/Preferences dialog box.
Many factors including the speed of the computer, audio interface and quality of audio drivers affect the minimum workable size and number of buffers. In extreme cases you should be aware that some computers or audio drivers may crash if you attempt to use too few, or too small buffers.
Where separate settings are available for input and output buffers it is advisable to use the same buffer sizes for input and output. If audio output is generally stable but glitches occur when using audio input it may be necessary to increase the number of audio input buffers.
In general, using more buffers produces greater stability. A few larger buffers are usually preferable to a large number of small buffers. However, there are no hard and fast rules that can be applied to all systems. The best thing to do is to experiment.
One other alternative is to experiment with the sample rate used within a patch. While it is accepted that higher sample rates produce better audio quality it should also be noted that higher sample rates result in higher CPU loads. In situations where quality is of lesser concern, a lower sample rate can be employed to reduce CPU load and thereby increase stability. This setting can be selected using the Audio General page of the Settings/Preferences dialog box
In addition to the AudioMulch and audio interface settings outlined above there are also a number of operating system tunings that may increase audio performance. At present there is a significant body of web-discussion devoted to these "tweaks". For this reason we have chosen not to go into any great detail within this document. If you are interested in exploring these ideas further a google search for "Your_OS_Name audio tweaks" should provide myriad resources for research. Your audio interface manufacturer may also provide guidance specific to their products on their web site.