]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/web/community.itexi
03a8ecaab4b55195e599dee6a555e1a57767a41a
[lilypond.git] / Documentation / web / community.itexi
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  For details, see the Contributors'
7     Guide, node Updating translation committishes..
8 @end ignore
9
10 @include included/acknowledge.itexi
11 @include included/authors.itexi
12 @include included/helpus.itexi
13
14 @node Community
15 @unnumbered Community
16
17 @divClass{link-headings}
18
19 @divClass{column-center-top}
20 @subheading Interacting with the community
21
22 @itemize
23
24 @item
25 @ref{Contact}: get help, discuss, and keep in touch!
26
27 @item
28 @ref{Tiny examples}: these are @emph{highly} recommended when
29 discussing LilyPond.
30
31 @item
32 @ref{Bug reports}: something went wrong.
33
34 @end itemize
35 @divEnd
36
37 @divClass{column-left-bottom}
38 @subheading Making LilyPond better
39
40 @itemize
41
42 @item
43 @ref{Help us}: your assistance is requested.
44
45 @item
46 @ref{Sponsoring}: financial contributions.
47
48 @item
49 @ref{Development}: for contributors and testers.
50
51 @item
52 @ref{Google Summer of Code}: ideas for Google Summer of Code (GSoC).
53
54 @item
55 @ref{Authors}: the people who made LilyPond what it is today.
56
57 @item
58 @ref{Acknowledgements}: projects and institutions that support LilyPond
59
60 @end itemize
61 @divEnd
62
63 @divClass{column-right-bottom}
64 @subheading Miscellaneous
65
66 @itemize
67
68 @item
69 @ref{Publications}: what we wrote, and have had written about us.
70
71 @item
72 @ref{News}: news from the LilyPond project.
73
74 @item
75 @ref{Attic}: announcements and changelogs from past versions.
76
77 @end itemize
78 @divEnd
79
80 @divEnd
81
82 @divClass{hide}
83 @menu
84 * Contact::
85 * Tiny examples::
86 * Bug reports::
87 * Help us::
88 * Sponsoring::
89 * Development::
90 * Google Summer of Code::
91 * Authors::
92 * Acknowledgements::
93 * Publications::
94 * News::
95 * Attic::
96 @end menu
97 @divEnd
98
99
100 @node Contact
101 @unnumberedsec Contact
102
103
104 @divClass{column-left-bottom}
105 @subheading User Discussions and Help
106
107 @subsubheading User mailing list: @code{lilypond-user@@gnu.org}
108
109 This mailing list is the main place for users to discuss and help
110 each other.
111
112 @quotation
113 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user,
114 lilypond-user subscribe and info}
115
116 @uref{http://lists.gnu.org/archive/html/lilypond-user/,
117 user archive1}
118 @uref{http://www.mail-archive.com/lilypond-user@@gnu.org/,
119 archive2}
120 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.general,
121 archive3}
122
123 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.general,
124 send to lilypond-user with gmane}
125 @end quotation
126
127 @warning{When asking questions, please use @ref{Tiny examples}!}
128
129 @subsubheading LilyPond Snippet Repository
130
131 The LilyPond Snippet Repository is a large collection of
132 user-submitted examples, which can freely be copied and used
133 in your own works.  See what other people have written,
134 and add your own!
135
136 @example
137 @uref{http://lsr.di.unimi.it}
138 @end example
139
140 Particularly instructive examples from LSR are included in our
141 official documentation, in @ref{Snippets}.
142
143
144 @subsubheading IRC
145
146 Some level of support is provided on our IRC channel,
147
148 @example
149 @uref{irc://irc.freenode.net/lilypond, #lilypond@@irc.freenode.net}
150 @end example
151
152 This channel has no public archive, so any question that may
153 be useful for others would better be posted to one of the mailing lists.
154
155 @html
156 <form action="http://webchat.freenode.net"
157       method="get"
158       name="f_lily_irc"
159   <label>irc name:
160     <input name="nick" type="text" size="15" value="">
161   </label>
162   <input name="channels" type="hidden" value="lilypond">
163   <input type="submit" value="Join #lilypond IRC Chat">
164 </form>
165
166 <script language="JavaScript" type="text/javascript">
167   var username = "web";
168   var lang = window.navigator.userLanguage ? window.navigator.userLanguage
169   : window.navigator.language;
170   username += '-' + lang.substr(0, 2);
171   username += '-' + navigator.appName.substr(0, 2);
172   username += navigator.appCodeName.replace (" ", "").substr(0, 2);
173   username += navigator.platform.replace (" ", "").replace("nux", "").replace("n32", "");
174   document.forms["f_lily_irc"].nick.value = username;
175 </script>
176 @end html
177
178 @subsubheading Other languages
179
180 @quotation
181 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
182 French mailing list}
183
184 @uref{http://www.lilypondforum.de/,
185 German forum}
186
187 @uref{http://groups.google.com/group/lilypond-brasil,
188 Portuguese group}
189
190 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-es,
191 Spanish mailing list}
192 @end quotation
193 @divEnd
194
195
196 @divClass{column-right-top}
197 @subheading The LilyPond Blog
198
199 Read our community blog, @q{Scores of Beauty}:
200
201 @example
202 @uref{http://lilypondblog.org}
203 @end example
204
205 @subsubheading Releases mailing list: @code{info-lilypond@@gnu.org}
206
207 This mailing list is a low-volume, read-only list which receives
208 notifications of new releases.
209
210 @quotation
211 @uref{http://lists.gnu.org/mailman/listinfo/info-lilypond,
212 info-lilypond subscribe and info}
213
214 @uref{http://lists.gnu.org/archive/html/info-lilypond/,
215 info archive1}
216 @uref{http://www.mail-archive.com/info-lilypond@@gnu.org/,
217 archive2}
218 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.announce,
219 archive3}
220
221 @c don't include gmane posting here.  -gp
222 @end quotation
223
224
225 @divEnd
226
227
228 @divClass{column-right-bottom}
229 @subheading Developer Discussions and Translations
230
231 @subsubheading Developer mailing list: @code{lilypond-devel@@gnu.org}
232
233 Developer discussions take place on this list. Patches can also be sent
234 here.
235
236 @quotation
237 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
238 lilypond-devel subscribe and info}
239
240 @uref{http://lists.gnu.org/archive/html/lilypond-devel/,
241 devel archive1}
242 @uref{http://www.mail-archive.com/lilypond-devel@@gnu.org/,
243 archive2}
244 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.devel,
245 archive3}
246
247 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.devel,
248 send to lilypond-devel with gmane}
249 @end quotation
250
251
252 @subsubheading Bug mailing list: @code{bug-lilypond@@gnu.org}
253
254 Bug reports and discussions should be sent here.  Do not send patches
255 to this list.
256
257 @quotation
258 @uref{http://lists.gnu.org/mailman/listinfo/bug-lilypond,
259 bug-lilypond subscribe and info}
260
261 @uref{http://lists.gnu.org/archive/html/bug-lilypond/,
262 bug archive1}
263 @uref{http://www.mail-archive.com/bug-lilypond@@gnu.org/,
264 archive2}
265 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.bugs,
266 archive3}
267
268 @c don't include gmane posting here.  -gp
269 @end quotation
270
271 @warning{Before sending a message to the bug list, please read our
272 guidelines for @ref{Bug reports}.}
273
274
275 @subsubheading Translation mailing list: @code{translations@@lilynet.org}
276
277 All discussions about translating LilyPond manuals should be sent here.
278 Do not send patches to this list.
279
280 @quotation
281 @uref{http://lilypond-translations.3384276.n2.nabble.com/,
282 Translation mailing list archive}
283 @end quotation
284
285 @divEnd
286
287
288 @node Tiny examples
289 @unnumberedsec Tiny examples
290
291 @divClass{column-center-top}
292 @subheading What are @qq{Tiny examples}?
293
294 A tiny example is an example from which @strong{nothing} can be removed.
295 @divEnd
296
297 @divClass{column-left-bottom}
298 @subheading Why create them?
299
300 @divClass{keep-bullets}
301 @itemize
302
303 @item
304 The simpler the example is, the quicker potential helpers can
305 understand it and help you.
306
307 @item
308 A tiny example demonstrates that you have put effort towards
309 solving the problem yourself.  When people send huge portions of
310 input, it looks like they don't care if we help them or not.
311
312 @item
313 Creating a tiny example helps you to understand what is
314 happening.  Many false problem reports can be avoided by
315 attempting to create a tiny example; if you cannot replicate a
316 @qq{bug} in a tiny example, then the problem was probably an
317 insufficient understanding of LilyPond, not an actual bug!
318
319 @end itemize
320 @divEnd
321
322 @divEnd
323
324
325 @divClass{column-right-bottom}
326 @subheading How to create them?
327
328 @divClass{keep-bullets}
329 @itemize
330
331 @item
332 Include the @code{\version} number.
333
334 @item
335 Make it small!  Examples about spacing or page layout might
336 require many bars of music, but most issues can be reproduced
337 using less than a single measure.
338
339 @item
340 When trying to create an example, try commenting out @w{(@code{%}
341 or @code{%@{ @dots{} %@}})} sections of your file.  If you
342 can comment something while still demonstrating the main idea,
343 then remove the commented-material.
344
345 @item
346 Avoid using complicated notes, keys or time signatures, unless
347 the bug is about the behavior of those items.
348
349 @item
350 Do not use @code{\override} or @code{\set} commands unless the bug
351 is about those specific commands.
352
353 @item
354 Optionally, attach an image showing the desired graphical output.
355
356 @end itemize
357 @divEnd
358
359 @divEnd
360
361 @divClass{column-center-bottom}
362 @subheading How tiny should they be?
363
364 Is the code below a minimal example?
365
366 @example
367 \version "2.14.1"
368 \include "english.ly"
369
370 \score @{
371   \new Staff @{
372     \key d \major
373     \numericTimeSignature
374     \time 2/4
375     <cs' d'' b''>16 <cs' d'' b''>8.
376     %% Here: the tie on the D's looks funny
377     %% Too tall? Left-hand endpoint is not aligned with the B tie?
378     ~
379     <cs' d'' b''>8 [ <b d'' a''> ]
380   @}
381 @}
382 @end example
383
384 Well, it is not very big, but a truly minimal example is here:
385
386 @example
387 \version "2.14.1"
388 @{
389   % middle tie looks funny here:
390   <c' d'' b''>8. ~ <c' d'' b''>8
391 @}
392 @end example
393
394 Very few tiny examples exceed 10 lines of code -
395 quite often 4 lines are enough to demonstrate the problem!
396
397 @divEnd
398
399
400 @node Bug reports
401 @unnumberedsec Bug reports
402
403
404 @divClass{heading-center}
405 If you have input that results in a crash or wrong output,
406 then that is a bug.
407 @divEnd
408
409 @divClass{column-center-top}
410 @subheading Step 1: Known bugs
411
412 We may already know about this bug.  Check here:
413
414 @example
415 @uref{http://sourceforge.net/p/testlilyissues/issues/}
416 @end example
417
418 @warning{Please @strong{DO NOT} add bug reports directly to the
419 bug tracker.  Once an issue has been added to the tracker, feel
420 free to add more information to that report.}
421
422 @divEnd
423
424
425 @divClass{column-left-bottom}
426 @subheading Step 2: Creating a bug report
427
428 If you have discovered a bug which is not listed,
429 please help us by creating a bug report.
430
431 @warning{We only accept reports in the form of
432 @ref{Tiny examples}.  We have very limited resources,
433 so any non-minimal example will be rejected.  Almost
434 every bug can be demonstrated in four notes or less!}
435
436 Here is an example of a good bug report:
437
438 @example
439 % Accidentals should be printed for only
440 % the first note in a tie, but this version
441 % prints flats on both notes.
442 \version "2.10.1"
443
444 \relative c'' @{
445  bes1 ~
446  bes1
447 @}
448 @end example
449
450 @divEnd
451
452 @divClass{column-right-bottom}
453 @subheading Step 3: Sending a bug report
454
455 Once you have verified that the issue is not already known and
456 created a bug report, please send it to us!
457
458 @divClass{keep-bullets}
459 @itemize
460
461 @item
462 If you are subscribed to the @uref{mailto:bug-lilypond@@gnu.org,
463 bug-lilypond@@gnu.org} mailing list, send an email like normal.
464
465 @item
466 If you are not subscribed, you can still post a bug report with
467 the
468 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs,
469 gmane lilypond.bugs web interface}.
470
471 However, there is a strict @qq{no top-posting} check on the gmane
472 interface, which is often incorrectly triggered by lilypond files.
473 To avoid this, please add:
474
475 @example
476 > I'm not top posting.
477 @end example
478
479 @noindent
480 (you @emph{must} include the @code{>} ) to the top of your bug
481 report.
482
483 @end itemize
484 @divEnd
485 @divEnd
486
487 @divClass{column-center-bottom}
488 @subheading Step 4: Wait for a response
489
490 Once your bug report has been sent to the list, our Bug Squad will
491 examine it; they may ask you for more information.  You will be notified
492 when the report will be added to the bug tracker.  Please allow up to 4
493 days, as we have a limited number of volunteers for this task.
494
495 Once a bug has been added to the tracker, you can comment it to add
496 more information about it.
497 You may also mark the bug so that you automatically receive emails when
498 any activity on the bug occurs.  This requires you have a google account
499 login.
500 @divEnd
501
502 @divClass{column-center-bottom}
503 @subheading Optional help: show the desired behavior
504
505 Once an issue has been added to the tracker, it can be very
506 helpful if we can see the desired output.  Feel free to add input
507 code and/or images (possibly created with other tools) which
508 demonstrate what you think it should look like!
509
510 @divEnd
511
512
513
514 @node Help us
515 @unnumberedsec Help us
516
517 @divClass{column-center-top}
518 @helpusNeed
519
520 @divEnd
521
522 @divClass{column-left-top}
523 @divClass{keep-bullets}
524 @helpusSimple
525
526 @divEnd
527 @divEnd
528
529 @divClass{column-right-top}
530 @helpusAdvanced
531
532 @divEnd
533
534
535 @node Sponsoring
536 @unnumberedsec Sponsoring
537
538 @divClass{keep-bullets}
539 @divClass{column-left-top}
540 @subheading Bounties
541
542 In the past,
543
544 @itemize
545 @item some users have paid for new features
546 @item some developers have added new features for hire
547 @end itemize
548
549 The LilyPond project does not organize such efforts; we neither
550 endorse nor discourage such agreements.  Any contracts between
551 private individuals is the business of those individuals, not
552 ours.
553
554 @divEnd
555
556 @divClass{column-right-top}
557 @subheading Guidelines
558
559 Any user wanting to offer money in exchange for work should bear
560 in mind the following points:
561
562 @itemize
563 @item
564 LilyPond developers may advertise their services on the lilypond
565 email lists from time to time.
566
567 @item
568 Any agreements between private individuals should include the
569 normal precautions when conducting business: who pays, how much do
570 they pay, with what method of payment, and upon what set of
571 conditions.  We suggest that any ambiguity or uncertainty in these
572 questions should be resolved before any work begins.
573
574 @end itemize
575
576 @divEnd
577
578 @divClass{column-center-bottom}
579 @subheading Interested developers
580
581 Here is a list of people who have expressed an interest in
582 bounties.  Note that the amount of work done by individuals varies
583 quite a bit throughout the years.  We do not guarantee that this
584 list is up-to-date, nor do we guarantee that the people listed
585 here have any ability.  The only criteria is "XYZ asked to be
586 listed on this page".
587
588 Looking at the git history is a good way to determine who the most
589 active and experienced developers are.  Statistics up to version
590 @versionDevel{}:
591
592 @multitable @columnfractions .3 .3 .3
593 @item @uref{http://lilypond.org/~graham/gitstats-all/, overall history}
594 @tab @uref{http://lilypond.org/~graham/gitstats-1year/, past year}
595 @tab @uref{http://lilypond.org/~graham/gitstats-3months/, past three months}
596 @end multitable
597
598 Interested developers:
599 @table @asis
600 @item @email{lilypond-devel@@gnu.org, LilyPond developer list}
601 Since no developer currently is listed for commercial development,
602 your best bet is asking on the developer list.
603
604 @c Format
605 @c @item @email{name@@adress.domain, Name}
606 @c area of interest (256 chars max)
607
608 @end table
609
610 @divEnd
611 @divEnd
612
613
614 @node Development
615 @unnumberedsec Development
616
617 @divClass{heading-center}
618 @ifclear web_version
619   @heading Development for LilyPond @version
620 @end ifclear
621 @ifset web_version
622   @heading Development for LilyPond @versionDevel
623 @end ifset
624
625
626 @c we normally don't allow named references, but in this case
627 @c it's good to emphasize the "stable" part.  -gp
628 @warning{These are @emph{unstable development} versions.  If you
629 have the slightest doubt about how to use or install LilyPond, we
630 urge you to use the @ref{Download, stable Download}, and read the
631 @ref{Manuals, stable Manuals}.}
632
633 @divEnd
634
635 @divClass{column-center-top}
636 @subheading Release numbers
637
638 There are two sets of releases for LilyPond: stable releases, and
639 unstable development releases.  Stable versions have an
640 even-numbered @q{minor} version number (e.g., 2.8, 2.10, 2.12).
641 Development versions have an odd-numbered @q{minor} version number
642 (e.g., 2.7, 2.9, 2.11).
643
644 @divEnd
645
646
647 @divClass{column-left-top}
648 @subheading Download
649
650 Instructions for git and compiling are in the Contributor's Guide.
651
652 @quotation
653 @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git, lilypond git repository}
654 @end quotation
655
656 Documentation writers and testers will generally want to download
657 the latest binary:
658
659 @quotation
660
661 @downloadDevelLinuxNormal
662
663 @downloadDevelLinuxBig
664
665 @downloadDevelLinuxPPC
666
667 @downloadDevelFreeBSDNormal
668
669 @downloadDevelFreeBSDBig
670
671 @downloadDevelDarwinNormal
672
673 @downloadDevelDarwinPPC
674
675 @downloadDevelWindows
676
677 @downloadDevelSource
678
679 @end quotation
680
681 @divEnd
682
683
684 @divClass{column-right-top}
685 @subheading Contributor's Guide
686
687 LilyPond development is a fairly complicated matter.  In order to
688 help new contributors, and to keep the whole system (mostly)
689 stable, we have written a manual for development tasks.
690
691 @docLinksBare{Contributor's Guide, contributor,
692   @rcontribnamed{Top,Contributor's Guide},
693   @manualDevelContributorSplit,
694   @manualDevelContributorBig, 500 kB,
695   @manualDevelContributorPdf, 2.8 MB}
696
697 @divEnd
698
699
700 @divClass{column-center-top}
701 @subheading Regression tests
702
703 @divClass{keep-bullets}
704
705 @ifclear web_version
706
707 @itemize
708 @item
709 @uref{../../input/regression/collated-files.html, Regression tests}:
710 This release's regtests.
711 (@uref{../../input/regression/collated-files.pdf, pdf version})
712
713 @item
714 @uref{../../input/regression/musicxml/collated-files.html, MusicXML tests}:
715 This release's musicXML tests.
716 (@uref{../../input/regression/musicxml/collated-files.pdf, pdf version})
717
718 @item
719 @uref{../../input/regression/abc2ly/collated-files.html, abc2ly tests}:
720 This release's abc2ly tests.
721 (@uref{../../input/regression/abc2ly/collated-files.pdf, pdf version})
722
723 @item
724 @uref{../../input/regression/lilypond-book/collated-files.html, lilypond-book tests}:
725 This release's lilypond-book tests.
726 (@uref{../../input/regression/lilypond-book/collated-files.pdf, pdf version})
727 @end itemize
728
729 @end ifclear
730
731 @ifset web_version
732 @subsubheading Development version
733
734 @itemize
735 @item @regtestDevel (@regtestDevelPdf{})
736
737 @item @regtestDevelXml (@regtestDevelXmlPdf{})
738
739 @item @regtestDevelAbc (@regtestDevelAbcPdf{})
740
741 @item @regtestDevelLilypondBook (@regtestDevelLilypondBookPdf{})
742 @end itemize
743
744 @subsubheading Stable version
745
746 @itemize
747 @item @regtestStable (@regtestStablePdf{})
748
749 @item @regtestStableXml (@regtestStableXmlPdf{})
750
751 @item @regtestStableAbc (@regtestStableAbcPdf{})
752
753 @item @regtestStableLilypondBook (@regtestStableLilypondBookPdf{})
754 @end itemize
755 @end ifset
756
757
758 @subsubheading All versions
759
760 @itemize
761 @item @uref{http://lilypond.org/test, Comparisons between regression tests}
762
763 @item @uref{http://lilypond.org/downloads/binaries/test-output/,
764 Archive of all regression tests}
765
766 @end itemize
767
768 @divEnd
769 @divEnd
770
771
772
773 @divClass{column-center-bottom}
774 @subheading Manuals
775
776 @ifclear web_version
777 @warning{These manuals are for LilyPond @version{}; the latest
778 manuals can be found at @url{http://lilypond.org}}
779 @end ifclear
780
781 @divClass{normal-table}
782 @multitable @columnfractions .3 .3 .3
783 @headitem Introduction
784
785 @item
786 @docLinkSplit{Learning,learning,@manualDevelLearningSplit}
787 @tab
788 @docLinkBig{Learning,learning,@manualDevelLearningBig}
789 @tab
790 @docLinkPdf{Learning,learning,@manualDevelLearningPdf}
791
792 @item
793 @docLinkSplit{Glossary,music-glossary,@manualDevelGlossarySplit}
794 @tab
795 @docLinkBig{Glossary,music-glossary,@manualDevelGlossaryBig}
796 @tab
797 @docLinkPdf{Glossary,music-glossary,@manualDevelGlossaryPdf}
798
799 @item
800 @docLinkSplit{Essay,essay,@manualDevelEssaySplit}
801 @tab
802 @docLinkBig{Essay,essay,@manualDevelEssayBig}
803 @tab
804 @docLinkPdf{Essay,essay,@manualDevelEssayPdf}
805 @end multitable
806
807 @multitable @columnfractions .3 .3 .3
808 @headitem Regular
809
810 @item
811 @docLinkSplit{Notation,notation,@manualDevelNotationSplit}
812 @tab
813 @docLinkBig{Notation,notation,@manualDevelNotationBig}
814 @tab
815 @docLinkPdf{Notation,notation,@manualDevelNotationPdf}
816
817 @item
818 @docLinkSplit{Usage,usage,@manualDevelUsageSplit}
819 @tab
820 @docLinkBig{Usage,usage,@manualDevelUsageBig}
821 @tab
822 @docLinkPdf{Usage,usage,@manualDevelUsagePdf}
823
824 @item
825 @docLinkSplit{Snippets,snippets,@manualDevelSnippetsSplit}
826 @tab
827 @docLinkBig{Snippets,snippets,@manualDevelSnippetsBig}
828 @tab
829 @docLinkPdf{Snippets,snippets,@manualDevelSnippetsPdf}
830 @end multitable
831
832 @multitable @columnfractions .3 .3 .3
833 @headitem Infrequent
834
835 @item
836 @docLinkSplit{Web,web,@manualDevelWebSplit}
837 @tab
838 @docLinkBig{Web,web,@manualDevelWebBig}
839 @tab
840 @docLinkPdf{Web,web,@manualDevelWebPdf}
841
842 @item
843 @docLinkSplit{Changes,changes,@manualDevelChangesSplit}
844 @tab
845 @docLinkBig{Changes,changes,@manualDevelChangesBig}
846 @tab
847 @docLinkPdf{Changes,changes,@manualDevelChangesPdf}
848
849 @item
850 @docLinkSplit{Extending,extending,@manualDevelExtendingSplit}
851 @tab
852 @docLinkBig{Extending,extending,@manualDevelExtendingBig}
853 @tab
854 @docLinkPdf{Extending,extending,@manualDevelExtendingPdf}
855
856 @item
857 @docLinkSplit{Internals,internals,@manualDevelInternalsSplit}
858 @tab
859 @docLinkBig{Internals,internals,@manualDevelInternalsBig}
860 @tab
861 @docLinkPdf{Internals,internals,@manualDevelInternalsPdf}
862 @end multitable
863
864 @ifset web_version
865 @multitable @columnfractions .3
866 @headitem Downloadable
867
868 @item
869 @doctarballDevel
870 @end multitable
871 @end ifset
872
873
874 @divEnd
875 @divEnd
876
877
878
879
880 @node Google Summer of Code
881 @unnumberedsec Google Summer of Code
882
883 @divClass{column-center-top}
884 @subheading What is Google Summer of Code?
885
886 @uref{https://developers.google.com/open-source/gsoc/, GSoC} is a global
887 program that offers students stipends to write code for free software
888 and open source projects during the summer.  It is an excellent
889 opportunity for students to gain experience with real-world software
890 development and make a contribution that benefits everyone.  It brings
891 new contributors to LilyPond and enables students who are already
892 involved to become more involved.  LilyPond participates in GSoC as part
893 of the @uref{http://www.gnu.org/, GNU project}.
894
895 We have had GSoC participants in 2012, 2015 and 2016 and encourage students
896 to apply for future summers.
897
898 If you have questions or would like to apply, send us an email on our
899 developer mailing list (see @ref{Contact}).
900
901 @divEnd
902
903 @divClass{column-center-middle-color2}
904 @subheading Project Ideas List
905
906 Below is a list of suggested projects for GSoC or for anyone who is
907 interested in helping to improve LilyPond. (Last updated: November 2016)
908
909 Mentor availability varies from project to project and from year to year.
910 Send us an email on our developer mailing list (see @ref{Contact}), and
911 we will help you find a mentor for a project that fits your interests
912 and skills.
913
914 If you have ideas for a GSoC project that is not listed below you can
915 send us an email as well.  There are a number of areas where LilyPond
916 could be improved, and our development team is always willing to help
917 those who would like to tackle a project like those listed below.
918
919 A full list of all the current open issues can be found
920 @uref{http://sourceforge.net/p/testlilyissues/issues/, here}.
921
922 @divEnd
923
924 @divClass{column-center-middle-color3}
925 @subheading Improve internal chord structure
926
927 The internal representation of LilyPond chords is not powerful enough
928 to capture the nomenclature of jazz chords.  Currently the chord has
929 a root, a bass and an inversion.  It would be nice to be able to handle
930 stacked or polychords, minor/major, etc.  In order to do this, an
931 internal representation with the ability to capture the essence of
932 complex chords must be developed.  As a bonus, once the internal
933 representation is developed, the output formatting of chord names can
934 be improved.
935
936 @strong{Difficulty:} Easy/medium
937 @strong{Requirements:} Scheme (Guile), but the level necessary can be
938 easily learned
939 @strong{Recommended:} Chord theory and naming
940 @strong{Mentor:} Carl Sorensen
941
942 @divEnd
943
944 @divClass{column-center-middle-color3}
945 @subheading Adding variants of font glyphs
946
947 @divClass{keep-bullets}
948 @itemize
949
950 @item
951 Adding @q{on} and @q{between} staff-line variants.
952
953 @item
954 Shorter and narrower variants of some glyphs for example, accidentals.
955 Another, more specific example could be an ancient notation breve
956 notehead coming in two variants one with a small or big @q{hole} within
957 it.
958
959 @end itemize
960 @divEnd
961
962 @strong{Difficulty:} easy
963 @strong{Requirements:} MetaFont, C++, good eye for details
964 @strong{Recommended knowledge:} basic LilyPond knowledge
965 @strong{Mentor:} Werner Lemberg
966
967 @divEnd
968
969 @divClass{column-center-middle-color3}
970 @subheading Grace notes
971
972 Fix problems with synchronization of grace notes.  Grace notes can
973 interfere with LilyPond's timing and cause odd effects, especially when
974 multiple staffs are used where some have grace notes and others don't.
975 This is one of the longest-standing and one of the more embarrassing
976 @uref{https://sourceforge.net/p/testlilyissues/issues/34/,bugs} in
977 LilyPond.
978
979 @strong{Difficulty:} medium
980 @strong{Requirements:} C++, MIDI
981 @strong{Recommended:} familiarity with LilyPond internals
982 @strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
983 Carl Sorensen
984
985 @divEnd
986
987 @divClass{column-center-middle-color3}
988 @subheading Improve default beam positioning
989
990 For regular, cross-staff, broken and kneed beams.  Beaming should depend
991 on context and neighbor notes (see section 2.2 of
992 @uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon%2C_Jean-Pierre%29,
993 this book}).  If possible also reduce beaming-computation time.
994
995 @strong{Difficulty:} medium
996 @strong{Requirements:} C++, experience with writing heuristics
997 @strong{Recommended knowledge:} aesthetic sense
998 @strong{Potential Mentors:} Mike Solomon (not available for GSoC 2016),
999 Carl Sorensen
1000
1001 @divEnd
1002
1003 @divClass{column-center-middle-color3}
1004 @subheading Help improve compilation behavior
1005
1006 Automatic code analysis tools, like valgrind memory leak detection or
1007 callgrind code profilers, provide valuable information about possible
1008 flaws in our C++ code.  Cleaning up warnings would allow us to automate
1009 the rejection of any patch which introduced extra warnings.
1010
1011 @strong{Difficulty:} medium
1012 @strong{Requirements:} C++
1013 @strong{Potential Mentors:} Reinhold Kainhofer (not available for GSoC
1014 2016), Joe Neeman
1015
1016 @divEnd
1017
1018 @divClass{column-center-middle-color3}
1019 @subheading MusicXML
1020
1021 Improving MusicXML import and export functions:
1022
1023 @divClass{keep-bullets}
1024 @itemize
1025
1026 @item
1027 Handle basic musical content export like the MIDI export (i.e. using
1028 dedicated exporter classes, derived from the translator class).
1029
1030 @item
1031 Build the XML tree of the basic musical content, add a connection from
1032 music event to XML tag.
1033
1034 @item
1035 Let all LilyPond engravers do their job.
1036
1037 @item
1038 Link each output object (i.e. each stencil or group of stencils) to the
1039 music cause (and thus to the XML tag in the XML tree).
1040
1041 @item
1042 Add an XML output backend, which can then add layout information for
1043 each output object to the XML tags.
1044
1045 @end itemize
1046 @divEnd
1047
1048 There are several possibilities for this project, including building upon
1049 the MusicXML export project from GSoC 2015.
1050
1051 @strong{Difficulty:} medium
1052 @strong{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge
1053 @strong{Potential Mentors:} Reinhold Kainhofer, Mike Solomon (both not
1054 available for GSoC 2016)
1055
1056 Familiarity with other scorewriters (for cross-testing) would also help.
1057
1058 @divEnd
1059
1060 @divClass{column-center-middle-color3}
1061 @subheading Improve slurs and ties
1062
1063 The engraving quality of slurs and ties is often unsatisfactory. Ties
1064 @q{broken} by clef or staff changes are not handled well.  The project
1065 could include collecting and sorting examples of bad output, deciding on
1066 the intended output and writing code to improve them.
1067
1068 @strong{Difficulty:} hard
1069 @strong{Requirements:} C++, experience with writing heuristics
1070 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
1071 @strong{Potential Mentors:} Mike Solomon, Janek WarchoĊ‚ (both not available for
1072 GSoC 2016)
1073
1074 @divEnd
1075
1076
1077 @node Authors
1078 @unnumberedsec Authors
1079
1080 @divClass{column-left-top}
1081 @subheading Current Development Team
1082
1083 @divClass{keep-bullets}
1084 @developersCurrent
1085 @divEnd
1086 @divEnd
1087
1088 @divClass{column-right-top}
1089 @subheading Previous Development Team
1090
1091 @divClass{keep-bullets}
1092 @developersPrevious
1093 @divEnd
1094 @divEnd
1095
1096
1097 @divClass{column-center-top}
1098 @subheading Current Contributors
1099
1100 @divClass{keep-bullets}
1101 @subsubheading Programming
1102
1103 @coreCurrent
1104
1105 @subsubheading Font
1106
1107 @fontCurrent
1108
1109 @subsubheading Documentation
1110
1111 @docCurrent
1112
1113 @subsubheading Bug squad
1114
1115 @bugsquadCurrent
1116
1117 @subsubheading Support
1118
1119 @supportCurrent
1120
1121 @subsubheading Translation
1122
1123 @translationsCurrent
1124
1125 @divEnd
1126 @divEnd
1127
1128
1129 @divClass{column-center-bottom}
1130 @subheading Previous Contributors
1131
1132 @divClass{keep-bullets}
1133 @subsubheading Programming
1134
1135 @corePrevious
1136
1137 @subsubheading Font
1138
1139 @fontPrevious
1140
1141 @subsubheading Documentation
1142
1143 @docPrevious
1144
1145 @c    uncomment when we have any previous members -gp
1146 @c @subsubheading Bug squad
1147
1148 @c @bugsquadCurrent
1149
1150 @subsubheading Support
1151
1152 @supportPrevious
1153
1154 @subsubheading Translation
1155
1156 @translationsPrevious
1157
1158 @divEnd
1159 @divEnd
1160
1161 @node Acknowledgements
1162 @unnumberedsec Acknowledgements
1163
1164 @divClass{column-center-top}
1165 @subheading Acknowledgements
1166
1167 @divClass{keep-bullets}
1168 @acknowledgementsCurrent
1169 @divEnd
1170 @divEnd
1171
1172
1173 @node Publications
1174 @unnumberedsec Publications
1175
1176 @divClass{column-center-top}
1177 @subheading What we wrote about LilyPond
1178
1179 @divClass{keep-bullets}
1180
1181 @include we-wrote.itexi
1182
1183 @divEnd
1184 @divEnd
1185
1186 @divClass{column-center-bottom}
1187 @subheading What people did with LilyPond
1188
1189 @divClass{keep-bullets}
1190
1191 @include others-did.itexi
1192
1193 @divEnd
1194 @divEnd
1195
1196 @contactUsAbout{academic papers}
1197
1198
1199 @node News
1200 @unnumberedsec News
1201
1202 @divClass{heading-center}
1203 @warning{Many old announcements and changelogs can be found in
1204 the @ref{Attic}}
1205 @divEnd
1206
1207 @include web/news-front.itexi
1208
1209 @include web/news.itexi
1210
1211
1212 @node Attic
1213 @unnumberedsec Attic
1214
1215 @divClass{column-center-top}
1216 @subheading Announcements
1217
1218 Announcements and news by version:
1219 @uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
1220 @uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
1221 @miscLink{announce-v2.12,v2.12},
1222 @miscLink{announce-v2.10,v2.10},
1223 @miscLink{announce-v2.8,v2.8},
1224 @miscLink{announce-v2.6,v2.6},
1225 @miscLink{announce-v2.4,v2.4},
1226 @miscLink{announce-v2.2,v2.2},
1227 @miscLink{announce-v2.0,v2.0},
1228 @miscLink{ANNOUNCE-1.2,v1.2},
1229 @miscLink{ANNOUNCE-1.0,v1.0},
1230 @miscLink{ANNOUNCE-0.1,v0.1}
1231
1232 Descriptive list of changes by version:
1233 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
1234 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
1235 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
1236 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
1237 @uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS,v2.8},
1238 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS,v2.6},
1239 @uref{http://lilypond.org/doc/v2.4/Documentation/topdocs/out-www/NEWS,v2.4},
1240 @uref{http://lilypond.org/doc/v2.2/Documentation/topdocs/out-www/NEWS,v2.2},
1241 @uref{http://lilypond.org/doc/v2.0/Documentation/topdocs/out-www/NEWS,v2.0},
1242 @uref{http://lilypond.org/doc/v1.8/Documentation/topdocs/out-www/NEWS,v1.8},
1243 @uref{http://lilypond.org/doc/v1.6/Documentation/out-www/NEWS,v1.6},
1244 @miscLink{NEWS-1.4,v1.4},
1245 @miscLink{NEWS-1.2,v1.2}
1246
1247 @divEnd
1248
1249 @divClass{column-center-bottom}
1250 @subheading Thanks
1251
1252 Thanks to developers, contributors, bug hunters and suggestions for
1253 @miscLink{THANKS-2.16,v2.16},
1254 @miscLink{THANKS-2.14,v2.14},
1255 @miscLink{THANKS-2.12,v2.12},
1256 @miscLink{THANKS-2.10,v2.10},
1257 @miscLink{THANKS-2.8,v2.8},
1258 @miscLink{THANKS-2.6,v2.6},
1259 @miscLink{THANKS-2.4,v2.4},
1260 @miscLink{THANKS-2.2,v2.2},
1261 @miscLink{THANKS-2.0,v2.0},
1262 @miscLink{THANKS-1.8,v1.8}
1263
1264 @divEnd
1265
1266 @divClass{column-center-bottom}
1267 @subheading Changelogs
1268
1269 Developers' changelogs by version:
1270 @miscLink{ChangeLog-2.10,v2.10},
1271 @miscLink{ChangeLog-2.3,v2.3},
1272 @miscLink{ChangeLog-2.1,v2.1},
1273 @miscLink{ChangeLog-1.5,v1.5 (1)},
1274 @miscLink{CHANGES-1.5,v1.5 (2)},
1275 @miscLink{CHANGES-1.4,v1.4},
1276 @miscLink{CHANGES-1.3,v1.3},
1277 @miscLink{CHANGES-1.2,v1.2},
1278 @miscLink{CHANGES-1.1,v1.1},
1279 @miscLink{CHANGES-1.0,v1.0},
1280 @miscLink{CHANGES-0.1,v0.1},
1281 @miscLink{CHANGES-0.0,v0.0}
1282
1283 @divEnd