Catégories
Hardware Musique Open-source

Utiliser son enceinte MiniJamBox sous Ubuntu

Mes vieilles enceintes portables ayant rendu l’âme juste avant le départ des vacances estivales, j’ai décidé d’acheter une enceinte portable Bluetooth. Après quelques essais en magasin, mon choix s’est porté vers une MiniJamBox du constructeur JawBone. Pour environ 100€, elle offre des performances acceptables dans un volume de poche et avec une bonne autonomie.

Sélection_220

L’association c’est effectué sans problème avec mes « eDevices »: iPhones 5S & Mac Book Pro de ma femme et mes iPhone 4 & Google Nexus 5.

Cependant, impossible de la faire détecter par mon PC Ubuntu 14.04…

Le problème

Lors de la connexion Bluetooth, le message d’erreur suivant est affiché:

Failed to connect to the device…

En fouillant dans les logs, j’ai trouvé les messages suivants:

(bluetooth-wizard:18445): Bluetooth-WARNING **: CreateDevice failed: GDBus.Error:org.bluez.Error.ConnectionAttemptFailed: Page Timeout

** (bluetooth-wizard:18445): WARNING **: Setting up 'MINIJAMBOX by Jawbone' failed: GDBus.Error:org.bluez.Error.ConnectionAttemptFailed: Page Timeout

La solution

C’est sur le forum AskUbuntu (et grâce à Xavier) que j’ai trouvé la solution à mon problème.

Pour résumer, il faut commencer par éditer le fichier /etc/bluetooth/audio.conf pour y ajouter la ligne suivant dans la section [general]:

Disable = Media

Installer le package bluez-tools:

sudo apt-get install bluez-tools
sudo service bluetooth restart

Effectuer l’association avec la MiniJamBox en suivant la documentation du constructeur et via le logiciel bluetooth-wizard.

Paramètres_218

Enfin commenter la ligne préalablement ajouté dans le fichier audio.conf:

#Disable = Media

Puis relancer le service bluetooth:

sudo service bluetooth restart

Et voilà, il ne reste plus qu’à sélectionner la MiniJamBox dans les préférences sons d’Ubuntu et de sélectionner le mode haute fidélité (A2DP):

Sélection_219

Et voilà le travail !

 

Catégories
Musique

Ma playlist Spotify Top 2013

Comme chaque année, voici ma playlist Spotify avec une sélection des mes chansons coups de cœur de l’année 2013.

Bonne écoute et partagez avec nous vos playlists !

Catégories
Musique Open-source Planet-libre raspberry

Quand votre Raspberry Pi devient serveur Spotify

capture_067C’est en lisant un article sur le blog de Korben que j’ai découvert qu’il était possible de transformer une distribution GNU/Linux en une borne audio Spotify, pilotable à distance. L’objectif étant d’avoir un petit boîtier (type Raspberry Pi ou équivalent) branché directement à sa chaîne Hifi et de pouvoir naviguer à distance sur sa bibliothèque Spotify.

La configuration que j’ai mis en place est la suivante:

Mise en place du système

Je ne vais pas faire un copier/coller de mon billet d’installation de Raspbian Wheezy sur un Raspberry Pi, il suffit de suivre ce lien.

Etape optionnelle, uniquement si vous avez un DAC ou une carte son USB branché à votre Raspberry:

Comme j’utilise un DAC afin de remplacer la médiocre sortie analogique du Raspberry, il faut effectuer une petite configuration complémentaire pour forcer le Raspberry à utiliser le DAC (sortie USB) comme carte son. Il suffit d’éditer le fichier /etc/modprobe.d/alsa-base.conf en commentant une première ligne et en ajoutant une deuxième:

#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1

Après un dernier redémarrage, votre Raspberry Pi est prêt à recevoir l’installation de Mopidy.

Installation de Mopidy, le serveur Spotify

Mopidy est un serveur Audio compatible avec les clients uPnP et MDP et permet donc de jouer des musiques stockés localement ou de streamer des musiques disponibles sur le service Spotify (c’est sur ce dernier point que nous allons nous focaliser dans ce billet).

On commence par installer le dépôt officiel de Mopidy puis le logiciel:

wget -q -O - http://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list http://apt.mopidy.com/mopidy.list
sudo apt-get update
sudo apt-get install mopidy

