Gambas-it

Gambas3 => Programmazione => Topic aperto da: allegfede - 24 Dicembre 2012, 18:41:22

Titolo: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: allegfede - 24 Dicembre 2012, 18:41:22
prosegue il progetto di radio automation e ovviamente c'e la nescessita' di caricare nei DB i brani della vostra collezione musicale.

spesso questi sono in mp3 (od OGG se preferite file in formato open) e sarebbe carino poterli catalogare agevolmente per autore/anno/titolo etc etc.

Perche' duplicare l'immissione se spesso queste informazioni sono gia' nel file con gli opportuni metadata?

TAG mp3 (ed equivalenti OGG) non si possono (ancora?) estrarre attraverso l'interfaccia gstreamer di gambas (gb.media) od almeno ancora non ci sono riuscito, ma con un piccolo tool open (scaricabile dai repository) che si chiama "mp3info" (ogginfo per i file .ogg che trovate nel pacchetto vorbis-tools) poterete aggirare l'ostacolo facilmente.

mettete i pacchetti e poi potete scrivere qualcosa del genere:
Codice: [Seleziona]
Public Sub GetInfo(filepath As String)
Dim sOutput As String
Dim aScan As String[]
 
  Select Case LCase(File.Ext(filepath))
   
    Case "mp3" 'mp3info -p "%S\n"
      Exec ["mp3info", "-p", "%a", filepath] To sOutput
      Label_artist.Text = sOutput
      Exec ["mp3info", "-p", "%c", filepath] To sOutput
      TextArea_Comments.Text = sOutput
      Exec ["mp3info", "-p", "%l", filepath] To sOutput
      Label_album.Text = sOutput
      Exec ["mp3info", "-p", "%n", filepath] To sOutput
      Label_track.Text = sOutput
      Exec ["mp3info", "-p", "%t", filepath] To sOutput
      Label_title.Text = sOutput
      Exec ["mp3info", "-p", "%y", filepath] To sOutput
      Label_year.Text = sOutput
     
     
    Case "ogg", "flac"
      Exec ["ogginfo", filepath] To sOutput
      For Each sOutput In Split(sOutput, "\n")
        sOutput = Trim(sOutput)
        aScan = Scan(sOutput, "*: *m:*s")
         If aScan.Count = 3 Then
          'Return CInt(CInt(aScan[1]) * 60 + CFloat(Replace(aScan[2], ",", ".")) + 0.5)
         Endif
      Next
   
  End Select

un piccolo esempio nel pezzo della piattaforma PRS_OSE in fase di alfa :D
https://sourceforge.net/projects/prsose/files/latest/download?source=files

spero possa esservi utile :D
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 24 Dicembre 2012, 19:08:52
TAG mp3 (ed equivalenti OGG) non si possono (ancora?) estrarre attraverso l'interfaccia gstreamer di gambas (gb.media) od almeno ancora non ci sono riuscito,

Anch'io sto lavorando sull'estrazione dei Tag con gstreamer, ma ancora non riesco a capire con precisione il meccanismo...  :hatecomputer:

Ad ogni modo la strategia adottata da fsurfing (vedi qua: http://www.gambas-it.org/smf/index.php?topic=2450.msg26533#msg26533 ) sarebbe la più idonea.

Ci risentiremo su quest'argomento.
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: allegfede - 24 Dicembre 2012, 21:22:45
si e' sicuramente un bel lavoro, ma e' forse un po' troppo legato alla formattazione del file.

Sarebbe perfetto se non fosse che spesso gli "standard" non vengono rispettati ;-)

A questo punto una libreria esterna (mp3info per esempio) potrebbe risultare piu' aggiornata (e' un progetto stabile e molto usato) e meno soggetto ad errori di programmazione (i miei) :D

.... da qualche parte mi e' passata per le mani una discussione (forse sulla mailing list dei developers di gambas), in cui un tizio costruiva un grafo "fake" per estrarre le info del file multimediale .... ma non lo trovo piu' .... :(


... del resto gstreamer dovrebbe essere piu' che in grado di gestire la cosa:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-metadata.html

PS: .... ancora sono al lavoro per controllare una riparazione dell'ultimo momento e mi scordavo che e' il 24 dicembre .... BUON NATALE !!!! e buon duemilaCredici :D
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 25 Dicembre 2012, 01:33:17
si e' sicuramente un bel lavoro, ma e' forse un po' troppo legato alla formattazione del file.

Sarebbe perfetto se non fosse che spesso gli "standard" non vengono rispettati ;-)


Più precisamente cosa intendi dire ?
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 25 Dicembre 2012, 20:46:58
Ci risentiremo su quest'argomento.

Allora, ho trovato il modo di vedere i Tag di un file audio con il componente gb.media..... cavolo ! Mi ero perso in un bicchiere d'acqua !

