Google Summer of Code

Le Google Summer of Code

Le GSoC est un programme global, mis en place par Google, qui 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 des étudiants de vivre une expérience réelle dans le développement de logiciels et contribuer ainsi au bien de tous. Ceci permet aussi de recruter de nouveaux contributeurs à LilyPond et motiver des étudiants qui y participent déjà d’y être encore plus impliqués. LilyPond participe à ce programme sous l’égide du projet GNU.

Nous avons eu des participants aux sessions de 2012, 2015 et 2016, et encourageons les étudiants à candidater pour les sessions à venir.

Si vous avez des questions à ce sujet ou avez envie d’y participer, contactez-nous sur la liste des développeurs (voir Contact).

Recensement de nos idées

Voici une liste de projets que nous avons proposés aux étudiants du GSoC et à quiconque aurait envie d’améliorer LilyPond.
Dernière mise à jour : novembre 2016.

La disponibilité de tuteurs diffère selon les projets et les années. Contactez-nous sur la liste des développeurs – voir Contact – et nous vous aiderons à trouver un mentor pour le projet qui correspond à vos envies et aptitudes.

Si vous avez d’autres idées de projet dans le cadre du GSoC, n’hésitez pas à nous en faire part. 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.

Amélioration de la structure interne des accords

La structure interne des accords dans LilyPond n’est pas suffisamment puissante pour tenir compte de la nomneclature des accords de jazz. Pour l’instant, un accord comporte une fondamentale, une basse et un renversement. Il serait souhaitable d’arriver à gérer les amalgames ou polyaccords, qu’ils soient majeur ou mineur, etc. Seule le développement d’une représentation interne capable de capturer l’essence d’accords complexes permettra d’y parvenir. Cette représentation interne une fois développée permettra par ailleurs d’améliorer le rendu des accords nommés.

Difficulté : moyennement facile Préalables : Scheme (Guile), mais le niveau nécessaire peut s’acquérir aisément. Connaissances appréciées : Théorie des accords et de leur nommage Mentor : Carl Sorensen

Ajout de variantes pour certains glyphes

  • Ajout de variantes positionnables « sur une ligne » et « dans un interligne ».
  • Ajout de variantes plus courtes ou plus étroites pour certains glyphes comme les altérations. 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.

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

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. Il s’agit de l’un des bogues les plus vieux et embarrassants pour LilyPond.

Difficulté : moyenne Préalables : C++, MIDI Connaissances appréciées : familiarité avec les arcanes de LilyPond Mentors potentiels : Mike Solomon (indisponible pour le GSoc 2016), Carl Sorensen

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 potentiels : Mike Solomon (indisponible pour le GSoc 2016), 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 potentiels : Joe Neeman, Reinhold Kainhofer (indisponible pour le GSoc 2016)

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, Scheme, les bases de LilyPond Mentors potentiels : Reinhold Kainhofer, Mike Solomon (tous deux indisponibles pour le GSoc 2016)

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 potentiel : Mike Solomon, Janek Warchoł (tous deux indisponibles pour le GSoc 2016)


Autres langues : English, deutsch, español, italiano, 日本語, nederlands.
About automatic language selection.

Validation

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