On doit ensuite lancer un première fois Mopidy:

$ mopidy

INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
INFO     Creating dir /home/pi/.config/mopidy
INFO     Creating dir /home/pi/.local/share/mopidy
INFO     Creating file /home/pi/.config/mopidy/settings.py
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
ERROR    Setting "SPOTIFY_USERNAME" is empty.
ImportError: could not import gtk.gdk

Cela va permettre à Mopidy de créer l’arborescence ~/.config/mopidy qui va contenir les fichiers de configuration.

On doit éditer le fichier  ~/.config/mopidy/settings.py avec les paramètres:

  • du serveur MDP qui va permettre de contrôler à distance Mopidy
  • du répertoire local (ou distant sur un NAS) ou sont stockés vos fichiers audios
  • du compte Spotify Premium (obligatoire)
  • du compte LastFM (optionnel, uniquement pour le scrobbling)
FRONTENDS = (u'mopidy.frontends.mpd.MpdFrontend', u'mopidy.frontends.lastfm.LastfmFrontend')

MPD_SERVER_HOSTNAME = u'0.0.0.0'
MPD_SERVER_PASSWORD = u'mdppassword'

LOCAL_MUSIC_PATH = u'/home/nicolargo/Musiques'

SPOTIFY_USERNAME = u'spotifylogin'
SPOTIFY_PASSWORD = u'spotifypassword'
SPOTIFY_BITRATE = 320

LASTFM_USERNAME = u'lastfmlogin'
LASTFM_PASSWORD = u'lastfmpassword'

On peut relancer ensuite Mopidy:

$ mopidy
INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/.config/mopidy/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
INFO     Mopidy uses SPOTIFY(R) CORE
INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
ImportError: could not import gtk.gdk
ERROR    MPRIS frontend setup failed (org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11)
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)

Vous pouvez ignore les erreurs, les lignes importantes étant:

INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)

Piloter à distance votre borne Mopidy

Pour piloter votre tout nouveau serveur Mopidy, il suffit d’installer un client compatible avec le protocole implémenté dans MPD. Personnellement, j’utilise GMPC sur mon PC Ubuntu mais d’autres solutions existes:

  • Sous GNU/Linux: En ligne de commande Ncmpcpp (bon corage pour retenir le nom mais il marche à merveille) ou en GUI avec GMPC
  • Sous Andoid: MPDroid
  • Sous iOS: MPaD

Conclusion

Encore une utilisation sympa d’un Raspberry dans le monde de la Hifi. J’ai encore quelques problèmes de son (gros tics quand je passe d’un morceau à l’autre) mais dans l’ensemble c’est une solution bien pratique pour écouter sa bibliothèque musicale sur sa chaîne !

Retrouvez tous mes billets sur le Raszberry Pi sur ma page dédiée !

Catégories
Gstreamer Musique Open-source Planet-libre raspberry

Utiliser votre Raspberry Pi comme borne Airplay

Airplay est une technologie, mise en avant par Apple et par un nombre croissant d’acteurs du monde de la Hifi, permettant de déporter les flux audio, photo et vidéo d’un device (PC/Mac, tablette, téléphone) sur des périphériques externes (Ampli, Enceintes…). Basée sur un protocole propriétaire (heureusement cassé par reverse ingenering), il n’a malheureusement en face de lui aucune alternative stable et libre: Miracast est uniquement dédié aux devices Wifi et Google qui planchait sur une alternative à Airplay ne semble pas très pressé de la sortir.

Dans ce billet nous allons voir comment transformer un Raspberry Pi (23€ chez votre épicier) en une borne Airplay connectée à votre chaîne Hifi (ou encore mieux en passant par un DAC) afin de disposer d’une chaîne de streaming de bonne qualité entre vos « idevices » (iPhone, iPad, Mac OS mais aussi Android) et vos enceintes.

Dans le jargon Airplay, nous allons donc transformer un Raspberry Pi en « Airplay receiver ». Shazam…

Ma configuration de test

Ce billet a été validé sur la configuration suivante:

  • une chaîne Hifi Cambridge composée d’un DAC, d’un amplificateur et d’une paire d’enceintes.

