Volumio, un lecteur de musique sur Rasberry Pi

Volumio, un lecteur de musique sur Rasberry Pi

Volumio est un lecteur de musique open source, disponible pour de nombreux appareils et de nombreux systèmes d’exploitation. Avec Volumio, on peut avoir quelque chose qui ressemble à une chaîne Hifi numérique à un coût très faible.
Ici j’explique l’installation de Volumio sur un Raspberry Pi 2 et l’utilisation du système ingénieux qui permet d’en faire un système que l’on peut emmener partout avec soi dès lors que l’on a une connexion wifi.

Installation de Volumio sur un Raspberry Pi

Difficile de faire plus simple ! On télécharge une image disque, on la copie sur la carte SD d’un Raspberry Pi et ça y est, notre Pi est transformé en machine à musique numérique !

On télécharge l’image sur : https://volumio.org/get-started/

Téléchargement de la version Raspberry Pi de Volumio.

Une fois l’image téléchargée, on suit les instructions de la page
https://volumio.org/get-started/ . J’ai gravé l’image sur une carte SD avec l’utilitaire win32 disk manager .
On met la carte dans le Pi, on connecte le Pi à un cable ethernet et on raccorde le cable audio. Et on met le Pi en route

Réglages pour la connexion WIFI

En théorie si le Raspberry Pi est connecté seulement en wifi, on y a accès par l’intermédiaire d’un hotspot accessible via http://volumio.local/.
Mais comme j’avais connecté le Pi avec un cable ethernet aussi, j’ai pu avec quelques difficultés (je n’ai pas réussi à savoir ce qui avait fait que ça fonctionnait…) me connecter à http://volumio.local/ via le réseau cablé et faire les réglages suivants : 

  • nom unique volumio_Pi2  – nota il ne faut pas mettre d’espace ou de _ comme je l’ai fait. volumioPi2 aurait été plus intelligent
  • sortie audio = audio jack
  • paramétrage du wifi : ssid et mot de passe

Une fois que le volumio est redémarré, il devient accessible à l’adresse http://volumiopi2.local/ si on l’a nommé volumio_pi2. On voit bien que le _ induit en erreur.

Rendre possible le « nomadisme »

Lorsque le Raspberry Pi est équipé d’un système wifi, il peut être transporté partout. Si il n’est pas paramétré pour le réseau wifi où il arrive, il se mettra automatiquement en mode hotspot si on a pensé à régler le paramètre du hotspot pour que HOTSPOT FALLBACK soit sur OUI, comme dans la photo ci-dessous :

Volumio HOTSPOT FALLBACK sur OUI : le hotspot apparaît dès qu'il ne réussit pas à se connecter au réseau

Rendre accessible en SSH

Dans l’aide de Volumio, en anglais, il est indiqué que l’on peut régler l’appareil pour être accessible en SSH.
On tape http://volumiopi2/dev/ dans un navigateur , et on a accès à un bouton pour activer le SSH !

pour activer le SSH sous Volumio

On peut alors accéder au pi en ssh avec la commande

ssh volumio@192.168.1.16

Si problème, on peut régénérer la clé SSH

ssh-keygen -R 192.168.1.16

Le mot de passe est volumio. Evidemment on peut le changer.

si besoin d’être root, on devra être root

Autres sources d’information :

Les réglages et extensions de volumio

http://volumio_pi2.local permet d’accéder à une interface de réglage. Avec un appareil android, on devra taper l’adresse IP de l’appareil…

L’installation d’extensions se fait via l’interface de réglage aussi, à l’adresse http://volumio.local/plugin-manager

La liste des extensions disponible est accessible ici : https://volumio.org/forum/volumio-plugins-collection-t6251.html.

Pour trouver l’adresse des radios en streaming, le meilleur annuaire est http://fluxradios.blogspot.com/

Mon compte Google sur un ordinateur public

Mon compte Google sur un ordinateur public

