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