PDA

View Full Version : [Gstreamer] Gestire le proprietà dei formati audio


Zorcan
08-12-2005, 19:58
Breve riassunto per chi non lo sapesse: il formato MP3 è un formato lossy (cioè a perdita di qualità) che non supporta la riproduzione gapless (cioè senza quel "click" tra una canzone e l'altra che alcuni plugin tentano con grande sforzo di nascondere). Il formato MPC (Musepack) è anch'esso un formato lossy, ma oltre ad essere decisamente migliore del MP3 (dimensioni minori a parità di qualità, qualità migliore a parità di dimensioni) supporta anche la riproduzione gapless.

Problema: qualsiasi player usi, sia via codec separati, sia via Gstreamer, mi schiaffa un click quando passa da un MPC all'altro. Preferendo poi Rhythmbox, che usa Gstreamer, ho qualche perplessità in merito.

Domanda: esiste un modo per attivare il gapless playback nel plugin Musepack di Gstreamer? E in generale: come si modificano le opzioni di Gstreamer?

Grazie. :)

P.S. Vi mostro uno screenshot, tanto per farvi capire in che condizione sto: questo è un disco (originale) che proprio non posso sentire con i buchi tra una canzone e l'altra. ;)

http://img264.imageshack.us/img264/1013/schermatapinkfloydaspeaktomebb.th.png (http://img264.imageshack.us/my.php?image=schermatapinkfloydaspeaktomebb.png)

VICIUS
08-12-2005, 22:12
Il problema non è gstreamer ma rhythmbox, almeno fino a qualche mese fa. Non supporta ne replaygain ne la riprouzione gapless quindi l'unica penso sia cambiare player.
Ti consiglierei amaroK in cui so che funziona ma so gia che non ti interesa :D
Quindi prova ad usare Banshee http://banshee-project.org/Main_Page oppure Quod Libet http://www.sacredchao.net/quodlibet. Entrambi sembrano supportare il gapless anche per gli mp3.

ciao ;)

Zorcan
08-12-2005, 22:17
Prima ti becchi questo perchè hai risposto > :ave:

Poi ti becchi un grazie, per la stessa ragione, e in ultimo ti becchi un "amarok è un bel player e già che sto per mettere opensuse sul pc2, lo provo". :D ;)

P.S. Qui su Debian sperimento Banshee, vediamo un po'.

SilverXXX
09-12-2005, 10:51
amarok è IL player :D non un bel player.
Di banshee e quod libet apprezo poco il fatto vadano via mono. Le applet si fanno interpretate, non i programmi.

Al Azif
09-12-2005, 11:37
Io uso rhythmbox e di quei problemi non ne soffro.

http://img218.imageshack.us/img218/4877/immagine9nw.png (http://imageshack.us)

Zorcan
09-12-2005, 11:59
Io uso rhythmbox e di quei problemi non ne soffro.
[IMG]

Cioè riproduzione gapless MPC senza plugin per l'annullamento del silenzio fra le tracce?

VICIUS
09-12-2005, 12:51
amarok è IL player :D non un bel player.
Di banshee e quod libet apprezo poco il fatto vadano via mono. Le applet si fanno interpretate, non i programmi.
Mono è compilato non interpretato.

ciao ;)

SilverXXX
09-12-2005, 13:05
Mono è compilato, ma le applicazioni che lo usano sono compilate in un linguaggio intermedio e poi interpretate

VICIUS
09-12-2005, 13:16
Mono è compilato, ma le applicazioni che lo usano sono compilate in un linguaggio intermedio e poi interpretate
python, ruby o php sono interpretati. tutte le volte che legge una istruzione deve essere rifatto il parsing.
Mono, come java, traduce dal assembly della macchina virtuale a quella nativa solo la prima volta dopo di che viene eseguito sempre il codice nativo come un programma C o C++.

ciao ;)

SilverXXX
09-12-2005, 13:25
python, ruby o php sono interpretati. tutte le volte che legge una istruzione deve essere rifatto il parsing.
Mono, come java, traduce dal assembly della macchina virtuale a quella nativa solo la prima volta dopo di che viene eseguito sempre il codice nativo come un programma C o C++.

ciao ;)
:mbe: mi sembra ENORMEMENTE strano. Non conosco bene mono, ma per java mi pare impossibile quello che hai detto.

Al Azif
09-12-2005, 14:02
Cioè riproduzione gapless MPC senza plugin per l'annullamento del silenzio fra le tracce?

Non mi pare di aver installato nulla di strano, solo il codec mpc per gstreamer e si sente perfettamente senza pause, che versione hai di gsteramer e rhythmbox?


X gli altri: a me non piace, ma quodlibet è scritto in python non in mono

SilverXXX
09-12-2005, 15:11
Non è che hai messo gstreamer 0.10?

Zorcan
09-12-2005, 18:02
Non mi pare di aver installato nulla di strano, solo il codec mpc per gstreamer e si sente perfettamente senza pause, che versione hai di gsteramer e rhythmbox?

Avendolo preso da Etch, Gstreamer è alla 0.8 (Rhythmbox è alla 0.8.8). Può darsi sia come dice Silver?

