3.9. Audio avanzato

3.9.1. Riproduzione Surround/Multicanale

3.9.1.1. DVD

La maggior parte dei DVD e molti altri file includono audio in surround. MPlayer supporta la riproduzione in surround, ma non la abilita di default poiché gli equipaggiamenti audio stereo sono molto più diffusi. Per riprodurre un file che ha più di due canali audio usa -channels. Per esempio, per riprodurre un DVD con audio 5.1:

mplayer dvd://1 -channels 6

Nota che a dispetto del nome "5.1" ci sono attualmente 6 canali discreti. Se possiedi un equipaggiamento audio surround puoi mettere tranquillamente l'opzione channels nel tuo file di configurazione di MPlayer ~/.mplayer/config. Per esempio, per avere una riproduzione quadrifonica di default, aggiungi la riga seguente:

channels=4

MPlayer riprodurrà l'audio in quattro canali quando tutti e quattro sono disponibili.

3.9.1.2. Riprodurre file stereo su quattro altoparlanti

MPlayer non duplica alcun canale di default, né lo fanno molti driver audio. Se vuoi farlo manualmente:

mplayer filename -af channels=2:2:0:1:0:0

Vedi la sezione sul copiare i canali per una spiegazione.

3.9.1.3. AC-3/DTS Passthrough

I DVD solitamente hanno un audio surround codificato in formato AC-3 (Dolby Digital) o DTS (Digital Theater System). Alcuni equipaggiamenti audio moderni sono capaci di decodificare internamente questi formati. MPlayer può esser configurato in modo da far passare i dati audio senza decodificarli. Ciò funzionerà solo se hai un connettore S/PDIF (Sony/Philips Digital Interface) sulla tua scheda audio.

Se il tuo equipaggiamento audio può decodificare sua AC-3 che DTS, puoi tranquillamente abilitare il passthrough per ambi i formati. In caso contrario, abilita il passthrough solo per il formato che il tuo equipaggiamento supporta.

Per abilitare il passthrough dalla riga comando:

  • Per solo AC-3, usa -ac hwac3

  • Per solo DTS, usa -ac hwdts

  • Per AC-3 e DTS, usa -afm hwac3

Per abilitare il passthrough nel file di configurazione di MPlayer:

  • Per solo AC-3, usa ac=hwac3,

  • Per solo DTS, usa ac=hwdts,

  • Per AC-3 e DTS, usa afm=hwac3

Nota che c'è una virgola (",") alla fine di ac=hwac3, e ac=hwdts,. Ciò farà sì che MPlayer ricada sui codec che utilizza di solito quando riproduce un file che non ha audio AC-3 o DTS. Per afm=hwac3 non serve una virgola; MPlayer gestirà comunque la situazione quando viene specificata una famiglia audio.

3.9.1.4. MPEG audio Passthrough

Le trasimissioni TV digitali (come DVB e ATSC) e alcuni DVD spesso hanno flussi audio MPEG (per esser precisi MP2). Alcuni decodificatori hardware come schede full DVB e adattatori DXR2 possono decodificare nativamente questo formato. MPlayer può esser configurato in modo da far passare i dati audio senza decodificarli.

Per usare questo codec:

 mplayer -ac hwmpa 

3.9.1.5. Matrix-encoded audio

***DA FARE***

Questa sezione deve ancora essere scritta e non può esser completata finché qualcuno non ci fornisca audio di esempio da testare. Se hai un qualche file con audio matrix-encoded, sai dove trovarne uno, oppure hai una qualche informazione che possa aiutare, per favore invia un messaggio alla mailing list MPlayer-DOCS. Scrivi "[matrix-encoded audio]" nell'oggetto.

Se nessun file o nessuna informazione arriverà, questa sezione sarà rimossa.

Ottimi link:

3.9.1.6. Emulazione del surround nelle cuffie

MPlayer include un filtro HRTF (Head Related Transfer Function) basato su un progetto MIT in cui le misurazioni sono prese da microfoni montati su una finta testa umana.

