read_sound_input man page
read_sound_input — Retrieves the last recorded audio buffer. Allegro game programming library.
int read_sound_input(void *buffer);
Retrieves the most recently recorded audio buffer into the specified location. The buffer size can be obtained by checking the return value from start_sound_input(). You must be sure to call this function at regular intervals during the recording (typically around 100 times a second), or some data will be lost. If you are unable to do this often enough from the mainline code, use the digi_recorder() callback to store the waveform into a larger buffer of your own.
Note: many cards produce a click or popping sound when switching between record and playback modes, so it is often a good idea to discard the first buffer after you start a recording. The waveform is always stored in unsigned format, with stereo data consisting of alternate left/right samples.
The function will return non-zero if a buffer has been copied or zero if no new data is yet available (you were too fast checking the input).