Ma chaine Hi-Fi Cambridge

  • un Raspberry PI model B (mais cela doit marcher sans problème avec un modèle A)

Raspberry PI B 512

  • un iPhone 4

Configuration système du Raspberry Pi

J’ai utilisé le système d’exploitation Raspbian « Wheezy » dont j’ai déjà détaillé l’installation dans un précédant billet. Comme ma chaîne Hifi est loin de mon réseau Ethernet filaire, j’ai utilisé un dongle USB Wifi (attention la liste des dongles supportés est ici) que j’ai connecté au Raspberry et configuré en suivant ce tutoriel.

Ma configuration réseau est la suivante pour le fichier /etc/network/interfaces:

auto lo

iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

et celle-ci pour le fichier /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="MONWIFI"
scan_ssid=1
key_mgmt=WPA-PSK
proto=WPA
psk="MACLEWIFI"
}

Shairport, le coeur de la borne Airplay

Shairport est une implémentation libre d’un serveur RAOP qui est lui même à la base des Airport Express d’Apple. Il n’implémente, pour l’instant, que la version 1.0 d’Airplay (prise en charge des flux audio mais pas de vidéo ni de photo).

L’installation se fait en 5 commandes:

sudo aptitude install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils
git clone https://github.com/albertz/shairport.git shairport
cd shairport
make
sudo make install

Pour tester Shairport, il suffit de lancer:

/shairport.pl -a ShairPort

Si, comme moi, vous avez l’erreur suivante qui s’affiche:

Can't locate Net/SDP.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./shairport.pl line 48.
BEGIN failed--compilation aborted at ./shairport.pl line 48.

Alors, il faudra en plus saisir une sixième commande pour finaliser l’installation:

sudo cpan install Net::SDP

Pour automatiser le lancement de ShairPort au démarrage de votre Raspberry Pi:

sudo cp ./shairport.init.sample /etc/init.d/shairport
sudo chmod a+x /etc/init.d/shairport

Note: il est possible d’éditer le « nom » de votre borne Airplay en modifiant l’option -a dans le script:

DAEMON_ARGS="-w $PIDFILE -a ShairPort"

Il ne reste plus qu’à lancer le démon:

sudo update-rc.d shairport defaults
sudo service shairport start

Premier test: bien mais peut mieux faire

Arrivez à ce stade (bravo si vous êtes encore là), vous devriez pouvoir détecter votre borne Airplay ShairPlay à partir de votre iPhone:

Airplay Spotify photo

Configuration de l’iPhone pour utiliser la borne Airplay (Spotify à gauche et iTunes à droite)

En branchant votre casque | chaîne sur la sortie analogique (prise jack) du Raspberry, vous allez entendre le son émis par votre iPhone.

Avec un <pub> Glances </pub> lancé sur le Raspberry, on peut constater, avec une liaison réseau filaire la faible consommation CPU en utilisation et un débit de streaming audio de 1Mbps:

capture_064

Par contre cette consommation grimpe à plus de 60% si vous utilisez un dongle Wifi. En effet, le protocole WPA implique un déchiffrement des données non négligeable pour le Raspberry.

Si fonctionnellement on est arrivés à notre objectif, ce n’est pas cas pour la qualité audio. En effet, la sortie analogique est incompatible avec une écoute Hifi.

Raspberry + USB + DAC = Bonheur

Heureusement pour moi et pour mes oreilles, mon DAC (Cambridge Audio DacMagic) dispose d’une entrée USB. Si ce n’est pas votre cas, il existe pas mal de solutions plus ou moins chères sur le marché.

Pour forcer le Raspberry à utiliser le DAC (sortie USB) comme carte son, il faut éditer le fichier /etc/modprobe.d/alsa-base.conf en commentant une première ligne et en ajoutant une deuxième:

#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1

Après un dernier redémarrage, votre borne Airplay est enfin prête !

Update (28/04/2013): Pour vérifier que tout est configuré comme attendu, le plus simple est d’utiliser la commande aplay -l qui va afficher la liste des cartes sons de votre Raspberry Pi. On doit retrouver la « carte audio USB en premier » puis la classique carte intégrée bcm2835 en second:

pi@raspberrypi $ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

 

Conclusion