Anche se non è possibile imitare esattamente un sistema surround, il filtro HRTF di MPlayer fornisce un audio con maggior immersione nello spazio attraverso cuffie a due canali. Il solito missaggio semplicemente combina tutti i canali in due; invece combinando i canali, hrtf genera leggere eco, aumenta leggermente le separazioni stereo, e altera il volume di alcune frequenze. Se HRTF suoni meglio può dipendere dalla sorgente audio e da una questione di gusto personale, ma è sicuramente il caso di provarlo.

Per riprodurre un DVD con HRTF:

mplayer dvd://1 -channels 6 -af hrtf

hrtf lavora bene solo con 5 o 6 canali. Inoltre, hrtf richiede un audio a 48kHz. L'audio dei DVD è già a 48kHz, ma se hai un file con una differente frequenza di campionamento rispetto a quella che vuoi riprodurre con hrtf devi ricampionarla:

mplayer nomefile -channels 6 -af resample=48000,hrtf

3.9.1.7. Risoluzione problemi

Se non senti nessuno suono uscire dai tuoi canali surround, controlla le impostazioni del tuo mixer con un programma apposito come alsamixer; le uscite audio sono spesso silenziate (mute) e il volume impostato a zero di default.

3.9.2. Manipolazione dei canali

3.9.2.1. Informazioni generali

Sfortunatamente, non c'è uno standard per come i canali siano ordinati. Gli ordinamenti sotto elencati sono quelli dell'AC-3 e sono abbastanza tipici; provali e vedi se la tua sorgente corrisponde. I canali sono numerati a partire dallo 0.

mono

  1. centrale

stereo

  1. sinistro

  2. destro

quadrifonico

  1. sinistro frontale

  2. destro frontale

  3. sinistro posteriore

  4. destro posteriore

surround 4.0

  1. sinistro frontale

  2. destro frontale

  3. centrale posteriore

  4. centrale frontale

surround 5.0

  1. sinistro frontale

  2. destro frontale

  3. sinistro posteriore

  4. destrale posteriore

  5. centrale frontale

surround 5.1

  1. sinistro frontale

  2. destro frontale

  3. sinistro posteriore

  4. destro posteriore

  5. centrale frontale

  6. subwoofer

L'opzione -channels viene usata per richiedere il numero di canali al decodificatore audio, Alcuni codec audio usano il numero di canali specificato per decidere se sottomiscelare la sorgente, se necessario. Nota che ciò non sempre influenza il numero dei canali di uscita. Per esempio, usando -channels 4 per riprodurre un file stereo MP3 porterà comunque ad un'uscita a 2 canali, visto che il codec MP3 non genera i canali extra.

Il filtro audio channels può essere usato per creare o rimuovere canali ed è utile per controllare il numero di canali passati alla scheda audio. Vedi le sezioni seguenti per ulteriori informazioni sulla manipolazione dei canali.

3.9.2.2. Riprodurre mono con due altoparlanti

Il mono suona molto meglio quando riprodotto attraverso due altoparlanti - specialmente usando delle cuffie. I file audio che hanno veramente un canale sono riprodotti automaticamente attraverso due altoparlanti; sfortunatamente, molti file con suono in mono sono in verità codificati come stereo con un canale slienziato. Il modo più semplice e a prova di cretino per far sì che entrambi gli altoparlanti emettano lo stesso audio è il filtro extrastereo:

mplayer nomefile -af extrastereo=0

Ciò equilibra ambedue i canali, portando al risultato di entrambi i canali alla metà del volume di quello originario. La sezione seguente ha esempi di altri modi di far ciò senza una riduzione del volume, ma sono molto complessi e richiedono varie opzioni a seconda del canale che vuoi mantenere. Se davvero devi mantenere il volume, potrebbe essere più semplice sperimentare con il filtro volume e trovare il valore giusto. Per esempio:

mplayer nomefile -af extrastereo=0,volume=5

