Software effect processor
A software effect processor is a computer program which is able to modify the sound coming from a source of sound in real time.
Principle of operation
The audio signal from the input is transformed to the digital (a stream of numbers) in audio hardware and passed to a piece of computer memory, called buffers. Then it is modified according to a specific algorithm, which creates the desired effect. After this operation, the signal is transformed from digital to analog and sent to the output.
Latency
The larger the buffer is, the more time it takes to fill it by digital audio data. Large buffers increase the time required for processing audio in computer, 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 directly (it means, once you set certain buffer size, the latency is constant), but with very high processor loads the processing starts dropping out. Increasing buffer size or quitting other application helps to keep playback smooth.
Drivers
Microsoft Windows
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 is a universal ASIO driver named ASIO4ALL, 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.