[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 760.   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[Invio]

Questo comando serve a eseguire il file mio_file.au, mentre il prossimo serve a registrare per otto secondi (ogni secondo è un blocco di 8 Kibyte) generando il file registratore.au:

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

Figura 760.1. Schematizzazione delle connessioni esterne tipiche di una scheda audio.

connessioni scheda audio

760.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, o peggio, può anche succedere che qualche livello sonoro esistente non sia accessibile. Purtroppo, molto dipende dalla qualità del codice scritto nel kernel per la gestione della scheda audio di cui si dispone.

760.1.1   Funzionamento interattivo di Aumix

La figura 760.2 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 760.2. 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 760.3 che mostra cosa accade con una vecchia scheda SoundBlaster a 8 bit.

Figura 760.3. 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 760.4. 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 (se la configurazione locale è per la lingua inglese).
[L]
[l]
Carica le impostazioni dal file di configurazione (se la configurazione locale è per la lingua inglese).
[K]
[k]
Mostra un guida sull'uso della tastiera (se la configurazione locale è per la lingua inglese).
[M]
[m]
Azzera o ripristina il volume generale (se la configurazione locale è per la lingua inglese).
[Esc]
[Q]
[q]
Termina il funzionamento.

760.1.2   Avvio di Aumix

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).

aumix [opzioni_di_canale] [altre_opzioni]

Tabella 760.5. Alcune opzioni di canale.

Opzione Significato mnemonico Descrizione
-v percentuale
-v q[uery]
volume Definisce o richiede di conoscere il valore del volume generale, espresso in forma percentuale rispetto al massimo.
-s percentuale
-s q[uery]
synthesizer Definisce o richiede di conoscere il valore del volume del sintetizzatore, espresso in forma percentuale rispetto al massimo.
-w percentuale
-w 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
-l q[uery]
-l R
-l P
line 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
-m q[uery]
-m R
-m P
microphone 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
-c q[uery]
-c R
-c P
cd 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.

Tabella 760.6. Altre opzioni generali.

Opzione Significato mnemonico Descrizione
-f file
file Specifica il file da usare per salvare e recuperare la configurazione.
-L
load Carica le impostazioni dal file di configurazione ~/.aumixrc o in sua mancanza dal file /etc/aumixrc.
-q
query Interroga lo stato di tutti i canali esistenti e mostra il risultato attraverso lo standard output.
-S
save Salva le impostazioni nel file ~/.aumixrc.

Segue la descrizione di alcuni esempi.

