Contenu supprimé Contenu ajouté
m quelques corrections
m quelques corrections
Ligne 1 :
== Génération de diagrammes d'accords et de grilles de gammes ==
 
Le but de ce projet à moyen terme est le développement d'une mécanisme de génération et de téléversement automatique de diagrammes d'accords et de grilles de gammes pour le livre [[Apprendre la guitare]], en alternative au mécanisme actuel générant ces diagrammes à partir de mini-images. Un but intermédiaire serait de parvenir à trouver une convention de nommage pour ces diagrammes, de manière à ce que chaque diagramme soit décrit de façon compacte et complète par son nom. Si vous êtes intéressé par ce projet et/ou souhaitez faire des remarques sur son état actuel, laissez-moi un message sur ma page de discussion.
 
=== Nature du problème ===
Le mécanisme actuel de téléversement sur Common est inadapté à la rédaction d'un livre, tel que [[Apprendre la guitare]], et plus généralement d'un livre traitant de théorie musicale et de pratique instrumentale. Aucun outil ne permet pour le moment de générer à la volée des diagrammes d'accords, des grilles de gammes, encore moins des partitions. La composition puis le téléchargement manuel de tels diagrammes se heurtent d'une part au problème de leur nombre (il existe des dizaines de formes d'accords de base distinctes, même à transposition près), d'autre part au problème du choix de leurs noms et de leurs descriptions (il existe par exemple au moins 5 manières distinctes de jouer un accord d'un nom donné sur le manche, ces différentes formes ne se différenciant que par la suite de leurs notes).
 
La solution actuelle (juin 2009) consistant à composer des diagrammes par assemblage de mini-images (c.f. n'importe quelle page du livre, ainsi que la documentation de [[Modèle:Guitar_String_Documentation|ce modèle]]) pose malheureusement une difficulté technique sans doute insurmontable : l'impossibilité pratique de visualiser les pages sous Explorer dès que le nombre d'occurrences de mini-images dans une même page devient trop élevé (le problème ne se pose pas sous Firefox). Un problème auxiliaire - qui sera résolu en intégrant à chaque svg les glyphes d'un jeu de caractères minima; sous forme de chemins - est l'inconsistance du rendu du lettrage (la taille des lettres diffère entre l'image stockée en cache affichée dans la page et l'image source, et peut différer d'une machine à l'autre, même en utilisant une police disponible sur le serveur). Ce problème pourra être facilement résolu en intégrant à chaque svg les glyphes d'un jeu de caractères minimal sous forme de chemins.
 
Noter que l'intégration d'une police même partielle sous forme d'objets graphiques dans un fichier svg est déconseillée par Commons, car elle augmente la taille des fichiers svg produits. A mon avis, il s'agit ici d'un faux problème, si l'on considère que la taille des fichiers produits par Inkscape (malheureusement le logiciel de référence pour la création de ce type d'images), même avec une sauvegarde en svg pur, est ridiculement plus élevée que la taille de leur sous-partie réellement utile. La police nécessaire pour produire des diagrammes d'accords ne contient que peu de caractères, et les fichiers produits par programme peuvent être de taille très optimisée, pourvu que l'on se serve au mieux de définitions de liens, que l'on élimine les identificateurs, les groupes inutiles, tous les attributs inutiles ou redondants systématiquement introduits par Inkscape, ainsi que toutes les décimales ou exponentielles introduites par ses erreurs d'approximations.
Ligne 117 :
 
=== A faire ===
* Choisir les préfixes spécifiant la sorte du diagramme (rien pour un diagramme libre, p ((p)attern) pour un diagramme de motif ?). Ajouter éventuellement un numéro de version en début de nom, de manière à pouvoir gérer les versions futures des grammaires.
* Trouver une grammaire pour le dernier type de diagramme. Ajouter éventuellement un numéro de version en début de nom, de manière à pouvoir gérer les versions futures des grammaires.
* Préciser les modalités de la génération et du téléversement : répartion des rôles entre client, utilisateur et serveur, choix du ou des langages.