3.9.2.3. Copiare/spostare i canali

Il filtro channels può spostare alcuni o tutti i canali. Impostare tutte le sotto-opzioni per il filtro channels può essere complicato e richiede un pò di attenzione.

  1. Decidi quanti canali di uscita ti servono. Questa è la prima sotto-opzione.

  2. Conta quanti spostamenti di canali farai. Questa è la seconda sotto-opzione. Ciascun canale può venir spostato a vari canali diversi allo stesso tempo, ma tieni a mente che quando un canale viene spostato (anche verso una destinazione sola) il canale sorgente resterà vuoto finché un altro canale non verrà spostato su di esso. Per copiare un canale, mantenendo la sorgente intatta, sposta semplicemente il canale sia verso la destinazione che verso la sorgente. Per esempio:

    channel 2 --> channel 3
    channel 2 --> channel 2

  3. Scrivi le copiature di canali come paia di sotto-opzioni. Nota che il primo canale è 0, il secondo è 1, etc. L'ordine di queste sotto-opzioni non è importante a patto che esse siano correttamente raggruppate in coppie sorgente:destinazione.

Esempio: un canale in due altoparlanti

Qui c'è un esempio di un altro modo di riprodurre un canali in entrambi gli altoparlanti. Per questo esempio supponi che il canale sinistro debba essere riprodotto e il canale destro scartato. Seguendo i passaggi suddetti:

  1. In modo da fornire un canale di uscita per ognuno dei due altoparlanti, la prima sotto-opzione deve essere "2".

  2. Il canale sinistro deve essere spostato al canale destro, e anche spostato su sé stesso cosicché non sia vuoto. Questo è un totale di due spostamenti, facendo sì che anche la seconda sotto-opzione sia "2".

  3. Per spostare il canale sinistro (canale 0) nel canale destro (canale 1), la coppia di sotto-opzioni è "0:1", e "0:0" sposta il canale sinistro su sé stesso.

Mettendo tutto insieme si ottiene:

mplayer nomefile -af channels=2:2:0:1:0:0

Il vantaggio che ha questo esempio rispetto a extrastereo è che il volume di ciascun canale di uscita è lo stesso del canale di entrata. Lo svantaggio è che le sotto-opzioni diventano "2:2:1:0:1:1" quando il canale voluto è quello destro. Inoltre, è più difficile da ricordare e da scrivere.

Esempio: canale sinistro in due altoparlanti - scorciatoia

Veramente c'è un modo molto più facile di usare il filtro channels per riprodurre il canale sinistro in entrambi gli altoparlanti:

mplayer nomefile -af channels=1

Il secondo canale viene scartato, e, senza ulteriori sotto-opzioni, l'unico canale rimanente resta il solo. I driver della scheda audio automaticamente riproducono un singolo canale in ambedue gli altoparlanti. Ciò funziona sono quando il canale voluto è sulla sinistra.

Esempio: duplicare i canali frontali sui posteriori

Un'altra operazione comune è duplicare il canali frontali e riprodurli anche sugli altoparlanti posteriori in un'impostazione quadrifonica.

  1. Ci devono essere quattro canali di uscita. La prima sotto-opzione è "4".

  2. Ciascuno dei due canali frontali deve essere spostato sul corrispondente posteriore e anche su sé stesso. Quindi sono quattro spostamenti, indi la seconda sotto-opzione è "4".

  3. Il canale frontale sinistro (canale 0) deve essere spostato sul posteriore sinistro (canale 2): "0:2". Il sinistro frontale deve anche venir spostato su sé stesso: "0:0". Il canale frontale destro (canale 1) viene spostato sul posteriore destro (canale 3): "1:3", e anche su sé stesso: "1:1".

Combina tutte le sotto-opzioni per ottenere:

mplayer nomefile -af channels=4:4:0:2:0:0:1:3:1:1

3.9.2.4. Miscelare i canali

