======Installation et configuration de Pure Data sur Linux====== Pure Data "Vanillia" est la version originale développée par son créateur, Miller Pucket Cette version peut être augmentée de librairies aux fonctionnalités diverses ** Il existe plusieurs méthodes pour installer Pure Data** : * depuis les dépôts de votre distribution Linux (le plus simple et efficace), il existe [[https://packages.debian.org/search?keywords=pd&searchon=names&suite=all§ion=all|de nombreuses librairies déjà packagées]] et à jour dans les dépots Debian/Ubuntu * en téléchargeant le paquet Pure Data Vanillia (le "cœur" de Pure Data) correspondant à votre configuration depuis le site http://puredata.info/downloads/pure-data, version à laquelle on peut ajouter des librairies via le menu Aide > Installer des objets supplémentaires * en installant Purr-Data, une version alternative intégrant de nombreuses librairies (un peu comme Pd-extended avant) https://agraef.github.io/purr-data/ ===== Installer pd-vanilla depuis les dépots ===== Testé sur Linux Mint 17 32 bits sudo apt-get install puredata puredata-dev pd-libdir puredata-core puredata-doc puredata-extra puredata-gui puredata-import puredata-utils pd-csound pd-pdp pd-zexy pd-aubio sudo apt-get install pd-iemnet pd-cyclone pd-mapping pd-3dp pd-arraysize pd-bassemu pd-beatpipe sudo apt-get install pd-boids pd-bsaylor pd-chaos pd-comport pd-cxc pd-earplug pd-ekext pd-ext13 sudo apt-get install pd-fftease pd-flite pd-freeverb sudo apt-get install pd-scaf cyclist pd-hcs pd-hid pd-iemambi pd-iemlib pd-iemmatrix pd-jmmmp sudo apt-get install pd-list-abs pd-lyonpotpourri pd-markex pd-mjlib pd-moonlib pd-motex pd-osc sudo apt-get install pd-pan pd-pdogg pd-pdstring pd-plugin pd-pmpd pd-readanysf pd-scaf pd-sigpack sudo apt-get install pd-smlib pd-unauthorized pd-vbap pd-wiimote pd-windowing sudo apt-get install gem gem-plugin-gmerlin gem-plugin-magick gem-plugin-lqt sudo apt-get install gem-doc gem-extra gem-plugin-dv4l gem-plugin-mpeg3 gem-plugin-sgi gem-plugin-tiff sudo apt-get install gem-plugin-unicap gem-plugin-v4l2 gem-plugin-dc1394 ==== Installer PuREST JSON ==== Télécharger et installer le deb de votre matériel: http://ix.residuum.org/pd/purest_json.html#download Ajouter dans les préférences le path /usr/lib/pd/extra/purerest_json ==== PD search path ==== Fichier --> Préférences --> Path ... New --> /usr/lib/pd/extra ==== Pd libraries to load on Startup ==== Fichier --> Préférences --> Path {{media_12:puredata-configuring-path.png?400|fig:PureData-Configuring-path.png}} Fichier --> Préférences --> Startup {{media_07:lib_to_load.png?400|fig:lib_to_load.png}} Liste: * Gem ==== Méthode Geek en éditant .pdsettings de votre home ==== audioapi: 1 noaudioin: False audioindev1: 0 2 audioindevname1: HDA Intel PCH (hardware) noaudioout: False audiooutdev1: 0 2 audiooutdevname1: HDA Intel PCH (hardware) audiobuf: 25 rate: 44100 callback: 0 blocksize: 64 midiapi: 0 nomidiin: False midiindev1: 0 midiindevname1: ? nomidiout: False midioutdev1: 0 midioutdevname1: ? path1: /usr/lib/pd/extra path2: /usr/lib/pd/extra/Gem npath: 2 standardpath: 1 verbose: 0 loadlib1: /usr/lib/pd/extra/Gem nloadlib: 1 defeatrt: 0 flags: zoom: 1 loading: no \\ ===== PD-L2ork ===== Au vu de l'arrêt du développement de pd-extended, une version à peu près semblable existe\\ Il existe des paquets pour ubuntu [[http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/|ici]] ==== Installation/Compilation pour debian testing 64bit ==== * Installer les dépendances sudo apt-get install libmagick++-dev libgmerlin0 libavifile-0.7c2 libmpeg3-2 libgsl0ldbl tkpng libsndobj-dev libfluidsynth-dev tclxapian byacc librtaudio-dev librtmidi-dev libstk0-dev === Compilation === * Copier les fichiers sources git clone --recursive git://github.com/pd-l2ork/pd.git pd-l2ork * Aller dans le répertoire pour lancer le script de compilation cd pd-l2ork/l2ork_addons et lancer le script pour créer un .deb ./tar_em_up.sh -B Pour le moment la compilation ne donne qu'une version debug avec laquelle il faut configurer gdb!!!!\\ === Installation === Il est donc préférable d'installer le paquet pour [[http://l2ork.music.vt.edu/data/pd/pd-l2ork-x86_64-20151230.deb|ubuntu15.10]]en ayant pris soins d'installer les dépendances ci-dessus. sudo dpkg -i pd-l2ork-x86_64-20151230.deb  Et voilà! enfin, chez moi, il désinstalle : gnuradio inkscape libgnuradio-wavelet3.7.8 libgsl2 pd-iemmatrix ===== Trucs et asctuces ===== ==== Quelques commandes magiques Pd Jack Linux ==== * Jack : -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 ==== * Pd Multi I/O /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 ===== * gmerlin-avdecoder, gmerlin-encoders, pd-iemnet, pd-readanysf, pd-wiimote https://launchpad.net/~reduzierer/+archive/rdz-pd-extra+deps ===== Compiler et installer des librairies externes ===== ==== GEM ==== === Gérer le backend graphique utilisé par défaut par GEM === Notamment si dans la fenetre GEM, il n'y a qu'une partie de la fenetre qui affiche / marche : Pour changer le backend par défaut (et mettre glx par exemple) : sudo update-alternatives --config gemdefaultwindow.pd Il existe 4 choix pour l'alternative gemdefaultwindow.pd (qui fournit /usr/lib/pd/extra/Gem/gemdefaultwindow.pd). Sélection Chemin Priorité État ------------------------------------------------------------ 0 /usr/lib/pd/extra/Gem/gemdefaultwindow-glfw3.pd 70 mode automatique 1 /usr/lib/pd/extra/Gem/gemdefaultwindow-glfw3.pd 70 mode manuel 2 /usr/lib/pd/extra/Gem/gemdefaultwindow-glut.pd 70 mode manuel * 3 /usr/lib/pd/extra/Gem/gemdefaultwindow-glx.pd 50 mode manuel 4 /usr/lib/pd/extra/Gem/gemdefaultwindow-sdl.pd 70 mode manuel === GEM 0.94 sous Debian 9 64 bits === Le paquet compilé avec les plug-ins : {{ media_06:gem.zip |}} **Compilation à la main :** sudo apt update sudo apt-get build-dep gem Pour que les plug-ins et backend soient compilés, il faut rajouter des sources (pas sur que tout soit utile, à adapter si autre OS ...) : sudo apt install libvlccore-dev libgmerlin-common libgraphicsmagick1-dev libgmerlin-dev gmerlin-encoders-good libavifile-0.7c2 libbz2-dev liblcms2-dev libavifile-0.7-common gmerlin-plugins-avdecoder libavcodec-extra libgraphicsmagick++1-dev libgavl-dev libgmerlin-avdec-dev libavifile-0.7-dev gmerlin gmerlin-encoders-extra gmerlin-plugins-base libquicktime-dev libmjpegtools-dev libmagick++-dev libdv4-dev libopenjp2-7-dev git clone https://git.iem.at/pd/Gem cd Gem/ ./autogen.sh ./configure make sudo make install ! Gem est installé dans /usr/local/lib/pd/extra/Gem à ajouter dans les chemin + charger Gem au démarrage === GEM 0.93.3 sous ubuntu 10.04, 11.04 et Linux Mint Debian Testing Jessie === == Sources == * Téléchargement des sources Pd http://puredata.info/docs/developer/GettingPdSource (choisir version correspondante à celle installée, ici 0.42.5) * Téléchargement des sources GEM http://gem.iem.at/releases (ici 0.93.3), installer avant le paquet git-core 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 == Dépendances == * Quelques installations de dépendances (ubuntu 10.04) : 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 pour unbutu 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 on récupère la source de son pure data ou pd-extended * Pour Pd-extended : [[http://puredata.info/downloads/pd-extended| http://puredata.info/downloads/pd-extended]]  [[http://sourceforge.net/projects/pure-data/files/pd-extended/0.43.4/Pd-extended_0.43.4-source.tar.bz2/download| http://sourceforge.net/projects/pure-data/files/pd-extended/0.43.4/Pd-extended_0.43.4-source.tar.bz2/download]] 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|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 ./configure --with-pd=/usr/include/pd ./configure --with-pd=/home/b01/ZSofts/PD/pd-extended_0.43.4/pd ./configure --help to see more options si tentative arttoolkit, compilation préalable de Arttoolkit :  svn co https://artoolkit.svn.sourceforge.net/svnroot/artoolkit  artoolkit et  ./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 make  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) : {{media_06:gem0-93-3_pd42-5_lucid.tar.gz|fig:Gem0-93-3_Pd42-5_lucid.tar.gz}} * {{media_06:gem93-3.png|fig:Gem93-3.png}} 2ème tentative : Récupération des sources === GEM binaire === * compil sur linux mint debian version du 19 mai 2013 {{media_06:gem-19052013.zip|fig:Gem-19052013.zip}} === GEM Alt++ === **VLC** "i pushed a small change that allows to pass VLC-options to the plugin via properties. > you should be able to set quite everything you can set via cmdline flags to VLC, e.g. [clearProps, setProps screen-fps 20, device screen://( > should do screen-grabbing at 20fps rather than 1fps. > i haven't found a way to find out programmatically which options are possible, but you can simply run vlc -H > to get a long list of all options." (thks Iohannes) **Pix_freenect** * https://github.com/kronihias/pix_freenect/ compiler libfreenect pour support audio, voir Readme bien fait, attention à désinstaller avant la version PPA si installée [[Pure_Data_vs_Kinect#Utiliser_la_Kinect_avec_GEM| voir le résultat et téléchargement binaire]] Installation préalable de la dernière libfreenect - ...> git clone https://github.com/OpenKinect/libfreenect.git - ...> cd libfreenect - .../libfreenect> mkdir build - .../libfreenect> cd build - .../libfreenect/build> ccmake ../    --> choose BUILD_AUDIO   ON    --> choose BUILD_EXAMPLES   OFF     (ON only if you have GLUT)    press [c] (configure), [g] generate, [q] exit - .../libfreenect/build> cmake ../ - .../libfreenect/build> make - .../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) * https://github.com/badgeek/fux_kinect 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 * https://github.com/badgeek/fux_videoglitch Sous Lucid, j'ai compilé Freeimage pour avoir la version 3.15 : http://freeimage.sourceforge.net/download.html  make  sudo make install * https://github.com/badgeek/fux_glitch ==== flext xsample pyext ==== * des externals fort pratiques développés par Thomas Grill : http://puredata.info/Members/thomas * la méthode de compil proposée par Vincent Rioux : http://samovar.tuxfamily.org/ateliers/doku.php?id=install_linux ==== 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 : * prérequis : * pour compil : sudo apt-get install build-essential subversion * les sources de Pd wget [[http://downloads.sourceforge.net/pure-data/pd-0.40-3.src.tar.gz?modtime=1185284916&big_mirror=0 * décompresser le paquet et placer les sources dans /usr/src/pd en ouvrant un nautilus en root par exemple (sudo nautilus) * télécharger les sources de flext depuis le svn adéquat : (il faut avoir installé svn qui est dans les dépots avant !) svn co [[https://svn.grrrr.org/ext/trunk/flext/| https://svn.grrrr.org/ext/trunk/flext/]] * installer flext en suivant les instructions fournies dans le fichier build.txt, soit en gros cd flext bash build.sh pd gcc * cette commande génère un fichier : buildsys/config-lnx-pd-gcc.txt qu'il faut éditer pour l'adapter à sa config, chez moi : # 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| 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| 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
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 * relancer pour finir compil et install de flext : bash build.sh pd gcc  sudo bash build.sh pd gcc install ==== installation py ==== * prérequis : sudo apt-get install python2.5 python2.5-dev python-numpy python-numarray python-numeric * télécharger les sources : svn co https://svn.grrrr.org/ext/trunk/py/ * installer en suivant les instructions du fichier readme.txt : cd py bash ../flext/build.sh pd gcc * cette commande génère un fichier config.txt à éditer si besoin * on relance la compil : ../flext/flext/build.sh pd gcc * si compil ok 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/ * copier ensuite les fichiers d'aides du répertoire py/pd dans /usr/lib/pd/doc/5.reference/py avec nautilus en root ou en mode terminal * copier également le répertoire py/scripts dans /usr/lib/pd/extra/py * ajouter au démarrage de Pd le chargement de la librairie py et le chemin vers les scripts soit avec l'interface graphique de Pd, soit avec un fichier de lancement .pdrc situé dans son répertoire -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 ==== * télécharger les sources : svn co [[https://svn.grrrr.org/ext/trunk/xsample/| https://svn.grrrr.org/ext/trunk/xsample/]] * installer en suivant les instructions du fichier readme.txt : cd xsample * on lance la compil : ../flext/flext/build.sh pd gcc * si compil ok sudo bash ../flext/build.sh pd gcc install **IDEM :** j'ai du copier le fichier à la main, * ne pas oublier de copier les fichiers d'aides dans le rép de Pd * ajouter -lib xsample au démarrage de Pd {{tag>pure_data bj}}