Hello,
I've recently begun the work of porting a Windows application to LInux/ALSA. I think ALSA and it's drivers are quite good, but the documentation and example code are terribly lacking, especially for one of the most important use-cases of all: the full on digital audio workstation.
I humbly request that a full_duplex_audio_with_midi.c file be added to the example code with the following parameters:
1. Full duplex audio, just simply memcpy'ing the input to the output would suffice 2. Accepts MIDI input; it doesn't have to do anything useful with the data, just printing the event parameters to stdout would suffice. 3. At run time, the application lists all available audio devices and allows the user to select the device, then make settings such as buffer size, sample rate, bit depth and whether to use mmap based on the capabilities of the chosen device 4. At run time, allows optionally selecting a MIDI device. 5. Copious code comments that makes no assumption that the person reading knows anything about the ALSA API or it's constructs, invocations and methodologies.
This could either be an interactive CLI application written in C, or even a full GUI application using Qt or GTK. This could then be used as a shell for writing more complex applications, instead of each developer having to reinvent the wheel by trying to figure out how to combine about 4 or so of the other example applications into a single app.
/Carl