GSoC 2012
¿Qué es el Google Summer of Code (Verano del Código de Google)?
Es un programa global llevado a cabo por Google que ofrece a estudiantes una ayuda para que trabajen en proyectos de software de fuentes abiertas durante las vacaciones de verano.
El equipo de LilyPond decidió que ésta era una excelente oportunidad para encontrar colaboradores nuevos y animar a los estudiantes que ya participan en el desarrollo de LilyPond a que se impliquen aún más. Uno de nuestros colaboradores ha sido seleccionado para la edición 2012 del programa como parte del proyecto GNU; esperamos poder participar también en futuras ediciones.
Nuestra lista de ideas para el 2012
Más abajo aparece una lista de los proyectos que hemos sugerido para los estudiantes del GSoC 2012. Aunque ha finalizado el plazo de solicitudes, hemos decidido mantener visible esta página como inspiración para cualquier persona interesada en el desarrollo de LilyPond. Algunos miembros del equipo de desarrollo están dispuestos a prestar su ayuda a aquellos que quieran implicarse en estos proyectos.
Por supuesto, hay muchas más cosas que mejorar en LilyPond, entre ellas algunas muy pequeñas. Hay una lista completa aquí.
Notas de adorno
Arreglar problemas con la sincronización de las notas de adorno, junto a toda la arquitectura subyacente (véase el problema número 34 de nuestro sistema de seguimiento). Las notas de adorno confunden al sistema de cuenta de tiempo de LilyPond porque son como ir hacia atrás en el tiempo. Esto causa efectos extraños, en especial cuando un pentagrama tiene una nota de adorno que otro no tiene.
Dificultad: media
Requisitos: C++, MIDI
Recomendado: familiaridad con el funcionamiento interno de LilyPond
Mentor(es): Mike Solomon, Carl Sorensen
MusicXML
Añadir exportación completa de MusicXML y mejora de la importación, junto a las pruebas de comprobación de que funciona. Dependiendo del tiempo disponible, implementar algunos o todos los siguientes:
- Manejo de la exportación del contenido musical básico como la exportación MIDI (es decir, uso de clases exportadoras dedicadas, derivadas de la clase translator)
- Construir el árbol XML del contenido musical básico, y una conexión desde el evento musical a la etiqueta XML
- Hacer que todos los grabadores de LilyPond hagan su trabajo
- Añadir la posibilidad de enlazar cada objeto de presentación (básicamente cada sello o grupo de sellos) a la causa musical (así como a la etiqueta XML dentro del árbol XML)
- Añadir un ‘back-end’ de salida XML, que puede después añadir la información de disposición para cada uno de los objetos de salida a las etiquetas del XML
El objetivo se considerará conseguido cuando una partitura (previamente seleccionada) pueda importarse desde el MusicXML y exportada de nuevo sin ninguna pérdida de datos no intencionada.
Dificultad: media
Requisitos: MusicXML, Python, conocimiento básico de LilyPond
Mentor(es): Reinhold Kainhofer, Mike Solomon
Sería un buen tanto a su favor la familiaridad con otros editores de partituras para poder hacer pruebas cruzadas.
Mejora de las ligaduras de unión y de expresión
A menudo la forma predeterminada de las curvas de ligadura no es
satisfactoria. No están contempladas las ligaduras de unión entre
notas enarmónicas { dos'~ reb' }
, las ligaduras "rotas" por
una clave o un cambio de pauta no están bien contempladas. El
proyecto incluye la recolección y ordenación de ejemmplos de salida
defectuosa, decidir sobre la salida que se desea tener y escribir el
código correspondiente.
Dificultad: alta
Requisitos: C++, experiencia con heurística de la escritura
Conocimientos recomendados: LilyPond, sentido estético
Mentor(es): Mike Solomon
Añadir una variante especial de los glifos de fuente tipográfica
Añadir variantes para algunos glifos, como los signos de alteración, para líneas sobre la pauta, entre pautas, acortadas y estrechadas, así como una infraestructura genérica para incorporarlos. Un ejemplo es la cabeza de la breve de na notación antigua, que viene en dos variantes, con el orificio pequeño y grande.
Dificultad: fácil
Requisitos: MetaFont, C++, buen ojo para los detalles
Conocimientos recomendados: conocimientos básicos de LilyPond
Mentor(es): Werner Lemberg
Mejora del barrado
Debería mejorarse el posicionamiento predeterminado de las barras de corchea (y figuras menores) normales, de pentagrama cruzado, interrumpidas y en ángulo. El barrado debería depender del contexto y de las notas vecinas (véase la sección 2.2). Si es posible, reducir el tiempo de cálculo del barrado.
Dificultad: media
Requisitos: C++, experiencia con heurística de la escritura
Conocimientos recomendados: sentido estético
Mentor(es): Mike Solomon, Carl Sorensen
Limpieza de diversas advertencias de compliación
Limpieza de las advertencias de compilación, análisis estático del
código, y advertencias de valgrind. Las herramientoas de análisis
automático del código (advertencias de g++
y clang
) y
herramientas de análisis como la detección de filtraciones de memoria
de los perfiladores de código valgrind y callgrind aportan valiosa
información sobre posibles problemas en el código de C++. La limpieza
de estas advertencias nos permitiría rechazar automáticamente
cualquier parche que introdujese más advertencias de las que hay
actualmente.
Dificultad: media
Requisitos: C++
Mentor(es): Joe Neeman, Reinhold Kainhofer
Otros idiomas: English, deutsch, français, italiano, 日本語, nederlands, 中文.
Acerca de la selección automática del idioma.