]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/web/community.itexi
Merge branch 'master' into translation
[lilypond.git] / Documentation / web / community.itexi
index 57b4d614b81cef362017eb9fa2928e99af10507f..2f4cf3272047f54cc5bd6848360757934b82d282 100644 (file)
@@ -72,7 +72,8 @@ discussing LilyPond.
 @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
@@ -895,12 +896,8 @@ new contributors to LilyPond and enables students who are already
 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
@@ -910,7 +907,7 @@ encourage you to get in touch with our community ahead of that.
 
 @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
@@ -926,10 +923,8 @@ early as possible.
 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
@@ -940,16 +935,17 @@ complex chords must be developed.  As a bonus, once the internal
 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
@@ -966,17 +962,18 @@ glyphs.  As an optional part of this project LilyPond's font loading mechanism
 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
@@ -993,49 +990,69 @@ it.
 @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
@@ -1072,86 +1089,48 @@ a Single Page Application could retrieve content for display on
 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
@@ -1221,6 +1200,11 @@ able to properly assess your code by only @emph{reading} it without the
 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
@@ -1348,15 +1332,13 @@ opportunity to apply it in a real example.
 @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
@@ -1395,7 +1377,7 @@ Descriptive list of changes by version:
 
 @divEnd
 
-@divClass{column-center-bottom}
+@divClass{column-center-middle-color3}
 @subheading Thanks
 
 Thanks to developers, contributors, bug hunters and suggestions for
@@ -1412,7 +1394,7 @@ 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:
@@ -1430,3 +1412,77 @@ 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