Guide, node Updating translation committishes..
@end ignore
+@include included/acknowledge.itexi
@include included/authors.itexi
@include included/helpus.itexi
@ref{Development}: for contributors and testers.
@item
-@ref{GSoC}: list of projects for Google Summer of Code.
+@ref{Google Summer of Code}: ideas for Google Summer of Code (GSoC).
@item
@ref{Authors}: the people who made LilyPond what it is today.
+@item
+@ref{Acknowledgements}: projects and institutions that support LilyPond
+
@end itemize
@divEnd
@ref{Publications}: what we wrote, and have had written about us.
@item
-@ref{Old news}: an archive.
+@ref{News}: news from the LilyPond project.
@item
@ref{Attic}: announcements and changelogs from past versions.
* Help us::
* Sponsoring::
* Development::
-* GSoC::
+* Google Summer of Code::
* Authors::
+* Acknowledgements::
* Publications::
-* Old news::
+* News::
* Attic::
@end menu
@divEnd
and add your own!
@example
-@uref{http://lsr.dsi.unimi.it}
+@uref{http://lsr.di.unimi.it}
@end example
Particularly instructive examples from LSR are included in our
@subsubheading Other languages
@quotation
-@uref{http://lists.gnu.org/mailman/listinfo/lilypond-es,
-Spanish mailing list}
+@uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
+French mailing list}
@uref{http://www.lilypondforum.de/,
German forum}
@uref{http://groups.google.com/group/lilypond-brasil,
Portuguese group}
-@uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
-French mailing list}
-
-@uref{http://www.lilypondforum.nl/,
-Dutch forum}
+@uref{http://lists.gnu.org/mailman/listinfo/lilypond-es,
+Spanish mailing list}
@end quotation
-
@divEnd
@divClass{column-right-top}
-@subheading Stay Informed
-
-@subsubheading LilyPond Report
+@subheading The LilyPond Blog
-The easiest way to keep touch is by reading our community
-newsletter, the LilyPond Report:
+Read our community blog, @q{Scores of Beauty}:
@example
-@uref{http://news.lilynet.net}
+@uref{http://lilypondblog.org}
@end example
@subsubheading Releases mailing list: @code{info-lilypond@@gnu.org}
@divClass{column-right-bottom}
-@subheading Developer Discussion
+@subheading Developer Discussions and Translations
@subsubheading Developer mailing list: @code{lilypond-devel@@gnu.org}
-Most developer discussion takes place on this list. Patches
-should be sent here.
+Developer discussions take place on this list. Patches can also be sent
+here.
@quotation
@uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
@subsubheading Bug mailing list: @code{bug-lilypond@@gnu.org}
-Bug-specific discussion takes place here.
+Bug reports and discussions should be sent here. Do not send patches
+to this list.
@quotation
@uref{http://lists.gnu.org/mailman/listinfo/bug-lilypond,
@warning{Before sending a message to the bug list, please read our
guidelines for @ref{Bug reports}.}
-@divEnd
-@divClass{column-right-bottom}
-@subheading Sensitive emails
+@subsubheading Translation mailing list: @code{translations@@lilynet.org}
+
+All discussions about translating LilyPond manuals should be sent here.
+Do not send patches to this list.
-Private matters should be sent to Graham Percival (project
-manager), who will discuss it with those concerned.
+@quotation
+@uref{http://lilypond-translations.3384276.n2.nabble.com/,
+Translation mailing list archive}
+@end quotation
@divEnd
We may already know about this bug. Check here:
@example
-@uref{http://code.google.com/p/lilypond/issues/list}
+@uref{http://sourceforge.net/p/testlilyissues/issues/}
@end example
@warning{Please @strong{DO NOT} add bug reports directly to the
Once your bug report has been sent to the list, our Bug Squad will
examine it; they may ask you for more information. You will be notified
-when the report will be added to the bug tracker. Please allow up to 4 days,
-as we have a limited number of volunteers for this task.
+when the report will be added to the bug tracker. Please allow up to 4
+days, as we have a limited number of volunteers for this task.
Once a bug has been added to the tracker, you can comment it to add
more information about it.
-You may also mark the bug so that you automatically receive emails when
-any activity on the bug occurs. This requires you have a google
-account.
+In order to be automatically notified about any activity on the
+tracker issue, you may subscribe by clicking the envelope
+symbol next to the issue title.
+Commenting and subscribing require being logged in with a sourceforge account.
@divEnd
@divClass{column-center-bottom}
Interested developers:
@table @asis
-@item @email{dak@@gnu.org, David Kastrup}
-Donations are required to let me continue my current fulltime work on
-LilyPond. I focus on user and programmer interface design, coherence,
-implementation, simplification, documentation, and debugging.
+@item @email{lilypond-devel@@gnu.org, LilyPond developer list}
+Since no developer currently is listed for commercial development,
+your best bet is asking on the developer list.
@c Format
@c @item @email{name@@adress.domain, Name}
@itemize
@item @uref{http://lilypond.org/test, Comparisons between regression tests}
-@item @uref{http://lilypond.org/download/binaries/test-output/,
+@item @uref{http://lilypond.org/downloads/binaries/test-output/,
Archive of all regression tests}
@end itemize
@divClass{normal-table}
@multitable @columnfractions .3 .3 .3
@headitem Introduction
+
@item
@docLinkSplit{Learning,learning,@manualDevelLearningSplit}
@tab
@docLinkBig{Essay,essay,@manualDevelEssayBig}
@tab
@docLinkPdf{Essay,essay,@manualDevelEssayPdf}
+@end multitable
+@multitable @columnfractions .3 .3 .3
@headitem Regular
@item
@docLinkBig{Snippets,snippets,@manualDevelSnippetsBig}
@tab
@docLinkPdf{Snippets,snippets,@manualDevelSnippetsPdf}
+@end multitable
+@multitable @columnfractions .3 .3 .3
@headitem Infrequent
@item
@docLinkBig{Internals,internals,@manualDevelInternalsBig}
@tab
@docLinkPdf{Internals,internals,@manualDevelInternalsPdf}
+@end multitable
@ifset web_version
+@multitable @columnfractions .3
@headitem Downloadable
@item
@doctarballDevel
+@end multitable
@end ifset
-@end multitable
@divEnd
@divEnd
-@node GSoC
-@unnumberedsec GSoC
+@node Google Summer of Code
+@unnumberedsec Google Summer of Code
@divClass{column-center-top}
@subheading What is Google Summer of Code?
-Quoting
-@uref{http://www.google-melange.com/gsoc/homepage/google/gsoc2012,
-GSoC website},
-@qq{Google Summer of Code is a global program that offers students
-stipends to write code for open source projects. Google has worked
-with the open source community to identify and fund exciting projects
-for the upcoming summer.}
+@uref{https://developers.google.com/open-source/gsoc/, GSoC} is a global
+program that offers students stipends to write code for free software
+and open source projects during the summer. It is an excellent
+opportunity for students to gain experience with real-world software
+development and make a contribution that benefits everyone. It brings
+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}.
-The LilyPond Team decided that this is an excellent opportunity to find
-new contributors, encourage students already participating in LilyPond
-development to become more involved, and - last but not least - write
-some great code for the benefit of all!
+We have had GSoC participants in 2012, 2015 and 2016 and encourage students
+to apply for future summers.
-We are participating in GSoC as a part of GNU Project. See
-@uref{http://www.gnu.org/software/soc-projects/guidelines.html,
-GNU GSoC webpage} for information on how to participate.
+If you have questions or would like to apply, send us an email on our
+developer mailing list (see @ref{Contact}).
@divEnd
-@divClass{column-center-bottom}
-@subheading Our Ideas List
+@divClass{column-center-middle-color2}
+@subheading Project Ideas List
-Below is a list of projects suggested for GSoC students. If you don't
-see a project that suits you, feel free to suggest your own!
-It's also possible to scale down a project if you feel it's too big.
+Below is a list of suggested projects for GSoC or for anyone who is
+interested in helping to improve LilyPond. (Last updated: November 2016)
-We require that every student has basic @code{git} knowledge, and
-recommend that everyone applying for projects other than the last one
-have basic music notation knowledge.
+Mentor availability varies from project to project and from year to year.
+Send us an email on our developer mailing list (see @ref{Contact}), and
+we will help you find a mentor for a project that fits your interests
+and skills.
-@subheading Grace notes
+If you have ideas for a GSoC project that is not listed below you can
+send us an email as well. There are a number of areas where LilyPond
+could be improved, and our development team is always willing to help
+those who would like to tackle a project like those listed below.
-Fix problems with synchronization of grace notes,
-together with all underlying architecture (see
-@uref{http://code.google.com/p/lilypond/issues/detail?id=34,
-issue 34 in our tracker}). Grace notes are confusing to LilyPond's
-timing because they're like going back in time. This causes weird
-effects, especially when one staff has a grace note and the other
-doesn't.
+A full list of all the current open issues can be found
+@uref{http://sourceforge.net/p/testlilyissues/issues/, here}.
-@strong{Difficulty:} medium
+@divEnd
-@strong{Requirements:} C++, MIDI
+@divClass{column-center-middle-color3}
+@subheading Improve internal chord structure
-@strong{Recommended:} familiarity with LilyPond internals
+The internal representation of LilyPond chords is not powerful enough
+to capture the nomenclature of jazz chords. Currently the chord has
+a root, a bass and an inversion. It would be nice to be able to handle
+stacked or polychords, minor/major, etc. In order to do this, an
+internal representation with the ability to capture the essence of
+complex chords must be developed. As a bonus, once the internal
+representation is developed, the output formatting of chord names can
+be improved.
-@strong{Mentor(s):} Mike Solomon, Carl Sorensen
+@strong{Difficulty:} Easy/medium
+@strong{Requirements:} Scheme (Guile), but the level necessary can be
+easily learned
+@strong{Recommended:} Chord theory and naming
+@strong{Mentor:} Carl Sorensen
-@subheading MusicXML
+@divEnd
-Adding comprehensive MusicXML export and improving import,
-together with tests checking that it works. Depending on time available,
-implement some or all of the following:
+@divClass{column-center-middle-color3}
+@subheading Adding variants of font glyphs
@divClass{keep-bullets}
@itemize
@item
-Handle basic musical content export like the MIDI export (i.e. using
-dedicated exporter classes, derived from the translator class)
-
-@item
-Build the XML tree of the basic musical content,
-add a connection from music event to XML tag
+Adding @q{on} and @q{between} staff-line variants.
@item
-Let all LilyPond engravers do their job
-
-@item
-Add ability to link each output object
-(basically each stencil / group of stencils) to the music cause
-(and thus to the XML tag in the XML tree)
-
-@item
-Add a XML output backend, which can then add the layout information
-for each output object to the XML tags
+Shorter and narrower variants of some glyphs for example, accidentals.
+Another, more specific example could be an ancient notation breve
+notehead coming in two variants one with a small or big @q{hole} within
+it.
@end itemize
@divEnd
-The goal will be considered achieved when a (previously chosen) score
-could be imported from MusicXML and exported back with no unintentional
-loss of data.
+@strong{Difficulty:} easy
+@strong{Requirements:} MetaFont, C++, good eye for details
+@strong{Recommended knowledge:} basic LilyPond knowledge
+@strong{Mentor:} Werner Lemberg
-@strong{Difficulty:} medium
+@divEnd
-@strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
+@divClass{column-center-middle-color3}
+@subheading Grace notes
-@strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon
+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.
-Familiarity with other scorewriters (for cross-testing) would be a nice
-bonus.
+@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
-@subheading Improve slurs and ties
+@divEnd
-The default shape of slur and tie curves is often unsatisfactory.
-Ties on enharmonic notes @code{@{ cis'~ des' @}} are not supported,
-ties "broken" by clef or staff change aren't supported well.
-The project includes collecting and sorting examples of bad output,
-deciding on the intended output and writing the actual code.
+@divClass{column-center-middle-color3}
+@subheading Improve default beam positioning
-@strong{Difficulty:} hard
+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.
+@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
-@strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
-
-@strong{Mentor(s):} Mike Solomon
-
-@subheading Adding special variant of font glyphs
-Adding on-staff-line, between-staff-line, shorter and narrower variants
-of some glyphs, for example accidentals, together with a generic
-infrastructure to support them. An example is ancient notation breve
-notehead coming in two variants, with smaller and bigger hole.
-
-@strong{Difficulty:} easy
-
-@strong{Requirements:} MetaFont, C++, good eye for details
-
-@strong{Recommended knowledge:} basic LilyPond knowledge
-
-@strong{Mentor(s):} Werner Lemberg
+@divEnd
-@subheading Improve beaming
+@divClass{column-center-middle-color3}
+@subheading Help improve compilation behavior
-Default positioning of regular, cross-staff, broken and kneed beams
-should be improved. Beaming should depend on context and neighbor notes
-(see @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
-section 2.2 here}). If possible, reduce beaming computation time.
+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
-@strong{Requirements:} C++, experience with writing heuristics
-
-@strong{Recommended knowledge:} aesthetic sense
+@divEnd
-@strong{Mentor(s):} Mike Solomon, Carl Sorensen
+@divClass{column-center-middle-color3}
+@subheading MusicXML
-@subheading Better tablature support
+Improving MusicXML import and export functions:
@divClass{keep-bullets}
@itemize
@item
-Non-monotonic string tunings, like Ukulele
+Handle basic musical content export like the MIDI export (i.e. using
+dedicated exporter classes, derived from the translator class).
+
+@item
+Build the XML tree of the basic musical content, add a connection from
+music event to XML tag.
@item
-Create tablature input mode (currently musical information is entered
-in western-common-music-notation-terms, i.e. @qq{a quarter f sharp note}
-and then converted to tablature) for transcribing medieval lute
-tablature
+Let all LilyPond engravers do their job.
@item
-Implement modern tablature features, such as bends, pull-off, hammer-on
+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
-If a fretboard shape is defined for a given chord, use this information
-when displaying the chord on the staff (and not just display a default
-chord shape)
+Add an XML output backend, which can then add layout information for
+each output object to the XML tags.
@end itemize
@divEnd
-@strong{Difficulty:} easy
-
-@strong{Requirements:} C++
+There are several possibilities for this project, including building upon
+the MusicXML export project from GSoC 2015.
-@strong{Recommended knowledge:} tablature notation familiarity
-
-@strong{Mentor(s):} Carl Sorensen
+@strong{Difficulty:} medium
+@strong{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge
+@strong{Potential Mentors:} Reinhold Kainhofer, Mike Solomon (both not
+available for GSoC 2016)
-@subheading Clean up various compilation warnings
+Familiarity with other scorewriters (for cross-testing) would also help.
-Clean up compiler warnings, static code analysis, and valgrind warnings.
-Automatic code analysis tools (warnings in @code{g++} and @code{clang})
-and analysis tools like valgrind memory leak detection and callgrind
-code profilers provide valuable information about possible flaws in C++
-code. Cleaning these warnings would allow us to automatically reject
-any patch which introduced extra warnings.
+@divEnd
-@strong{Difficulty:} medium
+@divClass{column-center-middle-color3}
+@subheading Improve slurs and ties
-@strong{Requirements:} C++
+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{Mentor(s):} Joe Neeman, Reinhold Kainhofer
+@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
-
-
@node Authors
@unnumberedsec Authors
@divEnd
@divEnd
+@node Acknowledgements
+@unnumberedsec Acknowledgements
+
+@divClass{column-center-top}
+@subheading Acknowledgements
+
+@divClass{keep-bullets}
+@acknowledgementsCurrent
+@divEnd
+@divEnd
@node Publications
@contactUsAbout{academic papers}
-@node Old news
-@unnumberedsec Old news
+@node News
+@unnumberedsec News
@divClass{heading-center}
@warning{Many old announcements and changelogs can be found in
@subheading Announcements
Announcements and news by version:
+@uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
@uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
@miscLink{announce-v2.12,v2.12},
@miscLink{announce-v2.10,v2.10},
@miscLink{ANNOUNCE-0.1,v0.1}
Descriptive list of changes by version:
+@uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
@uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
@uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
@uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
@divEnd
+@divClass{column-center-bottom}
+@subheading Thanks
+
+Thanks to developers, contributors, bug hunters and suggestions for
+@miscLink{THANKS-2.16,v2.16},
+@miscLink{THANKS-2.14,v2.14},
+@miscLink{THANKS-2.12,v2.12},
+@miscLink{THANKS-2.10,v2.10},
+@miscLink{THANKS-2.8,v2.8},
+@miscLink{THANKS-2.6,v2.6},
+@miscLink{THANKS-2.4,v2.4},
+@miscLink{THANKS-2.2,v2.2},
+@miscLink{THANKS-2.0,v2.0},
+@miscLink{THANKS-1.8,v1.8}
+
+@divEnd
+
@divClass{column-center-bottom}
@subheading Changelogs
-Developpers' changelogs by version:
+Developers' changelogs by version:
@miscLink{ChangeLog-2.10,v2.10},
@miscLink{ChangeLog-2.3,v2.3},
@miscLink{ChangeLog-2.1,v2.1},