Installation et configuration de Pure Data sur Linux

De Centre Ressources Labomedia.

Aller à : Navigation, rechercher

Sommaire

Utiliser une distribution Linux prêt à l'emploi

Pure dyne

une solution simple et efficace, utiliser la distribution pure:dyne concoctée par le GOTO10 team http://puredyne.goto10.org/
elle peut s'installer rapidement et contient un beau Pure Data avec plein d'externals !

Installer facilement Pd extended

Ubuntu Lucid, Debian

Pour installer la version 0.42.5 de Pd-extended, rendez sur cette page, téléchargez le paquet qui correspond à votre architecture et zou...

Trucs et asctuces

Quelques commandes magiques Pd Jack Linux

-jackd -R -P 20 -d alsa  (and optional flags)
where R stands for Realtime priority and P 20 sets the Priority to 20 (can have a value from 0 to 99, the higher the value the more priority jack gets. 
jack's priority should be higher than connected client's priority).
this solved my DIO Problems on almost all computers I worked on. 

Pd multiple E/S audio

/usr/bin/pd -rt -oss -audiooutdev "2,3,4,5,6" -outchannels "2,2,2,2,2" multiaudiotest.pd 
when looking into media, audio-settings dialog, only the first four of them are visible

Dépots pour librairies Pd

Compiler et installer des librairies externes

GEM

GEM 0.93.3 sous ubuntu 10.04, 11.04

Sources

 sudo apt-get install git-core

se placer dans un répertoire PD dans son home

 git clone git://pd-gem.git.sourceforge.net/gitroot/pd-gem/Gem

(pour par la suite juste mettre à jour les sources, se placer dans le dossier Gem créé par la commande précédente)

 cd gem
 git pull

ensuite, il faut installer automake

 sudo apt-get install automake autotools-dev build-essential libtool

aller dans le dossier Gem

 cd Gem
 aclocal

puis s'il n'y a pas de message d'erreur

 ./autogen.sh

puis

 ./configure


Dépendances

ajouter le dépot medibuntu :

 sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update

ajouter le ppa https://launchpad.net/~reduzierer/+archive/rdz-pd-extra+deps

 sudo apt-addrepository ppa:reduzierer/rdz-pd-extra+deps

maj

 sudo apt-get update

on récup des dépendances (cf rep codelab) histoire de brouiller les sources

 sudo apt-get build-dep puredata gem pd-pdp

installation de dépendances, il faut chercher parfois, surtout pour

 sudo apt-get install libdc1394-22-dev
 sudo apt-get install libgl1-mesa-dev
 sudo apt-get install libglu1-mesa-dev
 sudo apt-get install ftgl-dev
 sudo apt-get install libmagic++-dev
 sudo apt-get install libgmerlin-dev libmpeg3-dev libavifile-0.7-dev libquicktime-dev libdv4-dev libv4l-dev
 sudo apt-get install libvlc-dev libvlccore-dev

pour installer le plug in vlc, ajouter le ppa http://www.ubuntuupdates.org/ppa/lucidbleed, le vlc de base étant trop vieux pour marcher avec gem, il faut une version

 sudo add-apt-repository ppa:lucid-bleed/ppa
 sudo apt-get update
 sudo apt-get install libvlc-dev

++

 sudo apt-get install libglut3-dev
 sudo apt-get install libgmerlin-avdec-dev + autres librairies du ppa ppa:reduzierer/rdz-pd-extra+deps

il en traine encore quelques unes que je n'ai pas indiqué mais qui se trouve sans nul doute dans l'historique d'apt/synaptic : Apt-install history.log

une petite install de ARToolKit : http://www.hitl.washington.edu/artoolkit/download/#linux et http://www.hitl.washington.edu/artoolkit/documentation/usersetup.htm#comp_linux

attaque de compil

normalement

 ./configure

tentative arttoolkit, compilation préalable de Arttoolkit

 svn co https://artoolkit.svn.sourceforge.net/svnroot/artoolkit artoolkit


 ./configure --with-artoolkit-includes=/home/benjamin/ZSofts/PD/ARToolKit/include --with-artoolkit-libs=/home/benjamin/ZSofts/PD/ARToolKit/lib

