Retrieves the latency of input or output channels.
|input||Get the input latency? Else, the output latency.
If successful, the latency in samples is returned, else -1 is returned. Use BASS_ASIO_ErrorGetCode to get the error code.
|BASS_ERROR_INIT||BASS_ASIO_Init has not been successfully called.
|BASS_ERROR_UNKNOWN||Some other mystery problem!
The latency is the delay between the sound being recorded and reaching an ASIOPROC, in the case of input channels. And the delay between the sample data being fed to an ASIOPROC and actually being heard, in the case of output channels.
The latency is dependant on the buffer size, as specified in the BASS_ASIO_Start call. So the latency should be checked after making that call, not before.
The latency time can by calculated be dividing the sample latency by the device sample rate. When a channel is being resampled, the sample latency will change, but the effective latency time remains constant.
Display the input and output latency, in milliseconds.
double rate = BASS_ASIO_GetRate(); // get the sample rate
printf("input latency = %g ms\n", BASS_ASIO_GetLatency(TRUE) * 1000 / rate);
printf("output latency = %g ms\n", BASS_ASIO_GetLatency(FALSE) * 1000 / rate);
BASS_ASIO_GetInfo, BASS_ASIO_GetRate, BASS_ASIO_Start