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