Go to the first, previous, next, last section, table of contents.


Reading From The Device

You read from ahi.device by passing an AHIRequest to the device with CMD_READ set in io_Command, the number of bytes to be read set in io_Length, the address of the read buffer set in io_Data, the desired sample format set in ahir_Type and the desired sample frequency set in ahir_Frequency. The first read command in a sequence should also have io_Offset set to 0. io_Length must be an even multiple of the sample frame size.

Double Buffering

To do double buffering, just fill the first buffer with DoIO() and io_Offset set to 0, then start filling the second buffer with SendIO() using the same I/O request (but don't clear io_Offset!). After you have processed the first buffer, wait until the I/O request is finished and start over with SendIO() on the first buffer.

Distortion

The samples will automatically be converted to the sample format set in ahir_Type and to the sample frequency set in ahir_Frequency. Because it is quite unlikely that you ask for the same sample frequency the user has chosen in the preference program, chances that the quality is lower than expected are pretty high. The worst problem is probably the anti-aliasing filter before the A/D converter. If the user has selected a higher sampling/mixing frequency than you request, the signal will be distorted according to the Nyquist sampling theorem. If, on the other hand, the user has selected a lower sampling/mixing frequency than you request, the signal will not be distorted but rather bandlimited more than necessary.


Go to the first, previous, next, last section, table of contents.