Musique

MiniDLNA: le serveur UPnP/DLNA léger

A la recherche d’un serveur UPnP à installer sur mon plug-computer Docktsar, on m’a conseillé MiniDLNA, un serveur UPnP qui répond enfin à mes attentes.

Un petit tour d’horizon

J’avais déjà fait il y a un moment un tour d’horizon de ce que je pouvais installer sur un serveur Debian.

Disponible dans les dépôts Debian Lenny:
Gmediaserver – UPnP Mediaserver
Mediatomb – UPnP MediaServer
uShare – Lightweight UPnP A/V Media Server

Que je connais aussi:
FUPPES
PyMeds
PS3 Media Server
Twonkyvision (aka TwonkyServer) License d’utilisation payante.

Mais aucun ne m’avais pleinement satisfait, soit trop lourds à gérer, trop gourmands en ressources, ne tenant pas forcément la charge d’une grosse collection, des incompatibilités diverses et variées (tant au niveau interne avec les fichiers, les tags, qu’avec certains clients UPnP), des classements farfelus de la médiathèque et/ou de l’ordre des pistes, parfois l’obligation d’un mode de navigation dans la médiathèque pas très ergonomique pour une collection conséquente, ou encore l’impossibilité de naviguer dans la bibliothèque lors que le serveur est en train de streamer un fichier…
Bref aucun ne répondait pleinement à ce que je cherchais, excepté peut-être Twonkyvision qui est payant.

MiniDLNA

MiniDLNA (anciennement ReadyDLNA) est un serveur dont l’objectif est d’être pleinement compatible avec les clients DLNA/UPnP-AV. Il a été développé par un employé de la société NETGEAR pour leur gamme de NAS « ReadyNAS ».
Donc dans sa conception MiniDLNA est pensé pour fonctionner sur de petites machines aux capacités restreintes (tel que les NAS), ce qui est idéal pour le Dockstar (CPU ARM, 128Mo de RAM).

Il est aussi réputé pour être plus compatible que certains autres serveurs UPnP/DLNA avec différents matériels un peu capricieux dans l’électronique grand public (ex: Téléviseurs avec fonctionnalité DLNA).

En téléchargement est disponible un binaire pré-compilé pour architecture x86 et son fichier de conf. Une simple extraction de l’archive en plaçant minidlna dans le répertoire /usr/sbin/ et minidlna.conf dans le répertoire /etc/. Puis quelques réglages dans le fichier de conf, lancer minidlna et hop ça a fonctionné direct sur mon portable sur Ubuntu.

Parfait rendu sur ma radio wifi Freecom MusicPal: navigation par artistes, albums, recherche de fichier, mais surtout possibilité de navigation dans l’arborescence du système de fichiers (ce que je préfère). Les pistes sont bien classées dans le bon ordre, lancez un morceau et il enchaine automatiquement ceux qui suivent dans le même dossier.
Le seul « désagrément » inévitable mais attendu c’est la durée du scan initial de la bibliothèque si celle-ci est conséquente.

Installation de MiniDLNA sur le Dockstar (Debian)

Étant donné que le Dockstar de Seagate (équivalent du PogoPlug, basé sur SheevaPlug) a une architecture processeur différente (ARM Marvell Kirkwood 1,2 GHz), il va falloir compiler MiniDLNA.

Un petit tutoriel? Allez…
Bon déjà ne pas oublier qu’on est avec l’utilisateur root.

On installe d’abord les dépendances requises pour la compilation:

aptitude install build-essential libexif-dev libjpeg-dev libid3tag0-dev libflac-dev libvorbis-dev libsqlite3-dev libavformat-dev libuuid1


Puis on va se placer dans le dossier temporaire:

cd /tmp/


On télécharge le fichier des sources (ici la dernière version en date était la 1.0.18):

wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.0.18/minidlna_1.0.18_src.tar.gz


Et l'on décompresse l'archive:

tar -xzvf minidlna_1.0.18_src.tar.gz


On se met dans le dossier des sources décompressées "minidlna":

cd minidlna


Et on lance un "make"

make


Il n'y a plus qu'à copier les fichiers obtenus aux bons endroits:

cp minidlna /usr/sbin/
cp minidlna.conf /etc/
cat linux/minidlna.init.d.script > /etc/init.d/minidlna
chmod +X /etc/init.d/minidlna
chmod 755 /etc/init.d/minidlna


On peut faire un peu de ménage en désinstallant les paquets "dev" destinés à la compilation:

aptitude remove libexif-dev libjpeg-dev libid3tag0-dev libflac-dev libvorbis-dev libsqlite3-dev libavformat-dev

