upsampling (universo LMS/Squeezelite/Squeezeplay)

Pagina 76 di 88
prima
... 26 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 ... ultimo
Visualizzazione dei risultati da 751 a 760 su 874
  1. #751
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    Ho fatto un minimo di prove con gain, loudness e remix (usato come controllo di balance) ed ho verificato che:

    a. loudness NON può essere usato con il primo parametro (gain) = 0, il comando non ha effetto in questo caso.
    uh? ma sei sicuro? Con quale versione di sox?

    Originariamente inviato da marcoc1712
    d. provoca facilmente clipping su tutta la catena, porre MOLTA attenzione.
    questo è abbastanza ovvio, visto che applica una equalizzazione che aumenta il livello di alcune parti dello spettro...

    Originariamente inviato da marcoc1712
    Una cosa interessante è l'opzione -G (o -h + -r) che in pratica consiste nel far si che SOX 'reclami' l'headroom non utilizzato alla fine della catena degli effetti, garantendo in ogni caso l'assenza di clipping.

    Può essere interssante provarlo,anche se io non ho mai sentito 'nostalgia' dei db persi per creare headroom... basta girare appena di più la manopolina...
    opzione globale "--guard" (eq. -G), oppure "gain -h" all'inizio della catena seguito da "gain -hr" in fondo (subito prima di "dither", che è e deve essere sempre l'ultimo).

    Funziona benissimo e, per le operazioni "offline", è comodissimo.

    Purtroppo per l'uso "online/on-the-fly" che ne facciamo noi è improponibile. Per funzionare in qualche modo prima deve processare/analizzare l'intero file per scoprire di quanto headroom ha bisogno... per cui aggiunge una latenza enorme (da qualche decina di secondi a qualche minuto, a seconda delle dimensioni del file e della velocità della macchina).

    ...ed ovviamente con LMS "rompe il gapless".
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  2. #752
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    uh? ma sei sicuro? Con quale versione di sox?

    codice:
    C:\Documents and Settings\marco>"G:\Sviluppo\slimserver\Bin\MSWin32-x86-multi-th
    read\ffmpeg.exe" -vn -v 0 -ss 330.733333333333 -t 286.333333333334 -i "E:\Rock\J
    ackson Browne\Running on Empty (1977)\Jackson Browne - Running on Empty.wav" -f
    wav - | "C:\Programmi\sox-14-4-2\sox.exe" -V -t wav - -t wav --buffer=8192 prova
    1a.wav gain -10 loudness 0 55
    C:\Programmi\sox-14-4-2\sox.exe:      SoX v14.4.2
    
    Input File     : '-' (wav)
    Channels       : 2
    Sample Rate    : 44100
    Precision      : 16-bit
    Duration       : 06:45:47.89 = 1073741823 samples = 1.82609e+006 CDDA sectors
    File Size      : 0
    Bit Rate       : 0
    Sample Encoding: 16-bit Signed Integer PCM
    Endian Type    : little
    Reverse Nibbles: no
    Reverse Bits   : no
    
    C:\Programmi\sox-14-4-2\sox.exe INFO sox: Overwriting `prova1a.wav'
    
    Output File    : 'prova1a.wav'
    Channels       : 2
    Sample Rate    : 44100
    Precision      : 16-bit
    Duration       : 06:45:47.89 = 1073741823 samples = 1.82609e+006 CDDA sectors
    Sample Encoding: 16-bit Signed Integer PCM
    Endian Type    : little
    Reverse Nibbles: no
    Reverse Bits   : no
    Comment        : 'Processed by SoX'
    
    C:\Programmi\sox-14-4-2\sox.exe INFO loudness: has no effect in this configurati
    on
    C:\Programmi\sox-14-4-2\sox.exe INFO sox: effects chain: input        44100Hz  2
     channels
    C:\Programmi\sox-14-4-2\sox.exe INFO sox: effects chain: gain         44100Hz  2
     channels
    C:\Programmi\sox-14-4-2\sox.exe INFO sox: effects chain: dither       44100Hz  2
     channels
    C:\Programmi\sox-14-4-2\sox.exe INFO sox: effects chain: output       44100Hz  2
     channels
    C:\Programmi\sox-14-4-2\sox.exe WARN wav: Premature EOF on .wav input file
    
    C:\Documents and Settings\marco>

    Originariamente inviato da UnixMan
    Purtroppo per l'uso "online/on-the-fly" che ne facciamo noi è improponibile. Per funzionare in qualche modo prima deve processare/analizzare l'intero file per scoprire di quanto headroom ha bisogno... per cui aggiunge una latenza enorme (da qualche decina di secondi a qualche minuto, a seconda delle dimensioni del file e della velocità della macchina).

    ...ed ovviamente con LMS "rompe il gapless".
    Quello che temevo...
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  3. #753
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    a. loudness NON può essere usato con il primo parametro (gain) = 0, il comando non ha effetto in questo caso.
    azz... hai ragione!

    Genero un file con solo white noise:
    codice:
    sox -S -n wnoise.wav synth -n 00:00:10 whitenoise gain -10
    questo lo spettro (piatto, come atteso...):

    dopo di che:

    codice:
    sox wnoise.wav wn+l-0-50.wav loudness 0 50
    sox wnoise.wav wn+g-+9-l--9-50.wav gain +9 loudness -9 50
    Con il primo parametro (di "loudness") posto a "-9", lo spettro diventa questo:

    ...mentre con il primo parametro a zero resta piatto!

    edit: stupidamente non avevo aggiunto il "-V3" alla riga di comando, altrimenti avrei visto il warning... e mi sarei potuto risparmiare la fatica di fare gli spettri.

    Originariamente inviato da marcoc1712
    b. gain deve essere compreso tra -50 e 15, indipendententemente (a quanto pare) dal valore di db_ref (???).
    c. db_ref (start) deve essere compreso tra 50 e 75.
    [...]
    Non ho ancora ben capito SE e quale relazione intercorre tra i due parametri del loudness
    idem. Credevo di averlo capito, e invece... non avevo capito proprio nulla.

    Originariamente inviato da marcoc1712
    e tra questi ed il gain aggiunto mediante altri effetti (gain o remix, per quanto mi riguarda).
    se non ho completamente frainteso anche questo, in teoria i diversi effetti dovrebbero essere del tutto indipendenti tra loro, come se fossero programmi diversi che puoi combinare tra loro "in cascata" con una "pipe".

    Però, per applicare correttamente la correzione, in qualche modo "loudness" dovrebbe fare riferimento (anche) al livello effettivo dello stream che va a trattare, quindi dovrebbe risentire degli effetti (sul livello) di quanto fatto "a monte".

    Boh...

    Originariamente inviato da marcoc1712
    Il messaggio di errore conseguente al punto b parla di 'delta', ma non capisco tra cosa, dal messaggio parrebbe tra gain e db_ref, ma in realtà pare un valore assoluto (o riferito al corrente, sconosciuto, valore della pressione sonora PRIMA dell'applicazione del loudness). Non è per nulla chiaro. La documentazione non è certo il loro punto forte!
    no, decisamente.

    Originariamente inviato da marcoc1712
    Questi sono i livelli di picco misurati:
    come? con "stat"/"stats"? (altri "effetti" di sox)

    ah, ecco...
    Originariamente inviato da marcoc1712
    Per misurare i picchi ho usato foobar sul pc di sviluppo
    Per toglierti il dubbio sull'entità delle attenuazioni, potresti (ri)verificare anche con stat/stats.
    Ultima modifica di UnixMan : 27-04-2016 a 16:28
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  4. #754
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Si, ma se capisco bene nel secondo grafico la scala è molto diversa, tra valle e picco il delta è 0,5 db, giusto?

    Si, i diversi effetti sono in una 'catena', quindi indipendenti, ma il gain -hr finale (o il -G) 'dovrebbe' riconsiderare il tutto ed in effetti lo fa, ma probabilmente non riesce del tutto con il loudenss (che io avevo impostato con guadagno positivo però).

    Come fa a fare roiferimento al livello effettivo? dovrebbe avere un fonometro collegato. Per questo lo chiede a te (db_ref). In sostaza, la cosa più probabile è questa: Indichi a che livello di pressione sei (db_ref) quindi dici che variazione vuoi ottenere rispetto a quel livello e lui la applica mediante la isofonica corrispondente. QUindi la isofonica applicata NON è quella di db_ref, ma di db_ref + guadagno.

    In questo modo assumono un senso maggiore anche i ilimiti:

    loudness -50 50 = porta il livello a 0.
    loudenss +15 75 = porta il livello a 90.

    Sotto 0 db non ha senso il loudness, ovviamente, sopra 90 db (ma anche prima) non si applica più, i parametri psicoaucustici cambiano completamente. probabilmente bisogna leggerlo in questo modo, anche se se metti ANCHE il gain è come se mettesi uno shift ulteriore al db_ref, quindi 'falsi' il quadro (da qui i valori diversi di picco, presumibilmente).

    Comunque è troppo vago, dovrebbero spiegare meglio, magari mi guardo il codice.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  5. #755
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    edit: stupidamente non avevo aggiunto il "-V3" alla riga di comando, altrimenti avrei visto il warning... e mi sarei potuto risparmiare la fatica di fare gli spettri.
    Io ho solo tolto -q e messo -V, non -V3 e l'INFO (non è un warnibg) esce ugualmente.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  6. #756
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    Si, ma se capisco bene nel secondo grafico la scala è molto diversa, tra valle e picco il delta è 0,5 db, giusto?
    sì, la scala è diversa. No, la differenza si riferisce alla posizione del "cursore" (puntatore del mouse), che era posizionato a caso. Non ho misurato quantitativamente l'effetto, mi premeva solo di visualizzare lo "shape".

    Originariamente inviato da marcoc1712
    Si, i diversi effetti sono in una 'catena', quindi indipendenti, ma il gain -hr finale (o il -G) 'dovrebbe' riconsiderare il tutto ed in effetti lo fa, ma probabilmente non riesce del tutto con il loudenss (che io avevo impostato con guadagno positivo però).
    ah, avevi attivato quello... ecco perché quei valori "strani", che non capivo da dove uscissero.

    Originariamente inviato da marcoc1712
    Come fa a fare roiferimento al livello effettivo? dovrebbe avere un fonometro collegato.
    Lol!

    Ovviamente per "livello effettivo" mi riferivo a quello dello stream in ingresso (quanto meno, in ingresso a "loudness", dopo le eventuali elaborazioni precedenti). Non tutti gli stream sono "normalizzati" allo stesso livello (tutt'altro...); se uno stream è normalizzato a 0dB (picchi massimi che raggiungono la massima ampiezza possibile) mentre un altro è normalizzato e.g. a -10dB, per applicare correttamente la correzione si dovrebbe tener conto di quella differenza.

    Originariamente inviato da marcoc1712
    Per questo lo chiede a te (db_ref).
    sì, questo mi era chiaro. Il dubbio resta su come usi esattamente quel valore (e l'altro), nonché se/come eventualmente tenga conto dell'ampiezza massima (relativa al f.s.) dello stream in ingresso.

    Originariamente inviato da marcoc1712
    In sostaza, la cosa più probabile è questa: Indichi a che livello di pressione sei (db_ref) quindi dici che variazione vuoi ottenere rispetto a quel livello e lui la applica mediante la isofonica corrispondente. QUindi la isofonica applicata NON è quella di db_ref, ma di db_ref + guadagno.
    che (se non ho capito male cosa intendevi dire) è proprio quello che pensavo. Ma, se così fosse, non dovrebbe funzionare anche con il primo parametro a 0dB?!

    Originariamente inviato da marcoc1712
    In questo modo assumono un senso maggiore anche i ilimiti:

    loudness -50 50 = porta il livello a 0.
    loudenss +15 75 = porta il livello a 90.
    cosa intendi con "livello", in questo caso? (quale livello?)

    Originariamente inviato da marcoc1712
    se metti ANCHE il gain è come se mettesi uno shift ulteriore al db_ref, quindi 'falsi' il quadro (da qui i valori diversi di picco, presumibilmente).
    penso proprio di sì... (vedi quello che dicevo poco sopra).

    Originariamente inviato da marcoc1712
    Comunque è troppo vago, dovrebbero spiegare meglio, magari mi guardo il codice.
    sì, temo sia l'unica soluzione per tagliare la testa al toro. A meno che non ci sia qualche spiegazione più chiara in qualche "risorsa" online (WiKi, ecc).
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  7. #757
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Per 'livello' intendo i db 'teorici' dopo la correzione di gain del loudness sulla base del db_ref e del guadagno (interno alla funzione loudness), in pratica il valore di riferimento per la isottonica applicata.

    db_ref = 50 gain = -50 -> livello = 0.
    db_ref = 75 gain = +15 -> livello = 90.

    che sono gli estremi massimo e minimo in cui può lavorare l'effetto loudness.

    Ovviamente sono 'relativi' rispetto al livello di presione sonora reale (sconosciuto) ma purtroppo - per quanto ho capito - anche a quello 'nominale' (la somma dei gains o volume o compresione,...)impostati dagli altri effetti), teoricamente conoscibile, ma quanto significativo senza sapere il primo?

    La cosa che però meno capisco è che

    loudness -20 75
    loudness -20 65
    gain -10 loudness -10 65

    restituisce rispettivamente 20.37, 20.54, 22.36 db. Quindi, in loudness, è più importante il livello di riduzione che non il punto di partenza. Se voglio capire devo studiare il codice...
    Ultima modifica di marcoc1712 : 27-04-2016 a 18:43
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  8. #758
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    codice:
     for (i = 0; i < (int)LEN - 2; ++i) {
        spl[i + 1] = SPL(start + delta, iso226_table[i]) -
                     SPL(start        , iso226_table[i]);
        fs[i + 1] = log(iso226_table[i].f);
      }
    Senza pretesa di aver capito come funziona il tutto, è però evidente che gli unici parametri presi in considerazione sono start e delta, cioè db_ref e gain dell'effetto loudness, dalla 'differenza' tra il valore start + delta e start per singola frequenza, ricava il valore di filtro da applicare.

    Ecco il motivo per cui un delta di '0' non è significativo.

    Non chiedetemi come, al momento, ma ciò basta a capire la logica sottostante:

    val(hz) = f(start, delta), è quindi da leggere come : variazione (calcolata ad ogni frequenza del riferimento 'hz') provocata dall'applicazione di delta db alla pressione 'nominale' di start db.

    Questa variazione viene poi aggiunta (sempre come curva) al segnale, indipendentemente da altri effetti, gain compreso.

    Non era così difficile da spiegare...
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  9. #759
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Proviamo con qualcosa del genere, allora...
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  10. #760
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    perchè metti -l +6 ?

    in questp modo 'limiti', cioè immetti compressione per evitare clipping. Non è meglio NON mettere nessun guadagno (posto che quello negativo imposto al loudness sia suffciente)? Dovrai alzare un po di più il volume...
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

Pagina 76 di 88
prima
... 26 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 ... ultimo

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022