Lorsque j’utilise un ordinateur public (dans une école, une entreprise, une médiathèque,…) je n’ose pas me connecter à des sites tels que Gmail ou DropBox pour accéder à des courriels ou fichiers personnels. En effet, le risque est grand que l’ordinateur soit paramétré pour capturer mes informations confidentielles.

L’aide de Google explique comment se connecter sur un ordinateur qui n’est pas le mien : Vous connecter à votre compte sur un appareil qui n’est pas le vôtre.

Sauvegarde d’un site WordPress avec Updraft Plus, gratuit et très bien

Sauvegarde d’un site WordPress avec Updraft Plus, gratuit et très bien

Il est prudent de sauvegarder régulièrement la base de données et les fichiers d’un site WordPress. J’ai testé de nombreuses solutions avant de m’arrêter depuis 6 mois sur Updraft Plus, en version gratuite. Updraft Plus est vraiment très bien pour réaliser des sauvegardes planifiées. Je l’ai essayé en ftp et sur dropbox

Installer et activer Updraft Plus

Comme n’importe quelle extension.

Planifier les sauvegardes Updraft Plus

Dans le menu Réglages / Sauvegardes Updraft Plus, onglet réglages :

  • Fichiers : bimensuel, 4
  • Base de données hebdo, 10

Sur dropbox

exclure de sauvegarde :

Je laisse tel quel, avec à exclure des sauvegardes :

  • « backup*,*backups,backwpup*,wp-clone,snapshots »
  • et  « upgrade,cache, updraft,backup*, *backups,mysql.sql,debug.log »

Dans les réglages avancés, je vérifie que « supprimer la sauvegarde locale » est bien coché.

Enregistrer.

Régler la connexion à Dropbox

Lorsqu’on enregistre les réglages précédents, une fenêtre s »ouvre :

Updraft Plus : Réglage pour Dropbox

Updraft Plus : Réglage pour Dropbox

Cliquer sur le lien puis se connecter à son compte dropbox.

Ensuite cliquer sur le bouton « complete setup », qui nous ramène dans notre tableau de bord WordPress. La première sauvegarde commence automatiquement.

Utilisation d’une sauvegarde FTP pour transférer d’un hébergement à un autre

En transférant des sauvegardes d’un site par FTP on a un gain considérable :

  • pas besoin de gérer la taille des fichiers zip : Updraft plus s’en charge (il découpe l’ensemble des fichiers à sauvegarder en autant de « lot » que nécessaire) ;
  • Pas besoin de transiter par mon ordinateur : adieu les délais liés à une connexion ADSL poussive, adieu les problèmes de caractères spéciaux !

Le seul inconvénient est que le transfert est réalisé en FTP, sans encryption, lorsqu’on utilise la version gratuite du site.

Régler les paramètres FTP du « remote storage »

Dans les « settings » de Updraft Plus, cocher FTP comme « remote storage ».

Régler les paramètres FTP comme suit :

FTP server: ftp://oifw.vps.infomaniak.com
FTP login: ohwt_flo1
FTP password: VotreMotDePasse
Remote path: /updraft/
Passive mode: coché

Ici les login et password donnent accès au répertoire /ald-utils/Flo-test/ et dans ce répertoire j’ai créé le répertoire /ald-utils/Flo-test/updraft .

Cliquer sur le bouton : « Test FTP Settings » pour vérifier les réglages.

Ensuite la sauvegarde se fait. Updraft plus gère la création de fichiers zippés de taille correcte. Par exemple 10 fichiers zippés nommés nomfichier-uploads.zip, nomfichier-uploads1.zip  à nomfichier-uploads9.zip

Restaurer les fichiers Updraft Plus

Ensuite pour les décompresser dans le bon endroit, utiliser la fonction restauration de Updraft plus :

  • placer les fichiers de backup dans le répertoire wp-content/updraft du site cible
  • Dans le site cible, aller dans réglages / sauvegardes UpdraftPlus
  • Dans l’onglet sauvagardes existantes, cliquer sur le lien « Scanner le dossier local pour recherche de nouveaux lots de sauvegarde ». On voit alors apparaître la sauvegarde ajoutée manuellement
  • Cliquer sur Restaurer

