Dopo aver trattato nella scorsa puntata un approccio ad alto livello per la programmazione dell’audio su Linux, oggi viene presentata una soluzione che si colloca ad un livello ancora più alto rispetto a JACK. L’idea consiste nell’usare Python con Gstreamer, oppure la libreria PyAudio per PortAudio.
Spulciando la documentazione PyAudio è possibile trovare diversi esempi che consentono di acquisire familiarità con il codice qualora si desiderasse imparare a programmare con questi strumenti. Il codice degli esempi inizia sempre con le direttive di importazione delle librerie audio (pyaudio e wave) e della libreria sys che consente di leggere e scrivere file. Dopo queste import si procede con la configurazione del formato dell’audio e del dispositivo audio.
Si apre uno stream, si scrive nello stream ed infine si salva in un file WAVE. Si può notare che per ognuno dei tre esempi presentati, è necessario scrivere pochissimo codice; ciò dipende molto anche dall’assenza di interfaccia grafica. Per chi non conoscesse già Gstreamer una buona introduzione può essere l’articolo di Jono Bacon che descrive i lavori di Gstreamer e anche la libreria che si appoggia su di esso PyGst. Gstreamer ofre molte possibilità creative, e come ESD, offre la possibilità di avere più stream audio contemporanei allo stesso tempo, oltre ad offrire molte altre caratteristiche interessanti.
Nell’esempio contenuto nella documentazionedi PyGst è presente un esempio molto interessante che realizza una semplice audio player. Dopo aver importato i moduli relativi a sys, l’interfaccia grafica realizzata con gtk e pygst, viene configurata la finestra e il player. Risulta degna di nota l’implementazione, particolarmente adatta a dispositivi di tipo handheld, come ad esempio palmari o smartphone. Anche in questo esempio, che include anche una interfaccia grafica, la quantità di codice necessaria è relativamente modesta se paragonata a quella richiesta con un linguaggio di livello più basso.
LEZIONI PRECEDENTI:
19 Dicembre 2007: Un’introduzione all’audio su Linux (1/6)
20 Dicembre 2007: Un’introduzione all’audio su Linux (2/6)
9 Gennaio 2007: Un’introduzione all’audio su Linux (3/6)
14 Gennaio 2007: Un’introduzione all’audio su Linux (4/6)
FONTE: LinuxDEV Center
di Francesco Argese - TuxJournal.net