Ma configuration fonctionne maintenant sans problème depuis quelques jours. Je suis justement en train d’écouter ma Playlist Spotify 2013 en rédigeant ce billet.

Seul problème rencontré: il faut que je redémarre mon Raspberry quand je désactive et réactive le Wifi sur ma Freebox. Si vous avez des idées, je suis preneur.

Quelques liens en bonus:

Catégories
Musique

Musique: Mon TOP 2012

Il est temps, en cette fin d’année, de partager avec vous mon TOP musique 2012. Si vous avez lu mon billet sur la gestion de ma bibliothèque musicale, vous savez que j’utilise deux playlists sur mon compte Spotify. Dans la première (Coups d’oreille 2012), je dépose en vrac les albums que je trouve intéressants ou que certains sites/magazines conseillent puis j’effectue une deuxième sélection après écoute. Dans la seconde (TOP 2012), je dépose une sélection des titres les plus représentatifs de l’année écoulée.

C’est cette liste que vous pouvez écouter ici:

Comme vous pouvez le voir, j’ai des influences très pop-rock et cette année a été très riche en nouveautés avec notamment des coups de coeur comme Alt-J, Revolver ou Woodkid, avec, pou ces dernier un clip à tomber par terre.

Woodkid – Iron from WOODKID on Vimeo.

Et vous , blogolecteurs, quelles sont vos découvertes de cette année ?

Partagez vos playlist ! La musique est faite pour ça.

Catégories
Image Musique Open-source Planet-libre Video Web

Migrer OwnCloud vers la version 4.0.1

Voici une petite procédure « quick and dirty » pour migrer votre installation OwnCloud X (X=3 ou 4.0.0) vers OwnCloud 4.0.1.  En plus des classiques corrections de bugs, cette nouvelle version apporte notamment les fonctions suivantes:

  • le chiffrement et la gestion en version des fichiers
  • la possibilité d’utiliser le glisser-déposer pour uploader les fichiers à partir de l’interface Web
  • le partage de calendrier (via CalDAV)
  • la visualisation des fichiers OpenOffice directement dans l’interface Web

Si vous voulez une procédure d’installation détaillé de OwnCloud 4, vous pouvez suivre ma procédure pour la version 3 (valable aussi pour la version 4.0.1 à quelques adaptations près) disponible ici.

De OwnCloud 3 vers OwnCloud 4… ou 5 !

Pour les plus aventureux, il est possible de directement tester la version de développement (HEAD) de OwnCloud (actuellement en version 5). Pour cela il faut télécharger le projet directement depuis le Git officiel (hébergé sur Gitorious):

sudo git clone git://gitorious.org/owncloud/owncloud.git /var/www/owncloud4

Si vous préférez utiliser la version 4.0.1 stable, alors on télécharge l’archive sur le site officiel:

wget http://download.owncloud.org/releases/owncloud-4.0.1.tar.bz2
tar -xjf ./owncloud-4.0.1.tar.bz2
sudo mv owncloud /var/www/owncloud4

A partir de là, on peut procéder à la migration:

sudo cp -R /var/www/owncloud/config/* /var/www/owncloud4/config/
sudo cp -R /var/www/owncloud/data /var/www/owncloud4
sudo chown -R www-data:www-data /var/www/owncloud4
sudo mv /var/www/owncloud /var/www/owncloud3 ; sudo mv /var/www/owncloud4 /var/www/owncloud

Note: attention, cette procédure copie l’intégralité du répertoire et donc de vos données d’un  répertoire vers un autre… prévoir un espace disque suffisant.

Vous pouvez ensuite tester votre serveur OwnCloud pour voir si tout c’est passé correctement. Si c’est le cas, vous pouvez supprimer la version 3.0:

sudo rm -rf /var/www/owncloud3

Installation du client Linux

Cette nouvelle version intègre également la possibilité de télécharger depuis l’interface Web un client lourd pour votre machine GNU/Linux.

En fait, ce bouton télécharge simplement vers le site officiel qui explique la procédure à suivre selon votre distribution. Par exemple sous Ubuntu 12.04:

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"
sudo apt-get update
sudo apt-get install owncloud-client

Au premier lancement, l’URL de votre serveur OwnCloud ainsi que le couple login/password vous seront demandé.

Par défaut, le client va partager un répertoire ~/ownCloud mais il est bien sur possible d’en choisir d’autres (par exemple ~/Dropbox :)). Il sera nommé sous l’alias clientsync dans votre interface Web OwnCloud.

Conclusion

Cette nouvelle version de OwnCloud devient une alternative vraiment sérieuse aux solutions alternatives et non libres comme Dropbox ou Google Drive. Le test grandeur nature que je suis en train de mener me fera peut être complètement basculer vers ce cloud libre.

Et vous déjà migré ?

Catégories
Musique

Ma playlist Spotify TOP 2011

Depuis maintenant deux ans, je rédige, en début d’année, un billet sur comment je gère ma bibliothèque musicale (voir les billets de 2011 et de 2012). Pour vous faire écouter le résultat, il manquait chez Spotify une fonction permettant d’intégrer directement des playlists dans mon blog WordPress. C’est maintenant chose de faite depuis la mise à disposition du « Spotify Play button« .

Voici donc en exclusivité mondiale ma playlist TOP 2011 (la version 2012 est en cours de conception…):

Et vous chers lecteurs, faites aussi tourner vos playlists !

Catégories
Gstreamer Musique Open-source Planet-libre

Musique en qualité Studio Masters à partir de votre PC GNU/Linux

Définition: « Est considéré comme étant de qualité Studio Masters tout fichier dont au moins l’échantillonnage ou la quantification sont supérieurs à celle de la qualité CD. Pour rappel, un CD a un échantillonnage de 44,1 kHz et une quantification de 16 bits.« 

La manière d’écouter la musique est certainement une des choses qui a changé le plus radicalement ces 10 dernières années. Contrairement à la vidéo et à l’utilisation des format HD, ce changement s’est accompagné d’une baisse globale de la qualité de la source musicale. En effet, les stores proposent majoritairement des fichiers musicaux compressés en utilisant des codecs avec perte d’information (MP3, MP4, Vorbis…). Si cette perte d’information est négligeable pour une écoute grand public avec votre baladeur ou depuis votre PC, il en est autrement sur une chaîne HIFI de bonne qualité. On se retrouve alors avec une source qui n’est plus en adéquation avec le matériel, celui-ci se trouvant sous exploité.

Nous allons donc voir dans ce billet comment télécharger et exploiter des fichiers musicaux en qualité supérieure au format CD (Studio Masters) sur nos chers machines GNU/Linux. Avant de commencer, voici le matériel que j’ai utilisé pour rédiger ce billet:

  • chaîne HIFI Cambridge avec un DAC Audio Magic de la même marque (voir le test ici) et casque audio AKG K450 et/ou enceintes B&W 685
  • PC sous Ubuntu 11.10 avec la suite logiciel libre Sox
  • MacBook Pro avec sortie audio optique pour exploiter les fichiers > 44.1 kHz (mon PC sous Ubuntu ne disposant pas de sortie audio numérique et l’entrée USB du DAC Cambridge est limité à 44.1 khz)
  • un album en qualité StudioMaster (24 bits / 96.0 kHz) acheté sur le site Qobuz

Obtenir une source « Studio Masters »

Comme nous l’avons vu en introduction, les « stores leaders » sur le marché ne propose pas de formats de fichiers supérieurs à la qualité CD. Il faut donc se retourner sur les boutiques spécialisés dans la haute définition comme par exemple Qobus. Bien que leur catalogue « Studio Masters » ne soit pas très étoffé, c’est quand un même un point d’entrée.

J’ai donc acheté l’album « Audio, video, Disco. » du Groupe Français Justice. en qualité FLAC 24 bits / 96 kHz. (15€ soit 3€ plus cher que la qualité CD et 5€ de plus que la qualité MP3).

Qui dit qualité Studio Masters, dit fichiers de taille importante, il faut donc télécharger presque 1 Go pour un album.

Installation de SoX, le couteau Suisse des logiciels audio HQ

SoX est un ensemble de logiciels permettant de manipuler, en ligne de commande tout type de fichier musicaux.

Pour installer SoX sur votre distribution Ubuntu, rien de plus simple:

[cc]

sudo aptitude install sox libsox-fmt-all

[/cc]

SoX se compose des commandes suivantes:

  • soxi pour obtenir des informations sur un fichier audio
  • rec pour enregistrer dans un fichier audio le son venant d’un de vos périphérique d’entrée
  • play pour jouer vos fichiers audio sur la sortie définie par votre système (analogique, numérique, USB…)
  • sox pour convertir, ajouter des effets dans un fichier audio

Utilisation des fichiers Studio Masters

« Commençons pas le commencement » en utilisant la commande soxi sur les fichiers Studio Masters téléchargés sur Qobus.

[cc]

soxi 01-01-Justice-Horsepower-SMR.flac

[/cc]

On obtient le résultat suivant:

Input File     : '01-01-Justice-Horsepower-SMR.flac'
Channels       : 2
Sample Rate    : 96000
Precision      : 24-bit
Duration       : 00:03:40.09 = 21128600 samples ~ 16506.7 CDDA sectors
File Size      : 89.9M
Bit Rate       : 3.27M
Sample Encoding: 24-bit FLAC
Comments       :
ALBUM=Audio, Video, Disco.
TITLE=Horsepower
TRACKNUMBER=1
TRACKTOTAL=11
DISCNUMBER=1
DISCTOTAL=1
DATE=2011
COPYRIGHT=Ed Banger Records Because Music
GENRE=Electro
ALBUMARTIST=Justice
ARTIST=Justice
DESCRIPTION=Interprètes : Justice, performer; Gaspard Augé, composer & author; Xavier de Rosnay, composer & author
Label : Ed Banger Records Because Music - Because

Les informations « intéressantes » pour notre sujet sont le « sample rate » et la « precision » respectivement aux valeurs 96 kHz et 24 bits.

En utilisant la commande play, j’ai joué ce fichier depuis mon PC Ubuntu branché via un câble USB sur l’entrée USB de mon DAC Cambridge. Comme la documentation du DAC l’annonçait, le fichier est joué en 44,1 kHz car le port USB est seulement en version 1 donc avec un débit insuffisant pour du 96 kHz (plus de 3 Mbps).

[cc]

play 01-01-Justice-Horsepower-SMR.flac

[/cc]

01-01-Justice-Horsepower-SMR.flac:

 File Size: 89.9M     Bit Rate: 3.27M
  Encoding: FLAC          Info: Interprètes : Justice, performer; Gaspard Augé, composer & author; Xavier de Rosnay, composer & author
Label : Ed Banger Records Because Music - Because

  Channels: 2 @ 24-bit   Track: 1 of 11
Samplerate: 96000Hz      Album: Audio, Video, Disco.
Replaygain: off         Artist: Justice
  Duration: 00:03:40.09  Title: Horsepower

In:7.33% 00:00:16.13 [00:03:23.96] Out:1.55M [  ====|====- ] Hd:5.9 Clip:0

La qualité est cependant au rendez-vous. Surtout si je fais la comparaison avec le même morceau compressé en MP3 à 320 Kbps.

Note: les DAC récents proposent des entrées USB 2 supportant des entrées en 24 bits/ 96 kHz (comme le très bon HRT Music Streamer II à moins de 200€ que j’ai eu la chance d’écouter chez un ami).

En jouant le même fichier depuis mon Mac BookPro en utilisant la sortie jack optique (c’est quand même la classe le matériel chez Apple) connecté via un câble Jack – TosLink S/PDIF sur mon DAC Cambridge, je dois avouer (comme pour mon premier billet sur le sujet) que la différence n’est pas flagrante. J’ai donc décidé de faire un « blind test » en passant d’une source 24 bits/ 96 kHz (Mac) à la même source mais « resampler » à 24 bits / 44.1 kHz par le DAC (PC Ubuntu).

Résultat des courses: 7 fois sur 10, j’ai préféré le morceau en 24 bits/ 96 kHz.

Manipuler ses fichiers audio avec SoX

Nous allons maintenant passer à la partie ludique de ce billet en manipulant nos fichiers audio avec les différentes fonctions offertes par SoX.

Resampling: de « Studios Masters » vers CD

Pour transformer notre fichier source Studio Masters (24 bits/ 96 kHz) dans un fichier au format CD (16 bits/ 44.1 kHz), il faut saisir la commande suivante:

[cc]

sox -S 01-01-Justice-Horsepower-SMR.flac -b 16 01-01-Justice-Horsepower-SMR-16bits-44.1kHz.flac rate -h -I -b 90 44100

[/cc]

Notes sur les options:

  • -S permet d’avoir une barre de progression qui s’affiche sur l’écran
  • -b 16 force un resampling en 16 bits (compatible CD)
  • rate -h -I -b 90 44100: resampling de haute qualité en 44.1 kHz

Après une dizaine de secondes de traitement, vous devriez obtenir un fichier de 27 Mo (contre 86 Mo pour la source):

[cc]

soxi 01-01-Justice-Horsepower-SMR-16bits-44.1kHz.flac

[/cc]

Input File     : '01-01-Justice-Horsepower-SMR-16bits-44.1kHz.flac'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:03:40.09 = 9705951 samples = 16506.7 CDDA sectors
File Size      : 28.1M
Bit Rate       : 1.02M
Sample Encoding: 16-bit FLAC
Comments       :
ALBUM=Audio, Video, Disco.
TITLE=Horsepower
TRACKNUMBER=1
TRACKTOTAL=11
DISCNUMBER=1
DISCTOTAL=1
DATE=2011
COPYRIGHT=Ed Banger Records Because Music
GENRE=Electro
ALBUMARTIST=Justice
ARTIST=Justice
DESCRIPTION=Interprètes : Justice, performer; Gaspard Augé, composer & author; Xavier de Rosnay, composer & author
Label : Ed Banger Records Because Music - Because

Conversion en MP3

SoX reconnait le format MP3, il est donc simple comme bonjour de transformer notre source loss-less en MP3:

[cc]

sox -S 01-01-Justice-Horsepower-SMR.flac -r 44100 01-01-Justice-Horsepower-SMR-16bits-44.1kHz.mp3 rate -h -I -b 90 44100

[/cc]

Mais…

…  même si la conversion se passe sans problème, le fichier obtenu à un débit de 128 Kbps (donc un MP3 de très mauvaise qualité). Je n’ai trouvé nulle part une option pour encoder à un débit plus important. Si vous avez une idée je suis preneur (avec SoX bien sûr…).

Il est toujours possible d’utiliser SoX pour resampling et lame (sudo apt-get install lame) en utilisant un pipe comme le montre la ligne de commande suivante:

[cc]

sox -S 01-01-Justice-Horsepower-SMR.flac -r 44100 – rate -h -I -b 90 44100 | lame –preset insane – 01-01-Justice-Horsepower-SMR-16bits-44.1kHz.mp3

[/cc]

Et encore…

Voici quelques exemples en bonus (les commentaires sont là pour en ajouter d’autres):

Mixer plusieurs sources audio entre elles en conservant les volumes d’origines:

[cc]

sox -m source1.flac source2.flac destination.flac

[/cc]

Mixer plusieurs sources audio entre elles en mettant tous les volumes au même niveau:

[cc]

sox –combine mix-power source1.flac source2.flac destination.flac

[/cc]

Enregistrer dans un fichier FLAC (par défaut en 16 bits et 48 kHz) le son venant du périphérique d’entrée par défaut de votre PC:

[cc]

rec test.flac

[/cc]

Enregistrer dans un fichier FLAC (16 bits et 8 kHz, adapté à la voix) le son venant du périphérique d’entrée par défaut de votre PC:

[cc]

rec -r 8000 test.flac

[/cc]

 Pour trouver d’autres exemples d’utilisation de SoC, je vous conseille la lecture des ce billet ou de celui-là.
Catégories
Blog Musique Web

Gérer sa bibliothèque musicale en 2012

Il y a quelques mois, je publiais un article sur l’histoire de la gestion de mes fichiers musicaux. Quelques 6 mois plus tard,  il est intéressant de noter que la tendance est restée la même: un abandon progressif du support physique et des fichiers locaux.

Il y a encore un an, je continuais à entretenir ma bibliothèque iTunes en « rippant » mes CDs préférés. Aujourd’hui, j’utilise exclusivement le service Spotify Premium pour lequel je paye un abonnement mensuel de 9.99€ (et oui chez Spotify aussi $1=1€… #wtf) pour une utilisation illimitée depuis mes ordinateurs et smartphones.

Mes sources (magazines papiers type Inrocks, blogs musicaux: PitchFork|Mowno|Hop-Blog, CDs empruntés à la CDthéque, radio…) me permettent d’alimenter une playlist que j’appelle « Coups d’oreille 2012 » (vous pouvez écouter ma playlist 2011 ici) et dans laquelle j’ajoute en vrac les musiques que je souhaite écouter plus attentivement.  Une fois cette écoute faite, plusieurs choix s’offrent à moi:

  • « C’est quoi cette daube ! (ou j’aime pas ce style dans le langage politiquement correct) » > supprimer purement et simplement la musique (titre ou album entier) de ma playlist
  • « Pas mal ! (c’est bon j’aime dans le langage des abeilles) » > laisser la musique dans la playlist
  • « Génial ! elle déchire cette zic ! (jeuns mode) » > mettre une étoile à la musique en question et optionnellement la copier dans d’autres playlist (par genre ou mon top 2011 à écouter ici). La majorité des ces playlists sont disponibles off-line (c’est à dire téléchargées directement sur la machine afin de les écouter même sans connexion Internet).

Ce que j’aime particulièrement avec ce système de musique dématérialisée, c’est le fait de pouvoir écouter la musique en continu le long de la journée. Par exemple, je commence chez moi avec l’iPhone branché via un dock sur ma chaîne HIFI. Ensuite, je continu dans la voiture avec le même iPhone branché sur l’entrée auxiliaire de mon poste autoradio (en attendant mieux…). Un peu de marche avec mon casque (j’utilise un AKG-450 dont je suis très satisfait) sur les oreilles pour finir à mon travail, avec le même casque, branché sur mon PC GNU/Linux et en utilisant le client lourd Spotify.

Je suis vraiment très satisfait de cette manière d’écouter de la musique. Je noterai cependant les axes d’améliorations suivants:

  • avoir la possibilité d’écouter des musiques en hautes qualités. Actuellement, Spotify utilise le codec libre Vorbis en qualité Q5 (~160Kbps) sur smartphones et Q5 ou Q9 (~ 320 Kbps mais pas sur toutes les musiques) sur PC/Mac (pour forcer la qualité Q9, il faut aller dans les propriétés du client Spotify). Bien que cette qualité soit acceptable, elle reste inférieure à une qualité CD, surtout avec une bonne chaîne / casque audio. Il serait donc sympa, quand la connexion Internet le permet, de disposer de musiques encodées en « Loss Less » (FLAC par exemple)…
  • avoir enfin une version définitive (marre de la pré-version) du client Spotify natif pour GNU/Linux (bien que la version actuelle fonctionne bien, aux erreurs de mises à jours près…).
  • certains albums / auteurs ne sont pas encore disponibles sur Spotify (mais je dois avouer que c’est de plus en plus rare).
  • pouvoir partager des morceaux avec des personnes qui n’ont pas le client Spotify (bref un client Web léger serait le bienvenu).

Et vous, vos habitudes ont elle changés en 2011 ?

PS: je n’ai aucune action chez Spotify Ltd, c’est juste le service en ligne que j’utilise historiquement (après un bref passage chez Deezer).

Catégories
Blog Musique Open-source Planet-libre Video

Mise à jour de la présentation de GStreamer

Il y a quelques mois, j’avais publié une présentation (au format « Powerpoint ») du framework multimédia GStreamer.

A l’occasion d’une présentation de cette technologie à la commission open-source de la Telecom Valley, j’ai mis à jour cette présentation en l’illustrant avec des exemples de pipelines que je lançais au fur et à mesure de mon exposé.

La nouvelle version (1.2) de cette présentation est disponible au téléchargement aux formats PDF et ODP. Elle est diffusé sous licence Creative Common BY v3.0 comme la totalité des billets de ce blog. Vous pouvez également télécharger les scripts shells contenant les pipelines utilisés lors de la présentation.


La présentation (PDF) / La présentation (ODP) / Les scripts shells d’illustration

Note: l’archive des scripts shells contient également une musique (Carl Phaser – « Domination » sous licence CC BY-NC-SA) et une vidéo (Justin Cone – « Building on the Past » sous licence CC BY-NC 1.0) que j’utilise dans ces pipelines.