Skip to main content

1 - La documentation et les nouvelles de LinuxMAO


[FAIT] Article sur Pure Data (pd): Jack

Suisse
Salut,
Je viens d'installer pure data-extended, qui foncionne maintenant. Mais j'ai eu un problème au lancement avec Jack: il faisait plein de "DIO Errors" avec craquements... J'ai lu qu'il fallait en fait le lancer avec le flag -rt. Maintenant ça a l'air de fonctionner. Je pensais ajouter la manip dans la doc, mais je voulais confirmation des spécialistes...

PS: j'ai aussi lu qu'il fonctionnait mal en architecture 64bit (le pack pd-extended n'existe d'ailleurs même pas en deb pour 64bit)... J'ai en fait réinstallé Ubuntu Studio en 32, car je pensais que c'était le problème des craquements... Il n'est rien mentionné à ce sujet... Je peux ajouter également des précisions...

voilà.
France
Oui pour démarrer Pure data tu peux voir la liste des options en tapant :
Copy to clipboard
$ pd --help


En général si tu utilises jack et le midi avec un noyau temps réel tu pourras taper :
Copy to clipboard
$ pd -rt -jack -alsamidi


Il est possible de faire marcher pd sur une architecture 64bits... c'est ce que je fais. Par contre c'est vrai que pour compiler les pd-extended c'est une vraie galère... surtout tout ce qui concerne flex.
J'ai récement installé pd-extended sur mon archlinux, et eux il mettent carrément un patch pour viré la compilation de tous les externals en rapports avec flext. Et du coup ça a bien fonctionner.
Suisse
merci...
Donc je vais mentionner la nécessité de lancer avec -rt, et peut-être pourrais-tu expliquer les difficultés rencontrées avec la compil en 64? Ou on s'y met à deux?
France
Franchement c'est pas que je ne veux pas t'aider, mais je me suis déjà pris la tete plusieurs fois pendant des après midi entières pour essayer de compiler les extended de pure data... c'est HYPER galère. Donc désolé mais j'ai pas trop envi de passer trois jour à écrire un tuto pour ça.

Si je peux donner un conseil, c'est d'essayer au maximum d'utiliser le pure data natif. C'est a dire tous les objets fournis de base avec pure data. Ca permet de faire quasiement tout, et par expérience je peux dire que ça sera beaucoup plus stable et aussi sans doute moins gourmand en ressources.
Ensuite personnelement je ne compile que ce dont j'ai besoin. Par exemple on peut compiler Gem pour avoir la vidéo.
Mais dans la plus part des cas, les extended sont des objets tous fait dde truc que l'on peut faire soit meme avec Les objets natifs pure data.
France
Ha tiens j'ai trouvé ça pour la compilation en 64 bits. ça pourra déjà aider (désolé pour les accents...)



Pour l'installation il faut plusieurs paquets :
Copy to clipboard
speex libvorbis libtheora libmpeg3 gsl imagemagick tiff jpeg quicktime ffmpeg ftgl freetype2 tcl tk alsa jack glut mesa imlib2 ladspa dssi


1- Créer un répertoire pure-data dans son /home par exemple :
Copy to clipboard
mkdir ~/logiciels/musique/pure-data


2- télécharger la version svn de puredata dans le dossier précédemment créé:
Copy to clipboard
cd ~/logiciels/musique svn co https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk pure-data


5- supprimer le dossier pd dans ~/logiciels/musique/pure-data/pd

4- télécharger la dernière version de pure-data (0.41-2) |http://crca.ucsd.edu/~msp/Software/pd-0.41-2.src.tar.gz]

5- décompresser pd-0.41-2 dans ~/logiciels/musique/pure-data/

6- renommer ce nouveau dossier "pd-0.41-2" en "pd" :
Copy to clipboard
mv ~/logiciels/musique/pure-data/pd-0.41-2 ~/logiciels/musique/pure-data/pd



************************************************************