Voilà, vous n'avez plus qu'à faire les réglages de vos préférences (dossier où sont stockés vos medias, port d'écoute, pochettes d'albums, etc...) dans le /etc/minidlna.conf puis de lancer minidlna, soit par:

./usr/sbin/minidlna

ou plus propre:

/etc/init.d/minidlna start

Note: /etc/init.d/minidlna vous permet de l'ajouter en démarrage automatique à votre séquence de boot ;)

update-rc.d minidlna defaults

Cas pratique et personnel sur le Dockstar:

MiniDLNA a mis 1h15 pour scanner 71815 fichiers, c'est très honorable en considérant le petit CPU du Dockstar, sa RAM et le fait que les medias soient sur un disque USB.

Néanmoins lors du scan/indexation il se gauffre complétement et passe un temps monstre dès qu'il trouve le moindre fichier de playlist de type m3u.

Le problème des fichiers de playlist:
Lors du scan il a passé ~ 2 minutes d'analyse par fichier m3u qu'il a trouvé, s'il en trouve tout un tas l'indexation ne finira jamais...
(il fait une comparaison récurrente de dingue dans une énorme base sqlite sur des valeurs sans index, je vous laisse imaginer le massacre pour ceux qui ont l'habitude des bases de données)

Comme je n'ai aucune utilité des fichiers m3u, ni pls, je les ai effacé de ma bibliothèque en me rendant dans le dossier où sont stockés mes medias et en utilisant ces commandes:

find . -name "*.m3u" -exec rm '{}' \;
find . -name "*.M3U" -exec rm '{}' \;
find . -name "*.pls" -exec rm '{}' \;
find . -name "*.PLS" -exec rm '{}' \;

Le cache de MiniDLNA mis dans le répertoire /tmp:
Par défaut MiniDLNA génère ses fichiers de cache (base de données, etc...) dans le dossier temporaire /tmp/ qui dégage à chaque reboot (ça veut dire rescanner tout à chaque démarrage de la machine).
Une option est disponible depuis des récentes version pour stocker ces données ailleurs (au choix de l'utilisateur).
Il suffit de renseigner la variable "db_dir" dans le fichier de configuration, ex:

db_dir=/var/cache/minidlna

note: je n'avais vu nulle part cette mention, on me l'a indiqué dans un forum.

Une fois le scan terminé, en fonctionnement normal il ne consomme que très peu de ressource:
4.5% de la mémoire (sur 128Mo de RAM) et quasi 0% de CPU (à peine quelques % en pointe)

Reprendre possession de ses données Last.fm

C’est en m’intéressant au projet Libre.fm afin d’évaluer son utilisation en tant que backend dans l’un de mes projets que j’ai découvert Lastscrape, un set de petits scripts en python permettant de récupérer ses données d’écoutes confiées à Last.fm/Audioscrobbler.

Libre.fm fait partie des projets d’alternative libre et open-source à ces services en ligne auquel l’on confie tant de ses données en s’en retrouvant dépossédé quant à l’utilisation qui en est faite après par l’opérateur et/ou ses partenaires commerciaux.

La philosophie de ces alternatives qui commencent à voir le jour (la plus connue étant Identi.ca, concurrent libre de Twitter) est globalement (et expliquée grossièrement) que:
1. les technologies utilisées sont open-source
2. elles utilisent ou créent des standards ouverts
3. vous pouvez ré-utiliser ces technologies pour vous créer un service similaire, compatible et inter-connectable. Par exemple en local, dans votre entreprise, pour votre communauté ou derrière votre firewall…
4. les données envoyées au serveur central (si vous décidez d’utilisez celui-là) restent votre propriété ou sont mise en licence ouverte (pas de prise de possession ou de tentative de copyright)
5. vous restez maitre des données que vous avez publiées: import/export/modification/publication/suppression…

Mais revenons-en à Lastscrape…

Lastscrape

Lastscrape permet de gérer au mieux son passage de Last.fm à Libre.fm en récupérant son historique d’écoute afin de l’injecter dans son compte Libre.fm et ne pas repartir de zéro.

Tout est documenté sur le wiki: les fichiers à télécharger (lastscrape.py , gobble.py , import.py, mais aussi une version non bugguée de python-beautifulsoup à mettre dans le même répertoire), la ligne de commande pour récupérer les données, comment nettoyer ces données (dans le cas de doublons de la part de Last.fm) et la commande pour importer ces données vers Libre.fm, et en prime-abord rendre exécutable les deux scripts lastscrape.py et import.py par un chmod +x.

En lançant en ligne de commande un simple

./lastscrape.py monidentifiant dump.txt

la récupération des données se lance tranquillement, l’opération est un peu longue car Last.fm les envoie au compte-goute, mais au final j’ai pu récupérer mes 25000 scrobbles rapports d’écoute depuis la fin 2006 dans un fichier texte.

Un petit extrait:

Beat Pharmacy	Rooftops (feat. Coppa)	2009-05-24T13:34:28Z
Maurizio	Dublicator	2009-05-24T12:35:16Z
Blackdown	Crackle Blues (Burial Remix)	2009-05-24T12:29:22Z
Blackdown	Lata	2009-05-24T12:24:11Z
Los Black Stars	La Piragua	2009-05-24T12:21:07Z

Artiste, titre et date/heure, échappés par des tabulations… bref utilisable comme fichier csv pour l’importer à souhait dans ce que l’on veut (fichier excel, base de données, etc…).

J’en viens à m’effrayer que cela ne demande aucun mot de passe et que l’on peut donc récupérer l’historique d’écoute de n’importe qui!

Pour l’importation dans Libre.fm prière de lire entièrement la page du wiki avant de vous lancer, notamment pour éliminer les doublons parfois générés par Last.fm (pour cela une simple ligne de commande avec awk suffit) , car les doublons peuvent faire planter le script. Puis il suffit alors d’un simple

./import.py monidentifiant dump.txt

Bien entendu le mot de passe de votre compte libre.fm vous sera demandé cette fois-ci ;)
La phase d’importation est assez longue (surtout si vous avez une historique conséquente) car elle se fait par lot de 50 lignes pour ne pas surcharger le serveur.

Un petit tour sur le site utilisateur de Libre.fm pour voir que cela importe tranquillement…

Conclusion

Que vous désiriez utiliser Libre.fm et ne pas commencer sans historique d’écoute ou pas, Lastscrape est dans les deux cas utile afin d’avoir une sauvegarde en local de vos données stockée chez Last.fm.

Car comme tout service en ligne non-libre on ne sait jamais ce qu’il peut devenir à terme (changement de politique sur les données et leur accès,…). J’en veux pour exemple le cas de CDDB/Gracenote où des milliers d’utilisateurs ont permis pendant des années la constitution de la base de donnée en la remplissant manuellement et pouvaient y accéder à souhait, puis du jour au lendemain la société Gracenote a dit à ces utilisateurs d’aller se faire foutre, qu’il y avait un copyright sur cette base et que son accès serait commercialisé sous licence d’utilisation…

Spotify fonctionne sur Linux avec Wine

Spotify

Je ne ferais pas un présentation de Spotify, ce service d’écoute de musique en streaming avec une petite connotation communautaire (il en faut en ce moment si l’on veut faire parler de son site ou service en ligne) à l’aspect piqué sur iTunes et Songbird, d’autre blogs et sites de buzz à l’affut de la moindre « news » le font déjà très bien.

Non, l’information importante ici, c’est que Spotify fonctionne également sur GNU/Linux grâce à Wine!

More >

Logitech Wireless Music et Debian Lenny

Je fais une mise à jour de Debian aujourd’hui comportant une mise à jour d’alsa et la conséquence directe: plus de son sur ma carte son USB.

En fait de carte son, il s’agit du système de diffusion audio de Logitech nommé Logitech Wireless Music System for PC

Une petite vidéo:

L’émetteur envoie le son en bluetooth au récepteur branché sur ma chaîne hi-fi. La partie encodage et profil bleutooth A2DP est gérée en hardware par l’émetteur et celui-ci se comporte comme une simple carte son utilisant le pilote/module snd-usb-audio de linux. Pour la partie pairing bluetooth il suffit de faire se reconnaître l’émetteur et le récepteur une première fois à l’aide du bouton « Connect », ensuite ils se reconnaîtront automatiquement à chaque fois (ce qui est pratique car pour certains autres produit audio bluetooth il faut faire l’association émetteur/récepteur à chaque utilisation).

Bref, c’est un petit truc bien sympa qui fonctionne out-of-the-box sur Windows, Ubuntu, et Debian Etch et qui me permet d’avoir ma box debian, équipée de MPD, planquée au fond de la cuisine et le son qui arrive sans fil dans mon salon. Le tout contrôlable depuis mon ordinateur portable avec Sonata et plus encore.

Mais c’est avec Debian Lenny que les problèmes surviennent…

More >

Debian Lenny: CPU VIA C3 et noyau linux 2.6.2x-686, attention!

Aujourd’hui j’ai voulu passer ma petite machine basée sur une carte mère mini-itx Via Epia M10000 (processeur Via C3 à 1Ghz) à la nouvelle version de Debian, j’ai nommé Lenny, dont les paquets ont été gelés et qui va passer en stable sous peu.

La procédure d’upgrade est des plus simples:
faire un apt-get update && apt-get upgrade pour mettre à jour tout ce qu’il faut de votre version etch (pas spécialement nécessaire, mais je préfère le faire).
Puis apt-get autoremove && apt-get clean pour nettoyer ce qui traine d’anciens paquets résiduels.
Remplacer etch par lenny dans /etc/apt/sources.list. Puis apt-get update pour mettre à jour la liste des paquets, suivi d’un apt-get dist-upgrade pour lancer l’upgrade.
J’ai mis de côté les fichiers de configuration des serveurs (mysql, apache, samba, etc…) car je sais qu’il va me demander lors de l’upgrade si je veux garder les anciens ou installer les nouveaux. Par défaut lors que je vois qu’il y a trop de modifs, j’installe les nouveaux et je reconfigure ensuite.

L’upgrade de debian est en général un bonheur. Mais pas aujourd’hui…

Tout se passe bien, jusqu’au moment où la console me sort ces lignes.

Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.26-1-686
Errors were encountered while processing:
netatalk
E: Sub-process /usr/bin/dpkg returned an error code (1)

puis retour du curseur.

Je désinstalle netatalk qui devait traîner sur ma machine lorsque j’avais essayé mt-daap et je redémarre ma machine naïvement. Plus de réponse de la machine… obligé d’y brancher un écran et un clavier pour voir ce qu’il s’y passe.
Et là, suprise:

kernel 2.6.26-1-686

More >

Récuperer automatiquement les pochettes des albums avec Sonata

Sonata - Client MPD pour Gnome

Sonata est à mon avis le client pour MPD le plus élégant.
Outre le fait qu’il est plutôt agréable à la vue et à l’usage, il nous préserve également d’une tâche fastidieuse et ingrate: celle de récupérer les pochettes des albums que l’on a en stock.

C’est cette fonctionnalité bien pratique que nous allons voir en détail.

More >

Découper un mp3 par son fichier cue

De l’époque où j’utilisais encore windows, je rippais avec EAC parfois certains de mes albums d’un seul tenant en une piste unique. Tout simplement car il s’agissait de lives, de sets de DJ, ou autres dont les morceaux étaient enchaînés et dont la coupure entre deux pistes lors de la lecture était assez désagréable.
Le résultat était un gros fichier mp3 contenant tout l’album accompagné de son fichier cue (cue list) servant de playlist et de pointage des pistes.

Mais voilà ce n’est pas très maniable ce genre de fichiers, surtout en les écoutant sur un baladeur… et puis sur linux j’utilise quasiment que MPD comme lecteur, accompagné de Sonata comme client, or MPD fait la lecture naturellement en gapless (c’est à dire enchaîné sans interruption).
Donc conserver ces gros mp3 avec leur cue list ne me sert plus à rien. Vient le temps de les découper.

C’est là qu’intervient mp3splt
.

More >

Tenori-On, une interface homme-machine pour la musique

« Créé par le grand Toshio Iwai (à qui l’on doit déjà Electroplakton sur DS) et Yamaha, le Tenori-On se veut le nouvel instrument musical numérique pour le 21e siècle, rien de moins. »

Il s’agit d’un simple séquenceur (comme les séquenceurs midi) de type piano-roll, mais couplé avec une surface de contrôle tactile et une interface visuelle à LED (oui, DEL en bon français!).

L’édition et l’écoute se font simultanément en direct. Une fois bien maîtrisé, cela paraît assez intuitif et facile à composer en live et à improviser.

Mais rien ne vaut une bonne petite démonstration en vidéo:

Tout simplement impressionant!

Source: Les siestes électroniques

Jiwa, un concurrent à Deezer pour l’écoute gratuite de musique

Jiwa est un nouveau site d’écoute de musique en streaming illimité et gratuit basé, sur le modèle économique de l’affichage publicitaire. Tout comme Deezer donc…

La différence avec Deezer (à première vue): une interface plus clean (pour l’instant), et une meilleur qualité de compression des morceaux: OggVorbis 192Kb/s VBR contre mp3@128 pour Deezer et mp3@64 pour Radioblog (beurk).

Autre point important les droits de diffusion et la rémunération des artistes ont été négocié avant le lancement avec les maisons de disque (dont Universal).

Lien: Jiwa