Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

ateliers:iutaix:accueil

Ceci est une ancienne révision du document !


Classe tutorée IUT d'Aix-en-Provence

Propositions de sujets pour des étudiants en informatique de l'IUT d'Aix-en-Provence.

#1 : Malinette

Le projet Malinette est un kit matériel et logiciel sous licence libre pour le prototypage rapide et l'apprentissage des systèmes interactifs. Il est utilisé par des artistes, étudiants, élèves, formateurs. Le logiciel est un framework basé sur le logiciel de création multimédia Pure Data.

L'association Reso-nance numérique le développe depuis 2012 et nous aimerions proposer une solution logicielle stable, ergonomique et multiplateforme.

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 (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.

Problèmes

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, des 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.
  • 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.

Certains projets tentent d'apporter des solutions à ces problèmes :

  • obsolète : Vibrez
  • obsolète : DesireData
  • obsolète : ZenGarden
  • 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.
  • pd-2lork : sur Linux pour l'instant, un peu instable, voir quelques vidéos
  • Purr-Data (Pd2lork et HTML5) : c'est prometteur de trouver une solution en html5, plus facile pour construire une interface et ultra portable.
  • CICM Wrapper et CreamLibrary, développées par un français : a C/TK library that aims to facilitate the creation of objects for Pure Data
  • PoF : pd avec openframeworks.

Quelques ressources pour aller plus loin :

  • Liste d'inconvénients et de solutions envisagées : MasterClass Pd
  • Discussions sur la mailing liste à propos de Pd-extended: ici
  • Tutoriel pour créer des externals : pd-external-tutorial

Définition des objectifs

La Malinette doit être un projet libre, multiplateforme 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 mailing list de Pure Data et les forums pdpatchrepo, codelab sont les outils appropriés.

La solution qui semble la plus réaliste est de concentrer les efforts sur la dernière version de Pure Data (0.47) qui apporte quelques nouveautés intéressantes et qui montre malgré tout que le logiciel évolue.

Chantier #1 : l'installation

En priorité, il faut simplifier l'installation. L'idéal serait de télécharger et installer Pure Data, la Malinette et toutes les bibliothèques en un clic et pour toutes les plateformes.

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 la recherche ne s'effectue pas sur la description de la bibliothèque. Et ensuit il faut

Pour éviter de demander aux personnes d'exécuter vingt fois cette opération, pour

Améliorer la recherche des objets

http://reso-nance.org/malinette/fr/faq Ce qui serait idéal serait de trouver un moyen d'installer Pd.0.47 pour chaque plateforme et les objets additionnels en les choisissant avec un simple clic, soit sous forme de script, soit sous forme de page Web (avec checkbox). Sur cette page Web, un outil de recherche pourrait trouver les objets dont nous avons besoin (comme sur ce pdf

Deux options :

Chantier #2 : l'interface

  • Une fenêtre avec des panneaux plutôt que du multi-fenêtre
  • * Survol : description des objets
  • * Plus d'options pour les gui
  • * Zoom
  • scalable gui
  • Agrandir les rectangles entrées/sorties
  • Menu avec Icones, intégration facile des images dans les objets (zoom !)
  • tclplugins
  • tcl
  • c/tcl

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

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.

Les objectifs et l'architecture du projet sont décrits sur cette page : Plateforme LFO.

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 : 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 contraintes :

  • Avoir accès à ses données, ne pas passer par des plateformes qui vont exploiter les données de nos contributeurs
  • Solutions libres et faciles à installer

Ce qui semble le plus réaliste et utile :

  • 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
  • amélioration du moteur de Wiki, Dokuwiki, voir cette page de recherches : Plugin Dokuwiki Fablab

Exemple de données utiles à mettre en relation :

/home/resonancg/www/wiki/data/attic/ateliers/iutaix/accueil.1476970399.txt.gz · Dernière modification: 2016/10/20 15:33 de resonance