Archives de catégorie : Logiciels libres

MAO et MIDI

J’ai complété ma page sur la musique assistée par ordinateur sous linux en détaillant comment on peut piloter un instrument disposant d’une interface MIDI à partir d’un logiciel de MAO, en l’occurrence rosegarden. On peut ainsi très facilement commander l’instrument à partir d’une composition (suite de commandes) MIDI lue de rosegarden et inversement enregistrer une piste MIDI jouée à partir de l’instrument.

Rosegarden

Si on veut se passer d’un instrument pour jouer avec le MIDI on dispose du synthétiseur FluidSynth et de son interface graphique Qsynth.

Qsynth

Ce qui est intéressant est qu’on dispose de toute une bibliothèque de son qui permet à partir d’un piano numérique de restituer un peu tout et n’importe quoi et de combiner ainsi virtuellement plusieurs instruments.

Tutoriel vidéo images clés avec kdenlive

J’ai installé la dernière version de kdenlive 0.9.4, elle rajoute quelques fonctionnalités supplémentaires comme la détection automatique des scènes et un « motion tracking » qui permet de suivre une portion d’image particulière. On peut trouver davantage d’informations dans la doc de base de KDE (en anglais désolé). J’en profite pour proposer un nouveau tutoriel vidéo sur l’utilisation de kdenlive et plus précisément des images clés (key frame en anglais). C’est une fonction primordiale dans un logiciel de montage vidéo qui sert à créer des animations. On définit  le début de l’animation avec une première image clé et on termine l’animation avec une autre image clé, il peut y avoir des images clés intermédiaires à différents stades d’avancement de l’animation. Pour ce qui concerne l’animation, ça peut être un peu n’importe quoi, une image qui disparaît  qui  part en rotation, etc.

Pour illustrer mon tutoriel, je me suis inspiré du clip des Ting Tings Shut up and let me go.

L’idée est d’avoir une image de départ avec un objet central sur lequel on va zoomer au fur et à mesure. Dans cet objet on verra apparaître en grossissant une autre image. Voilà le tutoriel

Le screencast est fait avec audacity pour l’enregistrement de la voix, ffmpeg pour la capture vidéo, le tout est monté sous kdenlive évidemment.

Contrôleur de mixage Hercules DJ Control MP3 e2 et linux

A l’occasion des soldes et suite à l’insistance de ma fille j’ai acheté une table de contrôle de mixage Hercules DJ Control MP3 e2. C’est une petite table qui permet de mixer 2 morceaux avec des fonctions basiques de DJ pour se prendre pour David Guetta. Je l’ai achetée un peu au hasard en espérant qu’elle fonctionne sous linux. A vrai dire j’ai eu du bol car elle est effectivement compatible linux.

J’ai quand même pas mal galéré pour l’installer, je n’ai pas réussi à installer les drivers qu’on peut trouver sur le site d’Hercules. Bien qu’ayant réussi à compiler laborieusement le module hdjmod, il ne voit pas la table. Du coup j’ai installé la version en développement de mixxx qui est un soft de mixage pour DJ’s et émulateur de vinyls. Pourquoi la version de développement ? Parce qu’elle n’a pas besoin du module, elle est autonome pour pouvoir fonctionner avec la table Hercules.

Pour l’utilisation je n’ai pas réussi à le faire fonctionner avec alsa, je l’utilise avec jack. Et voilà ce que ça donne.

Hercules DJ Control MP3 e2C’est assez simple d’utilisation, d’un côté on charge une chanson, de l’autre une autre et on se sert des boutons et des jogs de la table pour faire des effets ou des transitions entre les chansons à partir de la liste de lecture qu’on se constitue sous mixxx.

 

Incrustation information GPS dans vidéo

Puisque je sors en planche à voile avec ma montre GPS garmin forerunner, je cherchais une astuce pour pouvoir intégrer les informations de temps et de vitesse dans mes vidéos en incrustation. Je pense avoir trouvé le moyen, même si ça reste perfectible et oblige à bien mettre à l’heure la caméra GoPro.

Tout d’abord il faut exporter la trace GPS au format gpx, turtlesport le permet. Par défaut il n’y a que les positions et l’altitude, pour rajouter la vitesse et la route, avec gpsbabel on tape

gpsbabel -t -i gpx -f sortie-30-12-2012.gpx -o unicsv -x track,course,speed -F output.txt

cela va donner un fichier qui ressemble à ça :

3,48.367354,-4.769260,-0.3,0.63,324.0,2012/12/30,10:15:14
4,48.367383,-4.769314,-0.8,2.57,309.2,2012/12/30,10:15:16
5,48.367382,-4.769321,-1.3,0.20,257.2,2012/12/30,10:15:19
6,48.367487,-4.769312,-2.3,0.69,3.2,2012/12/30,10:15:36
7,48.367630,-4.769355,-2.7,4.06,348.9,2012/12/30,10:15:40

on retrouve le numéro du point, la position, l’élévation, la vitesse (en m/s), la route en °, puis la date et l’heure. Maintenant sur le logiciel de montage, on va repérer dans le temps la séquence vidéo sur laquelle on va placer l’incrustation GPS. A partir du fichier output.txt on va créer un nouveau fichier contenant les points qui correspondent à la séquence vidéo, on l’appelle points.txt. J’ai créé un petit script qui va créer autant de fichiers .txt qu’il y a de points dans points.txt , il se lance en mettant en argument le fichier points.txt obtenu ci-dessus

#!/bin/bash
awk -F"," '{
label="label"NR".txt"
print "V:"$5*3.6,"T:"$8 > label;
} ' $1

chaque fichier obtenu se nomme label+numéro de point.txt et contient le champ avec le format suivant V:31.212 T:10:49:57. C’est ce qui apparaîtra ensuite en incrustation dans la vidéo, à cette occasion j’ai converti l’information de vitesse en km/h, mais rien ne vous oblige à appliquer d’autres traitements. Ensuite j’ai fait un deuxième script qui va créer une image gif avec le texte en bleu avec un fond transparent à partir de chaque fichier .txt

#!/bin/bash
for fichier in $(find . -name "label*.txt"); do
fullfilename=$(basename $fichier)
extension=${fullfilename##*.}
filename=${fullfilename%.*}
label=$(cat $fichier)
convert -background none -fill blue -size x15 -gravity center label:"$label" $filename.gif
done

On le lance simplement en se mettant dans le répertoire où se trouvent les .txt. Et voilà je me retrouve avec tout un stock d’images qui j’intègre en diaporama dans mon logiciel de montage vidéo kdenlive. Seul problème le temps entre 2 points GPS n’est pas constant, du coup je me suis fendu d’un autre script qui va calculer la moyenne entre deux points, on le lance en mettant points.txt en argument

#!/bin/bash
awk 'BEGIN { FS=","}
NR ==1 {
heure=substr($8,1,2)
minute=substr($8,4,2)
seconde=substr($8,7,2)
temps1=heure*3600+minute*60+seconde
delta=0
diff=0
}
NR > 1 {
heure=substr($8,1,2)
minute=substr($8,4,2)
seconde=substr($8,7,2)
temps=heure*3600+minute*60+seconde
delta=temps-temps1
temps1=temps
somme=somme+delta
}
END { print somme/(NR-1) }’ $1

C’est la moyenne qui détermine le temps entre deux images à la création du diaporama avec toutes les images obtenues. Ensuite dans la timeline, il faut faire chevaucher sur 2 pistes différentes le diaporama et la séquence vidéo, rajouter une transition composition, et faire une incrustation dans un coin des informations GPS, et le tour est joué.

Le plus compliqué dans l’affaire est de faire coïncider l’information GPS avec la séquence vidéo, tout est histoire de synchronisation entre le GPS et la caméra à l’avenir, je veillerai à bien mette à l’heure ma GoPro, ça aide grandement ensuite à s’y retrouver.

MAO table de mixage

Pour compléter mon mini studio, j’ai acheté une mini table de mixage Behringer Xenyx 302 USB elle me permet de brancher à la fois une guitare électrique via le boîtier d’effet Behringer V-AMP3,  un micro d’enregistrement et un piano numérique (connexion via RCA et non MIDI).

Behringer xenyx 302 USB

Du coup j’ai continué à découvrir les outils de musique assistée par ordinateur. Je me rends compte que certes Ardour permet d’enregistrer du son et des différents instruments séparément, mais il ne permet pas de créer de toute pièce du son. Pour cela rosegarden va bien plus loin qu’Ardour, puisqu’il dispose d’outils de création musicale. On peut voir ci-dessous l’éditeur de partition.

Éditeur de partition de Rosegarden

J’en ai profité pour mettre à jour la page de MAO sur le site funix.

Rajout d’une galerie photo

Je marque le début de l’année en créant une galerie photo sur ce blog, elle est accessible via la barre de menu ci-dessus. Pour cela j’utilise le plugin nextgen gallery, il permet assez facilement de gérer des lots importants de photos et de les classer en galerie et en album (qui peut contenir plusieurs galeries photo). Pour l’instant, pour me faire la main, je me suis contenté de rajouter des photos d’avion. Je ne suis pas encore pleinement satisfait de l’accessibilité et de la présentation, mais je compte améliorer cela. Par la suite je rajouterai d’autres albums.

A ce propos, je suis assez sensible aux histoires de droit d’auteur, aussi je voulais trouver le moyen d’insérer une information d’auteur, d’autant que mes photos qui sont en pleine définition. Pour cela chaque photo dispose d’informations EXIF, sous linux on dispose d’exiftool qui permet de gérer ces informations. Voilà le genre d’informations que l’on peut obtenir à partir d’une photo prise d’un appareil photo Sony DSC-P73.

ExifTool Version Number : 8.77
File Name : DSC07304.JPG
Directory : .
File Size : 1736 kB
File Modification Date/Time : 2012:11:30 15:49:52+01:00
File Permissions : rw-r--r--
File Type : JPEG
MIME Type : image/jpeg
Exif Byte Order : Little-endian (Intel, II)
Image Description : 
Make : SONY
Camera Model Name : DSC-P73
Orientation : Horizontal (normal)
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Modify Date : 2010:05:22 10:33:52
Y Cb Cr Positioning : Co-sited
Exposure Time : 1/100
F Number : 5.2
Exposure Program : Program AE
ISO : 100
Exif Version : 0220
Date/Time Original : 2010:05:22 10:33:52
Create Date : 2010:05:22 10:33:52
Components Configuration : Y, Cb, Cr, -
Compressed Bits Per Pixel : 8
Exposure Compensation : 0
Max Aperture Value : 2.8
Metering Mode : Multi-segment
Light Source : Unknown
Flash : Auto, Did not fire
Focal Length : 18.0 mm
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 2304
Exif Image Height : 1728
Interoperability Index : R98 - DCF basic file (sRGB)
Interoperability Version : 0100
File Source : Digital Camera
Scene Type : Directly photographed
Custom Rendered : Normal
Exposure Mode : Auto
White Balance : Auto
Scene Capture Type : Standard
Contrast : Normal
Saturation : Normal
Sharpness : Normal
PrintIM Version : 0250
Compression : JPEG (old-style)
Thumbnail Offset : 2494
Thumbnail Length : 18820
Image Width : 2304
Image Height : 1728
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:2 (2 1)
Aperture : 5.2
Image Size : 2304x1728
Shutter Speed : 1/100
Thumbnail Image : (Binary data 18820 bytes, use -b option to extract)
Focal Length : 18.0 mm
Light Value : 11.4

Maintenant pour rajouter des informations de copyright dans un lot de photos qui se trouvent dans un répertoire et sous répertoires, j’ai créé le script bash chg-prop-photo.sh suivant.

#!/bin/bash
[ -z $1 ] && echo "!!! Vous devez fournir un nom de répertoire, . est acceptable" && exit 1
[ ! -d $1 ] && echo "$1 n'est pas un répertoire" && exit 1

exiftool -r -ext JPG -ext jpg -overwrite_original_in_place -copyright='Copyright olivier.hoarau.org' $1

Pour son utilisation, c’est assez simple il suffit de se mettre à la racine où se trouvent toutes vos photos et de taper.

chg-prop-photo.sh .

Cela va aller dans tous les répertoires de manière récursive et rajouter le TAG copyright qui va bien à toutes les photos à l’extension JPG et jpg en prenant soin de garder la date de dernière modification/création, le nom du propriétaire et les droits du fichier. La commande peut prendre un certain temps suivant le volume du lot.

Mise à jour du site FUNIX

J’ai mis à jour mon site funix, j’ai notamment créé une page sur les outils de Musique Assistée par Ordinateur (MAO) qui permettent de faire des compositions musicales sur l’ordinateur. On peut via ces outils interfacer des instruments de musique réels, rajouter de la voix ou mixer avec différents sons d’origines diverses. Dans la page que j’ai créée je présente l’installation de Linux MultiMedia Studio, Ardour, Qtractor et Rosegarden qui sont des outils de MAO majeurs dans le monde des logiciels libres. Pour l’utilisation de ces softs je n’ai pas le recul suffisant, je me contente de donner quelques liens, on verra plus tard pour quelques tutoriels maison. En attendant je me suis monté un mini studio très modeste.

MAO perso

On peut y voir une interface USB Behringer UCA222 qui fait office de carte son sur laquelle est branchée un boîtier d’effet de guitare Behringer V-AMP3. J’ai commandé par ailleurs une mini table de mixage pour pouvoir rajouter un deuxième instrument de musique et un micro pour la voix.

Pour en revenir à la mise à jour de FUNIX, dans le détail j’ai mis à jour les pages suivantes

pages diverses
– page ma config, suite installation de mageia2 et changement de PC

pages multimedia
– rajout d’une page sur les outils de musique assistée par ordinateur avec LMMS, Ardour, Qtractor et Rosegarden
– page outils de base pour la vidéo, passage à x264 xnapshot 20121221-2245, ffmpeg 1.0.1 et les dernières versions des bibliothèques pour la vidéoconférence
– page lecteur vidéo, passage à libdvdread 1.2.0, libdvdnav 1.2.0, live 2012.08.31, MPlayer 1.1 et vlc 2.0.5
– page conteneur vidéo, passage à mkvtoolnix 5.9.0 et wxWidgets 2.9.4
– page transcodage, passage à avidemux 2.6.1
– page webcam, quelques modifications suite au passage à Mageia 2
– page montage vidéo, passage à mlt 0.8.6, openshot 1.4.3, LiVES 1.8.0 et cinelerra 4.4, quelques corrections pour la compilation de synfig studio

Dans la section téléchargement, j’ai mis à jour les documents pdf suivants pour prendre en compte les modifications ci-dessus
– vidéo sous linux
– webcam et outils associés

Sortie windsurf spot des blancs sablons

Pour marquer le jour le plus court de l’année et le report à une date sine die de la fin du monde, j’ai fait une sortie planche à voile du côté du spot des blancs sablons sur la commune du Conquet à l’occasion d’un avis de grand frais. Finalement le vent ne rentrait pas aussi bien qu’espéré, du coup avec les vagues c’était assez chaud pour partir et on manquait cruellement de vent pour pouvoir les exploiter. Gréé en 4.7 avec mon flotteur de vague, je suis quand même resté à l’eau 1h30 malgré les températures plutôt fraiches de l’eau.

J’ai fait des prises de vue avec ma caméra GoPro. Vu les conditions de vent très irrégulier et de vagues qui se sont tassées au fur et à mesure de la marée descendante, il n’y a rien de bien radical, on fera mieux la prochaine fois…

Et voilà la trace GPS

Trace GPS de la session du 22-12-12Au total 25,74km parcouru en 1h32″ avec une pointe faramineuse de 18 noeuds !

C’est la première fois que je fais le montage avec mon nouveau PC, à ce propos il refusait de monter ma GoPro via l’applet de KDE. Dans un shell avec un montage manuel avec udisks j’avais l’erreur Mount failed: Not Authorized. Pour résoudre cela, j’ai du créer le fichier /etc/udev/rules.d/11-media-by-label-auto-mount.rules contenant

KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
 IMPORT{program}="/sbin/blkid -o udev -p %N"
 #
 # Get a label if present, otherwise specify one
 ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
 ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
 #
 # Global mount options
 ACTION=="add", ENV{mount_options}="relatime"
 # Filesystem-specific mount options
 ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=5000,
 umask=002"
 #
 # Mount the device
 ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /d
 ev/%k /media/%E{dir_name}"
 #
 # Clean up after removal
 ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /m
 edia/%E{dir_name}"
 #
 # Exit
 LABEL="media_by_label_auto_mount_end"

et le tour est joué

[EDIT] il faut veiller au niveau de KERNEL!= »sd[b-z][0-9] » à ne pas faire apparaître les disques locaux (sda pour ce qui me concerne), sinon c’est le bazar, mount cherchera à monter les partitions des disques locaux sous /media et occupera 100% de la CPU.

 

 

Installation d’un nouveau PC

Je voulais quelque chose de plus puissant pour faire du montage vidéo et adoptais un processeur intel i5. Je me rends compte que c’est quasiment le même prix de monter soi même sa machine ou d’acheter une machine de marque déjà préinstallé. Mon dévolu s’est jeté vers une offre de rueducommerce pour un PC de bureautique Lenovo IdeaCentre H430, 449€TTC frais de port compris, je l’ai reçu 2 jours après ma commande.

Lenovo ideacentre H430

Je l’ai complété d’un écran ACER G236HL Bbd LED de 23″ à 108€.

J’ai évidemment décidé d’installer linux/Mageia 2 dessus en essayant de garder une partition sous windows 8. Malheureusement avec toutes les protections mises en place du genre UEFI, secure boot et j’en passe pour vous empêcher d’installer un OS alternatif, je n’y suis pas parvenu. Du coup j’ai viré purement et simplement windows. De toute façon j’ai une autre babasse sous windows seven/Mageia 2 qui permet de lancer les rares jeux qui ne tournent pas sous linux.

J’ai rencontré pas mal de difficultés pour faire fonctionner la fichue carte graphique ATI Radeon HD 7450. Le driver libre radeon me déclenchait des segmentations faults, et le dernier driver propriétaire catalyst ne la prend plus en compte, un comble ! J’ai du installer la version 12.8 manuellement, à ce moment la carte a été correctement reconnue et j’ai pu bénéficier de la résolution max et de l’accélération qui va bien. Sauf que j’avais en surimpression sur mon écran en bas à droite un fichu logo « AMD unsupported hardware ». La méthode classique, décrite ici, n’a pas suffit, grâce à ce site j’ai trouvé une solution radicale, en modifiant directement le binaire du driver graphique. Pour cela il faut créer (où vous voulez) le fichier fixwatermark contenant

#!/bin/sh
 DRIVER=/usr/lib64/xorg/modules/drivers/fglrx_drv.so
 for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
         sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
 done

on lui donne des droits d’exécution, puis on l’exécute et il va directement modifier dans le binaire l’instruction qui active/désactive le logo. Et le tour est joué.

Parallèlement, j’ai reconfiguré mon imprimante canon PIXMA iP3600 et ma tablette graphique ThinLine XL comme décrit sur cette page. J’ai réinstallé également mon scanner Epson Perfection V30 conformément à cette autre page, il a fallu ensuite rajouter mes utilisateurs dans le groupe usb, et saned pour qu’ils puissent y accéder.

lenovo Thinkpad x200

Je viens de remplacer mon portable IBM Thinkpad X60s par un portable lenovo thinkpad x200, c’est la génération d’après avec un écran et un disque plus grand,  et davantage de puissance. Je reste dans la famille des thinkpad car j’apprécie leur solidité, leur légèreté, leur autonomie et leur faible encombrement même s’ils ne sont pas exempt de défaut.puisque j’ai déjà un X60s qui a lâché. Je l’ai acheté 180€ frais de port compris, quand on pense qu’il coûtait neuf 1650€ il y a 4 ans, je me dis que c’est une bonne affaire d’autant qu’il est encore largement dans le coup niveau puissance et surtout pour l’usage que j’en fais.

J’ai installé mageia 2 (64 bits), malheureusement en réduisant la partition windows vista, ce dernier ne se lance plus, du coup je l’ai complètement supprimé, ce n’est pas une grosse perte, de toute façon je n’utilise quasiment jamais windows. Pour rajouter encore quelques détails au niveau de Mageia, j’ai constaté un petit problème gênant. Quand on utilise l’authentification par LDAP, un utilisateur lambda ne peut plus lancer la petite icône de configuration réseau (net_applet qui lance draknetcenter) qui est parfois utile dans le cas des portables pour relancer une connexion wifi. On a droit à une fenêtre popup avec « mot de passe invalide ». Pour l’instant j’ai désactivé l’authentification par LDAP mais ça me convient moyennement.

Voilà la bête sur laquelle je tape cette article.