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 !
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 :
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 !
On peut alors accéder au pi en ssh avec la commande
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.
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
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
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 :
/*******
* 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 :
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 ;
}
}
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 !) ;
Dans le menu fichier, choisir « export as » puis donner un nom finissant par gif (par exemple gif-tout-1.gif) au fichier à créer;
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.
Ca prend un bon bout de temps.
Gif créé avec Gimp a partir d’images d’un sketch 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
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
Choisir le format (ici h264) puis définir le fichier de destination.
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.
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
Pour les réaliser :
Il est préférable que les deux objets fassent la même taille
L’objet mis au premier plan sert de masque ou découpe à celui qui est plus en arrière.
Sélectionner les deux objets
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 :
faire un gribouillis ou autre.
Sélectionner l’ensemble des objets à transformer en motif (ici un tortillon orange sur un fond bleu).
dans le menu Objet, choisir motif puis objet en motif
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é
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 :
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.
Commentaires récents