Et voilà !

Processing : créer une vidéo ou un gif animé à partir d’un sketch

Processing : créer une vidéo ou un gif animé à partir d’un sketch

Dans l’article Un sketch interactif (clavier ou souris) et des sauvegardes d’écran sous Processing 3 , nous avons vu comment réaliser des images à partir d’un sketch Processing. Maintenant nous allons voir comment créer une vidéo.

Le principe est simple :

  • Dans le sketch Processing, l’appui sur une touche (v ou V) déclenche l’enregistrement d’une image à chaque fois que la fonction draw se termine (une frame).
  • Avec les outils de Processing, création d’un fichier MOV à partir de toutes les images générées
  • Réduction du volume de la vidéo en la convertissant en mp4 avec VLC

Le sketch dont nous voulons réaliser une vidéo

Nous repartons de l’exemple très simple présenté dans l’autre article déjà cité. Nous y avons simplement ajouté la possibilité de changer de couleur au clic de souris, et de remettre l’écran à zéro en préssant z ou Z. Pour des raisons évidentes, ce sketch en ligne ne fait pas les enregistrements :

Créer les images, dans le sketch

Je me suis inspirée de ce chapitre du manuel Floss de Processing.

Le code complet est :

/*******
* un sketch tout simple qui permet de dessiner à la souris
* si on clique sur la souris, la couleur du cercle change
* si on tape sur z ou Z, l'écran est effacé
* si on tape sur v ou V, le sketch sauvegarde des images pour générer une vidéo
* pour créer la vidéo à partir des images 
*  ----> voir mon tutoriel sur https://knowledge.parcours-performance.com
*******/

int r ;            // radius
float hue ;        // HUE of shape
float compHue;      // complementary hue
float sat ;        // saturation of shape's color

// Pour les interactions 
boolean makeMovie = false ; // sauvegarder images en rafale / vidéo
// int movStart = 0 ;       // pour compter l'intervalle de frame entre deux images
String dest = "vid/infini" ; // destination des images pour faire un film
// String dest = "E:/--- PLANCTON -----/vid1440/infini" ;

 
void setup() {
 
  size(1440, 1080, JAVA2D) ;    // ATTENTION la taille de l'écran doit être celle qu'on prévoit pour la vidéo
  frameRate(30) ;               // idéalement 24 ou 30 qui sont les framerate habituels des vidéos
  colorMode(HSB, 360, 100, 100, 100);  
  r = 55 ;
  hue = random(360) ;
  compHue = 0 ;
  sat = 50 ;
  background(0,0,99,100) ;  // white
 
}
 
void draw() {
 
    smooth();
    strokeWeight(3);
    compHue = (hue + 180) % 360 ;  // modulo 360 to turn in a circle !
    stroke( compHue, sat, 100, 70 );
    fill( hue, sat, 100, 70 );
    ellipse( mouseX, mouseY, r, r );

    if( makeMovie == true) {
      
      // infini-00000nnn.tif
        saveFrame ( dest + "-########.tif"); 
      
    }  
 
}

void mousePressed () {
 
        hue = random(360) ; 
 
}

void keyPressed() {
  
  if (key=='z' || key=='Z') {
    background(0,0,99,100) ;  // white   
  }
  
  if (key=='v' || key=='V') {
    println("!!!! enregistrement images pour movie !!!!") ;  
    background(0,0,99,100) ;  // white
    makeMovie = !makeMovie ;
  }  
}

Les points importants sont :

  • bien définir la taille des images (et donc de la vidéo) en définissant screen ;
  • Définir le nombre d’image par seconde que l’on veut générer en utilisant framerate()
  • Faire bien attention au lieu de sauvegarde des images car elles peuvent être très nombreuses et très volumineuses
  • déclencher la génération d’images avec une touche

