giovedì 19 giugno 2014

Aggiornamento: JMusicMan

Dopo tanto tempo, ho deciso di scrivere un programma per gestire la musica sul mio Android. Quando avevo l'iPod non avevo molto problemi, perché iTunes è un gran software, fa tutto a dovere, anche se ha un grandissimo difetto: se non hai un Mac (cioè se sei su Windows) ti gira come una palla pesantissima...

Oggi ho Android, nello scorso post avevo mostrato il mio sistema per sincronizzare Rhythmbox con il dispositivo Android. Perfetto, anch'esso funzionale, ma il sistema di plugin di Rhythmbox è odioso, tanto che quando formatto il pc (quando esce una LTS ubuntu è d'obbligo) devo reinstallare tutto, aggiungendo che qualche plugin è datato/non funziona più / è incompatibile con la nuova versione, perdo delle caratteristiche importanti.


La verità è che sono veramente un maniaco, basterebbe solo collegare il cellulare al PC e copiare la musica; a me no, non basta, finché non ho un sistema davvero efficiente per avere una copia della mia libreria sul PC fedele a quella del cellulare.


Ecco che ho sviluppato JMusicMan, ancora in versione alpha, con lo scopo  ben preciso di adempiere le seguenti funzionalità:

  1. Le canzoni devono essere organizzate in cartelle in  questo modo: /artista/album/file.mp3, e ogni file mp3 deve avere il titolo xx - TitoloCanzone.mp3, dove xx è il numero della traccia. Il tutto ovviamente preso dal tag ID3 del file mp3.
  2. La libreria sul PC deve essere uguale a quella sul cellulare.
  3. Quando sincronizzo con il cellulare, il programma deve controllare quali file copiare sul dispositivo e quali file eliminare dal dispositivo
Devo dire che queste tre caratteristiche sono state perfettamente implementate (soltanto la lettura dei tag ID3, resa possibile tramite una libreria di terze parti, ogni tanto fa i capricci).

Dopo aver corretto alcuni bugs, e dopo aver implementato altre nuove funzionalità (attualmente il software sa richiamare il player precedentemente impostato per riprodurre il file musicale), poi rilascierò il software. 

La prossima commissione sarà anche quella di organizzare i files .ogg e .flac (per me che sono un maniaco della qualità audio, il supporto a questo formato è indispensabile).

Questo è il repository git su github: https://github.com/standuptall/JMusicMan.git

giovedì 13 marzo 2014

Rhythmbox e la sincronizzazione dei dispositivi portatili

Ho sempre trovato Rhythmbox per GNU/Linux, un ottimo player, perfettamente integrato all'ambiente GNOME e derivati. Il suo punto di forza sta nell'usabilità, nella semplicità di utilizzo e nella sua espansione tramite plugin; proprio con quest'ultimo punto deriva il suo adattarsi alle più svariate esigenze dei musicofili più incalliti (come me), e la possibilità di curare ogni aspetto del proprio music entertainment.

Rhythmbox è molto simile per certi versi ad iTunes, ma col tempo è diventato un programma a se stante, anche perché lo considero più stabile di iTunes.

Ma parliamo di una caratteristica che credo ogni amante della musica richieda: la possibilità di sincronizzare la propria musica con la libreria del PC, in modo da avere la stessa musica organizzata alla stessa maniera sia su PC che sul dispositivo portatile: è una situazione molto comoda che evita di fare confusione in mezzo alla mole di musica che ognuno possiede, e soprattutto evita di gestire manualmente la musica direttamente dalla memoria di massa del dispositivo (organizzare la musica in cartelle, cancellare quella che non asdcoltiamo mai e che occupa memoria inutilmente, aggiungere altra musica ecc.). Rhythmbox sa gestire di default i dispositivi portatili tramite due plugin: Supporto per dispositivi Apple iPod e Supporto per dispositivi MTP. Il primo non necessita di chiarimenti: iPhone, iPod e derivati possono essere gestiti con Rhythmbox. Un dispositivo MTP è invece un dispositivo che supporta il protocollo MTP: fra questi ricordiamo molti lettori Creative, Zune, dispositivi con Windows Phone, Symbian ecc.

Ma soprattutto Rythmbox sa gestire i dispositivi mobili anche senza nessun protocollo, semplicemente tenendo traccia della musica presente sulla memoria di massa del dispositivo e la propria libreria. In tal senso anche una semplice chiavetta USB o un hard disk possono essere trattati come dei dispositivi portatili che riproducono musica (ma che effettivamente non fanno). E allora? Qual'è l'utilità?
Android: un OS oggi molto diffuso fra i dispositivi mobili. Se proviamo a collegare un Android al PC, il cellulare ci chiede se vogliamo attivare l'archivio USB, se lo facciamo, allora il nostro PC riconoscerà il dispositivo Android come una semplice memoria di massa (una chiavetta USB); se apriamo Rhythmbox però non vediamo nessun dispositivo collegato. Ma c'è un modo per far riconoscere un dispositivo a Rhythmbox come un dispositivo multimediale: dobbiamo semplicemente creare un file nella directory principale della memoria di massa del dispositivo. Semplice no?

Quindi, andiamo nella directory principale del dispositivo e creiamo un file di nome ".is_audio_player" e come contenuto il seguente:

name="My Portable Audio Player" (Nome che viene dato al dispositivo)
audio_folders=Music/, Sounds/   (Le cartelle che verranno riconosciute come contenenti musica)
folder_depth=2                  (Il numero di sottocartella che la cartella Music/ può contenere)
output_formats=audio/mpeg,audio/x-ms-wma,application/ogg        (Tipi MIME per i nostri file audio)

Fatto ciò salviamo il file, andiamo su rhythmbox, clicchiamo su "+" in basso a sinistra, "Controlla nuovi dispositivi" (solo la prima volta, successivamente quando colleghiamo il dispositivo automaticamente Rhythmbox lo riconoscerà). Ed ecco che Rhythmbox ha riconosciuto il nostro dispositivo Android come lettore musicale. Adesso basta cliccare sul nome del dispositivo e scegliere "Sincronizza", che tutta la nostra libreria del PC verrà sincronizzata col nostro lettore portatile.

A tal proposito consiglio vivamente un plugin per Rhythmbox di nome File Organizer, che ci consente mantenere organizzata la nostra cartella muica sia su PC che su dispositivo mobile, in particolare di default esso controlla i tag id3 del file audio, crea una cartella col nome dell'artista della canzone, una sottocartella col nome dell'album della canzone e posiziona il file in questa sottocartella, rinominandolo con "XX-Titolo" dove XX è il numero della traccia e Titolo è il titolo della canzone. Purtroppo questo plugin non fa ciò automaticamente, ma ci basta selezionare la musica che vogliamo tenere organizzata, tasto destro->Organize selection. In questo modo si ha una libreria omogenea, ordinata e organizzata secondo gli stessi criteri per tutti i file. Per installare il plugin File Organizer:

1)Scarichiamo il file .tar.gz da questa pagina
2)Estraiamo il contenuto su una cartella
3)Col terminale, posizioniamoci sulla cartella contenente i file estratti e scriviamo:
chmod a+x ./INSTALL
per dare i permessi necessari al file INSTALL
4)Lanciamo sudo ./INSTALL
5)Andiamo su Rhythmbox e attiviamo il plugin dal menù Plugins