Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


ateliers:iutaix:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ateliers:iutaix:accueil [2016/02/08 15:53]
resonance [Définition des objectifs]
ateliers:iutaix:accueil [2016/10/23 12:32] (Version actuelle)
resonance [État de l'art]
Ligne 10: Ligne 10:
 L'association Reso-nance numérique le développe depuis 2012 et nous aimerions proposer une solution logicielle stable, ergonomique et multiplateforme. L'association Reso-nance numérique le développe depuis 2012 et nous aimerions proposer une solution logicielle stable, ergonomique et multiplateforme.
  
-**Pure Data** : Langage de programmation graphique, sorti en 1998, écrit en C, client/serveur, temps-réel, très complet, plutôt orienté "son" au départ, mais aujourd'hui multimédia. La bibliothèque graphique est tcl/tk, multiplateforme mais vieillissante. Le but de Miller Puckette, le concepteur : conservation d'un patch pendant 50 ans (problématique des œuvres numériques et de leurs durées), gérer le temps-réel.+**Pure Data** ("vanilla": Langage de programmation graphique, sorti en 1998, écrit en C, client/serveur, temps-réel, très complet, plutôt orienté "son" au départ, mais aujourd'hui multimédia. La bibliothèque graphique est tcl/tk, multiplateforme mais vieillissante. Le but de Miller Puckette, le concepteur : conservation d'un patch pendant 50 ans (problématique des œuvres numériques et de leurs durées), gérer le temps-réel. Pure Data fonctionne sur Mac, Linux, Windows, Raspberry, UDOO, Android, ...
  
-**Pure Data extended** contient Pure Data et y ajoute des bibliothèques dont certaines sont indispensables. C'est celui que l'on utilise.+**Pure Data extended** contient Pure Data et y ajoute des bibliothèques (audio, video, image, communications, string, ...) dont certaines sont indispensables. C'est celui que l'on utilise, mais il est obsolète. Désormais il faudrait se baser sur la nouvelle version "vanilla" **Pd.0.47**.
  
-**Libpd** est écrit par Peter Brinkmann et permet de réutiliser des composants préexistants (patchs) au sein de n'importe quelle application, notamment écrite en Java, CSharp, Objective C, Cplusplus, Python. Existe pour mobiles pd-for-android, pd-for-ios.+{{:ateliers:iutaix:malinette-screenshot.png?600|}}
  
- +==== Problèmes ====
-{{:ateliers:iutaix:malinette-screenshot.png?600|}} +
-==== Problématique ====+
  
 Notre logiciel repose sur Pure Data, et son ergonomie pose problème : Notre logiciel repose sur Pure Data, et son ergonomie pose problème :
-  * Tcl/Tk est peu performant pour gérer le GUI, avec de fortes latences et des bugs. Un gros enjeux de développement pour Pure Data est de séparer le noyau du gestionnaire graphique pour permettre de développer l'interface graphique avec d'autres techniques : GTK, Qt, etc. +  * Tcl/Tk est peu performant pour gérer le GUI, avec de fortes latencesdes bugs et un rendu visuel très pauvre et peu paramétrable. Un gros enjeux de développement pour Pure Data est de séparer le noyau du gestionnaire graphique pour permettre de développer l'interface graphique avec d'autres bibliothèques : GTK, Qt, Juce, Html5, etc.  
 +  * La bibliothèque graphique (GEM) qui permet de manipuler des vidéos et des images demande beaucoup d'efforts pour offrir un rendu et des fonctionnalités qui peuvent paraître basiques dans certains autres logiciels (plein écran, double écran, HD, enregistrement, ...)
   * De nombreuses fonctionnalités classiques n'y sont pas : annulations, zoom, mémorisation des patchs (introspection), etc.   * De nombreuses fonctionnalités classiques n'y sont pas : annulations, zoom, mémorisation des patchs (introspection), etc.
-  * Le processus de développement est lent et pénible, des développeurs abandonnent, d'autres proposent des forks car le constat est le même depuis au moins 2006. Voir les projets [[http://l2ork.music.vt.edu/main/?page_id=56|pd-2lork]], [[http://codelab.fr/4520#p24096|pd-enhanced]], [[http://grrrr.org/research/software/vibrez/|Vibrez]], DesireData comme tentatives pour palier à certains de ces problèmes.+  * Le processus de développement est lent et pénible, des développeurs abandonnent, d'autres proposent des forks car le constat est le même depuis au moins 2006. 
  
 +==== État de l'art ====
 +Évidemment Max/MSP, la version payante et propriétaire de Pd, n'a pas tous ces inconvénients. Mais il en a d'autres. Il est basé sur le framework Juce, qui a l'air très puissant.
  
-==== Ressources ==== +Certains projets tentent d'apporter des solutions à ces problèmes :  
-Pour aller plus loin : +  * obsolète : [[http://grrrr.org/research/software/vibrez/|Vibrez]] 
-  * liste d'inconvénients et de solutions possibles : [[http://lite.framapad.org/p/MasterClass_Pd|MasterClass Pd]] +  * obsolète : DesireData 
-  * discussions sur la mailing à propos de Pd-extended: [[http://lists.puredata.info/pipermail/pd-list/2015-06/110517.html|ici]] +  * obsolète : ZenGarden 
-  * Tutoriel pour créer des externals : [[https://github.com/flschiavoni/pd-external-tutorial|pd-external-tutorial]]+  * [[http://libpd.cc/|Libpd]] écrit par Peter Brinkmann, permet de réutiliser des composants préexistants (patchs) au sein de n'importe quelle application, notamment écrite en : Java, CSharp, Objective C, Cplusplus, Python. Existe pour mobiles : pd-for-android, pd-for-ios. ([[http://forum.pdpatchrepo.info/topic/5496/running-your-patches-on-android-usind-pddroidparty-in-10-steps/13|guide]]) 
 +  * [[https://github.com/pd-l2ork/pd|pd-2lork]] :  sur Linux pour l'instant, un peu instable, voir quelques [[http://www.youtube.com/user/jonwwilkes|vidéos]] 
 +  * [[https://git.purrdata.net/jwilkes/purr-data|Purr-Data]] (Pd2lork et HTML5) : c'est prometteur de trouver une solution en html5, plus facile pour construire une interface et ultra portable.  
 +  * [[https://github.com/CICM/CicmWrapper|CICM Wrapper]] et [[https://github.com/CICM/CreamLibrary|CreamLibrary]], développées par un français : a C/TK library that aims to facilitate the creation of objects for Pure Data  
 +  * [[http://metalu.net/ressources-techniques/pure-data/pof-pd-openframeworks/|PoF]] : pd avec openframeworks. 
 + 
 + 
 +Quelques ressources pour aller plus loin : 
 +  * Liste d'inconvénients et de solutions envisagées : [[http://lite.framapad.org/p/MasterClass_Pd|MasterClass Pd]] 
 +  * Discussions sur la mailing liste à propos de Pd-extended: [[http://lists.puredata.info/pipermail/pd-list/2015-06/110517.html|ici]] 
 +  * Tutoriels pour créer des //externals// : [[https://github.com/flschiavoni/pd-external-tutorial|pd-external-tutorial]], [[https://www.youtube.com/watch?v=2x5LbDvJRok|vidéos]]
  
  
 ==== Définition des objectifs ==== ==== Définition des objectifs ====
-LibreOpen Source et Multiplateforme.+La Malinette doit être un projet libremultiplateforme et multimédia. Les étudiants-développeurs doivent créer des liens avec la communauté et les différents projets historiques ou en cours pour que leur travail contribue à tous les utilisateurs de Pure Data. C'est fondamentale. La [[https://lists.puredata.info/pipermail/pd-list/|mailing list]] de Pure Data et les forums [[http://forum.pdpatchrepo.info/|pdpatchrepo]], [[http://codelab.fr/pure-data|codelab]] sont les outils appropriés pour cela.
  
-En gras, les priorités "faisables"+La solution qui semble la plus réaliste est de concentrer les efforts sur la dernière version de Pure Data (0.47qui apporte quelques nouveautés intéressantes et qui montre malgré tout que le logiciel évolue.
-  * Liens avec la communautés et les différents projets historiques ou en cours pour que le développement contribue à tous les utilisateurs de Pure Data +
-  * **Installation simplifiée** +
-  * **Une fenêtre** avec des panneaux plutôt que du multi-fenêtre +
-  * **Presets**, mémorisation de l'état des objets +
-  * **Survol** : description des objets +
-  * Gui rapide : séparation du moteur et de l'interface graphique (voir les [[http://piratepad.net/PureData-middle-ground-ideas|propositions]]). Notion de graphe audio (dsp tree). Parfois on utilise deux instances de Pd... +
-  * Undos +
-  * Plus d'options pour les gui +
-  * Scroll dans les sous objets et abstractions +
-  * Fenêtre de preview vidéo gem integré dans le patch +
-  * Lecture vidéo + son +
-  * Piano roll et automation dans le temps sous forme de courbes... +
-  * Zoom +
-  * Agrandir les rectangles entrées/sorties +
-  * Importer en svg, exporter en pdf, png +
-  * Standalone ? +
-  * Menu avec Icones, intégration facile des images dans les objets (zoom !) +
-  * Connections facile 1 objet à plusieurs etc. +
-  * Enregistrement vidéo, multi écrans+
  
-==== Solutions ==== +=== Chantier #1 : l'installation === 
-Voir aussi quelques exemples recensés [[:projets:malinette:idees#software]] +En prioritéil faut simplifier l'installation. L'idéal serait de télécharger et d'installer Pure Datala Malinette et toutes les bibliothèques nécessaires en un seul clic et ce pour les trois plateformes principales WinMac, Linux (voire Raspberry).
-  * Osbolètes : ZenGardendesiredatavibrez_pure +
-  * pd2lork [[http://www.youtube.com/user/jonwwilkes|vidéos]] +
-  * libpd/interface html5  +
-  * Blender [[http://wiki.blender.org/index.php/Doc:2.6/Manual/Interface]] +
-  * Max msp (Juce Framework) ... +
-  * Qt/tcl/gtk++ +
-  * Pdenhancedpof (http://metalu.net/ressources-techniques/pure-data/pof-pd-openframeworks/) +
-  * ...+
  
 +La nouvelle version "vanilla" de Pd (pd.0.47) intègre dorénavant un outil appelé Deken qui permet de télécharger et d'installer les bibliothèques externes, notamment celles d'"Extended". C'est une belle avancée ! Il faut aller dans le menu "Aide" > "Find Externals" et chercher le nom de la bibliothèque. Encore faut-il connaître son nom, les noms sont mal choisis et personne ne sait à quoi une bibliothèque correspond, car nous n'avons pas accès à la description de la bibliothèque et à son contenu. 
  
 +Pour la Malinette c'est problématique, nous avons environ 20 bibliothèques à télécharger : creb, initbang, Gem, zexy, cyclone, moonlib, moocow, hcs, tof, comport, iemlib, iemnet or oscx or mrpeach, markex, motex, ggee, list-abs, mapping, pix_fiducialtrack, sigpack, pmpd, purepd. Et nous devons aussi ajouter les chemins vers les dossiers de la Malinette. Tout est expliqué sur la [[http://reso-nance.org/malinette/fr/faq|FAQ]] du site de la Malinette. Nous ne pouvons pas demander aux débutants d'exécuter plus de vingt manipulations avant de faire fonctionner la Malinette ...
 +
 +Le fichier qui permet de trouver les chemins vers les objets dépend de chaque plateforme, cette [[https://www.flossmanualsfr.net/puredata/ch012_configuration-de-chemin-et-de-librairies|page]] vous l'explique. Voir aussi si besoin cette page : [[http://forum.pdpatchrepo.info/topic/6743/how-to-install-externals-libraries-gui-plug-ins-etc/10|How to install externals, libraries, gui plug-ins, etc.]]
 +
 +Plusieurs options pour améliorer cela : 
 +  * le ZIP de la Malinette est créé automatiquement en appuyant sur un bouton d'une page Web. Un programme php devra : télécharger tout ce qu'il faut, ajouter les chemins de recherches des bibliothèques dans un fichier et construire l'archive
 +  * Quand on télécharge la Malinette, on ne télécharge qu'un petit fichier exécutable (ou un script) qui fera tout ce qu'il faut et installera en plus le programme au bon endroit. 
 +  * On peut aussi imaginer une page web qui liste les bibliothèques avec leurs contenu/description. Avec des CheckBox on créé notre version de Pure Data (un zip).
 +
 +En annexe, s'il y a moyen d'améliorer le rendu de la recherche de Deken, en visualisant le contenu de bibliothèques ou comme précédemment en choisissant plusieurs bibliothèques et en installant/ajoutant les chemins dans le fichiers de préférences.
 +
 +
 +=== Chantier #2 : l'interface ===
 +Le plus réaliste est d'utiliser le moteur graphique existant tcl/tk et de l'utiliser à son optimum pour améliorer l'interface de la Malinette. Aujourd'hui l'interface n'est pas pratique, trois fenêtres indépendantes s'ouvrent : celle de la console de Pure Data, le menu, et la fenêtre projets. Et leurs emplacements ne sont pas tout à fait les mêmes selon les plateformes ...
 +
 +{{:projets:malinette:malinette-soft-one-window.png?500|}}
 +
 +Objectifs : 
 +  * primordial : intégrer ces fenêtres en une seule
 +  * pour le menu, utiliser des éléments graphiques TCL, peut-être plus paramétrables, plus portables : boutons, checkbox, textbox, etc. voire icônes en images ...
 +  * agrandir les rectangles entrées/sorties 
 +  * contrôle plus fins du zoom
 +  * Survol : fait apparaître la description des objets et des entrées/sorties
 +
 +
 +Plusieurs options :
 +  * [[http://puredata.info/docs/guiplugins|guiplugins]] : solutions flexibles en tcl qui s'ajoute facilement. Pour info, nous utilisons un plugin pour placer des couleurs et disposer les fenêtres. Il y a peut-être moyen de créer un menu paramétrable (au moins aussi élégant que le nôtre).
 +  * [[http://fjkraan.home.xs4all.nl/digaud/puredata/tclPd/|tclpd]] : TCL for Pure Data
 +  * [[http://forum.pdpatchrepo.info/topic/9960/tcl-for-a-rainy-day/4|Tcl for a rainy day]], [[https://github.com/Monetus/Ketea-theme-plugin|Ketea-theme-plugin]], [[http://forum.pdpatchrepo.info/topic/9991/woof-a-new-window-menu-for-vanilla-tcl|woof-a-new-window-menu-for-vanilla-tcl]] : expériences de couleurs, menus en tcl
 +  * Solution en TCL classique
 +  * Solution en C/TCLK classique avec 
 +  * [[http://forum.pdpatchrepo.info/topic/8555/gui-objects-and-color-scheme/5|Thèmes Pd]] : solution pas élégante du tout
 +
 +
 +=== Autres chantiers ===
 +  * Vidéo : Enregistrement vidéo à améliorer, Lecture vidéo + son, Fenêtre de preview vidéo gem integré dans le patch, multi écrans
 +  * Importer, exporter en svg, pdf, png
 +  * Presets : mémorisation de l'état des objets
 +  * Undos : annulation des actions précédentes
 +  * Scroll dans les sous objets et abstractions
 +  * Piano roll et automation dans le temps sous forme de courbes...
 +  * Connections facile entre un objet et plusieurs etc.
 +  * Gui rapide : séparation du moteur et de l'interface graphique. Notion de graphe audio (dsp tree). Parfois on utilise deux instances de Pd... 
 +  * Application Standalone
  
 ===== #2 : Plateforme Fablab ===== ===== #2 : Plateforme Fablab =====
Ligne 74: Ligne 103:
 Concevoir une plateforme Web avec des outils libres pour **gérer une communauté autour d'un FabLab** : les participants, les projets, la mise en relation des savoirs-faire, les ateliers, les ressources, les besoins, les partages, les temps d'occupation des machines, l'accueil et le suivi des projets et participants suivant différents profils et scénarios. Concevoir une plateforme Web avec des outils libres pour **gérer une communauté autour d'un FabLab** : les participants, les projets, la mise en relation des savoirs-faire, les ateliers, les ressources, les besoins, les partages, les temps d'occupation des machines, l'accueil et le suivi des projets et participants suivant différents profils et scénarios.
  
-En effet, un fablab doit activer, animer une communauté de contributeurs et permettre de les mettre en relation sur plusieurs niveaux. Et pour l'instant, c'est compliqué d'où l'idée de créer une plateforme intuitive et moderne pour donner envie et pour mettre en valeur ces échanges. Et c'est aussi l'occasion de réfléchir sur une harmonisation des données produites par les fablabs, et les possibles collaborations entre fablabs qu'est-ce qu'on fabrique ensemble ?  +Les objectifs et l'architecture du projet sont décrits sur cette page [[projets:plateforme-lfo:|Plateforme LFO]].
 ==== Premières recherches ==== ==== Premières recherches ====
 Les fablabs français se sont réunis par deux fois en 2014 autour des problématiques de documentation, à Nantes et à Marseille :  [[http://fablabo.net/wiki/WorkshopDocumentation|FablabDocumentation]]. Des premières productions ont vu le jour : fiche idée pour les projets, prospectus pour la documentation et des idées pour la gestion des contenus des sites des fablabs. Les fablabs français se sont réunis par deux fois en 2014 autour des problématiques de documentation, à Nantes et à Marseille :  [[http://fablabo.net/wiki/WorkshopDocumentation|FablabDocumentation]]. Des premières productions ont vu le jour : fiche idée pour les projets, prospectus pour la documentation et des idées pour la gestion des contenus des sites des fablabs.
Ligne 86: Ligne 114:
   * Amélioration d'un plugin fablab développé avec le Fablab de la Cité des Sciences permettant de classer les projets par différents tags (matériaux, logiciels etc) et d'afficher ces projet avec une miniature dans un dokuwiki et possibilité de recherche en fonction des catégories de tags...   * Amélioration d'un plugin fablab développé avec le Fablab de la Cité des Sciences permettant de classer les projets par différents tags (matériaux, logiciels etc) et d'afficher ces projet avec une miniature dans un dokuwiki et possibilité de recherche en fonction des catégories de tags...
   * recherches croisées entre les ressources des différents sites avec des flux rss : sur un site portail et en intégrant ce moteur de recherche sur les sites respectifs   * recherches croisées entre les ressources des différents sites avec des flux rss : sur un site portail et en intégrant ce moteur de recherche sur les sites respectifs
-  * amélioration du moteur de Wiki, Dokuwiki : [[projets:plateforme-lfo:dev:accueil|Plateforme Wiki en développement]]+  * amélioration du moteur de Wiki, Dokuwiki, voir cette page de recherches : [[projets:plugin-dw-fablab:accueil|Plugin Dokuwiki Fablab]]
  
 Exemple de données utiles à mettre en relation : Exemple de données utiles à mettre en relation :
 +{{:projets:plateforme-lfo:dev-lfo-01-relations.png?800|}}
  
-{{:projets:plateforme-lfo:dev:wiki-schema.png?600|}} 
  
  
-Définir les besoins et outils à utiliser/développer : hébergement auto-géré, partage de fichiers, accès local et en ligne, multilingue, wiki, pad, tableur, mindmap, bookmark, comptabilité, gitorious, syntaxe de rédaction simplifiée markdown/txt2tags/wiki, une source plusieurs formats de sorties (html, odg, pdf), formulaires, forums, listes de diffusion, agenda partagé du lieu, base de données des participants, des projets, groupes de travail, tâches/todo liste, gestionnaire d'images (solo, galerie, album), choix des projets (appel à projets ?), slides de présentation, suivis (alertes), … 
  
  
/home/resonancg/www/wiki/data/attic/ateliers/iutaix/accueil.1454943197.txt.gz · Dernière modification: 2016/02/08 15:53 de resonance