[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 336.   Gestione della scheda audio

La scheda audio essenziale è semplicemente un mixer audio comprendente diversi ingressi e una o più uscite. I dispositivi più importanti relativi alla scheda audio sono /dev/audio e /dev/dsp. In particolare, il primo permette di trasmettere alla scheda dei file in formato digitale Sun, ovvero quelli che normalmente hanno l'estensione .au. Volendo gestire l'audio in modo diretto, attraverso questo file di dispositivo, occorre convertire i file audio nel formato Sun (questo si ottiene di solito attraverso l'applicativo Sox). Nello stesso modo, leggendo da questo file di dispositivo, si ottiene un file in formato digitale Sun del segnale gestito o generato dalla scheda audio. In pratica:

cat mio_file.au > /dev/audio

questo comando serve a eseguire il file mio_file.au, mentre il prossimo

dd if=/dev/audio of=registratore.au bs=8k count=8

serve a registrare per otto secondi (ogni secondo è un blocco di 8 Kibyte) generando il file registratore.au.

336.1   Aumix

Aumix (1) è un applicativo per la gestione delle funzionalità di miscelazione e di equalizzazione della scheda audio. Può essere usato in modo interattivo, richiedendo in questo caso lo schermo di un terminale a caratteri, oppure direttamente attraverso le opzioni della riga di comando. In particolare, nella modalità interattiva mostra solo i canali audio che possono essere controllati effettivamente.

Il funzionamento di Aumix e degli altri programmi analoghi non è perfetto. Alle volte possono apparire dei controlli che di fatto non producono alcun risultato. Purtroppo questo dipende dalla qualità del codice scritto nel kernel per la gestione della scheda audio di cui si dispone.

336.1.1   Funzionamento interattivo di Aumix

La figura 336.1 mostra il funzionamento interattivo di Aumix, che si ottiene avviando l'eseguibile aumix senza indicare alcun argomento. In particolare si fa riferimento a una scheda audio SoundBlaster standard a 16 bit.

Figura 336.1. Esempio del funzionamento di Aumix in modalità interattiva.

aumix  ++++++++++++++++++++++++++++++O+++<Vol      ++++++++++++O+++++++++++++
       ++++++++++++++++++++++++++++++O+++ Bass     ++++++++++++O+++++++++++++
Quit   ++++++++++++++++++++++++++++++O+++ Trebl    ++++++++++++O+++++++++++++
Load  PO+++++++++++++++++++++++++++++++++ Synth    ++++++++++++O+++++++++++++
Save   ++++++++++++++++++++++++++++++O+++ Pcm      ++++++++++++O+++++++++++++
Keys   O+++++++++++++++++++++++++++++++++ Spkr
Mute  PO+++++++++++++++++++++++++++++++++ Line     ++++++++++++O+++++++++++++
      RO+++++++++++++++++++++++++++++++++ Mic
      PO+++++++++++++++++++++++++++++++++ CD       ++++++++++++O+++++++++++++
       O+++++++++++++++++++++++++++++++++ Mix
       O+++++++++++++++++++++++++++++++++ IGain    ++++++++++++O+++++++++++++
       ++++++++++++++++++O+++++++++++++++ OGain    ++++++++++++O+++++++++++++
       0             Level            100          L         Balance        R

Tanto per rendersi conto di questa variabilità nell'apparenza di Aumix, si può osservare anche la figura 336.2 che mostra cosa accade con una vecchia scheda SoundBlaster a 8 bit.

Figura 336.2. Aumix con una vecchia scheda a 8 bit.

aumix  ++++++++++++++++++++++++++++++O+++<Vol      ++++++++++++O+++++++++++++
      PO+++++++++++++++++++++++++++++++++ Synth    ++++++++++++O+++++++++++++
Quit   ++++++++++++++++++++++++++++++O+++ Pcm      ++++++++++++O+++++++++++++
Load  PO+++++++++++++++++++++++++++++++++ Line     ++++++++++++O+++++++++++++
Save  RO+++++++++++++++++++++++++++++++++ Mic
Keys  PO+++++++++++++++++++++++++++++++++ CD       ++++++++++++O+++++++++++++
Mute   0             Level            100          L         Balance        R

I canali stereofonici hanno anche la possibilità di essere bilanciati, come si vede intuitivamente dalle figura. Per selezionare un canale si possono utilizzare i tasti [freccia su] e [freccia giù]; per passare alla regolazione del bilanciamento si può utilizzare il tasto di tabulazione, [Tab], così come lo si può usare per tornare indietro all'elenco dei canali. Infine i tasti [freccia sinistra] e [freccia destra] permettono di regolare il volume del canale o di cambiare il bilanciamento, a seconda di dove si trova il cursore. È interessante notare che anche il mouse funziona, se gestito attraverso il demone gpm.

A fianco di alcuni livelli di volume appare la lettera «P», oppure la lettera «R». La prima sta per play, mentre la seconda sta per record. In pratica, i canali contrassegnati con la lettera «P» rappresentano un segnale in ingresso nel mixer audio, diretti semplicemente all'amplificatore finale (le uscite normali della scheda audio). Invece, i canali contrassegnati con la lettera «R», oltre che essere diretti all'amplificatore finale, sono utilizzati per il campionamento del segnale (di solito uno soltanto) ed è ciò che si riesce a leggere dal dispositivo /dev/audio.

Generalmente è solo il canale del microfono ad avere la sigla «R» e questo per ovvie ragioni. Tuttavia, è possibile modificare il comportamento di alcuni canali utilizzando la [barra spaziatrice], oppure il mouse (basta fare un clic sulla lettera per scambiarne il valore).

Tabella 336.1. Alcuni comandi utili per l'uso di Aumix in modo interattivo.

Tastiera Descrizione
pagina su, freccia su Passa al canale precedente.
pagina giù, freccia giù Passa al canale successivo.
Tab, Invio, >, < Scambia tra la regolazione del livello e del bilanciamento.
+, freccia destra Sposta il cursore a destra.
-, freccia sinistra Sposta il cursore a sinistra.
| Centra il bilanciamento.
Spazio Scambia la modalità di registrazione e di esecuzione.
S, s Salva le impostazioni nel file di configurazione.
L, l Carica le impostazioni dal file di configurazione.
K, k Mostra un guida sull'uso della tastiera.
M, m Azzera o ripristina il volume generale.
Esc, Q, q Termina il funzionamento.

336.1.2   Avvio di Aumix

aumix [opzioni_di_canale] [altre_opzioni]

L'eseguibile aumix è tutto ciò che compone l'applicativo omonimo. In modo particolare, le opzioni possono servire per regolare il volume di un certo canale (purché questo abbia una corrispondenza con la scheda audio disponibile effettivamente), oppure per conoscere il livello attuale o ancora per scambiare le modalità «R» (record) e «P» (play).

Alcune opzioni di canale

-v percentuale|q[uery]

Definisce o richiede di conoscere il valore del volume generale, espresso in forma percentuale rispetto al massimo.

-s percentuale|q[uery]

Definisce o richiede di conoscere il valore del volume del sintetizzatore, espresso in forma percentuale rispetto al massimo.

-w percentuale|q[uery]

Definisce o richiede di conoscere il valore del volume di una riproduzione digitale (PCM), espresso in forma percentuale rispetto al massimo. Si tratta del volume dell'esecuzione di un brano contenuto in un file.

-l percentuale|q[uery]|R|P

Definisce o richiede di conoscere il valore del volume della linea di ingresso esterna, espresso in forma percentuale rispetto al massimo. Se si utilizza la lettere R o la lettera P, si intende passare alla modalità di registrazione o a quella di esecuzione.

-m percentuale|q[uery]|R|P

Definisce o richiede di conoscere il valore del volume del microfono, espresso in forma percentuale rispetto al massimo. Se si utilizza la lettere R o la lettera P, si intende passare alla modalità di registrazione o a quella di esecuzione.

-c percentuale|q[uery]|R|P

Definisce o richiede di conoscere il valore del volume del canale relativo al lettore CD, espresso in forma percentuale rispetto al massimo. Se si utilizza la lettere R o la lettera P, si intende passare alla modalità di registrazione o a quella di esecuzione.

Altre opzioni generali

-L

Carica le impostazioni dal file di configurazione ~/.aumixrc o in sua mancanza dal file /etc/aumixrc.

-q

Interroga lo stato di tutti i canali esistenti e mostra il risultato attraverso lo standard output.

-S

Salva le impostazioni nel file ~/.aumixrc.

Esempi

aumix -v 70

Regola il volume generale al 70 %.

aumix -m 0 -l R

Regola il volume del canale microfonico a zero e indica la linea di ingresso come canale in registrazione.

336.1.3   Configurazione

La configurazione di Aumix consiste semplicemente dei file ~/.aumixrc. Il file di configurazione personale viene creato utilizzando l'eseguibile aumix con l'opzione -S, oppure quando il programma funziona in modalità interattiva, attraverso la pressione del tasto [s]. Il file di configurazione non viene caricato automaticamente: lo si può richiedere attraverso l'opzione -L, oppure attraverso il tasto [l].

Quando viene caricata la configurazione, se il file ~/.aumixrc manca, Aumix fa riferimento a /etc/aumixrc, che potrebbe essere ottenuto semplicemente copiando una configurazione personale che si ritiene adatta a livello generale, in mancanza d'altro.

A titolo di esempio viene mostrato il contenuto di uno di questi file di configurazione, dove il significato delle righe che lo compongono dovrebbe essere intuitivo.

vol:76:76:P
synth:0:0:P
pcm:0:0:P
line:0:0:P
mic:0:0:R
cd:0:0:P

Alcune distribuzioni GNU/Linux utilizzano Aumix per memorizzare e ripristinare le regolazioni della scheda audio. In pratica, nella procedura di inizializzazione del sistema si fa in modo di salvare in un file, presumibilmente /etc/.aumix, i valori utilizzati per ultimi durante la fase di arresto, mentre dallo stesso file vengono riletti durante la fase di avvio.

336.2   Esecuzione e registrazione di brani campionati

Per verificare il funzionamento del sistema di registrazione e di riproduzione di brani campionati, si possono usare direttamente i dispositivi /dev/audio e /dev/dsp. Entrambi permettono di leggere il risultato di un campionamento e di riprodurre gli stessi brani se questi vengono scritti sugli stessi dispositivi.

Il primo dei due file di dispositivo, /dev/audio, fa riferimento al formato standard della Sun, semplificato al massimo. I file audio con questo formato hanno normalmente l'estensione .au. Il secondo, /dev/dsp, rappresenta un formato audio grezzo.

Per «registrare» da questi dispositivi, basta leggerli e inviare ciò che si ottiene verso un file normale. Lo stesso file può essere diretto al dispositivo attraverso cui è stato generato, ottenendone la riproduzione. Tuttavia, per registrare occorre selezionare un canale dalla scheda audio, specificando che per questo è abilitata la registrazione. In generale si può trattare del canale microfonico, di quello del CD e della linea di ingresso esterna. In pratica, utilizzando Aumix, si tratta di avviare l'eseguibile aumix con l'opzione -m, -c o -l, rispettivamente, con l'argomento R. In queste condizioni, 8 Kibyte corrispondono a un secondo di riproduzione audio, di conseguenza, si può utilizzare uno dei due comandi seguenti per campionare e memorizzare per un minuto in un file.

dd if=/dev/audio of=registratore.au bs=8k count=60

dd if=/dev/dsp of=registratore bs=8k count=60

Per riprodurre questi file, si devono utilizzare gli stessi dispositivi da cui sono stati generati. Rispettivamente, valgono i due comandi seguenti.

cat registratore.au > /dev/audio

cat registratore > /dev/dsp

336.3   Wavtools

Wavtools (2) è un altro pacchetto per l'esecuzione e la registrazione di file audio in formato WAV. Utilizza in particolare il dispositivo /dev/dsp. Si compone di quattro eseguibili: wavr e gwavr per la registrazione; wavp e gwavp per l'esecuzione.

wavr [opzioni]

gwavr [opzioni]

wavp file_wav

gwavp file_wav_gsm

In pratica, non c'è bisogno di opzioni per eseguire un file attraverso wavp o gwavp. La lettera «g» iniziale di gwavr e gwavp, indica che si tratta della versione predisposta per un formato WAV compresso utilizzando l'algoritmo GSM.

Alcune opzioni di wavr e gwavr

-f file_wav

Specifica il file da registrare.

-r frequenza_campionamento

Specifica la frequenza di campionamento. Alcuni valori comuni sono: 44 100, 22 050, 11 025 e 8 000.

-d dimensione_campione

Definisce la dimensione del campione in bit. Di solito si usano i valori 8 o 16.

-c 1|2

Definisce il numero dei canali: uno per una registrazione monofonica, due per una registrazione stereofonica.

-l n_secondi

Programma la durata della registrazione.

336.4   Xwave

Xwave (3) è un applicativo relativamente completo per la registrazione, la modifica e l'esecuzione di brani musicali registrati in vari formati, in particolare in WAV-RIFF. Si tratta di un applicativo per X. Nella figura 336.3 si vede il pannello principale dopo aver caricato un file WAV.

Figura 336.3. Pannello principale di Xwave.

figure/a2-xwave-pannello-frontale

Il programma eseguibile che svolge tutto il lavoro è xwave. Non richiede opzioni e il suo funzionamento è intuitivo. È interessante la possibilità offerta di modificare un brano, per esempio usando il taglia-incolla (basta selezionare una porzione della traccia con il mouse), oppure introducendo degli effetti.

Può darsi che la registrazione non sia perfetta, ma questo è un particolare trascurabile rispetto alle altre possibilità di questo applicativo.

336.5   Sox

Sox (4) è attualmente lo strumento più importante di conversione di file audio. In linea di massima, Sox è in grado di convertire da un formato a un altro, anche se i passaggi da una frequenza di campionamento a un'altra non danno risultati ottimi; inoltre riesce a introdurre degli effetti interessanti.

Meritano attenzione alcuni effetti che Sox permette di introdurre attraverso la rielaborazione digitale del segnale: è possibile estrarre solo una porzione delle frequenze audio; si possono introdurre effetti di eco e di vibrato; è possibile invertire il brano.

Una particolarità di Sox è quella di distinguere i formati audio in base all'estensione dei nomi dei file (in quasi tutti i casi). La tabella 336.2 riporta l'elenco di alcuni di questi; per un elenco completo e una descrizione più dettagliata si può consultare la pagina di manuale sox(1).

Tabella 336.2. Alcuni dei formati audio gestiti da Sox.

Estensione/tipo Descrizione
.8svx Amiga 8SVX.
.au AU della Sun Microsystems.
.dat Audio espresso in formato testo.
.smp TurtleBeach MediaVision.
.voc SoundBlaster VOC.
.wav MS-Windows WAV-RIFF.
ossdsp Formato del dispositivo /dev/dsp.

336.5.1   $ sox

sox [opzioni_generali] [opzioni_di_formato] file_in_ingresso [opzioni_di_formato] <-'
`->file_in_ingresso [effetti]

sox è l'eseguibile che svolge tutto il lavoro dell'applicativo Sox. Purtroppo la sintassi è un po' confusa e lo schema che si vede qui è già una semplificazione di quella completa. In generale è necessaria l'indicazione di un file in ingresso e di uno in uscita. Per stabilire il formato di un file si fa riferimento all'estensione utilizzata nel nome; eventualmente si possono realizzare anche delle pipeline indicando un trattino orizzontale (-) al posto del nome del file corrispondente (in ingresso o in uscita), però in questo caso occorre indicare un'opzione apposita per specificare il formato a cui si fa riferimento.

Le opzioni di formato si applicano al file indicato subito dopo; in pratica, quelle che appaiono prima del file in ingresso, si riferiscono a questo, mentre quelle indicate dopo il file in ingresso, riguardano il file in uscita.

Gli effetti che Sox è in grado di generare si indicano attraverso delle parole chiave collocate alla fine della riga di comando, dopo l'indicazione del file in uscita.

Alcune opzioni generali

-V

Emette una serie di informazioni sulle fasi del processo di elaborazione. Serve per avere un rapporto chiaro delle trasformazioni che sta applicando Sox.

-v volume

Permette di cambiare il volume del segnale. Il valore 1.0 rappresenta il livello iniziale: valori inferiori diminuiscono il volume, mentre valori superiori lo aumentano.

Alcune opzioni di formato

-t tipo_di_file

Permette di specificare il formato del file successivo (in ingresso o in uscita), attraverso una stringa che rappresenta l'estensione normale di questo (.au, .wav, ecc.).

-r frequenza_di_campionamento

Permette di specificare la frequenza di campionamento del file successivo (in ingresso o in uscita), attraverso l'indicazione di un numero che rappresenta la frequenza in hertz. In generale, è più probabile l'utilizzo di questa opzione in riferimento a un file in uscita.

-c n_canali

Permette di specificare il numero di canali audio del file successivo (in ingresso o in uscita). Come si può intendere, uno rappresenta un file monofonico, due stereofonico e quattro quadrifonico.

Alcune opzioni che rappresentano un effetto

band frequenza_centrale ampiezza

Applica un filtro passa-banda. Gli argomenti di questa opzione sono valori numerici che si riferiscono a una frequenza in hertz.

highp frequenza_filtro

Applica un filtro passa-alto a partire dalla frequenza indicata come argomento. In pratica, le frequenze inferiori risulteranno molto attenuate.

echo ritardo volume

Inserisce un effetto eco in cui il ritardo è espresso in secondi e il volume è riferito all'unità, per cui si utilizzano normalmente dei valori inferiori a uno per indicare un'attenuazione relativa.

vibro velocità profondità

Inserisce un effetto vibrato. La velocità indica la frequenza della vibrazione nel volume del segnale, mentre la profondità indica il volume dell'oscillazione di questo.

reverse

Inverte il corso del brano. Potrebbe servire in particolare per scoprire dei messaggi nascosti che siano stati introdotti ad arte nel segnale audio.

Esempi

sox prova.wav prova-vibrato.wav vibro 5 0.7

Legge il file prova.wav (di tipo WAV, data l'estensione) e lo trasforma nel file prova-vibrato.wav, mantenendo le stesse caratteristiche riguardo al campionamento, ma aggiungendo un effetto vibrato.

sox prova.wav prova-eco.wav echo 1 0.7

Legge il file prova.wav (di tipo WAV, data l'estensione) e lo trasforma nel file prova-eco.wav, mantenendo le stesse caratteristiche riguardo al campionamento, ma aggiungendo un effetto eco.

sox prova.wav prova-1000.wav band 1000 500

Legge il file prova.wav (di tipo WAV, data l'estensione) e lo trasforma nel file prova-1000.wav, mantenendo le stesse caratteristiche riguardo al campionamento, ma filtrando il segnale in modo da selezionare in particolare le frequenze da 750 Hz a 1 250 Hz.

sox prova.wav -t .wav - band 1000 500 > prova-1000.wav

Come nell'esempio precedente, ma in questo caso il file in uscita viene ottenuto attraverso lo standard output, per cui occorre specificare il tipo con l'opzione -t.

Non vengono mostrati esempi in cui si cambia il formato dei file audio, perché si tratta di un'operazione delicata e per questo è meglio leggere la documentazione originale. In particolare, non conviene tentare di ridurre la frequenza di campionamento, perché di solito il risultato è pessimo.

336.5.2   $ play, rec

play file

rec file

Sox è accompagnato generalmente da due script: play e rec. Il loro scopo è quello di facilitare l'ascolto e la registrazione, facendo affidamento sulle capacità di Sox di convertire al volo il formato di questi file. Quando non si ha la possibilità di utilizzare un programma più comodo, questa potrebbe essere l'unica risorsa per riuscire a gestire con un minimo di comodità le funzionalità audio.

A volte, questi script sono errati, probabilmente per un piccolo errore di sintassi nella scrittura di una struttura di selezione (case). Per semplificare le cose, viene mostrato il contenuto essenziale di questi due script. L'esecuzione di un brano registrato in un file avviene in pratica con un comando come quello seguente:

sox file_da_eseguire -t ossdsp -w -s /dev/dsp

Naturalmente, prima del file potrebbero essere aggiunte altre opzioni, se lo si ritiene opportuno; nello stesso modo si potrebbero aggiungere delle opzioni riferite a effetti da inserire nell'audio, indicandole alla fine del comando. In modo analogo, si può registrare un file:

sox -t ossdsp /dev/dsp file_da_registrare

Valgono le stesse considerazioni fatte per il caso dell'esecuzione di un brano, in particolare, le opzioni riferite al file che si vuole ottenere vanno messe subito prima di questo file, cioè dopo l'indicazione del dispositivo /dev/dsp.

Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

1) Aumix   GNU GPL

2) Wavtools   GNU GPL

3) Xwave   GNU GPL

4) Sox   licenza speciale


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome gestione_della_scheda_audio.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]