]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/web/community.itexi
Add attic section to the website under community.
[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}: list of projects for 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::
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
873 @unnumberedsec GSoC
874
875 @divClass{column-center-top}
876 @subheading What is Google Summer of Code?
877
878 Quoting
879 @uref{http://www.google-melange.com/gsoc/homepage/google/gsoc2012, GSoC website},
880 @qq{Google Summer of Code is a global program that offers students
881 stipends to write code for open source projects.  Google has worked
882 with the open source community to identify and fund exciting projects
883 for the upcoming summer.}
884
885 The LilyPond Team decided that this is an excellent opportunity to find
886 new contributors, encourage students already participating in LilyPond
887 development to become more involved, and - last but not least - write some
888 great code for the benefit of all!
889
890 We are participating in GSoC as a part of GNU Project.  See
891 @uref{http://www.gnu.org/software/soc-projects/guidelines.html, GNU GSoC webpage}
892 for information on how to participate.
893
894 @divEnd
895
896 @divClass{column-center-bottom}
897 @subheading Our Ideas List
898
899 Below is a list of projects suggested for GSoC students.  If you don't
900 see a project that suits you, feel free to suggest your own!
901 It's also possible to scale down a project if you feel it's too big.
902
903 We require that every student has basic @code{git} knowledge, and
904 recommend that everyone applying for projects other than the last one
905 have basic music notation knowledge.
906
907 @subheading Grace notes
908
909 Fix problems with synchronization of grace notes,
910 together with all underlying architecture (see
911 @uref{http://code.google.com/p/lilypond/issues/detail?id=34, issue 34 in our tracker}).
912 Grace notes are confusing to LilyPond's timing because they're like
913 going back in time.  This causes weird effects, especially when one staff
914 has a grace note and the other doesn't.
915
916 @strong{Difficulty:} medium
917
918 @strong{Requirements:} C++, MIDI
919
920 @strong{Recommended:} familiarity with LilyPond internals
921
922 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
923
924 @subheading MusicXML
925
926 Adding comprehensive MusicXML export and improving import,
927 together with tests checking that it works. Depending on time available,
928 implement some or all of the following:
929
930 @divClass{keep-bullets}
931 @itemize
932
933 @item
934 Handle basic musical content export like the MIDI export (i.e. using
935 dedicated exporter classes, derived from the translator class)
936
937 @item
938 Build the XML tree of the basic musical content,
939 add a connection from music event to XML tag
940
941 @item
942 Let all LilyPond engravers do their job
943
944 @item
945 add ability to link each output object
946 (basically each stencil / group of stencils) to the music cause
947 (and thus to the XML tag in the XML tree)
948
949 @item
950 Add a XML output backend, which can then add the layout information
951 for each output object to the XML tags
952
953 @end itemize
954 @divEnd
955
956 The goal will be considered achieved when a (previously chosen) score could be
957 imported from MusicXML and exported back with no unintentional loss of data.
958
959 @strong{Difficulty:} medium
960
961 @strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
962
963 @strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon
964
965 familiarity with other scorewriters (for cross-testing) would be a nice bonus.
966
967 @subheading Improve slurs and ties
968
969 The default shape of slur and tie curves is often unsatisfactory.
970 Ties on enharmonic notes @code{@{ cis'~ des' @}} are not supported,
971 ties "broken" by clef or staff change aren't supported well.
972 The project includes collecting and sorting examples of bad output,
973 deciding on the intended output and writing the actual code.
974
975 @strong{Difficulty:} hard
976
977 @strong{Requirements:} C++, experience with writing heuristics
978
979 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
980
981 @strong{Mentor(s):} Mike Solomon
982
983 @subheading Adding special variant of font glyphs
984 Adding on-staff-line, between-staff-line, shorter and narrower variants
985 of some glyphs, for example accidentals, together with a generic
986 infrasctucture to support them.  An example is ancient notation breve notehead
987 coming in two variants, with smaller and bigger hole.
988
989 @strong{Difficulty:} easy
990
991 @strong{Requirements:} MetaFont, C++, good eye for details
992
993 @strong{Recommended knowledge:} basic LilyPond knowledge
994
995 @strong{Mentor(s):} Werner Lemberg
996
997 @subheading Improve beaming
998
999 Default positioning of regular, cross-staff, broken and kneed beams
1000 should be improved.  Beaming should depend on context and neighbor notes (see
1001 @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf, section 2.2 here}).
1002 If possible, reduce beaming computation time.
1003
1004 @strong{Difficulty:} medium
1005
1006 @strong{Requirements:} C++, experience with writing heuristics
1007
1008 @strong{Recommended knowledge:} aesthetic sense
1009
1010 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
1011
1012 @subheading Better tablature support
1013
1014 @divClass{keep-bullets}
1015 @itemize
1016
1017 @item
1018 non-monotonic string tunings, like Ukulele
1019
1020 @item
1021 create tablature input mode (currently musical information is entered
1022 in western-common-music-notation-terms, i.e. @qq{a quarter f sharp note}
1023 and then converted to tablature) for transcribing medieval lute tablature
1024
1025 @item
1026 implement modern tablature features, such as bends, pull-off, hammer-on
1027
1028 @item
1029 if a fretboard shape is defined for a given chord, use this information when
1030 displaying the chord on the staff (and not just display a default chord shape)
1031
1032 @end itemize
1033 @divEnd
1034
1035 @strong{Difficulty:} easy
1036
1037 @strong{Requirements:} C++
1038
1039 @strong{Recommended knowledge:} tablature notation familiarity
1040
1041 @strong{Mentor(s):} Carl Sorensen
1042
1043 @subheading Clean up various compilation warnings
1044
1045 Clean up compiler warnings, static code analysis, and valgrind warnings.
1046 Automatic code analysis tools (warnings in @code{g++} and @code{clang})
1047 and analysis tools like valgrind memory leak detection and callgrind code
1048 profilers provide valuable information about possible flaws in C++ code.
1049 Cleaning these warnings would allow us to automatically reject any patch
1050 which introduced extra warnings.
1051
1052 @strong{Difficulty:} medium
1053
1054 @strong{Requirements:} C++
1055
1056 @strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer
1057
1058 @divEnd
1059
1060
1061
1062
1063 @node Authors
1064 @unnumberedsec Authors
1065
1066 @divClass{column-left-top}
1067 @subheading Current Development Team
1068
1069 @divClass{keep-bullets}
1070 @developersCurrent
1071 @divEnd
1072 @divEnd
1073
1074 @divClass{column-right-top}
1075 @subheading Previous Development Team
1076
1077 @divClass{keep-bullets}
1078 @developersPrevious
1079 @divEnd
1080 @divEnd
1081
1082
1083 @divClass{column-center-top}
1084 @subheading Current Contributors
1085
1086 @divClass{keep-bullets}
1087 @subsubheading Programming
1088
1089 @coreCurrent
1090
1091 @subsubheading Font
1092
1093 @fontCurrent
1094
1095 @subsubheading Documentation
1096
1097 @docCurrent
1098
1099 @subsubheading Bug squad
1100
1101 @bugsquadCurrent
1102
1103 @subsubheading Support
1104
1105 @supportCurrent
1106
1107 @subsubheading Translation
1108
1109 @translationsCurrent
1110
1111 @divEnd
1112 @divEnd
1113
1114
1115 @divClass{column-center-bottom}
1116 @subheading Previous Contributors
1117
1118 @divClass{keep-bullets}
1119 @subsubheading Programming
1120
1121 @corePrevious
1122
1123 @subsubheading Font
1124
1125 @fontPrevious
1126
1127 @subsubheading Documentation
1128
1129 @docPrevious
1130
1131 @c    uncomment when we have any previous members -gp
1132 @c @subsubheading Bug squad
1133
1134 @c @bugsquadCurrent
1135
1136 @subsubheading Support
1137
1138 @supportPrevious
1139
1140 @subsubheading Translation
1141
1142 @translationsPrevious
1143
1144 @divEnd
1145 @divEnd
1146
1147
1148
1149 @node Publications
1150 @unnumberedsec Publications
1151
1152 @divClass{column-center-top}
1153 @subheading What we wrote about LilyPond
1154
1155 @divClass{keep-bullets}
1156
1157 @include we-wrote.itexi
1158
1159 @divEnd
1160 @divEnd
1161
1162 @divClass{column-center-bottom}
1163 @subheading What people did with LilyPond
1164
1165 @divClass{keep-bullets}
1166
1167 @include others-did.itexi
1168
1169 @divEnd
1170 @divEnd
1171
1172 @contactUsAbout{academic papers}
1173
1174
1175 @node Old news
1176 @unnumberedsec Old news
1177
1178 @divClass{heading-center}
1179 @warning{Many old announcements and changelogs can be found in
1180 the @ref{Attic}}
1181 @divEnd
1182
1183 @include web/news-front.itexi
1184
1185 @include web/news.itexi
1186
1187
1188 @node Attic
1189 @unnumberedsec Attic
1190
1191 @divClass{column-center-top}
1192 @subheading Announcements
1193
1194 Announcements and news by version:
1195 @miscLink{announce-v2.12,v2.12},
1196 @miscLink{announce-v2.12.de,v2.12 (German)},
1197 @miscLink{announce-v2.12.es,v2.12 (Spanish)},
1198 @miscLink{announce-v2.12.fr,v2.12 (French)},
1199 @miscLink{announce-v2.10,v2.10},
1200 @miscLink{announce-v2.8,v2.8},
1201 @miscLink{announce-v2.6,v2.6},
1202 @miscLink{announce-v2.4,v2.4},
1203 @miscLink{announce-v2.2,v2.2},
1204 @miscLink{announce-v2.0,v2.0},
1205 @miscLink{NEWS-1.4,v1.4},
1206 @miscLink{NEWS-1.2,v1.2 (1)},
1207 @miscLink{ANNOUNCE-1.2,v1.2 (2)},
1208 @miscLink{ANNOUNCE-1.0,v1.0},
1209 @miscLink{ANNOUNCE-0.1,v0.1}
1210
1211 @divEnd
1212
1213 @divClass{column-center-bottom}
1214 @subheading Changelogs
1215
1216 Changelogs by version:
1217 @miscLink{ChangeLog-2.10,v2.10},
1218 @miscLink{ChangeLog-2.3,v2.3},
1219 @miscLink{ChangeLog-2.1,v2.1},
1220 @miscLink{ChangeLog-1.5,v1.5 (1)},
1221 @miscLink{CHANGES-1.5,v1.5 (2)},
1222 @miscLink{CHANGES-1.4,v1.4},
1223 @miscLink{CHANGES-1.3,v1.3},
1224 @miscLink{CHANGES-1.2,v1.2},
1225 @miscLink{CHANGES-1.1,v1.1},
1226 @miscLink{CHANGES-1.0,v1.0},
1227 @miscLink{CHANGES-0.1,v0.1},
1228 @miscLink{CHANGES-0.0,v0.0}
1229
1230 @divEnd