Al Azif
09-12-2005, 20:37
Avendolo preso da Etch, Gstreamer è alla 0.8 (Rhythmbox è alla 0.8.8). Può darsi sia come dice Silver?

Mmm... prova a vedere nel changelog di rhythmbox, forse nella versione successiva alla tua hanno risolto il bug (se mai lo ha avuto). A me rhythmbox è la 0.9.1 e gstreamer è quello di breezy, 0.8.11.

Zorcan
10-12-2005, 09:21
Mmm... prova a vedere nel changelog di rhythmbox, forse nella versione successiva alla tua hanno risolto il bug (se mai lo ha avuto).

Non per polemizzare, ma se non è un bug secondo te da che dipende? Il plugin è quello per musepack (e ce n'è uno solo), i file li ho creati io stesso con una certa cura e su Windows (purtroppo...) sono sempre stati riprodotti senza alcun gap. :boh:

Tra i cambiamenti introdotti da Gstreamer 0.10 vedo molto enfatizzata la velocizzazione in risposta sia per l'audio che per il video, quindi questo mi fa ben sperare. Ma poi leggo che il tuo gstreamer è alla mia stessa versione, cambia solo Rhythmbox (che tu hai più aggiornato) quindi ora potrei fare un tentativo aggiornando quello (ma portare mezza distro a experimental solo per un player audio non so quanto mi va). Vediamo se trovo qualcosa di alternativo.

reptile9985
10-12-2005, 09:26
anchio su ubuntu breezy e rhythmbox (sia 0.9.0 che 0.9.1) non ho nessun gap tra una traccia e l'altra con qualsiasi formato incluso mpc...gstreamer è lo 0.8 :)

DanieleC88
11-12-2005, 09:54
Quindi prova ad usare Banshee http://banshee-project.org/Main_Page oppure Quod Libet http://www.sacredchao.net/quodlibet. Entrambi sembrano supportare il gapless anche per gli mp3.

ciao ;)
OMMADDOONNNAAAAAA!!!!
VICIUS CHE CONSIGLIA QUOD LIBET!!! QUESTA ME LA SEGNO!!! XD XD XD :D

A parte scherzi Quod libet è il migliore (anzi, ad ogni release migliora costantemente)! ;)

Zorcan
11-12-2005, 19:03
A parte scherzi Quod libet è il migliore

E' un bel player, però ho un dubbio atroce: leggi qui (http://www.sacredchao.net/quodlibet/wiki/GStreamerWhy).

Quindi si appoggia a Gstreamer? Se così fosse, il problema del gapless playback (e del seeking molto lento) rimarrebbe. Il sospetto mi è venuto leggendo la frase in basso su quella pagina: Gapless playback doesn't work anymore. This is a problem for any program using GStreamer. :what:

Al Azif
11-12-2005, 20:08
Guarda ho controllato anche con totem che usa come backend gstreamer e non mi ritorna nessun gap o roba simile :)

Zorcan
11-12-2005, 20:12
Guarda ho controllato anche con totem che usa come backend gstreamer e non mi ritorna nessun gap o roba simile :)

Grazie dell'aiuto, in eggetti sarei tentato di provare ad aggiornare Gstreamer e Rhythmbox da Experimental per vedere se riesco a "tagliare la testa al toro". Facciamo così, continuo a farci a botte ancora un po' e se non risolvo torno qui in lacrime ad annunciare la mia disfatta. :D :)

Zorcan
11-12-2005, 23:23
Mi sono arreso, ho rimesso Windows. No, ok, cazzata. Però mi sono arreso davvero e ho messo Rhythmbox 0.8 da Etch. Pazienza per la questione gapless e pazienza se il player è tanto carino (e lo è davvero, spartano come piace a me) quanto misterioso (non c'è un'opzione per aprire singoli files? Forse è un po' troppo spartano...). Attenderò il Natale prossimo, quando Gstreamer e Rhythmbox nuovi giungeranno in quel dei rep di Etch/Sid. Grazie a tutti dell'aiuto. :)

DanieleC88
12-12-2005, 14:49
E' un bel player, però ho un dubbio atroce: leggi qui (http://www.sacredchao.net/quodlibet/wiki/GStreamerWhy).

Quindi si appoggia a Gstreamer? Se così fosse, il problema del gapless playback (e del seeking molto lento) rimarrebbe. Il sospetto mi è venuto leggendo la frase in basso su quella pagina: :what:
Si, confermo, non funziona (adesso, prima lo faceva). Comunque, si, il problema sta proprio in gstreamer (sto provando a prendere la nuova release da CVS proprio per vedere se migliora). Quindi: comincia a passare a Quod libet, che poi quando risolvono con gstreamer torna tutto a posto. :D

ciao ;)

Zorcan
12-12-2005, 19:00
Si, confermo, non funziona (adesso, prima lo faceva). Comunque, si, il problema sta proprio in gstreamer (sto provando a prendere la nuova release da CVS proprio per vedere se migliora). Quindi: comincia a passare a Quod libet, che poi quando risolvono con gstreamer torna tutto a posto. :D

ciao ;)

