@ref{News}: news from the LilyPond project.
@item
-@ref{Attic}: announcements and changelogs from past versions.
+@ref{Attic}: announcements and changelogs from past versions,
+old news, etc.
@end itemize
@divEnd
involved to become more involved. LilyPond participates in GSoC as part
of the @uref{http://www.gnu.org/, GNU project}.
-@strong{Note:} The accepted mentoring organizations will be announced on
-February 27, so only then we will officially know that we can
-participate in this year's program.
-
We have had GSoC participants in 2012, 2015 and 2016 and encourage
-students to apply for future summers.
+students to apply for the 2017 program.
If you are interested to apply for the program with LilyPond as a
project, please read the information below and don't hesitate to write
@divEnd
-@divClass{column-center-middle-color2}
+@divClass{column-center-middle-color2 bigger-subsubheadings}
@subheading Project Ideas List
Below is a list of GSoC project ideas (last update: January 2017), but
A full list of all the current open issues can be found
@uref{http://sourceforge.net/p/testlilyissues/issues/, here}.
-@divEnd
-@divClass{column-center-middle-color3}
-@subheading Improve internal chord structure
+@subsubheading Improve internal chord structure
The internal representation of LilyPond chords is not powerful enough
to capture the nomenclature of jazz chords. Currently the chord has
representation is developed, the output formatting of chord names can
be improved.
-@strong{Difficulty:} Easy/medium
-@strong{Requirements:} Scheme (Guile), but the level necessary can be
+@emph{Difficulty:} Easy/medium
+
+@emph{Requirements:} Scheme (Guile), but the level necessary can be
easily learned
-@strong{Recommended:} Chord theory and naming
-@strong{Mentor:} Carl Sorensen
-@divEnd
+@emph{Recommended:} Chord theory and naming
-@divClass{column-center-middle-color3}
-@subheading Adopt the SMuFL music font encoding standard
+@emph{Mentor:} Carl Sorensen
+
+
+@subsubheading Adopt the SMuFL music font encoding standard
For several years now a new standard for music fonts has been around:
@uref{http://www.smufl.org/, SMuFL}, which is also discussed as becoming part of
could be modified to use notation fonts installed as system fonts instead of
inside the LilyPond installation.
-@strong{Difficulty:} Easy/medium
-@strong{Requirements:} C++ and willingness to get familiar with LilyPond
+@emph{Difficulty}: Easy/medium
+
+@emph{Requirements}: C++ and willingness to get familiar with LilyPond
internals.
-@strong{Recommended:} Interest and experience in working with font files.
+
+@emph{Recommended}: Interest and experience in working with font files.
A little bit of METAFONT.
-@strong{Mentors:} Werner Lemberg, Abraham Lee
-@divEnd
+@emph{Mentors}: Werner Lemberg, Abraham Lee
-@divClass{column-center-middle-color3}
-@subheading Adding variants of font glyphs
+
+@subsubheading Adding variants of font glyphs
@divClass{keep-bullets}
@itemize
@end itemize
@divEnd
-@strong{Difficulty:} easy
-@strong{Requirements:} MetaFont, C++, good eye for details
-@strong{Recommended knowledge:} basic LilyPond knowledge
-@strong{Mentor:} Werner Lemberg
+@emph{Difficulty:} easy
-@divEnd
+@emph{Requirements:} MetaFont, C++, good eye for details
-@divClass{column-center-middle-color3}
-@subheading Grace notes
+@emph{Recommended knowledge:} basic LilyPond knowledge
-Fix problems with synchronization of grace notes. Grace notes can
-interfere with LilyPond's timing and cause odd effects, especially when
-multiple staffs are used where some have grace notes and others don't.
-This is one of the longest-standing and one of the more embarrassing
-@uref{https://sourceforge.net/p/testlilyissues/issues/34/,bugs} in
-LilyPond.
+@emph{Mentor:} Werner Lemberg
-@strong{Difficulty:} medium
-@strong{Requirements:} C++, MIDI
-@strong{Recommended:} familiarity with LilyPond internals
-@strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
-Carl Sorensen
-@divEnd
+@subsubheading Contemporary Notation
-@divClass{column-center-middle-color3}
-@subheading Improve default beam positioning
+LilyPond is very good at creating non-standard notation. Having to
+@emph{code} every graphical element instead of simply @emph{drawing}
+it may seem cumbersome but is in fact a strong asset. New notational
+functionality can be provided with consistent appearance, automatic
+layout and a natural syntactic interface.
-For regular, cross-staff, broken and kneed beams. Beaming should depend
-on context and neighbor notes (see section 2.2 of
-@uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon%2C_Jean-Pierre%29,
-this book}). If possible also reduce beaming-computation time.
+Within the @uref{https://github.com/openlilylib/oll-core, openLilyLib}
+library system the student will create a fundamental infrastructure
+and building blocks to make creating contemporary notation easier.
+Additionally (at least) @emph{one} concrete package is developed to
+cover specific contemporary notation, such as for example the style
+of a given composer, extended playing techniques for a specific
+instrument or a certain category of effects.
-@strong{Difficulty:} medium
-@strong{Requirements:} C++, experience with writing heuristics
-@strong{Recommended knowledge:} aesthetic sense
-@strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
-Carl Sorensen
+@emph{Difficulty:} medium
-@divEnd
+@emph{Requirements:} Scheme (interaction with LilyPond internals),
+contemporary notation techniques
-@divClass{column-center-middle-color3}
-@subheading Automated testing and documentation for openLilyLib
+@emph{Recommended:} sense of building hierarchical frameworks
+
+@emph{Mentors:} @emph{NN,} Urs Liska
+
+
+@subsubheading Rewrite LibreOffice LilyPond Extension with Python
+
+The @uref{http://ooolilypond.sourceforge.net/, OOoLilyPond} extension
+made it possible to conveniently include LilyPond score snippets in
+OpenOffice.org/LibreOffice Writer, Draw and Impress documents while
+keeping source and image together. After many years without development
+an initial effort has started to make the extension compatible again
+with current versions of LibreOffice and LilyPond.
+
+However, as the LibreOffice ecosystem has changed substantially it is
+now possible to rewrite the extension with Python and PyQt. This will
+not only be more powerful in general but will allow the integration of
+functionality from @uref{http://frescobaldi.org, Frescobaldi}, such as
+for example syntax highlighting, entry helpers, score wizards or musical
+transformations.
+
+@emph{Difficulty:} easy/medium
+
+@emph{Requirements:} Python, PyQt, LilyPond basics, LibreOffice
+extension basics
+
+@emph{Recommended knowledge:} Familiarity with Frescobaldi code based
+or willingness to learn during bonding period
+
+@emph{Mentor(s):} Joram Berger, Urs Liska, (Thorsten Behrens/LibreOffice)
+
+
+@subsubheading Automated testing and documentation for openLilyLib
@uref{https://github.com/openlilylib, openLilyLib} is an extension
framework for LilyPond code providing a “snippets” repository and a
openLilyLib's @uref{https://openlilylib.org, website}. Development of
such a SPA @emph{can} be part of the GSoC project, but is optional.
-@strong{Difficulty:} medium
-@strong{Requirements:} Python or Scheme, static website generator(s) or
+@emph{Difficulty:} medium
+
+@emph{Requirements:} Python or Scheme, static website generator(s) or
(Node.js based) dynamic web application technology. Continuous
Integration (can be learned during the bonding period)
-@strong{Mentors:} Urs Liska, Matteo Ceccarello
-@divEnd
+@emph{Mentors:} Urs Liska, Matteo Ceccarello
-@divClass{column-center-middle-color3}
-@subheading Help improve compilation behavior
-
-Automatic code analysis tools, like valgrind memory leak detection or
-callgrind code profilers, provide valuable information about possible
-flaws in our C++ code. Cleaning up warnings would allow us to automate
-the rejection of any patch which introduced extra warnings.
-
-@strong{Difficulty:} medium
-@strong{Requirements:} C++
-@strong{Potential Mentors:} Reinhold Kainhofer (not available for GSoC
-2016), Joe Neeman
-
-@divEnd
-@divClass{column-center-middle-color3}
-@subheading MusicXML
+@subsubheading MusicXML
Improving MusicXML import and export functions:
-@divClass{keep-bullets}
-@itemize
+File interchange between LilyPond and other applications using MusicXML
+is still a difficult matter. To import MusicXML it has to be converted
+manually by the @code{musicxml2ly} script. Export @emph{to} MusicXML is
+only available as a rudimentary feature inside Frescobaldi. In order to
+provide natural interchange between LilyPond and MusicXML based
+applications there's the need of actual import functionality and a
+dedicated export backend.
-@item
-Handle basic musical content export like the MIDI export (i.e. using
-dedicated exporter classes, derived from the translator class).
+Importing XML shall provide file, line and column to add origin
+attributes to generated objects. That way point and click can be
+made available in Frescobaldi or other supported IDEs.
-@item
-Build the XML tree of the basic musical content, add a connection from
-music event to XML tag.
+Exporting XML shall be realized with an exporter class like the MIDI
+export. This may be based on the work already done in
+@uref{https://github.com/DavidGarfinkle/Lilypond_MusicXMLexport, GSoC 2015}
+by David Garfinkle. It should be checked if it is possible to use
+another XML library than the one provided by guile-2 in order to have
+this feature available in current LilyPond (which is based on guile-1.8).
-@item
-Let all LilyPond engravers do their job.
+@emph{Difficulty:} medium
-@item
-Link each output object (i.e. each stencil or group of stencils) to the
-music cause (and thus to the XML tag in the XML tree).
-
-@item
-Add an XML output backend, which can then add layout information for
-each output object to the XML tags.
-
-@end itemize
-@divEnd
-
-There are several possibilities for this project, including building upon
-the MusicXML export project from GSoC 2015.
-
-@strong{Difficulty:} medium
-@strong{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge
-@strong{Recommended:} Familiarity with other scorewriters (for cross-testing)
-@strong{Mentor:} Jan-Peter Voigt
+@emph{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge
+@emph{Recommended:} Familiarity with other scorewriters (for cross-testing)
+@emph{Mentor:} Jan-Peter Voigt
@divEnd
-@divClass{column-center-middle-color3}
-@subheading Improve slurs and ties
-
-The engraving quality of slurs and ties is often unsatisfactory. Ties
-@q{broken} by clef or staff changes are not handled well. The project
-could include collecting and sorting examples of bad output, deciding on
-the intended output and writing code to improve them.
-
-@strong{Difficulty:} hard
-@strong{Requirements:} C++, experience with writing heuristics
-@strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
-@strong{Potential Mentors:} Mike Solomon, Janek Warchoł (both not available for
-GSoC 2016)
-
-@divEnd
@divClass{column-center-middle-color2}
@subheading Information for Applicants/Participants
opportunity to apply it in a real example.
@end itemize
+
+There is a list of inactive projects in the @ref{Attic}. We list
+projects there that are still considered valuable but for which there
+are currently no mentors available.
+
@divEnd
@node Authors
@node News
@unnumberedsec News
-@divClass{heading-center}
-@warning{Many old announcements and changelogs can be found in
-the @ref{Attic}}
-@divEnd
-
-@include web/news-front.itexi
-
-@include web/news.itexi
+@include web/news-new.itexi
+@divClass{column-center-bottom}
+@subheading Old News
+Older news can be found in the @ref{Attic}, along with older
+announcements and changelogs
+@divEnd
@node Attic
@unnumberedsec Attic
@divEnd
-@divClass{column-center-bottom}
+@divClass{column-center-middle-color3}
@subheading Thanks
Thanks to developers, contributors, bug hunters and suggestions for
@divEnd
-@divClass{column-center-bottom}
+@divClass{column-center-middle-color3}
@subheading Changelogs
Developers' changelogs by version:
@miscLink{CHANGES-0.0,v0.0}
@divEnd
+
+@divClass{column-center-middle-color2 bigger-subsubheadings}
+@subheading Inactive Google Summer of Code project suggestions
+
+The following list describes GSoC projects that had been proposed
+in recent years and which are still considered valuable but for
+which we currently don't have mentors available.
+
+
+@subsubheading Improve slurs and ties
+
+The engraving quality of slurs and ties is often unsatisfactory. Ties
+@q{broken} by clef or staff changes are not handled well. The project
+could include collecting and sorting examples of bad output, deciding on
+the intended output and writing code to improve them.
+
+@emph{Difficulty:} hard
+
+@emph{Requirements:} C++, experience with writing heuristics
+
+@emph{Recommended knowledge:} LilyPond knowledge, aesthetic sense
+
+
+@subsubheading Grace notes
+
+Fix problems with synchronization of grace notes. Grace notes can
+interfere with LilyPond's timing and cause odd effects, especially when
+multiple staffs are used where some have grace notes and others don't.
+This is one of the longest-standing and one of the more embarrassing
+@uref{https://sourceforge.net/p/testlilyissues/issues/34/,bugs} in
+LilyPond.
+
+@emph{Difficulty:} medium
+
+@emph{Requirements:} C++, MIDI
+
+@emph{Recommended:} familiarity with LilyPond internals
+
+
+@subsubheading Improve default beam positioning
+
+For regular, cross-staff, broken and kneed beams. Beaming should depend
+on context and neighbor notes (see section 2.2 of
+@uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon%2C_Jean-Pierre%29,
+this book}). If possible also reduce beaming-computation time.
+
+@emph{Difficulty:} medium
+
+@emph{Requirements:} C++, experience with writing heuristics
+
+@emph{Recommended knowledge:} aesthetic sense
+
+
+@subsubheading Help improve compilation behavior
+
+Automatic code analysis tools, like valgrind memory leak detection or
+callgrind code profilers, provide valuable information about possible
+flaws in our C++ code. Cleaning up warnings would allow us to automate
+the rejection of any patch which introduced extra warnings.
+
+@emph{Difficulty:} medium
+
+@emph{Requirements:} C++
+
+@divEnd
+
+@divClass{column-center-middle-color2}
+@subheading Old News
+
+Older news items dating back to July 2003. Newer news can be found on
+the @ref{News} page.
+@divEnd
+
+@include web/news-old.itexi