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