Google Summer of Code
¿Qué es el Google Summer of Code (Verano del Código de Google)?
GSoC es un programa global que ofrece a estudiantes una ayuda para que trabajen en proyectos de software de fuentes abiertas durante las vacaciones de verano. Es una excelente oportunidad para que los estudiantes obtengan experiencia en el desarrollo de software en el mundo real y hagan contribuciones que beneficie a todos. Atrae a colaboradores nuevos y anima a los estudiantes que ya participan en el desarrollo de LilyPond a que se impliquen aún más. LilyPond participa en el GSoC como parte del proyecto GNU.
Hemos tenido participantes en el GSoC en 2012 y 2015 y animamos a los estudiantes a que envíen la solicitud para las futuras ediciones.
Si tiene alguna pregunta o le gustaría solicitar la participación, envíenos un correo a la lista de desarrolladores (véase Contacto).
Lista de ideas del proyecto
Más abajo aparece una lista de los proyectos que fue inicialmente sugerida para el GSoC 2012. Se mantiene aquí como inspiración para futuros proyectos del GSoC y para cualquier persona interesada en el desarrollo de LilyPond.
Observe que no es una lista exhaustiva. También son posibles otros proyectos de GSoC. Existen varias áreas en las que LilyPond puede mejorar y el equipo de desarrollo de LilyPond está siempre dispuesto a servir de ayuda a aquellos que deseen implicarse en un proyecto como los que aparecen relacionados más abajo.
Hay una lista completa de todas las incidencias abiertas aquí.
ScholarLY
ScholarLY es una biblioteca dentro de openLilyLib que provee funcionalidades para la anotación de partituras, haciendo posible gestionar flujos de trabajo académicos completamente en el contexto del documento de la partitura. Hasta ahora es posible introducir anotaciones de distintos tipos, producir mensajes que se comportan como enlaces sobre la salida de consola y exportar a texto y a archivos de LaTeX.
Hay muchas solicitudes de funcionalidad para la conversión de esta biblioteca en una herramienta mmás potente y completa aún, por ejemplo: inserción de ejemplos musicales, producción de notas al pie de página, aplicación automárica de estilos al elemento anotado (p. ej. trazar una ligadura en línea discontinua, poner una alteración entre paréntesis), creando informes con elementos sobre los que se puede apuntar y pulsar. Para ver una descripción completa de esta sugerencia de proyecto, visite https://github.com/openlilylib/scholarly/wiki/GSoC.
Dificultad: media Requisitos: Scheme, posiblemente LaTeX, (opcionalmente Python) Conocimientos recomendados: Experiencia con, o interés en, la edición académica y flujos de trabajo colaborativos. Mentor potencial: Urs Liska
Notas de adorno
Arreglar problemas con la sincronización de las notas de adorno. Las notas de adorno pueden interferir con la cuenta del tiempo de LilyPond y causar efectos extraños, especialmente cuando se usan varios pentagramas en los que algunos tienen notas de adorno y otros no.
Dificultad: media Requisitos: C++, MIDI Conocimientos recomendados: familiaridad con el funcionamiento interno de LilyPond Mentores potenciales: Mike Solomon, Carl Sorensen
MusicXML
Mejora de las funciones de importación y exportación de MusicXML:
- 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.
- Enlazar cada objeto de presentación (es decir, 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 información de disposición para cada uno de los objetos de salida a las etiquetas del XML.
Dificultad: media Requisitos: MusicXML, Python, conocimiento básico de LilyPond Mentores potenciales: 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
Con frecuencia, las curvas de las ligaduras de unión y de expresión no son satisfactorias. No se manejan bien las ligaduras ‘interrumpidas’ por cambios de clave o de pentagrama. El proyecto podría incluir y organizar ejemplos de mala salida, decidir sobre la salida perseguida y escibir código para mejorarla.
Dificultad: alta Requisitos: C++, experiencia con heurística de la escritura Conocimientos recomendados: LilyPond, sentido estético Mentor potencial: Mike Solomon
Añadir una variante especial de los glifos de fuente tipográfica
- Añadir variantes ‘sobre’ y ‘entre’ líneas del pentagrama.
- Variantes más bajas y estrechas de ciertos glifos, como alteraciones alccidentales. Otro ejemplo más específico sería una cabeza de nota breve de la notación antigua en dos variantes, una con un hueco pequeño dentro, y otra con un hueco grande.
Dificultad: fácil Requisitos: MetaFont, C++, buen ojo para los detalles Conocimientos recomendados: conocimientos básicos de LilyPond Mentor potencial: Werner Lemberg
Mejora del posicionamiento de las barras de corchea (y figuras menores)
Para barras de corchea 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 Mentores potenciales: Mike Solomon, Carl Sorensen
Ayudar a mejorar el comportamiento de la compilación
Las herramientas de análisis automático del código, como la detección de filtraciones de memoria de Valgrind o el perfilador de código Callgrind, proveen una información valiosa acerca de los posibles problemas de nuestro 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++ Mentores potenciales: Joe Neeman, Reinhold Kainhofer
Otros idiomas: English, deutsch, français, italiano, 日本語, nederlands.
Acerca de la selección automática del idioma.