Google Summer of Code

Le Google Summer of Code

Ce programme global, mis en place par Google, rémunère des étudiants durant la période estivale, pour travailler au profit de projets open source.

Il s’agit là d’une excellente opportunité pour recruter de nouveaux contributeurs, encourager et motiver des étudiants qui participent déjà au développement de LilyPond. L’un de nos contributeurs a été reçu pour participer à l’édition 2012 du programme, sous l’égide du projet GNU, et espérons bien que d’autres se feront acte de candidature pour les éditions futures.

Recensement de nos idées

Voici les projets que nous avons proposés aux étudiants du GSoC 2012. Nous avons décidé de maintenir en ligne cette page du site, comme source d’inspiration pour ceux qui seraient intéressés au développement de LilyPond. Des membres de l’équipe de développement aideront volontiers ceux qui aimeraient s’attaquer à l’un de ces projets.

Il y a bien d’autres choses à améliorer dans LilyPond et les membres de l’équipe de développement aideront volontiers ceux qui aimeraient s’y atteler.

Une liste exhaustive des problèmes est disponible ici.

Notes d’ornement (grace notes)

Résolution des problèmes de synchronisation des notes d’ornement. Les notes d’ornement peuvent venir perturber LilyPond dans sa gestion du temps et entraîner des effets indésirables tout particulièrement lorsqu’elles interviennent dans une portée seulement.

Difficulté : moyenne Préalables : C++, MIDI Recommandé : familiarité avec les arcanes de LilyPond Mentors : Mike Solomon, Carl Sorensen

MusicXML

Amélioration des fonctionnalités d’import et d’export :

  • L’exportation d’un minimum d’informations musicales tel que cela se pratique déjà au niveau du MIDI, autrement dit à l’aide de classes d’exportateurs dérivées de la classe translator ;
  • Construction de l’arborescence XML d’après le contenu musical de base, et connexion des éléments musicaux à des balises XML ;
  • Faire en sorte que tous les graveurs LilyPond restent pleinement opérationnels ;
  • Ajout d’une capacité de lier tout objet de rendu – autrement dit chaque stencil ou groupe de stencils – à l’élément musical qui en est la cause et, par voie de conséquence, à la balise correspondante dans l’arborescence XML ;
  • Ajout d’un moteur de rendu XML qui pourrait alors inclure l’information de mise en forme pour tout objet de rendu dans les balises XML.

Difficulté : moyenne Préalables : MusicXML, Python, les bases de LilyPond Mentors : Reinhold Kainhofer, Mike Solomon

La connaissance d’autres éditeurs de partition, dans un but de tests comparatifs, constituerait une aide.

Amélioration des liaisons

Le galbe par défaut des liaisons n’est souvent pas pleinement satisfaisant. La « coupure » d’une liaison par un changement de clef ou de ligne n’est pas totalement fonctionnelle. Ce projet comporte entre autres un recensement d’exemples de résultats défectueux, l’appréciation du résultat optimal et l’écriture du code approprié.

Difficulté : difficile Préalables : C++, expérience dans l’écriture d’heuristiques Connaissances appréciées : LilyPond, sens de l’esthétique Mentor : Mike Solomon

Ajout de variantes pour certains glyphes

Il s’agit ici de pouvoir disposer de variantes, sur la ligne ou entre deux lignes, plus courts ou plus étroits, pour certains glyphes – les altérations par exemple – ainsi que d’une infrastructure générique de gestion. Autre exemple, dans le domaine de la notation ancienne, avec deux variantes de la brève, l’une avec un évidement plus important que l’autre.

  • Ajout de variantes positionnables « sur une ligne » et « dans un interligne ».

Difficulté : facile Préalables : MetaFont, C++, une bonne vue pour les détails Connaissance appréciée : les bases de LilyPond Mentor : Werner Lemberg

Amélioration du positionnement par défaut des ligatures

Une ligature, qu’elle soit rectiligne, passe d’une portée à l’autre, discontinue ou coudée, devrait dépendre du contexte et des notes adjacentes (voir la section 2.2 de cet article). Dans la mesure du possible, raccourcir le temps de calcul nécessaire à la génération des ligatures.

Difficulté : moyenne Préalables : C++, expérience dans l’écriture d’heuristiques Connaissance appréciée : sens de l’esthétique Mentors : Mike Solomon, Carl Sorensen

Aide à l’amélioration du comportement lors de la compilation

Les outils d’analyse comme valgrind pour la détection de fuites de mémoire ou callgrind pour le profilage du code, fournissent des informations précieuses quant à d’éventuelles faiblesses du code C++. Faire le ménage dans tous ces messages nous permettrait de rejeter tout patch qui introduirait des messages superflus.

Difficulté : moyenne Préalable : C++ Mentors : Joe Neeman, Reinhold Kainhofer


Autres langues : English, deutsch, italiano, nederlands.
About automatic language selection.

Validation

Remerciements à webdev.nl pour l'hébergement de lilypond.org. Valid HTML 4.01 Transitional