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