Ciao Darkman, ti ringrazio per la risposta e soprattutto, cosa che mi fa davvero molto piacere, per la tua disponibilità a dare la luce in quel mistero che si chiama “programmare in ambiente ALSA”.
Se sei disponibile a scrivere un manuale
leggero, ma
esaustivo e finalmente
chiarificatore (laddove gli altri tutorial in giro omettono o latitano), potresti anche – momentaneamente – pubblicarlo in questo forum a mo’ di post. Magari successivamente potresti pubblicalo in sito tutto tuo, o vedere un po’ se nel sito ufficiale di ALSA te lo pubblicano (c'è pure qualcosa in spagnolo !).
Mi permetto con modestia e rispetto nei tuoi confronti

di segnalarti al riguardo qualche elemento che sarebbe opportuno – io credo – fosse tenuto in considerazione nella stesura del tuo futuro manuale.
I manuali (o tutorial come voglia dirsi) presenti in rete spesso sembrano – incomprensibilmente

- rivolgersi a utenti
che già conoscono molto bene la materia che si intende spiegare. E’ un po’ come se, volendo spiegare come si fa la pasta fatta in casa, dicessero solamente: <<
Per fare la pasta ci vuole acqua e farina e poi farla cuocere. >>, oppure volendo spiegare come si guida un’automobile dicessero: <<
L’automobile si guida accelerando e usando il manubrio. >>

. Immagina, Darkman, quali cuochi o autisti uscirebbero fuori da scuole di cucina e scuole-guida con tali metodi di insegnamento !
Ed allora, io credo che la stesura di un manuale
non può e non deve 
avere quel tipo di piega: innanzitutto chi scrive
deve porsi “
dal punto di vista di chi lo legge”, "
di chi vuole apprendere” (...perché non sa, appunto, se no non leggerebbe un manuale !), ossia una persona che – al di là del grado di conoscenza in materia di programmazione – NON conosce in dettaglio il protocollo ALSA ed il suo funzionamento, ossia “come” i comandi e le sue funzioni “vanno usate” e “correlate fra loro” per ottenere un pur minimo risultato.
Ecco, per esempio, un metodo di approccio “potrebbe” essere quello di procedere “
per gradi” di complessità: dopo aver dato una spiegazione di massima (bastano alcune righe) però chiarificatrice dell’architettura di ALSA, procedere con la spiegazione delle funzioni mediante gli esempi. Voglio dire, ad un certo punto potresti dire: <<
Ora cominciamo con le funzioni e comandi essenziali, ossia quelli che IN QUALSIVOGLIA PROGRAMMA DEVONO SEMPRE ESSERCI. Come progetto esemplificativo cominciamo con un piccolo ed essenzialissimo sequencer Midi per ottenere il nostro primo suono di una nota. >>. E quindi potresti procedere:<<
Dunque, poiché l’architettura ALSA abbiamo visto che prevede “questo....”, allora dobbiamo innanzitutto appunto realizzare “questo...”. Lo si fa con questi comandi delle API ALSA “Tizio” e “Caio”. Attenzione a non dimenticare che nella funzione Caio ci va “questa cosa.....”, altrimenti succede “questo errore....”. Nella funzione Tizio la variabile “x” ha “questa caratteristica....”, perché......., altrimenti.... “. Fatto questo, passiamo ora al secondo passo: ALSA richiede quest’altra “cosa......”, la realizziamo utilizzando questa funzione API, chiamata: “Sempronio”; la quale deve sempre avere....................., perché..............., altrimenti succede questo errore.............. >>.
Guarda, Darkman, bastano 1 o 2 righe per ogni spiegazione, comprensibili, precise e
chiarificatrici del perché lo si deve fare.
Insomma, il manuale deve guidare “
passo passo” l’utente a realizzare l’obiettivo finale. Il manuale NON deve dare tutte le righe di programmazione del software, ma
“individuare” i passaggi logici, temporali e consequenziali da realizzarsi; del tipo: 1^ cosa da fare mediante questo; 2^ cosa da fare mediante quest’altro; 3^ cosa da fare mediante quest’altro; etc..... Come ho già detto spiegando “
brevemente” (basta anche solo
1 riga !) il perché .
Insomma, Darkman, tornando all’esempio dell’automobile, il manuale dovrebbe dire: “per far muovere un’automobile, assicurarsi innanzitutto che vi sia sufficiente benzina nel serbatoio e la batteria per l’energia elettrica. La benzina è necessaria perché il motore è a scoppio e funziona con quella. Attenzione: non mettere acqua, perché non sarebbe supportata dal motore. La batteria poi serve innanzitutto per la fase iniziale di accensione del motore mediante il motorino d’avviamento.” ....altro che solamente: "
accelerate e vedrete che si muoverà." !!!
Voglio fare un esempio un po' più concreto e pertinente. Da quel che ho potuto vedere in alcuni listati, il richiamo alla libreria delle API di ALSA c'è sempre. Ed allora nel manuale questo è un passaggio essenziale che va messo nel giusto rilievo. Insomma, più o meno del seguente tenore (per capirci...): <<
Cari amici programmatori, la prima [se lo è]
cosa a cui pensare, quando cominciate un qualsiasi progetto che deve lavorare in ALSA, è richiamare la libreria delle API di ALSA; si fa in questo modo.......... E' necessario questo richiamo, altrimenti non potranno essere usate le funzioni di ALSA.>>. Insomma una roba del genere, Darkman.
...comunque sia, Darkman, non so se mi sono spiegato.
Poi, ovviamente, i tuoi lettori potranno magari contattarti, laddove necessario, per avere lumi su specifici concetti e passaggi.
Se sei ancora intenzionato a scrivere questo tuo
utilissimo manuale, posso "aiutarti" dandoti qualche spunto già con qualche
domanda 
su passaggi di carattere generale.
Grazie moltissime ancora per la tua disponibilità.
Ciao