760.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] (purché la configurazione locale sia riferita all'uso della lingua inglese). Il file di configurazione non viene caricato automaticamente: lo si può richiedere attraverso l'opzione -L, oppure attraverso il tasto [l] (anche in questo caso vale la cosa solo per la lingua inglese).

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.

760.2   Alsamixer

La gestione audio ALSA è accompagnata solitamente da programmi di servizio specifici; in particolare dei mixer audio molto sofisticati: Alsamixer (2) e Alsamixergui. (3) Il primo funziona su un terminale a caratteri, mentre il secondo è fatto per la grafica di X; entrambi hanno in comune delle opzioni per la riga di comando, anche se di solito vengono utilizzati senza fornirne alcuna:

alsamixer [opzioni]
alsamixergui [opzioni]

Tabella 760.8. Alcune opzioni.

Opzione Descrizione
-c n
Seleziona la scheda, se ne è presente più di una. Alla prima scheda audio corrisponde il numero zero.
-g
Non utilizza i colori, in modo da essere visibile con uno schermo monocromatico (viene ignorato da Alsamixergui).
-s
Riduce al minimo la finestra, in modo da visualizzare un solo cursore a slitta alla volta (viene ignorato da Alsamixergui).

Il funzionamento di Alsamixer e di Alsamixergui è abbastanza intuitivo: i tasti freccia, usati orizzontalmente permettono di selezionare il cursore a slitta, mentre usati verticalmente permettono di cambiare il volume.

Figura 760.9. Alsamixer durante il funzionamento in una finestra di terminale, piuttosto allargata.

Alsamixer

Figura 760.10. Alsamixergui durante il funzionamento.

Alsamixergui

760.3   Gnome-volume-control

Un mixer generico per la grafica, che può essere utile, è Gnome-volume-control, che fa parte del pacchetto Gnome-media. (4) Il suo utilizzo è molto semplice e di solito non si usano opzioni nella riga di comando:

gnome-volume-control [opzioni]

Figura 760.11. Gnome-volume-control durante il funzionamento.

Gnome-volume-control

760.4   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, /dev/dsp (eventualmente anche quelli specifici di ALSA: /dev/snd/pcmC0D0c per l'acquisizione e /dev/snd/pcmC0D0p per l'esecuzione). 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[Invio]

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

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[Invio]

cat registratore > /dev/dsp[Invio]

Quando il sistema di gestione dell'audio avviene attraverso ALSA, i file di dispositivo /dev/audio e /dev/dsp continuano a essere disponibili, tuttavia si potrebbero usare anche altri file di dispositivo. A titolo informativo viene annotato come potrebbe essere usato Sox, ammesso che sia stato compilato con il supporto al formato audio di ALSA. Per registrare:

sox -t alsa -r 44100 -w -u /dev/snd/pcmC0D0c registratore.wav[Invio]

Per riprodurre:

sox mio_file.wav -t alsa /dev/snd/pcmC0D0p[Invio]

Riquadro 760.12. La registrazione e i livelli sonori.

Quando si vogliono usare strumenti per la registrazione sonora, occorre intervenire correttamente nel mixer: si deve regolare il volume della sorgente sonora da registrare; si deve attivare la registrazione da quella sorgente sonora; se è presente, occorre regolare anche il livello del guadagno in ingresso.

Per esempio, volendo registrare dalla linea di ingresso esterna (line-in), con una certa scheda audio, attraverso Aumix, occorre verificare in particolare i cursori e le voci che appaiono evidenziati in questo esempio:

aumix P++++++++++++++++++O+++++++ Vol            ++++++++++++O+++++++++++++
       ++++++++++++++++++O+++++++ Pcm            ++++++++++++O+++++++++++++
Quit  R++++++++++++++++++O+++++++ Line           ++++++++++++O+++++++++++++
Load  PO+++++++++++++++++++++++++ Mic
Save  PO+++++++++++++++++++++++++ CD             ++++++++++++O+++++++++++++
Keys   +++++++O++++++++++++++++++ IGain          ++++++++++++O+++++++++++++
Mute  PO+++++++++++++++++++++++++ Line1          ++++++++++++O+++++++++++++
Only   O+++++++++++++++++++++++++ Digital1
Undo  PO+++++++++++++++++++++++++ PhoneIn
      PO+++++++++++++++++++++++++ PhoneOut
      PO+++++++++++++++++++++++++ Video
       0         Level        100                L        Balance         R

760.5   Wavtools

Wavtools(5) è un pacchetto per l'esecuzione e la registrazione di file audio in formato WAV-RIFF. 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.

Tabella 760.14. Alcune opzioni di wavr e gwavr.

Opzione Descrizione
-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.

760.6   Sound-recorder

Sound-recorder (6) è un pacchetto per l'esecuzione e la registrazione di file audio non compressi (WAV-RIFF e altri). Utilizza il dispositivo /dev/dsp. Si compone di alcuni eseguibili: sound-recorder e cdsound-recorder per la registrazione; play-sample per la riproduzione.

sound-recorder [opzioni] file_audio
cdsound-recorder [opzioni] suffisso_file_audio
play-sample [opzioni] file_audio

In pratica, non c'è bisogno di opzioni per eseguire un file attraverso play-sample, a meno di voler richiedere un comportamento diverso da quello predefinito per il tipo di file che si va a eseguire.

Sia sound-recorder, sia cdsound-recorder si limitano a registrare ciò che proviene dalla scheda audio, purché sia abilitata la registrazione sulla linea prevista. Questo serve soprattutto a comprendere che cdsound-recorder non estrae le tracce da un CD audio, ma si limita a eseguirle, per registrare un file audio corrispondente.

Tabella 760.15. Alcune opzioni usate dagli eseguibili che compongono Sound-recorder. Si osservi che non tutte le opzioni sono valide per tutti gli eseguibili.

Opzione Descrizione
-f formato
Consente di specificare il formato del file da registrare o da eseguire. In mancanza di indicazioni, viene registrato un file WAV-RIFF, corrispondente alla sigla wav, da usare con questa opzione.
-c n
Definisce la quantità di canali da registrare o da eseguire. Il valore uno indica una registrazione o un'esecuzione monofonica, mentre il valore due richiede una registrazione o un'esecuzione stereofonica.
-s frequenza
Permette di specificare la frequenza di campionamento per la registrazione o per l'esecuzione. I valori comuni sono: 8 000, 11 025, 12 000, 16 000, 22 050, 32 000, 44 100, 48 000.
-S mm:ss
In fase di registrazione, consente di indicare la durata che questa deve avere.
-q
Richiede un funzionamento «silenzioso» (quiet).
-t n
-p n
-l elenco
Queste opzioni riguardano soltanto cdsound-recorder e servono a specificare la prima traccia del CD (opzione -t), l'ultima traccia (opzione -p), oppure un elenco di tracce (opzione -l).

Segue la descrizione di alcuni esempi.

760.7   Aplay e Arecord

Per la registrazione e la riproduzione di file attraverso il sistema ALSA, si possono usare anche i programmi Arecord e Aplay, che fanno parte del pacchetto Alsa-utils. (7) Si tratta di programmi da usare a riga di comando:

arecord [opzioni] file_da_registrare
aplay [opzioni] file_da_eseguire...

I due programmi condividono delle opzioni, con le quali si specificano le caratteristiche dei file da registrare o da eseguire.

Tabella 760.16. Alcune opzioni.

Opzione Descrizione
-d n
--duration=n
Specifica la durata della registrazione o dell'esecuzione. Il numero che si indica come argomento dell'opzione rappresenta una quantità in secondi (simbolo: «s»).
-t tipo
--file-type=tipo
Permette di specificare il tipo di file da registrare o da eseguire. Si possono usare le sigle: voc, wav, raw, au.
-c 1|2
--channels=1|2
Permette di specificare la quantità di canali (uno per monofonia, due per stereofonia).
-f formato
--format=formato
Permette di specificare il formato dei dati. Generalmente si indica il formato S16_LE, che indica 16 bit con segno, little endian.
-r n
--rate=n
Specifica la frequenza di campionamento espressa in hertz (simbolo: «Hz»).
-f cd
È l'abbreviazione di: -f S16_LE -c 2 -r 44100.
-f dat
È l'abbreviazione di: -f S16_LE -c 2 -r 48000.

Segue la descrizione di alcuni esempi.

760.8   Sox

Sox (8) è 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 760.17 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 760.17. 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.

760.8.1   Avvio dell'eseguibile

L'eseguibile sox è quello 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:

sox [opzioni_generali] [opzioni_di_formato] file_in_ingresso [opzioni_di_formato] \
  \file_in_uscita [effetti]
sox [opzioni_generali] [opzioni_di_formato] file_in_ingresso -e [effetti]

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 dei condotti 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.

Tabella 760.18. Alcune opzioni generali.

Opzione Descrizione
-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.

Tabella 760.19. Alcune opzioni di formato.

Opzione Descrizione
-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,... come si vede nella tabella 760.17).
-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 (simbolo: «Hz»). 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.
-b
-w
-l
-d
Definisce la dimensione dei campioni. Si tratta rispettivamente di: 8 bit (byte); 16 bit (word); 32 bit (long word); 64 bit (double long word).
-s
-u
-U
-A
-a
-i
-g
-f
Definisce la codifica dei campioni. Si tratta rispettivamente di: signed linear; unsigned linear; mu-law; A-law; ADPCM; IMA-ADPCM; GSM; floating-point.
-x
Inverte i byte.
-e
Non produce alcun risultato, pertanto il file in uscita non viene specificato.