à voir ce qui a marché ou pas, puis

 soit copier les fichiers obtenus (.pd_linux et fichiers d'aide à la main dans /usr/lib/pd)
 sudo make install

cela installe Gem dans /usr/local/lib/pd/extra/Gem, il faut copier coller le dossier dans /usr/lib/pd-extended/extra en renommant le dossier Gem existant pour backup

pour avoir accès aux fichiers d'aide, ajouter via l'interface graphique dans Startup > startup flag

 -helppath /usr/lib/pd/doc/gem

Le paquet compilé GEM 0.93.3 (croutage de la compil du plug artoolkit mais il fonctionne en le greffant à une pd-extended) : Fichier:Gem0-93-3 Pd42-5 lucid.tar.gz

Gem93-3.png

2ème tentative : Récupération des sources

GEM Alt++

Pix_freenect

compiler libfreenect pour support audio, voir Readme bien fait, attention à désinstaller avant la version PPA si installée

voir le résultat et téléchargement binaire

  1. ...> git clone https://github.com/OpenKinect/libfreenect.git
  2. ...> cd libfreenect
  3. .../libfreenect> mkdir build
  4. .../libfreenect> cd build
  5. .../libfreenect/build> ccmake ../

--> choose BUILD_AUDIO ON --> choose BUILD_EXAMPLES OFF (ON only if you have GLUT) press [c] (configure), [g] generate, [q] exit

  1. .../libfreenect/build> cmake ../
  2. .../libfreenect/build> make
  3. .../libfreenect/build> sudo make install

modifier ensuite le Makefile_linux du répertoire kronihias-pix_freenect-a2b2eee et le renommer en Makefile, puis

 make

fux_kinect (il vaut mieux choisir le précédent pour l'instant sous linux)

compiler libfreenect pour support audio

~/ZSofts/PD/badgeek-fux_kinect-df75ee2$ make
g++ -export_dynamic -shared -I/home/benjamin/ZSofts/PD/pd-0.42-5/include -I/usr/include/lqt -fopenmp -I/usr/include/ImageMagick -I/usr/include/lqt -I/usr/include/avifile-0.7 -I/usr/include/FTGL -I/usr/include/freetype2 -I/usr/include/FTGL -I/usr/include/freetype2 -I/home/benjamin/ZSofts/PD/Gem-0.93.3/src -I/home/benjamin/ZSofts/PD/pd-0.42-5/src -I/home/benjamin/ZSofts/PD/pd-0.42-5 -g -O2 -fPIC -freg-struct-return -Os -falign-loops=32 -falign-functions=32 -falign-jumps=32 -funroll-loops -ffast-math -mmmx -DLINUX -o fux_kinect.o -c fux_kinect.cpp
fux_kinect.cpp: In member function ‘virtual void fux_kinect::render(GemState*)’:
fux_kinect.cpp:299: error: invalid use of incomplete type ‘struct GemState’
/home/benjamin/ZSofts/PD/Gem-0.93.3/src/Base/GemBase.h:24: error: forward declaration of ‘struct GemState’
fux_kinect.cpp: In member function ‘virtual void fux_kinect::postrender(GemState*)’:
fux_kinect.cpp:318: error: invalid use of incomplete type ‘struct GemState’
/home/benjamin/ZSofts/PD/Gem-0.93.3/src/Base/GemBase.h:24: error: forward declaration of ‘struct GemState’
make: *** [all] Erreur 1

Télécharger les sources et ajouter les dépendances (attention, à ne pas faire avec pix_freenect)

 sudo add-apt-repository ppa:arne-alamut/freenect
 sudo apt-get install freenect


Sous Lucid, j'ai compilé Freeimage pour avoir la version 3.15 : http://freeimage.sourceforge.net/download.html

 make
 sudo make install

flext xsample pyext

installation flext

ces externals ne sont pas intégrés dans la Pd-extended car ils se compilent en utilisant "flext" qui est un environnement de dév/compil également développé par l'auteur des externals. Pour installer xsample ou py/pyext ou autre, vous devez déjà installer flext :

sudo apt-get install build-essential subversion
wget http://downloads.sourceforge.net/pure-data/pd-0.40-3.src.tar.gz?modtime=1185284916&big_mirror=0
svn co https://svn.grrrr.org/ext/trunk/flext/
cd flext
bash build.sh pd gcc
# where is the PD source package?
# (this should point to the main folder, which has a "src" subfolder)
PDPATH=/usr/src/pd

###############################################################

# prefix for flext installation
# headers are in $(FLEXTPREFIX)/include/flext
# libraries are in $(FLEXTPREFIX)/lib
# build system is in $(FLEXTPREFIX)/lib/flext

FLEXTPREFIX=/usr/local

############################################################### 

# where should the external be built?
OUTPATH=pd-linux

# where should the external be installed?
INSTPATH=/usr/local/lib/pd/extra

###############################################################

# STK (synthesis tool kit) support
# http://ccrma.stanford.edu/software/stk

# where to find the STK header files (e.g. stk.h)
STK_INC=/usr/local/include/stk

# where to find the STK library (normally libstk.a)
# (comment out STK_LIB if you don't use STK)
#STK_LIB=/usr/local/lib/libstk.a

###############################################################

# SndObj support
# http://music.nuim.ie//musictec/SndObj

# where to find the SndObj header files (e.g. sndobj.h)
SNDOBJ_INC=/usr/local/include/sndobj

# where to find the SndObj library (normally libsndobj.a)
# (comment out STK_LIB if you don't use SndObj)
#SNDOBJ_LIB=/usr/local/lib/libsndobj.a

###############################################################

# make flags (e.g. use multiprocessor) : dual core here comment it to be more friendly for old computers
MFLAGS=-j 2

# user defined compiler flags
# (check if they match your system! comment it to be more friendly for old computers)
UFLAGS=-msse

# user defined optimization flags
# (check if they match your system! -02 more friendly for old computers)
OFLAGS=-O3
# optimizations for Dual Core march=i486 is more friendly for old computers)
OFLAGS+=-march=prescott

ATTENTION : les 4 dernières options sont importantes, notamment pour que py marche, ici option de compil pour un intel dual core</br> pour connaitre les flags acceptés par son processeur :

cat /proc/cpuinfo

pour savoir à quoi correspondent ces flags, voir http://fr.gentoo-wiki.com/wiki/Cflags_s%C3%BBr

ATTENTION : info de Vincent Rioux

pour compiler avec dernier stk et dernier flext
remplacer dans flstk.h et flstk.cpp MY_FLOAT par StkFloat (je n'ai trouvé MY_FLOAT que dans flstk.cpp)

j'ai du faire ces modifs pour que les externals ne "mangent" pas tout le processeur

bash build.sh pd gcc 
sudo bash build.sh pd gcc install

installation py

sudo apt-get install python2.5 python2.5-dev python-numpy python-numarray python-numeric
svn co https://svn.grrrr.org/ext/trunk/py/
cd py
bash ../flext/build.sh pd gcc

../flext/flext/build.sh pd gcc

sudo bash ../flext/build.sh pd gcc install

ATTENTION : j'ai du copier à la main le fichier compilé, cette dernière commande n'ayant pas marché pour moi

sudo cp pd-linux/release-multi/py.pd_linux /usr/lib/pd/extra/
-lib py
-path /usr/lib/pd/extra/py/scripts

les tutos de compil de vincent rioux sur le même sujet : http://samovar.tuxfamily.org/ateliers/doku.php?id=install_linux#thomas_grill_extensions

voir le problème par rapport aux paramètres d'optimisation (les flags) de flext qui fait planter pyext une fois compilé


installation xsample

svn co https://svn.grrrr.org/ext/trunk/xsample/
cd xsample

../flext/flext/build.sh pd gcc

sudo bash ../flext/build.sh pd gcc install

IDEM : j'ai du copier le fichier à la main,

Contenus obsolètes

Mais on les garde car on ne jette rien ...

Ubuntu Hardy

Installation et configuration de Pure Data sur Ubuntu 7.04

Pure Data 0.40-2 ainsi que la librairie Gem sont présents dans les dépôts officiels d'Ubuntu. J'ai appris de sources sûre, qu'il était pour l'instant déconseillé d'utiliser cette version et de lui préférer la 0.39-2rc3 extended.

Toutefois, la simplicité d'installation de la première m'incite à l'évoquer.

0.40-2

apt-get install puredata gem

Pd sera alors accessible via le menu Application > Son et Vidéo

Pour que la librairie Gem se charge au démarrage, il vous faudra la rajouter à la main ( File > Starup... ) sans négliger la majuscule et sans oublier de "Save all settings". Pour que cette modification soit prise en charge, je vous invite à fermer puis exécuter Pd à nouveau.

Vous devriez alors obtenir quelque chose comme cela au démarrage :

GEM: Graphics Environment for Multimedia
GEM: ver: 0.90
GEM: compiled: Feb 16 2007
GEM: maintained by IOhannes m zmoelnig
GEM: Authors :	Mark Danks (original version on irix/windows)
GEM: 		Chris Clepper (macOS-X)
GEM: 		Daniel Heckenberg (windows)
GEM: 		James Tittle (macOS-X)
GEM: 		IOhannes m zmoelnig (linux/windows)

0.39-2rc3 extended

Télécharger le paquet de Hans ici puis double-cliquez dessus ou :

sudo dpkg -i Pd-0.39.3-extended-rc5-debian-stable-i386.deb
Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Labomedia
Participer à ce Wiki
Arts Numériques
Logiciels
Thèmes
Interaction
Boîte à outils