Software effect processor
Principle of operation
The digital audio signal, whose origin may be analog (by conversion to digital) or be in an already digital source (such as an audio file, or a software synthesizer), is stored in temporary allotments of computer memory called buffers. Once there, the software effect processor modifies the signal according to a specific algorithm, which creates the desired effect. After this operation, the signal may be transformed from digital to analog and sent to an audible output, stored in digital form for later reproduction or editing, or sent to other software effect processors for additional processing.
The larger the buffer is, the more time it takes to play the audio data sent for playback. Large buffers increase the time required before the next buffer can be played, this delay is usually called latency. Every system has certain limitations - too small buffers involving negligible latencies cannot be smoothly processed by computer, so the reasonable size starts at about 32 samples. The processor load does not affect latency (it means, once you set certain buffer size, the latency is constant). But with very high processor loads, the buffer isn't filled with new sound in time for playback, and the sound dropps out. Increasing buffer size or quitting other applications helps to keep playback smooth.
The default Windows drivers are not optimized for low latency effect processing. As a solution, Audio Stream Input/Output (ASIO) was created. ASIO is supported by most professional music applications. Most sound cards directed at this market support ASIO. If the hardware manufacturer doesn't provide ASIO drivers, there are other ASIO free anternatives, which can be used for any audio interface. ASIO drivers can be emulated, in this case the driver name is ASIO Multimedia. However, the latency when using these drivers is very high.
Apple Mac OS X
All the Mac compatible hardware uses CoreAudio drivers, so the software effects processors can work with small latency and good performance.