bien définir la taille des images (et donc de la vidéo) en définissant la taille de l’écran  ;

Dans le setup(), on règle l »écran à la taille du film souhaité, ici 1440 x 1080 pixels : size(1440, 1080, JAVA2D) ;

Définir le nombre d’image par seconde que l’on veut générer en utilisant framerate()

Ici j’ai choisi un rythme de 30 images par secondes avec frameRate(30) ;  dans le setup().

Remarque pour youtube, les frame rates courants sont 24, 25, 30, 48, 50, 60 images par seconde si l’on en croit le support technique Google.

Attention images nombreuses et volumineuses !!!!

String dest = « vid/infini » ;  ou String dest = « E:/— PLANCTON —–/vid1440/infini » ;  , permettent de dire où placer les images créées.

Attention, on crée autant d’image par seconde que le framerate (ici 30 , dont 30 images par seconde, 1800 par minute ! Et pour cet exemple, chaque image fait environ 4 Mo.

En 14 secondes, j’ai généré 694 Mo d’images ! 

déclencher la génération d’images avec une touche

On dessine le contenu de l’écran avant la sauvegarde de l’image. On place donc à la fin de la boucle draw le code suivant :

    if( makeMovie == true) {     
        saveFrame ( dest + "-########.tif"); 
    }

Ce code sauvegarde l’écran sous la forme d’une image  dans le sous-répertoire vid du répertoire contenant notre sketch (pour moi \create_video_1\vid\infini-00000485.tif par exemple). Et makeMovie devient vrai lorsqu’on appuie sur la touche v (ou V) et redevient faux avec la même touche car

void keyPressed() {
  
  if (key=='z' || key=='Z') {
    background(0,0,99,100) ;  // white   
  }
  
  if (key=='v' || key=='V') {
    println("!!!! enregistrement images pour movie !!!!") ;  
    background(0,0,99,100) ;  // white
    makeMovie = !makeMovie ;
  }  
}

Et voici le sketch complet : Sketch create_video_1 (changer l’extension en .pde)

Créer une image animée (gif) avec Gimp

Je suis partie de « Quick Tip: Combine images to gif animation in Gimp » :

  1. Ouvrir Gimp puis dans le menu fichier, choisir « ouvrir en tant que calques » et sélectionner toutes les images qui devront constituer notre image gif (j’ai sélectionné les 415 images !) ;
  2. Dans le menu fichier, choisir « export as » puis donner un nom finissant par gif (par exemple gif-tout-1.gif) au fichier à créer;
  3. Dans la boîte de dialogue, cocher « as animation » puis régler le délai entre frame pour que la vitesse soit convenable. Dans la mesure où je veux 30 images par seconde, je régle à 30 millisecondes entre frames.
  4. Ca prend un bon bout de temps.

Gif créé avec Gimp a partir d'images d'un sketch Processing

Gif créé avec Gimp a partir d’images d’un sketch Processing

Créer une vidéo, avec les outils de Processing

Je me suis inspirée de ce chapitre du manuel Floss de Processing.

Dans le menu Outils de Processing, choisir « Movie Maker ». Attention à sélectionner le même framerate que celui d’enregistrement des écrans. Et cocher « same size as original » pour créer une vidéo de la taille de screen.

Créer une vidéo avec le Movie Maker dans Processing

Créer une vidéo avec le Movie Maker dans Processing

Lorsqu’on clique sur le bouton « create movie », Processing nous demande où l’on veut enregistrer le fichier .mov qu’il va créer. Ensuite, la création se fait.

Conversion en MP4 avec VLC

Ouvrir la vidéo avec VLC. Dans le menu Média, choisir « Convertir / Enregistrer . Indiquer de nouveau le fichier à convertir, éventuellement indiquer à quel moment de la vidéo il faut commencer ou terminer. Ensuite cliquer sur « convertir ».

VLC convertir une vidéo en mp4 - 1

VLC convertir une vidéo en mp4 – 1

Choisir le format (ici h264) puis définir le fichier de destination.

VLC convertir une vidéo en mp4 - 2

VLC convertir une vidéo en mp4 – 2

Le fichier créé est énormément plus léger que le fichier MOV d’origine (100 fois mois d’octets parfois !) et la qualité reste très bonne.

Pour la vidéo correspondant au fichier gif ci-dessus, on a :

  • une seule image fait 4 457 ko ;
  • fichier gif réalisé avec les 415 images 6 655 ko ;
  • vidéo .MOV réalisée avec les 415 images 1 614 ko ;
  • vidéo .mp4 80 ko.
  • Et voici la vidéo en mp4

Un exemple plus important et utile

Pour information, j’ai généré une demi-heure de vidéo d’un travail artistique collectif :

  • Processing a tourné au moins 5 heures pour générer les 54000 images correspondant à 30 minutes (30 minutes * 60 secondes * 30 images par seconde).
  • Le répertoire (un disque dur externe pour ne pas prendre de risque) a reçu 297 Go de fichiers. Chaque image au format tif faisait 1440 x 1080 pixel, 4.45 Mo ;
  • La vidéo résultante en .MOV fait 104 Go (111 902 148 526 octets) !
  • La vidéo enregistrée en MP4 avec VLC fait 949 Mo (995 936 674 octets).

Et maintenant ?

On dispose d’un moyen pratique de montrer ce que produit un sketch processing sans la lourdeur de devoir lancer le sketch sur le bon ordinateur.

Masques et motifs avec Inkscape

Masques et motifs avec Inkscape

En cours d’art numérique (http://esbac.samedi.free.fr/), j’ai appris à utiliser les motifs et les masques en dessin vectoriel avec Inkscape. Je décris le fonctionnement ici (pour ne pas oublier, et parce que ça peut servir).

faire un masque ou une découpe avec inkscape

L’objet qui sert de forme de découpe est au dessus de celui qui doit être découpé (Objet > mettre au premier plan).

Le masque revient à modifier l’opacité de la forme de découpe tandis que la découpe rend totalement transparente la forme. Ici on fait soit un masque soit une découpe avec la forme de l’étoile au dessus :

Découpe ou masque avec Inkscape

Découpe ou masque avec Inkscape

Pour les réaliser :

  1. Il est préférable que les deux objets fassent la même taille
  2. L’objet mis au premier plan sert de masque ou découpe à celui qui est plus en arrière.
  3. Sélectionner les deux objets
  4. puis choisir objet > masque > définir. ou  objet > découpe > définir

créer un motif et en remplir un objet

Pour créer le rectangle coloré qui a été découpé par l’étoile, j’ai rempli le rectangle avec un « motif « . Pour ce faire :

  1. faire un gribouillis ou autre.
  2. Sélectionner l’ensemble des objets à transformer en motif (ici un tortillon orange sur un fond bleu).
  3. dans le menu Objet, choisir motif  puis objet en motif

Créer un motif avec Inkscape

Créer un motif avec Inkscape

4. Maintenant, si je sélectionne par exemple un rectangle à fond vert que j’avais préalablement créé, je vais dans remplissage et contour et dans l’onglet fond, si je clique sur le bouton « motif » mon rectangle devient rempli du motif défini.

5. Si je double clique sur le fond ainsi créé, je vois apparaître trois éléments à gauche de mon motif : une croix, un cercle et un carré

Créer un motif avec Inkscape - 2

Avec le cercle je modifie l’orientation du motif tandis que le carré sert à modifier sa taille. J’obtiens par exemple l’un de ces trois remplissages :

Créer un motif avec Inkscape - 3

Des motifs plutôt que des découpes ou des masques !

Evidemment, on voit maintenant que j’aurais pu tout simplement remplir mon étoile avec un motif. J’aurais obtenu le même résultat.

Et maintenant ?

Je suis très contente de connaître ces notions de motif et de découpe ou masque. Je vais voir comment les appliquer aussi dans des logiciels comme Gimp et même dans Processing.