[>a2313.html>] [<a2311.html<] [^a2.html^]
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, e 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
.
Aumix (1) è un applicativo per la gestione delle funzionalità di miscelazione e di equalizzazione della scheda audio. Può essere usato in modo interattivo, e in questo caso il programma richiede 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.
La figura 242.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.
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 Figura 242.1. Esempio del funzionamento di Aumix in modalità interattiva. |
Tanto per rendersi conto di questa variabilità nell'apparenza di Aumix, si può osservare anche la figura 242.2 che mostra cosa accade con una vecchia scheda SoundBlaster 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 Figura 242.2. Aumix con una vecchia scheda a 8 bit. |
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], e così anche 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 la campionatura 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).
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. |
Tabella 242.1. Alcuni comandi utili per l'uso di Aumix in modo interattivo.
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).
-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.
-L
Carica le impostazioni dal file di configurazione ~/.aumixrc
, e 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
.
$
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.
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.
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 una campionatura 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, ogni 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
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.
-f file_wav
Specifica il file da registrare.
-r frequenza_campionamento
Specifica la frequenza di campionamento. Alcuni valori comuni sono: 44100, 22050, 11025 e 8000.
-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.
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 242.3 si vede il pannello principale dopo aver caricato un file WAV.
Figura 242.3. Pannello principale di Xwave. |
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.
MP3blaster (4) è un programma interattivo per l'esecuzione di file audio (inizialmente solo per file MP3). Se viene avviato senza argomenti, si ottiene il pannello di controllo che si vede nella figura 242.4.
.------------------------------------------------------------------------------. |F 1: Select files | 01:Default | -| |F 2: Add group |---------------------------------------------------|--| |F 3: Delete group | |01| |F 4: Set group's title | | | |F 5: load/add playlist | | | |F 6: Write playlist | | | |F 7: Toggle group mode | | | |F 8: Toggle play mode | | | |F 9: Play list | | | |F10: Change #threads | | | | | | | | | | | |Current group's mode: | | | |Play in normal order | | | | | | | |Current play-mode: | | | |Play all groups in | | | |normal order | | | | | | | |Threads: 100 | | | |------------------------------------------------------------------------------| |Press '?' to get a screen with key functions. +| `------------------------------------------------------------------------------' Figura 242.4. Pannello principale di MP3blaster. |
In condizioni normali, durante l'esecuzione di un brano viene messo a disposizione un mixer, come si vede nella figura 242.4, tenendo conto che sono a disposizione anche i controlli di volume delle linee del mixer che non si vedono; queste appaiono eventualmente scorrendo con i tasti [freccia su] e [freccia giù]. I comandi a disposizione durante la modalità di esecuzione di un brano sono elencati brevemente nella tabella 242.2, mentre gli altri comandi per l'uso interattivo non vengono mostrati.
.-----------------------------------|01.mp3|-----------------------------------. | Mpeg-1 layer 3 at 44100hz, 128 kb/s (stereo) | | ### 00:13/03:31(-03:18) | | Songname: 01.mp3 Year : | | Artist : Genre : | | Album : | | Info : | | | | Vol | | [##################################################] L | | [##################################################] R | | Pcm | | [######################################## ] L | | [######################################## ] R | | Spkr | | [###################################### ] L | | [###################################### ] R | | | | | | |< << |> >> >| || [] | | 1 2 3 4 5 6 7 | |------------------------------------------------------------------------------| | MP3Blaster V2.0b16 (press 'q' to return to Playlist Editor) | `------------------------------------------------------------------------------' Figura 242.5. Esecuzione di un brano con la funzionalità di mixer attiva. |
Tasto | Effetto |
freccia su | Seleziona la linea del mixer precedente. |
freccia giù | Seleziona la linea del mixer successiva. |
freccia sinistra | Abbassa il volume della linea selezionata. |
freccia destra | Alza il volume della linea selezionata. |
1 | Salta al brano precedente. |
2 | Torna indietro nel brano in corso di esecuzione. |
3 | Avvia l'esecuzione del brano corrente. |
4 | Avanza nel brano in corso di esecuzione. |
5 | Salta al brano successivo. |
6 | Pausa. |
7 | Stop. |
q | Conclude la modalità di esecuzione. |
Tabella 242.2. Comandi utili in fase di esecuzione dei brani.
MP3blaster si avvia attraverso l'eseguibile mp3blaster, con o senza argomenti:
mp3blaster [opzioni] [file]...
In generale, se alla fine della riga di comando vengono indicati dei file, viene avviata la loro esecuzione; altrimenti si ottiene generalmente il pannello iniziale del programma, dal quale si possono selezionare le funzioni desiderate.
--nomixer | -n
Disabilita la gestione del mixer in fase di esecuzione dei brani.
--runframes={1|2|3|4|5|6|7|8|9|10}
-r={1|2|3|4|5|6|7|8|9|10}
Permette di definire la quantità di frame che devono essere decodificati per ogni ciclo. Ciò permette di regolare l'esecuzione in base alle capacità di elaborazione disponibili. In generale, i valori più alti migliorano le prestazioni con microprocessori più lenti. Il valore predefinito per questa opzione è cinque.
--sound-device=file | -s=file
In generale, il programma dovrebbe essere già predisposto per utilizzare il file di dispositivo giusto per accedere all'interfaccia audio. Tuttavia, in caso di necessità può essere definito attraverso questa opzione. Nei sistemi GNU/Linux si tratta normalmente di /dev/dsp
.
$
mp3blaster
Avvia MP3blaster in modalità interattiva.
$
mp3blaster brani/01.mp3
Avvia MP3blaster per l'esecuzione del file brani/01.mp3
. Al termine conclude il suo funzionamento.
$
mp3blaster brani/*.mp3
Avvia MP3blaster per l'esecuzione di tutti i file MP3 contenuti nella directory brani/
. Al termine conclude il suo funzionamento.
Sox (5) è 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 campionatura a un'altra non danno risultati ottimi, e 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 242.3 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 242.3. Alcuni dei formati audio gestiti da 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.
-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.
-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.
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.
$
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 alla campionatura, 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 alla campionatura, 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 alla campionatura, 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, e per questo 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 campionatura, perché di solito il risultato è pessimo. |
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 Wavplay, 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
.
1) Aumix GNU GPL
2) Wavtools GNU GPL
3) Xwave GNU GPL
4) MP3blaster GNU GPL
5) Sox licenza speciale