]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/web/community.itexi
70362a5d276b39fb3c7c516ab8ca355debf3fe0e
[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{GSoC 2012}: our ideas for 2012 edition of Google Summer of Code.
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{Old news}: an archive.
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 * GSoC 2012::
91 * Authors::
92 * Acknowledgements::
93 * Publications::
94 * Old 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-es,
182 Spanish 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-user-fr,
191 French mailing list}
192
193 @uref{http://www.lilypondforum.nl/,
194 Dutch forum}
195 @end quotation
196
197 @divEnd
198
199
200 @divClass{column-right-top}
201 @subheading Stay Informed
202
203 @subsubheading LilyPond Report
204
205 The easiest way to keep touch is by reading our community
206 newsletter, the LilyPond Report:
207
208 @example
209 @uref{http://news.lilynet.net}
210 @end example
211
212 @subsubheading Releases mailing list: @code{info-lilypond@@gnu.org}
213
214 This mailing list is a low-volume, read-only list which receives
215 notifications of new releases.
216
217 @quotation
218 @uref{http://lists.gnu.org/mailman/listinfo/info-lilypond,
219 info-lilypond subscribe and info}
220
221 @uref{http://lists.gnu.org/archive/html/info-lilypond/,
222 info archive1}
223 @uref{http://www.mail-archive.com/info-lilypond@@gnu.org/,
224 archive2}
225 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.announce,
226 archive3}
227
228 @c don't include gmane posting here.  -gp
229 @end quotation
230
231
232 @divEnd
233
234
235 @divClass{column-right-bottom}
236 @subheading Developer Discussion
237
238 @subsubheading Developer mailing list: @code{lilypond-devel@@gnu.org}
239
240 Most developer discussion takes place on this list.  Patches
241 should be sent here.
242
243 @quotation
244 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
245 lilypond-devel subscribe and info}
246
247 @uref{http://lists.gnu.org/archive/html/lilypond-devel/,
248 devel archive1}
249 @uref{http://www.mail-archive.com/lilypond-devel@@gnu.org/,
250 archive2}
251 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.devel,
252 archive3}
253
254 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.devel,
255 send to lilypond-devel with gmane}
256 @end quotation
257
258
259 @subsubheading Bug mailing list: @code{bug-lilypond@@gnu.org}
260
261 Bug-specific discussion takes place here.
262
263 @quotation
264 @uref{http://lists.gnu.org/mailman/listinfo/bug-lilypond,
265 bug-lilypond subscribe and info}
266
267 @uref{http://lists.gnu.org/archive/html/bug-lilypond/,
268 bug archive1}
269 @uref{http://www.mail-archive.com/bug-lilypond@@gnu.org/,
270 archive2}
271 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.bugs,
272 archive3}
273
274 @c don't include gmane posting here.  -gp
275 @end quotation
276
277 @warning{Before sending a message to the bug list, please read our
278 guidelines for @ref{Bug reports}.}
279
280 @divEnd
281
282 @divClass{column-right-bottom}
283 @subheading Sensitive emails
284
285 Private matters should be sent to Graham Percival (project
286 manager), who will discuss it with those concerned.
287
288 @divEnd
289
290
291 @node Tiny examples
292 @unnumberedsec Tiny examples
293
294 @divClass{column-center-top}
295 @subheading What are @qq{Tiny examples}?
296
297 A tiny example is an example from which @strong{nothing} can be removed.
298 @divEnd
299
300 @divClass{column-left-bottom}
301 @subheading Why create them?
302
303 @divClass{keep-bullets}
304 @itemize
305
306 @item
307 The simpler the example is, the quicker potential helpers can
308 understand it and help you.
309
310 @item
311 A tiny example demonstrates that you have put effort towards
312 solving the problem yourself.  When people send huge portions of
313 input, it looks like they don't care if we help them or not.
314
315 @item
316 Creating a tiny example helps you to understand what is
317 happening.  Many false problem reports can be avoided by
318 attempting to create a tiny example; if you cannot replicate a
319 @qq{bug} in a tiny example, then the problem was probably an
320 insufficient understanding of LilyPond, not an actual bug!
321
322 @end itemize
323 @divEnd
324
325 @divEnd
326
327
328 @divClass{column-right-bottom}
329 @subheading How to create them?
330
331 @divClass{keep-bullets}
332 @itemize
333
334 @item
335 Include the @code{\version} number.
336
337 @item
338 Make it small!  Examples about spacing or page layout might
339 require many bars of music, but most issues can be reproduced
340 using less than a single measure.
341
342 @item
343 When trying to create an example, try commenting out @w{(@code{%}
344 or @code{%@{ @dots{} %@}})} sections of your file.  If you
345 can comment something while still demonstrating the main idea,
346 then remove the commented-material.
347
348 @item
349 Avoid using complicated notes, keys or time signatures, unless
350 the bug is about the behavior of those items.
351
352 @item
353 Do not use @code{\override} or @code{\set} commands unless the bug
354 is about those specific commands.
355
356 @item
357 Optionally, attach an image showing the desired graphical output.
358
359 @end itemize
360 @divEnd
361
362 @divEnd
363
364 @divClass{column-center-bottom}
365 @subheading How tiny should they be?
366
367 Is the code below a minimal example?
368
369 @example
370 \version "2.14.1"
371 \include "english.ly"
372
373 \score @{
374   \new Staff @{
375     \key d \major
376     \numericTimeSignature
377     \time 2/4
378     <cs' d'' b''>16 <cs' d'' b''>8.
379     %% Here: the tie on the D's looks funny
380     %% Too tall? Left-hand endpoint is not aligned with the B tie?
381     ~
382     <cs' d'' b''>8 [ <b d'' a''> ]
383   @}
384 @}
385 @end example
386
387 Well, it is not very big, but a truly minimal example is here:
388
389 @example
390 \version "2.14.1"
391 @{
392   % middle tie looks funny here:
393   <c' d'' b''>8. ~ <c' d'' b''>8
394 @}
395 @end example
396
397 Very few tiny examples exceed 10 lines of code -
398 quite often 4 lines are enough to demonstrate the problem!
399
400 @divEnd
401
402
403 @node Bug reports
404 @unnumberedsec Bug reports
405
406
407 @divClass{heading-center}
408 If you have input that results in a crash or wrong output,
409 then that is a bug.
410 @divEnd
411
412 @divClass{column-center-top}
413 @subheading Step 1: Known bugs
414
415 We may already know about this bug.  Check here:
416
417 @example
418 @uref{http://code.google.com/p/lilypond/issues/list}
419 @end example
420
421 @warning{Please @strong{DO NOT} add bug reports directly to the
422 bug tracker.  Once an issue has been added to the tracker, feel
423 free to add more information to that report.}
424
425 @divEnd
426
427
428 @divClass{column-left-bottom}
429 @subheading Step 2: Creating a bug report
430
431 If you have discovered a bug which is not listed,
432 please help us by creating a bug report.
433
434 @warning{We only accept reports in the form of
435 @ref{Tiny examples}.  We have very limited resources,
436 so any non-minimal example will be rejected.  Almost
437 every bug can be demonstrated in four notes or less!}
438
439 Here is an example of a good bug report:
440
441 @example
442 % Accidentals should be printed for only
443 % the first note in a tie, but this version
444 % prints flats on both notes.
445 \version "2.10.1"
446
447 \relative c'' @{
448  bes1 ~
449  bes1
450 @}
451 @end example
452
453 @divEnd
454
455 @divClass{column-right-bottom}
456 @subheading Step 3: Sending a bug report
457
458 Once you have verified that the issue is not already known and
459 created a bug report, please send it to us!
460
461 @divClass{keep-bullets}
462 @itemize
463
464 @item
465 If you are subscribed to the @uref{mailto:bug-lilypond@@gnu.org,
466 bug-lilypond@@gnu.org} mailing list, send an email like normal.
467
468 @item
469 If you are not subscribed, you can still post a bug report with
470 the
471 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs,
472 gmane lilypond.bugs web interface}.
473
474 However, there is a strict @qq{no top-posting} check on the gmane
475 interface, which is often incorrectly triggered by lilypond files.
476 To avoid this, please add:
477
478 @example
479 > I'm not top posting.
480 @end example
481
482 @noindent
483 (you @emph{must} include the @code{>} ) to the top of your bug
484 report.
485
486 @end itemize
487 @divEnd
488 @divEnd
489
490 @divClass{column-center-bottom}
491 @subheading Step 4: Wait for a response
492
493 Once your bug report has been sent to the list, our Bug Squad will
494 examine it; they may ask you for more information.  You will be notified
495 when the report will be added to the bug tracker. Please allow up to 4 days,
496 as we have a limited number of volunteers for this task.
497
498 Once a bug has been added to the tracker, you can comment it to add
499 more information about it.
500 You may also mark the bug so that you automatically receive emails when
501 any activity on the bug occurs.  This requires you have a google
502 account.
503 @divEnd
504
505 @divClass{column-center-bottom}
506 @subheading Optional help: show the desired behavior
507
508 Once an issue has been added to the tracker, it can be very
509 helpful if we can see the desired output.  Feel free to add input
510 code and/or images (possibly created with other tools) which
511 demonstrate what you think it should look like!
512
513 @divEnd
514
515
516
517 @node Help us
518 @unnumberedsec Help us
519
520 @divClass{column-center-top}
521 @helpusNeed
522
523 @divEnd
524
525 @divClass{column-left-top}
526 @divClass{keep-bullets}
527 @helpusSimple
528
529 @divEnd
530 @divEnd
531
532 @divClass{column-right-top}
533 @helpusAdvanced
534
535 @divEnd
536
537
538 @node Sponsoring
539 @unnumberedsec Sponsoring
540
541 @divClass{keep-bullets}
542 @divClass{column-left-top}
543 @subheading Bounties
544
545 In the past,
546
547 @itemize
548 @item some users have paid for new features
549 @item some developers have added new features for hire
550 @end itemize
551
552 The LilyPond project does not organize such efforts; we neither
553 endorse nor discourage such agreements.  Any contracts between
554 private individuals is the business of those individuals, not
555 ours.
556
557 @divEnd
558
559 @divClass{column-right-top}
560 @subheading Guidelines
561
562 Any user wanting to offer money in exchange for work should bear
563 in mind the following points:
564
565 @itemize
566 @item
567 LilyPond developers may advertise their services on the lilypond
568 email lists from time to time.
569
570 @item
571 Any agreements between private individuals should include the
572 normal precautions when conducting business: who pays, how much do
573 they pay, with what method of payment, and upon what set of
574 conditions.  We suggest that any ambiguity or uncertainty in these
575 questions should be resolved before any work begins.
576
577 @end itemize
578
579 @divEnd
580
581 @divClass{column-center-bottom}
582 @subheading Interested developers
583
584 Here is a list of people who have expressed an interest in
585 bounties.  Note that the amount of work done by individuals varies
586 quite a bit throughout the years.  We do not guarantee that this
587 list is up-to-date, nor do we guarantee that the people listed
588 here have any ability.  The only criteria is "XYZ asked to be
589 listed on this page".
590
591 Looking at the git history is a good way to determine who the most
592 active and experienced developers are.  Statistics up to version
593 @versionDevel{}:
594
595 @multitable @columnfractions .3 .3 .3
596 @item @uref{http://lilypond.org/~graham/gitstats-all/, overall history}
597 @tab @uref{http://lilypond.org/~graham/gitstats-1year/, past year}
598 @tab @uref{http://lilypond.org/~graham/gitstats-3months/, past three months}
599 @end multitable
600
601 Interested developers:
602 @table @asis
603 @item @email{dak@@gnu.org, David Kastrup}
604 Donations are required to let me continue my current fulltime work on
605 LilyPond.  I focus on user and programmer interface design, coherence,
606 implementation, simplification, documentation, and debugging.
607
608 @c Format
609 @c @item @email{name@@adress.domain, Name}
610 @c area of interest (256 chars max)
611
612 @end table
613
614 @divEnd
615 @divEnd
616
617
618 @node Development
619 @unnumberedsec Development
620
621 @divClass{heading-center}
622 @ifclear web_version
623   @heading Development for LilyPond @version
624 @end ifclear
625 @ifset web_version
626   @heading Development for LilyPond @versionDevel
627 @end ifset
628
629
630 @c we normally don't allow named references, but in this case
631 @c it's good to emphasize the "stable" part.  -gp
632 @warning{These are @emph{unstable development} versions.  If you
633 have the slightest doubt about how to use or install LilyPond, we
634 urge you to use the @ref{Download, stable Download}, and read the
635 @ref{Manuals, stable Manuals}.}
636
637 @divEnd
638
639 @divClass{column-center-top}
640 @subheading Release numbers
641
642 There are two sets of releases for LilyPond: stable releases, and
643 unstable development releases.  Stable versions have an
644 even-numbered @q{minor} version number (e.g., 2.8, 2.10, 2.12).
645 Development versions have an odd-numbered @q{minor} version number
646 (e.g., 2.7, 2.9, 2.11).
647
648 @divEnd
649
650
651 @divClass{column-left-top}
652 @subheading Download
653
654 Instructions for git and compiling are in the Contributor's Guide.
655
656 @quotation
657 @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git, lilypond git repository}
658 @end quotation
659
660 Documentation writers and testers will generally want to download
661 the latest binary:
662
663 @quotation
664
665 @downloadDevelLinuxNormal
666
667 @downloadDevelLinuxBig
668
669 @downloadDevelLinuxPPC
670
671 @downloadDevelFreeBSDNormal
672
673 @downloadDevelFreeBSDBig
674
675 @downloadDevelDarwinNormal
676
677 @downloadDevelDarwinPPC
678
679 @downloadDevelWindows
680
681 @downloadDevelSource
682
683 @end quotation
684
685 @divEnd
686
687
688 @divClass{column-right-top}
689 @subheading Contributor's Guide
690
691 LilyPond development is a fairly complicated matter.  In order to
692 help new contributors, and to keep the whole system (mostly)
693 stable, we have written a manual for development tasks.
694
695 @docLinksBare{Contributor's Guide, contributor,
696   @rcontribnamed{Top,Contributor's Guide},
697   @manualDevelContributorSplit,
698   @manualDevelContributorBig, 500 kB,
699   @manualDevelContributorPdf, 2.8 MB}
700
701 @divEnd
702
703
704 @divClass{column-center-top}
705 @subheading Regression tests
706
707 @divClass{keep-bullets}
708
709 @ifclear web_version
710
711 @itemize
712 @item
713 @uref{../../input/regression/collated-files.html, Regression tests}:
714 This release's regtests.
715 (@uref{../../input/regression/collated-files.pdf, pdf version})
716
717 @item
718 @uref{../../input/regression/musicxml/collated-files.html, MusicXML tests}:
719 This release's musicXML tests.
720 (@uref{../../input/regression/musicxml/collated-files.pdf, pdf version})
721
722 @item
723 @uref{../../input/regression/abc2ly/collated-files.html, abc2ly tests}:
724 This release's abc2ly tests.
725 (@uref{../../input/regression/abc2ly/collated-files.pdf, pdf version})
726
727 @item
728 @uref{../../input/regression/lilypond-book/collated-files.html, lilypond-book tests}:
729 This release's lilypond-book tests.
730 (@uref{../../input/regression/lilypond-book/collated-files.pdf, pdf version})
731 @end itemize
732
733 @end ifclear
734
735 @ifset web_version
736 @subsubheading Development version
737
738 @itemize
739 @item @regtestDevel (@regtestDevelPdf{})
740
741 @item @regtestDevelXml (@regtestDevelXmlPdf{})
742
743 @item @regtestDevelAbc (@regtestDevelAbcPdf{})
744
745 @item @regtestDevelLilypondBook (@regtestDevelLilypondBookPdf{})
746 @end itemize
747
748 @subsubheading Stable version
749
750 @itemize
751 @item @regtestStable (@regtestStablePdf{})
752
753 @item @regtestStableXml (@regtestStableXmlPdf{})
754
755 @item @regtestStableAbc (@regtestStableAbcPdf{})
756
757 @item @regtestStableLilypondBook (@regtestStableLilypondBookPdf{})
758 @end itemize
759 @end ifset
760
761
762 @subsubheading All versions
763
764 @itemize
765 @item @uref{http://lilypond.org/test, Comparisons between regression tests}
766
767 @item @uref{http://lilypond.org/download/binaries/test-output/,
768 Archive of all regression tests}
769
770 @end itemize
771
772 @divEnd
773 @divEnd
774
775
776
777 @divClass{column-center-bottom}
778 @subheading Manuals
779
780 @ifclear web_version
781 @warning{These manuals are for LilyPond @version{}; the latest
782 manuals can be found at @url{http://lilypond.org}}
783 @end ifclear
784
785 @divClass{normal-table}
786 @multitable @columnfractions .3 .3 .3
787 @headitem Introduction
788
789 @item
790 @docLinkSplit{Learning,learning,@manualDevelLearningSplit}
791 @tab
792 @docLinkBig{Learning,learning,@manualDevelLearningBig}
793 @tab
794 @docLinkPdf{Learning,learning,@manualDevelLearningPdf}
795
796 @item
797 @docLinkSplit{Glossary,music-glossary,@manualDevelGlossarySplit}
798 @tab
799 @docLinkBig{Glossary,music-glossary,@manualDevelGlossaryBig}
800 @tab
801 @docLinkPdf{Glossary,music-glossary,@manualDevelGlossaryPdf}
802
803 @item
804 @docLinkSplit{Essay,essay,@manualDevelEssaySplit}
805 @tab
806 @docLinkBig{Essay,essay,@manualDevelEssayBig}
807 @tab
808 @docLinkPdf{Essay,essay,@manualDevelEssayPdf}
809 @end multitable
810
811 @multitable @columnfractions .3 .3 .3
812 @headitem Regular
813
814 @item
815 @docLinkSplit{Notation,notation,@manualDevelNotationSplit}
816 @tab
817 @docLinkBig{Notation,notation,@manualDevelNotationBig}
818 @tab
819 @docLinkPdf{Notation,notation,@manualDevelNotationPdf}
820
821 @item
822 @docLinkSplit{Usage,usage,@manualDevelUsageSplit}
823 @tab
824 @docLinkBig{Usage,usage,@manualDevelUsageBig}
825 @tab
826 @docLinkPdf{Usage,usage,@manualDevelUsagePdf}
827
828 @item
829 @docLinkSplit{Snippets,snippets,@manualDevelSnippetsSplit}
830 @tab
831 @docLinkBig{Snippets,snippets,@manualDevelSnippetsBig}
832 @tab
833 @docLinkPdf{Snippets,snippets,@manualDevelSnippetsPdf}
834 @end multitable
835
836 @multitable @columnfractions .3 .3 .3
837 @headitem Infrequent
838
839 @item
840 @docLinkSplit{Web,web,@manualDevelWebSplit}
841 @tab
842 @docLinkBig{Web,web,@manualDevelWebBig}
843 @tab
844 @docLinkPdf{Web,web,@manualDevelWebPdf}
845
846 @item
847 @docLinkSplit{Changes,changes,@manualDevelChangesSplit}
848 @tab
849 @docLinkBig{Changes,changes,@manualDevelChangesBig}
850 @tab
851 @docLinkPdf{Changes,changes,@manualDevelChangesPdf}
852
853 @item
854 @docLinkSplit{Extending,extending,@manualDevelExtendingSplit}
855 @tab
856 @docLinkBig{Extending,extending,@manualDevelExtendingBig}
857 @tab
858 @docLinkPdf{Extending,extending,@manualDevelExtendingPdf}
859
860 @item
861 @docLinkSplit{Internals,internals,@manualDevelInternalsSplit}
862 @tab
863 @docLinkBig{Internals,internals,@manualDevelInternalsBig}
864 @tab
865 @docLinkPdf{Internals,internals,@manualDevelInternalsPdf}
866 @end multitable
867
868 @ifset web_version
869 @multitable @columnfractions .3
870 @headitem Downloadable
871
872 @item
873 @doctarballDevel
874 @end multitable
875 @end ifset
876
877
878 @divEnd
879 @divEnd
880
881
882
883
884 @node GSoC 2012
885 @unnumberedsec GSoC 2012
886
887 @divClass{column-center-top}
888 @subheading What is Google Summer of Code?
889
890 It is a global program run by Google that offers students stipends
891 for working on open source software projects during summer vacations.
892
893 The LilyPond Team decided that this is an excellent opportunity to find
894 new contributors and encourage students already participating in LilyPond
895 development to become more involved.  One of our contributors was accepted
896 for 2012 edition of the program as part of the
897 @uref{http://www.gnu.org/, GNU project};
898 we hope to participate in future editions as well.
899
900 @divEnd
901
902 @divClass{column-center-bottom}
903 @subheading Our 2012 Ideas List
904
905 Below is a list of projects that we suggested for GSoC 2012 students.
906 Although the application period is over, we decided to keep this webpage
907 online as an inspiration for anyone who is interested in developing LilyPond.
908 Some members of the development team are willing to help people who would like
909 to tackle these projects.
910
911 Of course, there are many more things to improve in LilyPond, including
912 very small ones.  A full list of all known issues can be found
913 @uref{http://code.google.com/p/lilypond/issues/list, here}.
914
915 @subheading Grace notes
916
917 Fix problems with synchronization of grace notes,
918 together with all underlying architecture (see
919 @uref{http://code.google.com/p/lilypond/issues/detail?id=34,
920 issue 34 in our tracker}).  Grace notes are confusing to LilyPond's
921 timing because they're like going back in time.  This causes weird
922 effects, especially when one staff has a grace note and the other
923 doesn't.
924
925 @strong{Difficulty:} medium
926
927 @strong{Requirements:} C++, MIDI
928
929 @strong{Recommended:} familiarity with LilyPond internals
930
931 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
932
933 @subheading MusicXML
934
935 Adding comprehensive MusicXML export and improving import,
936 together with tests checking that it works. Depending on time available,
937 implement some or all of the following:
938
939 @divClass{keep-bullets}
940 @itemize
941
942 @item
943 Handle basic musical content export like the MIDI export (i.e. using
944 dedicated exporter classes, derived from the translator class)
945
946 @item
947 Build the XML tree of the basic musical content,
948 add a connection from music event to XML tag
949
950 @item
951 Let all LilyPond engravers do their job
952
953 @item
954 Add ability to link each output object
955 (basically each stencil / group of stencils) to the music cause
956 (and thus to the XML tag in the XML tree)
957
958 @item
959 Add a XML output backend, which can then add the layout information
960 for each output object to the XML tags
961
962 @end itemize
963 @divEnd
964
965 The goal will be considered achieved when a (previously chosen) score
966 could be imported from MusicXML and exported back with no unintentional
967 loss of data.
968
969 @strong{Difficulty:} medium
970
971 @strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
972
973 @strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon
974
975 Familiarity with other scorewriters (for cross-testing) would be a nice
976 bonus.
977
978 @subheading Improve slurs and ties
979
980 The default shape of slur and tie curves is often unsatisfactory.
981 Ties on enharmonic notes @code{@{ cis'~ des' @}} are not supported,
982 ties "broken" by clef or staff change aren't supported well.
983 The project includes collecting and sorting examples of bad output,
984 deciding on the intended output and writing the actual code.
985
986 @strong{Difficulty:} hard
987
988 @strong{Requirements:} C++, experience with writing heuristics
989
990 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
991
992 @strong{Mentor(s):} Mike Solomon
993
994 @subheading Adding special variant of font glyphs
995 Adding on-staff-line, between-staff-line, shorter and narrower variants
996 of some glyphs, for example accidentals, together with a generic
997 infrastructure to support them.  An example is ancient notation breve
998 notehead coming in two variants, with smaller and bigger hole.
999
1000 @strong{Difficulty:} easy
1001
1002 @strong{Requirements:} MetaFont, C++, good eye for details
1003
1004 @strong{Recommended knowledge:} basic LilyPond knowledge
1005
1006 @strong{Mentor(s):} Werner Lemberg
1007
1008 @subheading Improve beaming
1009
1010 Default positioning of regular, cross-staff, broken and kneed beams
1011 should be improved.  Beaming should depend on context and neighbor notes
1012 (see @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
1013 section 2.2 here}).  If possible, reduce beaming computation time.
1014
1015 @strong{Difficulty:} medium
1016
1017 @strong{Requirements:} C++, experience with writing heuristics
1018
1019 @strong{Recommended knowledge:} aesthetic sense
1020
1021 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
1022
1023 @subheading Clean up various compilation warnings
1024
1025 Clean up compiler warnings, static code analysis, and valgrind warnings.
1026 Automatic code analysis tools (warnings in @code{g++} and @code{clang})
1027 and analysis tools like valgrind memory leak detection and callgrind
1028 code profilers provide valuable information about possible flaws in C++
1029 code.  Cleaning these warnings would allow us to automatically reject
1030 any patch which introduced extra warnings.
1031
1032 @strong{Difficulty:} medium
1033
1034 @strong{Requirements:} C++
1035
1036 @strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer
1037
1038 @divEnd
1039
1040
1041
1042
1043 @node Authors
1044 @unnumberedsec Authors
1045
1046 @divClass{column-left-top}
1047 @subheading Current Development Team
1048
1049 @divClass{keep-bullets}
1050 @developersCurrent
1051 @divEnd
1052 @divEnd
1053
1054 @divClass{column-right-top}
1055 @subheading Previous Development Team
1056
1057 @divClass{keep-bullets}
1058 @developersPrevious
1059 @divEnd
1060 @divEnd
1061
1062
1063 @divClass{column-center-top}
1064 @subheading Current Contributors
1065
1066 @divClass{keep-bullets}
1067 @subsubheading Programming
1068
1069 @coreCurrent
1070
1071 @subsubheading Font
1072
1073 @fontCurrent
1074
1075 @subsubheading Documentation
1076
1077 @docCurrent
1078
1079 @subsubheading Bug squad
1080
1081 @bugsquadCurrent
1082
1083 @subsubheading Support
1084
1085 @supportCurrent
1086
1087 @subsubheading Translation
1088
1089 @translationsCurrent
1090
1091 @divEnd
1092 @divEnd
1093
1094
1095 @divClass{column-center-bottom}
1096 @subheading Previous Contributors
1097
1098 @divClass{keep-bullets}
1099 @subsubheading Programming
1100
1101 @corePrevious
1102
1103 @subsubheading Font
1104
1105 @fontPrevious
1106
1107 @subsubheading Documentation
1108
1109 @docPrevious
1110
1111 @c    uncomment when we have any previous members -gp
1112 @c @subsubheading Bug squad
1113
1114 @c @bugsquadCurrent
1115
1116 @subsubheading Support
1117
1118 @supportPrevious
1119
1120 @subsubheading Translation
1121
1122 @translationsPrevious
1123
1124 @divEnd
1125 @divEnd
1126
1127 @node Acknowledgements
1128 @unnumberedsec Acknowledgements
1129
1130 @divClass{column-center-top}
1131 @subheading Acknowledgements
1132
1133 @divClass{keep-bullets}
1134 @acknowledgementsCurrent
1135 @divEnd
1136 @divEnd
1137
1138
1139 @node Publications
1140 @unnumberedsec Publications
1141
1142 @divClass{column-center-top}
1143 @subheading What we wrote about LilyPond
1144
1145 @divClass{keep-bullets}
1146
1147 @include we-wrote.itexi
1148
1149 @divEnd
1150 @divEnd
1151
1152 @divClass{column-center-bottom}
1153 @subheading What people did with LilyPond
1154
1155 @divClass{keep-bullets}
1156
1157 @include others-did.itexi
1158
1159 @divEnd
1160 @divEnd
1161
1162 @contactUsAbout{academic papers}
1163
1164
1165 @node Old news
1166 @unnumberedsec Old news
1167
1168 @divClass{heading-center}
1169 @warning{Many old announcements and changelogs can be found in
1170 the @ref{Attic}}
1171 @divEnd
1172
1173 @include web/news-front.itexi
1174
1175 @include web/news.itexi
1176
1177
1178 @node Attic
1179 @unnumberedsec Attic
1180
1181 @divClass{column-center-top}
1182 @subheading Announcements
1183
1184 Announcements and news by version:
1185 @uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
1186 @uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
1187 @miscLink{announce-v2.12,v2.12},
1188 @miscLink{announce-v2.10,v2.10},
1189 @miscLink{announce-v2.8,v2.8},
1190 @miscLink{announce-v2.6,v2.6},
1191 @miscLink{announce-v2.4,v2.4},
1192 @miscLink{announce-v2.2,v2.2},
1193 @miscLink{announce-v2.0,v2.0},
1194 @miscLink{ANNOUNCE-1.2,v1.2},
1195 @miscLink{ANNOUNCE-1.0,v1.0},
1196 @miscLink{ANNOUNCE-0.1,v0.1}
1197
1198 Descriptive list of changes by version:
1199 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
1200 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
1201 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
1202 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
1203 @uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS,v2.8},
1204 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS,v2.6},
1205 @uref{http://lilypond.org/doc/v2.4/Documentation/topdocs/out-www/NEWS,v2.4},
1206 @uref{http://lilypond.org/doc/v2.2/Documentation/topdocs/out-www/NEWS,v2.2},
1207 @uref{http://lilypond.org/doc/v2.0/Documentation/topdocs/out-www/NEWS,v2.0},
1208 @uref{http://lilypond.org/doc/v1.8/Documentation/topdocs/out-www/NEWS,v1.8},
1209 @uref{http://lilypond.org/doc/v1.6/Documentation/out-www/NEWS,v1.6},
1210 @miscLink{NEWS-1.4,v1.4},
1211 @miscLink{NEWS-1.2,v1.2}
1212
1213 @divEnd
1214
1215 @divClass{column-center-bottom}
1216 @subheading Thanks
1217
1218 Thanks to developers, contributors, bug hunters and suggestions for
1219 @miscLink{THANKS-2.16,v2.16},
1220 @miscLink{THANKS-2.14,v2.14},
1221 @miscLink{THANKS-2.12,v2.12},
1222 @miscLink{THANKS-2.10,v2.10},
1223 @miscLink{THANKS-2.8,v2.8},
1224 @miscLink{THANKS-2.6,v2.6},
1225 @miscLink{THANKS-2.4,v2.4},
1226 @miscLink{THANKS-2.2,v2.2},
1227 @miscLink{THANKS-2.0,v2.0},
1228 @miscLink{THANKS-1.8,v1.8}
1229
1230 @divEnd
1231
1232 @divClass{column-center-bottom}
1233 @subheading Changelogs
1234
1235 Developers' changelogs by version:
1236 @miscLink{ChangeLog-2.10,v2.10},
1237 @miscLink{ChangeLog-2.3,v2.3},
1238 @miscLink{ChangeLog-2.1,v2.1},
1239 @miscLink{ChangeLog-1.5,v1.5 (1)},
1240 @miscLink{CHANGES-1.5,v1.5 (2)},
1241 @miscLink{CHANGES-1.4,v1.4},
1242 @miscLink{CHANGES-1.3,v1.3},
1243 @miscLink{CHANGES-1.2,v1.2},
1244 @miscLink{CHANGES-1.1,v1.1},
1245 @miscLink{CHANGES-1.0,v1.0},
1246 @miscLink{CHANGES-0.1,v0.1},
1247 @miscLink{CHANGES-0.0,v0.0}
1248
1249 @divEnd