So aspettare. Per ora pasticcio anche su Amarok, voglio capire se è vera quell'ultima frase del link che ho postato prima. ;)

Zorcan
12-12-2005, 21:47
Comunque nemmeno Amarok legge i miei mpc perfettamente, una leggera esitazione tra una traccia e l'altra c'è sempre. Inizio a pensare che, oltre ai problemi già visti di Gstreamer (non imputabili in questo caso, visto che Amarok usa Xine), ci sia un problema di compatibilità con il codec che usai a suo tempo per estrarre le tracce*. E se si trattasse di due o tre dischi, ci farei il callo. Ma qui parliamo di centinaia e la cosa mi disturba un po'. Per scrupolo, estraggo un cd in FLAC per vedere se poi la riproduzione è perfetta o se presenta problemi.

* Prova eseguita, anche in FLAC c'è un microscopico salto. Evidentemente è un problema generale. Sono contento perchè tutti i cd rippati li ho fatti con gran cura e mi sarebbe dispiaciuto scoprire di aver perso tempo. Speriamo si diano una mossa anche nel risolvere questi dettagli incompleti: non sono prioritari, ma sono compromessi che alla lunga stancano.

SilverXXX
12-12-2005, 22:49
Io non noto un gap con amarok e i miei mpc, ma sono fatti di recente; però ho attivato un minimo di crossfading, e forse questo non me lo fa notare.

Zorcan
13-12-2005, 00:06
Io non noto un gap con amarok e i miei mpc, ma sono fatti di recente; però ho attivato un minimo di crossfading, e forse questo non me lo fa notare.

Col crossfading il gap dovrebbe annullarsi in favore di un minore dettaglio al cambio canzone, però con certi album (per dirne uno, The Dark Side of the Moon) c'è bisogno del gap a 0 e niente crossfade. Tuttavia, per pronunciarmi definitvamente, voglio fare ancora qualche test e chiedere anche su Hydrogenaudio (non so se lo conoscete, ci bazzicano persone che passano le giornate a fare test in camera anecoica :D). :)

SilverXXX
24-12-2005, 21:29
Prova a dare un'occhiata qui: aqualung (http://aqualung.sf.net)

Zorcan
25-12-2005, 08:46
Prova a dare un'occhiata qui: aqualung (http://aqualung.sf.net)

Ma che è, un regalo di Natale? Non solo supporta il gapless, ma mi cita in prima pagina Jimi Hendrix e gli Yes! Deve per forza essere il mio player, cacchio! :D
Grazie, lo provo appena ho un minuto. :)

Black imp
26-12-2005, 01:45
:mbe: mi sembra ENORMEMENTE strano. Non conosco bene mono, ma per java mi pare impossibile quello che hai detto.


quoto. mai sentito che il codice della vm di java venga tradotto nel codice macchina della piattaforma sottostante. :mbe:

DanieleC88
26-12-2005, 10:40
:mbe: mi sembra ENORMEMENTE strano. Non conosco bene mono, ma per java mi pare impossibile quello che hai detto.
quoto. mai sentito che il codice della vm di java venga tradotto nel codice macchina della piattaforma sottostante. :mbe:
Non solo e' possibile, ma e' anche vero: i programmi scritti in linguaggi come Java e Mono (be', volendo, anche in Python) sono "semi-interpretati". Vengono "compilati a meta'" (l'eseguibile contiene il "bytecode" e non il codice binario vero e proprio), in modo da permettere alla virtual machine di "riadattare" il codice a diverse piattaforme.

SilverXXX
26-12-2005, 11:03
Non solo e' possibile, ma e' anche vero: i programmi scritti in linguaggi come Java e Mono (be', volendo, anche in Python) sono "semi-interpretati". Vengono "compilati a meta'" (l'eseguibile contiene il "bytecode" e non il codice binario vero e proprio), in modo da permettere alla virtual machine di "riadattare" il codice a diverse piattaforme.
Il bytecode è completamente generico, non c'entra minimamente con l'architettura però :D

DanieleC88
26-12-2005, 16:28
Il bytecode è completamente generico, non c'entra minimamente con l'architettura però :D
Eh... e allora non ho capito il dubbio. :D

SilverXXX
26-12-2005, 16:52
No, perchè qualcuno aveva detto che mono compilava in linguaggio macchina

DanieleC88
27-12-2005, 09:21
No, perchè qualcuno aveva detto che mono compilava in linguaggio macchina
Il Just-In-Time compiler lo fa prima di avviare il programma, se scelto, sia in Mono che in Java. ;)

SilverXXX
27-12-2005, 09:43
Il Just-In-Time compiler lo fa prima di avviare il programma, se scelto, sia in Mono che in Java. ;)
Io mi ricordavo che il jitc compilava a pezzi, invece che riga per riga. Non pensavo facesse tutto il codice

DanieleC88
27-12-2005, 15:20
Io mi ricordavo che il jitc compilava a pezzi, invece che riga per riga. Non pensavo facesse tutto il codice
Questo di sicuro non so dirtelo, ci vorrebbe l'intervento di VICIUS che su queste cose e' decisamente piu' esperto di me. :)