]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/web/community.itexi
df8c3a494977eace6a33be78dd29ea5db17aecdc
[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{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 * Google Summer of Code::
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
496 days, 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 account
502 login.
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 Google Summer of Code
885 @unnumberedsec Google Summer of Code
886
887 @divClass{column-center-top}
888 @subheading What is Google Summer of Code?
889
890 A global program run by Google that offers students stipends for working
891 on open source software projects during summer vacations.
892
893 It is an excellent opportunity to find new contributors, and encourage
894 students already participating in LilyPond development, to become more
895 involved.  One of our contributors was accepted in the 2012 program as
896 part of the @uref{http://www.gnu.org/, GNU project}; and we are always
897 looking for others to participate in future programs.
898
899 @divEnd
900
901 @divClass{column-center-middle-color2}
902 @subheading Our Ideas List
903
904 Below is a list of projects that were suggested for the GSoC 2012
905 students and is retained here as an inspiration for anyone
906 who is interested in developing LilyPond for future GSoC projects.
907
908 There are many more things that can be done to improve LilyPond and
909 members of the LilyPond development team are always willing to help
910 those who would like to tackle projects such as those listed below.
911
912 A full list of all the current open issues can be found
913 @uref{http://code.google.com/p/lilypond/issues/list, here}.
914
915 @divEnd
916
917 @divClass{column-center-middle-color3}
918 @subheading Grace notes
919
920 Fix problems with synchronization of grace notes.  Grace notes can
921 intefere with LilyPond's timing and cause odd effects, especially when
922 multiple staffs are used where some have grace notes and others don't.
923
924 @strong{Difficulty:} medium
925 @strong{Requirements:} C++, MIDI
926 @strong{Recommended:} familiarity with LilyPond internals
927 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
928
929 @divEnd
930
931 @divClass{column-center-middle-color3}
932 @subheading MusicXML
933
934 Improving MusicXML import and export functions:
935
936 @divClass{keep-bullets}
937 @itemize
938
939 @item
940 Handle basic musical content export like the MIDI export (i.e. using
941 dedicated exporter classes, derived from the translator class).
942
943 @item
944 Build the XML tree of the basic musical content, add a connection from
945 music event to XML tag.
946
947 @item
948 Let all LilyPond engravers do their job.
949
950 @item
951 Link each output object (i.e. each stencil or group of stencils) to the
952 music cause (and thus to the XML tag in the XML tree).
953
954 @item
955 Add an XML output backend, which can then add layout information for
956 each output object to the XML tags.
957
958 @end itemize
959 @divEnd
960
961 @strong{Difficulty:} medium
962 @strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
963 @strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon
964
965 Familiarity with other scorewriters (for cross-testing) would also help.
966
967 @divEnd
968
969 @divClass{column-center-middle-color3}
970 @subheading Improve slurs and ties
971
972 The default curves of slurs and ties are often unsatisfactory. Ties
973 @q{broken} by clef or staff changes are not handled well.  The project
974 could include collecting and sorting examples of bad output, deciding on
975 the intended output and writing code to improve them.
976
977 @strong{Difficulty:} hard
978 @strong{Requirements:} C++, experience with writing heuristics
979 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
980 @strong{Mentor(s):} Mike Solomon
981
982 @divEnd
983
984 @divClass{column-center-middle-color3}
985 @subheading Adding variants of font glyphs
986
987 @divClass{keep-bullets}
988 @itemize
989
990 @item
991 Adding @q{on} and @q{between} staff-line variants.
992
993 @item
994 Shorter and narrower variants of some glyphs for example, accidentals.
995 Another, more specific example could be an ancient notation breve
996 notehead coming in two variants one with a small or big @q{hole} within
997 it.
998
999 @end itemize
1000 @divEnd
1001
1002 @strong{Difficulty:} easy
1003 @strong{Requirements:} MetaFont, C++, good eye for details
1004 @strong{Recommended knowledge:} basic LilyPond knowledge
1005 @strong{Mentor(s):} Werner Lemberg
1006
1007 @divEnd
1008
1009 @divClass{column-center-middle-color3}
1010 @subheading Improve default beam positioning
1011
1012 For regular, cross-staff, broken and kneed beams.  Beaming should depend
1013 on context and neighbor notes
1014 (see @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
1015 section 2.2 here}).  If possible also reduce beaming-computation time.
1016
1017 @strong{Difficulty:} medium
1018 @strong{Requirements:} C++, experience with writing heuristics
1019 @strong{Recommended knowledge:} aesthetic sense
1020 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
1021
1022 @divEnd
1023
1024 @divClass{column-center-middle-color3}
1025 @subheading Help improve compilation behavior
1026
1027 Automatic code analysis tools, like valgrind memory leak detection or
1028 callgrind code profilers, provide valuable information about possible
1029 flaws in our C++ code.  Cleaning up warnings would allow us to automate
1030 the rejection of any patch which introduced extra warnings.
1031
1032 @strong{Difficulty:} medium
1033 @strong{Requirements:} C++
1034 @strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer
1035
1036 @divEnd
1037
1038
1039 @node Authors
1040 @unnumberedsec Authors
1041
1042 @divClass{column-left-top}
1043 @subheading Current Development Team
1044
1045 @divClass{keep-bullets}
1046 @developersCurrent
1047 @divEnd
1048 @divEnd
1049
1050 @divClass{column-right-top}
1051 @subheading Previous Development Team
1052
1053 @divClass{keep-bullets}
1054 @developersPrevious
1055 @divEnd
1056 @divEnd
1057
1058
1059 @divClass{column-center-top}
1060 @subheading Current Contributors
1061
1062 @divClass{keep-bullets}
1063 @subsubheading Programming
1064
1065 @coreCurrent
1066
1067 @subsubheading Font
1068
1069 @fontCurrent
1070
1071 @subsubheading Documentation
1072
1073 @docCurrent
1074
1075 @subsubheading Bug squad
1076
1077 @bugsquadCurrent
1078
1079 @subsubheading Support
1080
1081 @supportCurrent
1082
1083 @subsubheading Translation
1084
1085 @translationsCurrent
1086
1087 @divEnd
1088 @divEnd
1089
1090
1091 @divClass{column-center-bottom}
1092 @subheading Previous Contributors
1093
1094 @divClass{keep-bullets}
1095 @subsubheading Programming
1096
1097 @corePrevious
1098
1099 @subsubheading Font
1100
1101 @fontPrevious
1102
1103 @subsubheading Documentation
1104
1105 @docPrevious
1106
1107 @c    uncomment when we have any previous members -gp
1108 @c @subsubheading Bug squad
1109
1110 @c @bugsquadCurrent
1111
1112 @subsubheading Support
1113
1114 @supportPrevious
1115
1116 @subsubheading Translation
1117
1118 @translationsPrevious
1119
1120 @divEnd
1121 @divEnd
1122
1123 @node Acknowledgements
1124 @unnumberedsec Acknowledgements
1125
1126 @divClass{column-center-top}
1127 @subheading Acknowledgements
1128
1129 @divClass{keep-bullets}
1130 @acknowledgementsCurrent
1131 @divEnd
1132 @divEnd
1133
1134
1135 @node Publications
1136 @unnumberedsec Publications
1137
1138 @divClass{column-center-top}
1139 @subheading What we wrote about LilyPond
1140
1141 @divClass{keep-bullets}
1142
1143 @include we-wrote.itexi
1144
1145 @divEnd
1146 @divEnd
1147
1148 @divClass{column-center-bottom}
1149 @subheading What people did with LilyPond
1150
1151 @divClass{keep-bullets}
1152
1153 @include others-did.itexi
1154
1155 @divEnd
1156 @divEnd
1157
1158 @contactUsAbout{academic papers}
1159
1160
1161 @node Old news
1162 @unnumberedsec Old news
1163
1164 @divClass{heading-center}
1165 @warning{Many old announcements and changelogs can be found in
1166 the @ref{Attic}}
1167 @divEnd
1168
1169 @include web/news-front.itexi
1170
1171 @include web/news.itexi
1172
1173
1174 @node Attic
1175 @unnumberedsec Attic
1176
1177 @divClass{column-center-top}
1178 @subheading Announcements
1179
1180 Announcements and news by version:
1181 @uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
1182 @uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
1183 @miscLink{announce-v2.12,v2.12},
1184 @miscLink{announce-v2.10,v2.10},
1185 @miscLink{announce-v2.8,v2.8},
1186 @miscLink{announce-v2.6,v2.6},
1187 @miscLink{announce-v2.4,v2.4},
1188 @miscLink{announce-v2.2,v2.2},
1189 @miscLink{announce-v2.0,v2.0},
1190 @miscLink{ANNOUNCE-1.2,v1.2},
1191 @miscLink{ANNOUNCE-1.0,v1.0},
1192 @miscLink{ANNOUNCE-0.1,v0.1}
1193
1194 Descriptive list of changes by version:
1195 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
1196 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
1197 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
1198 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
1199 @uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS,v2.8},
1200 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS,v2.6},
1201 @uref{http://lilypond.org/doc/v2.4/Documentation/topdocs/out-www/NEWS,v2.4},
1202 @uref{http://lilypond.org/doc/v2.2/Documentation/topdocs/out-www/NEWS,v2.2},
1203 @uref{http://lilypond.org/doc/v2.0/Documentation/topdocs/out-www/NEWS,v2.0},
1204 @uref{http://lilypond.org/doc/v1.8/Documentation/topdocs/out-www/NEWS,v1.8},
1205 @uref{http://lilypond.org/doc/v1.6/Documentation/out-www/NEWS,v1.6},
1206 @miscLink{NEWS-1.4,v1.4},
1207 @miscLink{NEWS-1.2,v1.2}
1208
1209 @divEnd
1210
1211 @divClass{column-center-bottom}
1212 @subheading Thanks
1213
1214 Thanks to developers, contributors, bug hunters and suggestions for
1215 @miscLink{THANKS-2.16,v2.16},
1216 @miscLink{THANKS-2.14,v2.14},
1217 @miscLink{THANKS-2.12,v2.12},
1218 @miscLink{THANKS-2.10,v2.10},
1219 @miscLink{THANKS-2.8,v2.8},
1220 @miscLink{THANKS-2.6,v2.6},
1221 @miscLink{THANKS-2.4,v2.4},
1222 @miscLink{THANKS-2.2,v2.2},
1223 @miscLink{THANKS-2.0,v2.0},
1224 @miscLink{THANKS-1.8,v1.8}
1225
1226 @divEnd
1227
1228 @divClass{column-center-bottom}
1229 @subheading Changelogs
1230
1231 Developers' changelogs by version:
1232 @miscLink{ChangeLog-2.10,v2.10},
1233 @miscLink{ChangeLog-2.3,v2.3},
1234 @miscLink{ChangeLog-2.1,v2.1},
1235 @miscLink{ChangeLog-1.5,v1.5 (1)},
1236 @miscLink{CHANGES-1.5,v1.5 (2)},
1237 @miscLink{CHANGES-1.4,v1.4},
1238 @miscLink{CHANGES-1.3,v1.3},
1239 @miscLink{CHANGES-1.2,v1.2},
1240 @miscLink{CHANGES-1.1,v1.1},
1241 @miscLink{CHANGES-1.0,v1.0},
1242 @miscLink{CHANGES-0.1,v0.1},
1243 @miscLink{CHANGES-0.0,v0.0}
1244
1245 @divEnd