Ho riportato la breve e semplice spiegazione alla fine della pagina della WIKI relativa a quel componente:
https://www.gambas-it.org/wiki/index.php?title=Eseguire_i_file_audio_mediante_la_Classe_%27%27MediaPlayer%27%27_del_componente_gb.media#Estrarre_i_Tag_da_un_file_audio


Segnalo, ad ogni modo, anche quest'altre discussioni del forum:
http://www.gambas-it.org/smf/index.php?topic=77.0
http://www.gambas-it.org/smf/index.php?topic=866.0
http://www.gambas-it.org/smf/index.php?topic=2450.0
http://www.gambas-it.org/smf/index.php?topic=3279.0
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: allegfede - 28 Dicembre 2012, 02:05:58
Cavolo mo si che si ragiona :-)

E' sempre un Po cervellotico ma ha un senso ;-)

Bene, domani lavoro nuovo codice in puro gambas per la costruzione della mediatica :D

Ps: vuott come al solito sei illuminante!
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: fsurfing - 28 Dicembre 2012, 12:26:03
Citazione
vott come al solito sei illuminante!
Vero.
Perfortuna che c'è vuott che prova e testa i nuovi componenti , senno non sapremmo neppure che esistono.
Bravissimo!
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 28 Dicembre 2012, 14:30:01
Citazione
vott come al solito sei illuminante!
Vero.
Perfortuna che c'è vuott che prova e testa i nuovi componenti , senno non sapremmo neppure che esistono.
Bravissimo!

Ringrazio entrambi, però sarebbe opportuno che questa "fatica" la facessero anche altre persone.  >:(
Faremmo prima a sbrogliare le varie matasse e i misteri che avvolgono i vari componenti ed argomenti.

Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: md9327 - 28 Dicembre 2012, 15:32:23
senza mistero la vita sarebbe noiosa...  ;D
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 28 Dicembre 2012, 15:41:37
senza mistero la vita sarebbe noiosa...

Senza un buon gruppo di persone che cooperano l'applicazione e lo studio diventano fatica, e l'operatore diventa l'unico fesso...   :donkey:
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: fsurfing - 28 Dicembre 2012, 18:19:16
secondo me tu fai troppo bene il tuo "Lavoro" di scopritore per cui un gruppo sarebbe inutile :)
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 28 Dicembre 2012, 18:42:05
secondo me tu fai troppo bene il tuo "Lavoro" di scopritore...
....faccio bene il fesso.  :donkey:




.....per cui un gruppo sarebbe inutile

Ah, sì ?

Be', io ti ho sempre ritenuto un ottimo programmatore e conoscitore di Gambas, per cui.... sei cooptato !  :devil:
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: Speedvicio - 29 Dicembre 2012, 12:09:54
secondo me tu fai troppo bene il tuo "Lavoro" di scopritore...
ma... in vero io semplicemente mi ci applico e ci sbatto duramente la testa !  :hard:   ...proprio come un asino !

Penso che sei l'esempio tipico del programmatore "curiosone" che cerca di carpire tutti i segreti del linguaggio di programmazione  :coder:

Io avevo utilizzato il componente ExifTool (http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/index.html) per il mio player.
Grazie al tuoi aiuto potrò fare qualche "scarso" tentativo anche con gb.media  :)
Titolo: Re: estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 29 Dicembre 2012, 13:35:14
.....programmatore "curiosone" che cerca di carpire tutti i segreti del linguaggio di programmazione
Be'.... ovviamente uno più conosce il linguaggio che ha dinnanzi, meglio gestisce ed elabora il progetto.  ;D



Io avevo utilizzato il componente ExifTool (http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/index.html)
Io ti ringrazio per aver inserito questo collegamento: ci sono le spiegazioni dei Tag a livello di protocollo di moltissimi tipi di file.



potrò fare qualche "scarso" tentativo anche con gb.media  :)

Scarso ? Ma guarda che le istruzioni per ottenere i Tag con gb.media sono davvero molto semplici !  :-\
Titolo: Re:estrarre i tag dai file musicali (ogg e mp3)
Inserito da: vuott - 05 Agosto 2018, 14:41:30
Nuove soluzioni al riguardo per i file OGG:

http://www.gambas-it.org/wiki/index.php?title=Estrarre_informazioni_e_TAG_da_un_file_OggVorbis_con_le_sole_funzioni_di_Gambas
http://www.gambas-it.org/wiki/index.php?title=Estrarre_informazioni_da_un_file_OggVorbis_con_le_funzioni_esterne_del_API_di_Vorbisfile



Più in generale sulla gestione in Gambas dell'audio:

   https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Gestione_dei_dati_audio_e_dei_file_audio