Il filtro pan può miscelare i canali in proporzione specificate dall'utente. Questo permette di fare tutto quello che può fare il filtro channels e oltre. Sfortunatamente, le sotto-opzioni sono molto più complicate.

  1. Decidi con quanti canali lavorare. Puoi aver bisogno di indicare ciò con l'opzione -channels e/o -af channels. Gli esempi seguenti di mostreranno quando usare cosa.

  2. Decidi quanti canali passare a pan (i canali decodificati oltre questi vengono scartati). Questa è la prima sotto-opzione, e controlla anche quanti canali utilizzare in uscita.

  3. Le restanti sotto-opzioni indicano quanto di ogni canale viene miscelato in ciascuno degli altri canali. Questa è la parte difficile. Per diminuire l'impresa, spezza le sotto-opzioni in diversi gruppi, un gruppo per ogni canale di uscita. Ogni sotto-opzione in un gruppo corrisponde ad un canale di ingresso. Il numero che specifichi sarà la percentuale del canale di ingresso che viene miscelata nel canale di uscita.

    pan accetta valori da 0 a 512, significando dallo 0% al 51200% del volume originale. Fai attenzione quando usi valori superiori a 1. Ciò non solo ti darà un volume più alto, ma se oltrepassi la scala di campionamento della tua scheda audio puoi sentire terribili pop e click. Se vuoi puoi far seguire pan da ,volume per abilitare il clipping, ma è meglio tenere i valori di pan bassi abbastanza affinché il clipping non sia necessario.

Esempio: un canale in due altoparlanti

Qui c'è un altro esempio per riprodurre il canale sinistro in due altoparlanti. Segui i passaggi suddetti:

  1. pan deve uscire con due canali, indi la prima sotto-opzione è "2".

  2. Visto che abbiamo due canali di ingresso, ci saranno due gruppi di sotto-opzioni. Visto che ci sono anche due canali di uscita, ci saranno due sotto-opzioni per gruppo. Il canale sinistro dal file dovrà finire con volume pieno sui nuovi canali sinistro e destro. Così il primo gruppo di sotto-opzioni è "1:1". Il canale destro dovrebbe venir scartato, così il secondo sarà "0:0". Un qualsiasi valore di 0 alla fine può essere omesso, ma per facilità di comprensione li lasceremo lì.

Mettendo insieme queste opzioni si ottiene:

mplayer nomefile -af pan=2:1:1:0:0

Se si vuole il canale destro invece del sinistro, le sotto-opzioni di pan saranno "2:0:0:1:1".

Esempio: canale sinistro in due altoparlanti - scorciatoia

Come con channels, c'è una scorciatoia che funziona solo col canale sinistro:

mplayer nomefile -af pan=1:1