Tabella 760.20. Alcune opzioni che rappresentano un effetto.

Opzione Descrizione
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 (simbolo: «Hz»).
highp frequenza_filtro
Applica un filtro passa-alto a partire dalla frequenza indicata come argomento. In pratica, le frequenze inferiori risultano molto attenuate.
echo guadagno_in guadagno_out  \
  \ritardo volume
Inserisce un effetto eco in cui il guadagno è espresso in rapporto all'unità (il 100 % è pari a uno), il ritardo è espresso in millisecondi (simbolo: «ms») e il volume dell'eco è riferito anch'esso 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.
resample
Si può usare solo quando la frequenza di campionamento in uscita è diversa da quella in ingresso e serve a rifare il campionamento, simulando un ingresso analogico.

Segue la descrizione di alcuni esempi; tuttavia, tra questi non vengono mostrati casi 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.

760.8.2   Riduzione del rumore

Sox è in grado di ridurre il rumore di fondo di una registrazione attraverso l'uso di due «effetti» particolari. Per prima cosa occorre estrarre dalla registrazione una porzione di silenzio, che contiene il rumore di fondo; successivamente si fa leggere a Sox il file contenente il rumore, per generare un file che ne riassume le caratteristiche; al termine, si fa rielaborare il file audio completo, fornendo le informazioni raccolte sulle caratteristiche del rumore, per generare un file filtrato. Per capire il meccanismo, conviene fare un esempio, che viene mostrato nei passi successivi.

  1. Il file reg.wav contiene del rumore di fondo; attraverso un programma apposito, si estrae una piccola porzione di silenzio, che viene salvata nel file rumore.wav.

  2. Si fa leggere a Sox il file rumore.wav, per generare il «profilo di rumore», nel file rumore.prof:

    sox rumore.wav -t .wav /dev/null noiseprof rumore.prof[Invio]

    Il contenuto del file rumore.prof può essere simile a quello seguente:

    Channel 0: -1.274796, 0.377659, 2.028794, ... -12.432062, -11.966588, nan
    Channel 1: -1.274796, 0.377659, 2.028794, ... -12.432062, -11.966588, nan
    
  3. Si rielabora il file reg.wav con Sox, associando le informazioni sul rumore, contenute nel file rumore.prof:

    sox reg.wav reg-2.wav noisered rumore.prof 0.1[Invio]

    Si ottiene il file reg-2.wav filtrato.