Copy to clipboard
make -C /home/mysthr2/logiciels/musique/pure-data/externals/OSCx make[3]: entrant dans le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/OSCx \u00bb cd libOSC && make make[4]: entrant dans le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/OSCx/libOSC \u00bb make[4]: Rien \u00e0 faire pour \u00ab all \u00bb. make[4]: quittant le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/OSCx/libOSC \u00bb cd src && make make[4]: entrant dans le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/OSCx/src \u00bb cc -Wl,-export_dynamic -shared -o sendOSC.pd_linux sendOSC.o htmsocket.o OSC-system-dependent.o -L../../../pd/bin -lpd -lc -lm ../libOSC/libOSC.a /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lpd collect2: ld a retourné 1 code d'état d'exécution make[4]: *** [sendOSC.pd_linux] Erreur 1 make[4]: quittant le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/OSCx/src \u00bb make[3]: *** [all] Erreur 2 make[3]: quittant le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/OSCx \u00bb make[2]: *** [/home/mysthr2/logiciels/musique/pure-data/externals/OSCx/src/OSCroute.pd_linux] Erreur 2 make[2]: quittant le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals \u00bb make[1]: *** [externals_install] Erreur 2 make[1]: quittant le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/packages \u00bb make: *** [install] Erreur 2



Pour cette erreur il suffit de changer le fichier /OSCx/src/Makefile et d'enlever "-lpd" du la variable LIBDIR

*********************************************************************


Pour FLEXT :

si on a ce message d'erreur :

Copy to clipboard
In file included from source/flstk.cpp:12: source/flstk.h:47: erreur: 'MY_FLOAT' does not name a type source/flstk.h:49: erreur: 'MY_FLOAT' does not name a type source/flstk.h:55: erreur: ISO C++ forbids declaration of 'MY_FLOAT' with no type source/flstk.h:55: erreur: expected ';' before '*' token source/flstk.h:71: erreur: 'MY_FLOAT' has not been declared source/flstk.h:77: erreur: expected ',' or '...' before '*' token source/flstk.h:77: erreur: ISO C++ forbids declaration of 'MY_FLOAT' with no type source/flstk.h:77: erreur: 'void flext_stk::Output::tick(int)' cannot be overloaded source/flstk.h:71: erreur: with 'void flext_stk::Output::tick(int)' source/flstk.cpp:99: erreur: expected constructor, destructor, or type conversion before '*' token source/flstk.cpp:113: erreur: expected ',' or '...' before '*' token source/flstk.cpp:113: erreur: ISO C++ forbids declaration of 'MY_FLOAT' with no type source/flstk.cpp:113: erreur: redefinition of 'void flext_stk::Output::tick(int)' source/flstk.h:71: erreur: 'void flext_stk::Output::tick(int)' previously defined here source/flstk.cpp: In member function 'void flext_stk::Output::tick(int)': source/flstk.cpp:115: erreur: 'vectorSize' was not declared in this scope source/flstk.cpp:115: erreur: 'vector' was not declared in this scope make[1]: *** [pd-linux/release-single/flstk.opp] Erreur 1 make[1]: quittant le répertoire \u00ab /home/mysthr2/logiciels/musique/pure-data/externals/grill/flext \u00bb make: *** [build-release-single] Erreur 2



Il faut editer le fichier /flext/sources/flstk.h en ajoutant la ligne "#define MY_FLOAT StkFloat" après "#include "
Suisse
Merci pour le tuto... C'est vrai que ça fait pas envie... 😐 Je vais pour l'instant travailler en 32 bits...
Tu peux tout de même me donner le lien pour ça? Je le mentionnerai si jamais...
J'édite la doc après quelques tests, je vous tiens au courant...
France
Euu, je ne connais pas le lien. J'ai retrouvé ça au fin fond de mon disque dur ... 😛

Non c'est clair que le 64 bits c'est bien gentil, mais pour le peu de rapidité que ça donne en plus, ça vaut pas le coup, au vu de toutes les galères que ça apporte.
J'ai une gentoo en 64 bits, donc j'ai pas trop envi de la passer en 32 parce que ça signifierait encore une semaine pour tout réinstaller (c'est une distrib source, donc il faut tout compiler). J'ai installé une archlinux 64 bit en dual boot. mais je suis repasser en 32 bits et c'est beaucoup moins prise de tete.