Visto che pan ha solo un canale di ingresso (l'altro canale viene scartato), c'è un solo gruppo con una sola sotto-opzione, che specifica che quel solo canale ottenga il 100% di sé stesso.

Esempio: sottomiscelare PCM a 6 canali

Il decodificatore di MPlayer per PCM a 6 canali non è in grado di sottomiscelare. C'è un modo di sottomiscelare PCM usando pan:

  1. Il numero di canali di uscita è 2, indi la prima sotto-opzione è "2".

  2. Con sei canali di ingresso ci saranno sei gruppi di opzioni. Fortunatamente, visto che ci interessa solo l'uscita dei primi due canali, abbiamo solo bisogno di preparere due gruppi; i rimanenti quattro gruppi possono essere omessi. Attenzione che non tutti i file audio multicanale hanno lo stesso ordine dei canali! Questo esempio mostra il sottomissaggio di un file con gli stessi canali di AC-3 5.1:

    0 - frontale sinistro
    1 - frontale destro
    2 - posteriore sinistro
    3 - posteriore destro
    4 - frontale centrale
    5 - subwoofer

    Il primo gruppo di sotto-opzioni elenca le percentuali del volume originario, che, rispettivamente, ogni canale di uscita deve ricevere dal canale frontale sinistro: "1:0". Il canale frontale destro dovrà finire nell'uscita di destra: "0:1". Lo stesso vale per i canali posteriori: "1:0" e "0:1". Il canale centrale va su entrambi i canali con metà del volume: "0.5:0.5", e il subwoofer va in entrambi a volume pieno: "1:1".

Metti tutto insieme, per avere:

mplayer 6-canali.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1

Le percentuali suddette sono solo un rozzo esempio. Sentiti libero di modificarle.

Esempio: riprodurre audio 5.1 su grossi altoparlanti senza un subwoofer

Se hai un paio di grossi altoparlanti puoi non voler sprecare dei soldi per compare un subwoofer per un sistema audio 5.1 completo. Se usi -channels 5 per richiedere che liba52 decodifichi audio 5.1 in 5.0, il canale del subwoofer viene semplicemente scartato. Se vuoi distribuire il canale del subwoofer per conto tuo devi sottomiscelarlo a mano con pan:

  1. Since pan needs to examine all six channels, specify -channels 6 so liba52 decodes them all. Siccome pan ha bisogno di esaminare tutti e sei i canali, specifica -channels 6 così che liba52 li decodifichi tutti quanti.

  2. pan outputs to only five channels, the first suboption is 5. pan emette solo cinque canali, così la prima sotto-opzione è 5.

  3. Sei canali di ingresso e cinque di uscita significano sei gruppi di cinque sotto-opzioni.

    • Il canale sinistro frontale semplicemente si riproduce su sé stesso: "1:0:0:0:0"

    • Lo stesso per il canale frontale destro: "0:1:0:0:0"

    • Lo stesso per il canale posteriore sinistro: "0:0:1:0:0"

    • E anche per il canale posteriore destro: "0:0:0:1:0"

    • Anche quello centrale frontale: "0:0:0:0:1"

    • E ora dobbiamo decidere cosa fare col subwoofer, per es. metà nel frontale destro e metà nel frontale sinistro: "0.5:0.5:0:0:0"

Combina tutte queste opzioni per ottenere:

mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0

3.9.3. Regolazione volume via software

Alcune tracce audio sono troppo silenziose per essere ascoltate bene senza amplificazione. Questo diventa un problema quando il tuo equipaggiamento non può amplificare il segnale per te. L'opzione -softvol indica a MPlayer di utilizzare un mixer interno. Puoi poi usare i tasti di regolazione volume (di default 9 e 0) per raggiungere livelli di volume molto più alti. Nota che ciò non bypassa il mixer della tua scheda audio; MPlayer amplifica solo il segnale prima di inviarlo alla tua scheda audio. L'esempio che segue è un buon punto di partenza:

mplayer file-silente -softvol -softvol-max 300

L'opzione -softvol-max specifica il massimo volume permesso di uscita come una percentuale del volume originario. Per esempio, -softvol-max 200 farà sì che il volume sia regolato fino a due volte il valore originale. E' sicuro indicare un valore alto con -softvol-max; il volume più alto non sarà usato fino a quando non userai i tasti di regolazione. L'unico svantaggio di un valore alto è che, dato che MPlayer regola il volume come una percentuale del massimo, non avrai un controllo così preciso usando i tasti di regolazione del volume. Usa un valore più basso con -softvol-max e/o specifica -volstep 1 se ti serve maggior precisione.

L'opzione -softvol funziona controllando il filtro audio volume. Se vuoi riprodurre un file a un dato volume sin dall'avvio puoi specificare volume manualmente:

mplayer file-silente -af volume=10

Questo riprodurrà il file con un guadagno di 10 decibel. Stai attento quando usi il filtro volume - puoi facilmente farti male alle orecchie se usi un valore troppo alto. Parti dal basso e sali gradualmente fino a quando capisci quanta regolazione è richiesta. Inoltre, se tu specifichi valori troppo alti, volume può aver bisogno di fare il clip del segnale per evitare di mandare alla tua scheda audio dati che siano fuori dalla gamma consentita; ciò risulterà in un audio distorto.