GSoC 2012
Què és el Google Summer of Code (Estiu del Codi del Google)?
És un programa global portar a terme pel Google que ofereix a estudiants una ajuda perquè treballin en projectes de programari de codi obert durant les vacances d’estiu.
L’equip del LilyPond va decidir que aquesta era una oportunitat excel·lent per trobar col·laboradors nous i animar els estudiants que ja participen en el desenvolupament del LilyPond a què s’impliquin encara més. Un dels nostre col·laboradors ha estat seleccionat per a l’edició del program com a part del project GNU; esperem poder participar també a edicions futures.
La nostra llista d’idees per al 2012
Més a baix hi apareix una llista dels projectes que hem suggerit per als estudiants del GSoC 2012. Tot i que ha finalitzat el plaç de sol·licituds, hem decidit mantenir visible aquesta pàgina com inspiració per a qualsevol persona interessada en el desenvolupament del LilyPond. Alguns membres de l’equip de desenvolupament estan disposats a prestar la seva ajuda a aquells que vulguin implicar-se en aquests projectes.
Per descomptat, hi ha moltes més coses a millorar al LilyPond, entre elles algunes de molt petites. Hi ha una llista completa aquí.
Notes de adorn
Arreglar problemes amb la sincronització de les notes d’adorn, junt a tota l’arquitectura subjacent (vegeu el problema número 34 del nostre sistema de seguiment). Les notes d’adorn confonen el sistema de comptabilització de temps del LilyPond perquè són com anar cap a darrere en el temps. Això causa efectes estranys, en especial quan un pentagrama té una nota d’adorn que un altre no té.
Dificultat: mitjana
Requisits: C++, MIDI
Recomanat: familiaritat amb el funcionament intern del LilyPond
Mentor(s): Mike Solomon, Carl Sorensen
MusicXML
Afegir exportació completa del MusicXML i millora de la importació, junt amb les proves de comprovació que funciona. Depenent del temps disponible, implementar alguns a tots els següents:
- Manipulació de l’exportació del contingut musical bàsic com ara l’exportació MIDI (és a dir, ús de classes exportadores dedicades, derivades de la classe translator)
- Construir l’arbre XMDL del contingut musical bàsic, i una connexió des de l’esdeveniment musical a l’etiqueta XML
- Fer que tots els gravadors del LilyPond facin la seva feina
- Afegir la possibilitat d’enllaçar cada objecte de presentació (bàsicament cada segell o grup de segells) a la causa musical (així com a l’etiqueta XML dins de l’arbre XML)
- Afegir un ‘rerefons’ de sortida XML, que pot després afegir la informació de disposició per a cadascú dels objectes de sortida a les etiquetes del XML
L’objectiu es considerarà aconseguit quan una partitura (prèviament seleccionada) pugui importar-se des del MusicXML i exportada de nou sense cap pèrdua de dades no intencionada.
Dificultat: mitjana
Requisits: MusicXML, Python, coneixement bàsic del LilyPond
Mentor(s): Reinhold Kainhofer, Mike Solomon
Seria un element al vostre favor la familiaritat amb altres editors de partitures per poder fer proves creuades.
Millora de les lligadures d’unió i d’expressió
Sovint la forma predeterminada de les corbes de lligadura no és
satisfactòria. No estan contemplades les lligadures d’unió entre
notes enharmòniques { dos' - reb' }
, les lligadores
"trencades" per una clau o un canvi de pauta no estan ben
contemplades. El projecte inclou la recol·lecció i ordenació
d’exemples de sortida defectuosa, decidir sobre la sortida que es
desitja tenir i escriure el codi corresponent.
Dificultat: alta
Requisits: C++, experiència amb heurística de l’escriptura
Coneixements recomanats: LilyPond, sentit estètic
Mentor(s): Mike Solomon
Afegir una variant especial dels caràcters gràfics de font tipogràfica
Afegir variants per a alguns caràcters gràfics, como ara els signes d’alteració, per a línies sobre la pauta, entre pautes, escurçades i estretes, així com una infraestructura genèrica per incorporar-los. Un exemple és el cap de la breu d’una notació antiga, que ve en dues variants, amb l’orifici petit i gran.
Dificultat: fàcil
Requisits: MetaFont, C++, bon ull per als detalls
Coneixements recomanats: coneixements bàsics del LilyPond
Mentor(s): Werner Lemberg
Millora del barrat
Hauria de millorar-se el posicionament predeterminat de les barres de corxera (i figures menors) normals, de pentagrama creuat, interrompudes i en angle. El barrat hauria de dependre del context i de les notes veïnes (vegeu la secció 2.2). Si és possible, reduir el temps de càlcul del barrat.
Dificultat: mitjana
Requisits: C++, experiència amb heurística de l’escriptura
Coneixements recomanats: sentit estètic
Mentor(s): Mike Solomon, Carl Sorensen
Neteja de diversos advertiments de compilació
Neteja dels advertiments de compilació, anàlisi estàtica del codi,
i advertiments del valgrind. Les eines d’anàlisi automàtica del
codi (advertiments de g++
i clang
) i eines d’anàlisi
com ara la detecció de filtracions de memòria dels perfiladors de
codi valgrind i callgrind aporten informació valuosa sobre
possibles problemes en el codi de C++. La neteja d’aquests
advertiments ens permetria rebutjar automàticament qualsevol pegat
que introduís més advertiments dels que hi ha actualment.
Dificultat: mitjana
Requisits: C++
Mentor(s): Joe Neeman, Reinhold Kainhofer