Come si vede dagli esempi, sono stati usati due effetti: noiseprof e noisered.

Tabella 760.22. Effetti per la riduzione del rumore.

Opzione Descrizione
noiseprof file
Crea il file indicato contenente il profilo del rumore, raccolto da un brano contenente soltanto del silenzio.
noisered file n
Filtra il rumore, secondo le indicazioni del file contenente il profilo, con un livello pari a n. Il valore numerico finale va inteso in forma percentuale (dove l'unità rappresenta il 100 %); tuttavia, in generale conviene indicare solo frazioni dell'unità, per non distorcere eccessivamente il suono.

760.8.3   Regolazione del volume

Con Sox è possibile ottenere delle informazioni statistiche dettagliate su un file sonoro, attraverso la sua lettura completa. Per questo si usa l'effetto stat che riguarda solo il file in ingresso, mentre quello in uscita può essere omesso se si utilizza l'opzione -e.

Tabella 760.23. Effetti per l'analisi statistica.

Opzione Descrizione
stat
Genera una statistica sul file sonoro in ingresso.
stat -v
Si limita a indicare il livello di aggiustamento massimo del volume.

Segue la descrizione di alcuni esempi.

Il file prova.stat degli esempi mostrati, potrebbe avere l'aspetto seguente:

Samples read:          14300928
Length (seconds):    162.142041
Scaled by:         2147483647.0
Maximum amplitude:     0.877747
Minimum amplitude:    -0.949310
Midline amplitude:    -0.035782
Mean    norm:          0.083269
Mean    amplitude:     0.000014
RMS     amplitude:     0.115862
Maximum delta:         0.692749
Minimum delta:         0.000000
Mean    delta:         0.055097
RMS     delta:         0.075444
Rough   frequency:         4570
Volume adjustment:        1.053

Invece, il risultato ottenuto con l'effetto stat -v si limita al valore del campo Volume adjustment::

1.053

Il valore ottenuto in questo modo, soprattutto se si usa l'effetto stat -v, può essere applicato per regolare in modo uniforme il volume di diversi file, come nello script seguente:

#!/bin/sh
for a in "$@"
do
    sox $a -e stat -v 2> /tmp/vol
    VOL=`cat /tmp/vol`
    sox $a -v $VOL $a.v.wav
done

In pratica, i file indicati come argomenti nella riga di comando dello script, vengono scanditi uno per uno, in modo da generarne la statistica del volume, così da generare poi, per ognuno, un nuovo file con l'estensione aggiuntiva .v.wav e con il volume aggiustato.

760.8.4   Script play e rec

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.

play file
rec file

Quando non si ha la possibilità di utilizzare un programma più comodo, questa potrebbe essere l'unica risorsa per riuscire a gestire con semplicità 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, ma in tal caso è obbligatorio specificare il tipo di campionamento, se non si vuole ottenere soltanto un file monofonico di bassa qualità; il modello seguente permette di ottenere un campionamento alla qualità di un CD:

sox -t ossdsp -w -s -c 2 -r 44100 /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.

760.9   Normalize

Normalize (9) è un programma ottimo per uniformare il livello audio nei file WAV-RIFF, che dispone anche di uno script per facilitare l'operazione con file in formato MP3 e Ogg Vorbis.

normalize [opzioni] file_wav...

Il programma eseguibile normalize è quello che svolge il lavoro, sui file WAV-RIFF. Si usa come si vede nel modello sintattico, dove dopo le opzioni si mette l'elenco dei file da modificare: i file in questione vengono sovrascritti con la modifica del volume audio.

Il programma è ricco di opzioni, ma due in particolare sono importanti, con le quali si specifica una modalità particolare nel calcolo del volume da applicare. In condizioni normali, il volume dei file viene regolato in modo indipendente dagli altri; a questa regola si può eccepire con due modalità che si escludono a vicenda: con la modalità «mix» tutti i file indicati come argomento vengono regolati al volume medio che hanno già nel loro insieme; con la modalità «batch» il volume viene regolato mantenendo invariato il rapporto relativo tra i vari file, come se si trattasse di un file soltanto.

Tabella 760.27. Alcune opzioni.

Opzione Descrizione
-m
--mix
Attiva la modalità «mix».
-b
--batch
Attiva la modalità «batch».

Segue la descrizione di alcuni esempi.

Si veda la pagina di manuale normalize(1) per le altre opzioni disponibili; inoltre si veda normalize-mp3(1) o normalize-ogg(1) per intervenire direttamente su file audio compressi.

760.10   Xwave

Xwave (10) è 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 760.28 si vede il pannello principale dopo aver caricato un file WAV.

Figura 760.28. Pannello principale di Xwave.

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.

760.11   Audacity

Audacity(11) è un applicativo molto sofisticato per la registrazione di un progetto musicale, composto anche da più tracce, in grado di esportare il risultato in formati audio comuni. Qui, Audacity viene considerato semplicemente come un ottimo sistema di registrazione, trascurando la realizzazione di un progetto musicale vero e proprio.

audacity

Generalmente, l'eseguibile audacity si utilizza senza argomenti, come si vede nel modello sintattico semplificato.

Figura 760.29. Audacity avviato senza argomenti.

Audacity

Se si seleziona il bottone della registrazione, Audacity inizia a registrare prelevando il segnale dalla linea attiva per questo, con una campionatura prestabilita. Si può osservare che nella figura risulta attiva la linea di ingresso esterno (line-in); inoltre è accessibile il controllo del guadagno di ingresso.

Figura 760.30. Controlli nella parte superiore della finestra di Audacity.

Audacity

Il modo in cui vengono raccolti i campioni in fase di registrazione si stabilisce attraverso la configurazione, che si raggiunge con la voce {Preferences} del menù {File}.

Figura 760.31. File di dispositivo utilizzati e numero di canali.

Audacity

Figura 760.32. Configurazione della qualità della registrazione.

Audacity

Figura 760.33. Configurazione della qualità dei formati per l'esportazione delle registrazioni.

Audacity

Una volta appurato che l'ingresso è quello giusto, che il livello sonoro è appropriato, che il tipo di campionamento è conforme alla qualità che si vuole ottenere, si può selezionare il bottone di registrazione.

Figura 760.34. Registrazione di una traccia stereofonica.

Audacity

Se si ferma la registrazione, la traccia si conclude; se poi si avvia nuovamente la registrazione, viene aperta un'altra traccia. Per salvare la registrazione in un formato comune, la si deve «esportare», per esempio con la voce {Export as WAV} del menù {File}.


1) Aumix   GNU GPL

2) Alsamixer   GNU GPL

3) Alsamixergui   GNU GPL

4) Gnome-media   GNU GPL e GNU LGPL

5) Wavtools   GNU GPL

6) Sound-recorder   GNU GPL

7) Alsa-utils   GNU GPL

8) Sox   software libero con licenza speciale

9) Normalize   GNU GPL

10) Xwave   GNU GPL

11) Audacity   GNU GPL


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


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

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory