OLD | NEW |
1 @c -*- coding: utf-8; mode: texinfo; -*- | 1 @c -*- coding: utf-8; mode: texinfo; -*- |
2 @ignore | 2 @ignore |
3 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH | 3 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH |
4 | 4 |
5 When revising a translation, copy the HEAD committish of the | 5 When revising a translation, copy the HEAD committish of the |
6 version that you are working on. For details, see the Contributors' | 6 version that you are working on. For details, see the Contributors' |
7 Guide, node Updating translation committishes.. | 7 Guide, node Updating translation committishes.. |
8 @end ignore | 8 @end ignore |
9 | 9 |
10 @include included/acknowledge.itexi | 10 @include included/acknowledge.itexi |
11 @include included/authors.itexi | 11 @include included/authors.itexi |
| 12 @include included/gsoc.itexi |
12 @include included/helpus.itexi | 13 @include included/helpus.itexi |
13 | 14 |
14 @node Community | 15 @node Community |
15 @unnumbered Community | 16 @unnumbered Community |
16 | 17 |
17 @divClass{link-headings} | 18 @divClass{link-headings} |
18 | 19 |
19 @divClass{column-center-top} | 20 @divClass{column-center-top} |
20 @subheading Interacting with the community | 21 @subheading Interacting with the community |
21 | 22 |
(...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 | 876 |
876 @divEnd | 877 @divEnd |
877 @divEnd | 878 @divEnd |
878 | 879 |
879 | 880 |
880 | 881 |
881 | 882 |
882 @node Google Summer of Code | 883 @node Google Summer of Code |
883 @unnumberedsec Google Summer of Code | 884 @unnumberedsec Google Summer of Code |
884 | 885 |
885 @divClass{column-center-top} | 886 @gsocCurrent |
886 @subheading What is Google Summer of Code? | |
887 | 887 |
888 @uref{https://summerofcode.withgoogle.com/, GSoC} is a global program | |
889 that offers students stipends to write code for free software and open | |
890 source projects during the summer. For three months students work to | |
891 complete a given task as part of the project's community and under the | |
892 guidance of experienced mentors. The program is an excellent | |
893 opportunity for students to gain experience with real-world software | |
894 development and make a contribution that benefits everyone. It brings | |
895 new contributors to LilyPond and enables students who are already | |
896 involved to become more involved. LilyPond participates in GSoC as part | |
897 of the @uref{http://www.gnu.org/, GNU project}. | |
898 | |
899 We have had GSoC participants in 2012, 2015 and 2016 and encourage | |
900 students to apply for the 2017 program. | |
901 | |
902 If you are interested to apply for the program with LilyPond as a | |
903 project, please read the information below and don't hesitate to write | |
904 us on our developer mailing list (see @ref{Contact}). The student | |
905 application window is March 20 to April 3, 2017, but we strongly | |
906 encourage you to get in touch with our community ahead of that. | |
907 | |
908 @divEnd | |
909 | |
910 @divClass{column-center-middle-color2 bigger-subsubheadings} | |
911 @subheading Project Ideas List | |
912 | |
913 Below is a list of GSoC project ideas (last update: January 2017), but | |
914 if you have other ideas for a project you may complete within the three | |
915 months of the program you're welcome to make a suggestion on our | |
916 developer mailing list (see @ref{Contact}). There are a number of areas | |
917 where LilyPond could be improved, and our development team is always | |
918 willing to help those who would like to tackle a project similar to | |
919 those listed below. As mentor availability varies from project to | |
920 project and from year to year it is wise to get in touch with us as | |
921 early as possible. | |
922 | |
923 A full list of all the current open issues can be found | |
924 @uref{http://sourceforge.net/p/testlilyissues/issues/, here}. | |
925 | |
926 | |
927 @subsubheading Improve internal chord structure | |
928 | |
929 The internal representation of LilyPond chords is not powerful enough | |
930 to capture the nomenclature of jazz chords. Currently the chord has | |
931 a root, a bass and an inversion. It would be nice to be able to handle | |
932 stacked or polychords, minor/major, etc. In order to do this, an | |
933 internal representation with the ability to capture the essence of | |
934 complex chords must be developed. As a bonus, once the internal | |
935 representation is developed, the output formatting of chord names can | |
936 be improved. | |
937 | |
938 @emph{Difficulty:} Easy/medium | |
939 | |
940 @emph{Requirements:} Scheme (Guile), but the level necessary can be | |
941 easily learned | |
942 | |
943 @emph{Recommended:} Chord theory and naming | |
944 | |
945 @emph{Mentor:} Carl Sorensen | |
946 | |
947 | |
948 @subsubheading Adopt the SMuFL music font encoding standard | |
949 | |
950 For several years now a new standard for music fonts has been around: | |
951 @uref{http://www.smufl.org/, SMuFL}, which is also discussed as becoming part of | |
952 a future W3C standard for music encoding. As a FLOSS tool LilyPond should | |
953 adhere to such an open standard instead of using an isolated solution like it | |
954 does today. Adopting SMuFL will help integrating LilyPond with the world of | |
955 music notation software and eventually give LilyPond users access to a wider | |
956 selection of notation fonts. | |
957 | |
958 Making LilyPond compliant to SMuFL includes remapping of the glyphs that are | |
959 built from METAFONT sources, adjusting the glyphs' metrics to SMuFL's | |
960 specifications, and finally updating the way LilyPond looks up and positions the | |
961 glyphs. As an optional part of this project LilyPond's font loading mechanism | |
962 could be modified to use notation fonts installed as system fonts instead of | |
963 inside the LilyPond installation. | |
964 | |
965 @emph{Difficulty}: Easy/medium | |
966 | |
967 @emph{Requirements}: C++ and willingness to get familiar with LilyPond | |
968 internals. | |
969 | |
970 @emph{Recommended}: Interest and experience in working with font files. | |
971 A little bit of METAFONT. | |
972 | |
973 @emph{Mentors}: Werner Lemberg, Abraham Lee | |
974 | |
975 | |
976 @subsubheading Adding variants of font glyphs | |
977 | |
978 @divClass{keep-bullets} | |
979 @itemize | |
980 | |
981 @item | |
982 Adding @q{on} and @q{between} staff-line variants. | |
983 | |
984 @item | |
985 Shorter and narrower variants of some glyphs for example, accidentals. | |
986 Another, more specific example could be an ancient notation breve | |
987 notehead coming in two variants one with a small or big @q{hole} within | |
988 it. | |
989 | |
990 @end itemize | |
991 @divEnd | |
992 | |
993 @emph{Difficulty:} easy | |
994 | |
995 @emph{Requirements:} MetaFont, C++, good eye for details | |
996 | |
997 @emph{Recommended knowledge:} basic LilyPond knowledge | |
998 | |
999 @emph{Mentor:} Werner Lemberg | |
1000 | |
1001 | |
1002 @subsubheading Contemporary Notation | |
1003 | |
1004 LilyPond is very good at creating non-standard notation. Having to | |
1005 @emph{code} every graphical element instead of simply @emph{drawing} | |
1006 it may seem cumbersome but is in fact a strong asset. New notational | |
1007 functionality can be provided with consistent appearance, automatic | |
1008 layout and a natural syntactic interface. | |
1009 | |
1010 Within the @uref{https://github.com/openlilylib/oll-core, openLilyLib} | |
1011 library system the student will create a fundamental infrastructure | |
1012 and building blocks to make creating contemporary notation easier. | |
1013 Additionally (at least) @emph{one} concrete package is developed to | |
1014 cover specific contemporary notation, such as for example the style | |
1015 of a given composer, extended playing techniques for a specific | |
1016 instrument or a certain category of effects. | |
1017 | |
1018 @emph{Difficulty:} medium | |
1019 | |
1020 @emph{Requirements:} Scheme (interaction with LilyPond internals), | |
1021 contemporary notation techniques | |
1022 | |
1023 @emph{Recommended:} sense of building hierarchical frameworks | |
1024 | |
1025 @emph{Mentors:} @emph{NN,} Urs Liska | |
1026 | |
1027 | |
1028 @subsubheading Rewrite LibreOffice LilyPond Extension with Python | |
1029 | |
1030 The @uref{http://ooolilypond.sourceforge.net/, OOoLilyPond} extension | |
1031 made it possible to conveniently include LilyPond score snippets in | |
1032 OpenOffice.org/LibreOffice Writer, Draw and Impress documents while | |
1033 keeping source and image together. After many years without development | |
1034 an initial effort has started to make the extension compatible again | |
1035 with current versions of LibreOffice and LilyPond. | |
1036 | |
1037 However, as the LibreOffice ecosystem has changed substantially it is | |
1038 now possible to rewrite the extension with Python and PyQt. This will | |
1039 not only be more powerful in general but will allow the integration of | |
1040 functionality from @uref{http://frescobaldi.org, Frescobaldi}, such as | |
1041 for example syntax highlighting, entry helpers, score wizards or musical | |
1042 transformations. | |
1043 | |
1044 @emph{Difficulty:} easy/medium | |
1045 | |
1046 @emph{Requirements:} Python, PyQt, LilyPond basics, LibreOffice | |
1047 extension basics | |
1048 | |
1049 @emph{Recommended knowledge:} Familiarity with Frescobaldi code based | |
1050 or willingness to learn during bonding period | |
1051 | |
1052 @emph{Mentor(s):} Joram Berger, Urs Liska, (Thorsten Behrens/LibreOffice) | |
1053 | |
1054 | |
1055 @subsubheading Automated testing and documentation for openLilyLib | |
1056 | |
1057 @uref{https://github.com/openlilylib, openLilyLib} is an extension | |
1058 framework for LilyPond code providing a “snippets” repository and a | |
1059 suite of integrated packages such as for example page layout tools or | |
1060 scholarly annotations. It is very powerful and promising, but to really | |
1061 get off the ground two features are missing: automated testing and | |
1062 documentation generation. | |
1063 | |
1064 Automated testing is necessary to ensure modifications to functionality | |
1065 don't break other functions within the library. There is already some | |
1066 Automated Testing of the “snippets” repository with Github's Travis | |
1067 server, but this has to be reconsidered and extended to cover the | |
1068 standalone packages too. | |
1069 | |
1070 In order to be usable for a wider range of LilyPond users on a “consumer | |
1071 level” openLilyLib needs proper documentation. This documentation has | |
1072 to be generated from the sources, so a system is needed that requires | |
1073 package authors to document the input files and provide additional usage | |
1074 examples, from which documentation is generated. Ideally but not | |
1075 necessarily this is implemented as a Git hook, i.e. automatically upon | |
1076 each update to the repository. We don't prescribe the tools and | |
1077 approaches to be used, but the most widely used language in the LilyPond | |
1078 domain is Python, so there would be some bias towards that. | |
1079 Alternatively a Scheme solution could be fine so generating the | |
1080 documentation would actually be triggered by “compiling” a certain | |
1081 LilyPond input file. In general it is advisable to make use of proven | |
1082 concepts and tools from other languages. | |
1083 | |
1084 The eventual output of the documentation should be a static HTML site | |
1085 that can be viewed locally and/or uploaded to a website. But it would | |
1086 be beneficial if the tool would first generate an intermediate | |
1087 representation (e.g. a JSON file with additional media files) from which | |
1088 a Single Page Application could retrieve content for display on | |
1089 openLilyLib's @uref{https://openlilylib.org, website}. Development of | |
1090 such a SPA @emph{can} be part of the GSoC project, but is optional. | |
1091 | |
1092 @emph{Difficulty:} medium | |
1093 | |
1094 @emph{Requirements:} Python or Scheme, static website generator(s) or | |
1095 (Node.js based) dynamic web application technology. Continuous | |
1096 Integration (can be learned during the bonding period) | |
1097 | |
1098 @emph{Mentors:} Urs Liska, Matteo Ceccarello | |
1099 | |
1100 | |
1101 @subsubheading MusicXML | |
1102 | |
1103 Improving MusicXML import and export functions: | |
1104 | |
1105 File interchange between LilyPond and other applications using MusicXML | |
1106 is still a difficult matter. To import MusicXML it has to be converted | |
1107 manually by the @code{musicxml2ly} script. Export @emph{to} MusicXML is | |
1108 only available as a rudimentary feature inside Frescobaldi. In order to | |
1109 provide natural interchange between LilyPond and MusicXML based | |
1110 applications there's the need of actual import functionality and a | |
1111 dedicated export backend. | |
1112 | |
1113 Importing XML shall provide file, line and column to add origin | |
1114 attributes to generated objects. That way point and click can be | |
1115 made available in Frescobaldi or other supported IDEs. | |
1116 | |
1117 Exporting XML shall be realized with an exporter class like the MIDI | |
1118 export. This may be based on the work already done in | |
1119 @uref{https://github.com/DavidGarfinkle/Lilypond_MusicXMLexport, GSoC 2015} | |
1120 by David Garfinkle. It should be checked if it is possible to use | |
1121 another XML library than the one provided by guile-2 in order to have | |
1122 this feature available in current LilyPond (which is based on guile-1.8). | |
1123 | |
1124 @emph{Difficulty:} medium | |
1125 | |
1126 @emph{Requirements:} MusicXML, Python, Scheme, basic LilyPond knowledge | |
1127 | |
1128 @emph{Recommended:} Familiarity with other scorewriters (for cross-testing) | |
1129 | |
1130 @emph{Mentor:} Jan-Peter Voigt | |
1131 | |
1132 @divEnd | |
1133 | |
1134 | |
1135 @divClass{column-center-middle-color2} | |
1136 @subheading Information for Applicants/Participants | |
1137 | |
1138 In order to have a satisfying experience with GSoC applicants are | |
1139 strongly advised to thoroughly read the following recommendations. Some | |
1140 of these are relevant for the application process, others for the time | |
1141 within the project. | |
1142 | |
1143 @itemize | |
1144 | |
1145 @item | |
1146 Read all applicable information on the program's website, particularly | |
1147 the | |
1148 @uref{https://developers.google.com/open-source/gsoc/resources/manual, | |
1149 students' manual}. Make sure you fulfil all of Google's prerequisites | |
1150 and are willing to join the program as a full-time commitment over the | |
1151 coding period of three months. | |
1152 | |
1153 @item | |
1154 Please get in touch with us as soon as possible if you are interested in | |
1155 applying with a project. Mentor availability may change without notice, | |
1156 project proposals may need fine-tuning, and many other reasons might | |
1157 require us to reject or ignore an application that hasn't been discussed | |
1158 before. | |
1159 | |
1160 @item | |
1161 We do not know in advance how many “slots” we will have available for | |
1162 projects, so please be aware that you may find yourself in competition | |
1163 with other applicants or not. Interested or even enthusiastic response | |
1164 from our mentors is no guarantee of eventually being accepted, and | |
1165 @emph{not} being accepted does not necessarily indicate a negative | |
1166 evaluation of your application. If we have to decide between different | |
1167 applicants there may be various aspects to consider. | |
1168 | |
1169 @item | |
1170 Integration in the LilyPond community is a fundamental part of GSoC, and | |
1171 we expect our students to make substantial efforts to become community | |
1172 members. Within the @emph{bonding period} we expect you to write a blog | |
1173 post about your project (either on @uref{http://lilypondblog.org, Scores | |
1174 of Beauty} or on any other blog) and to be active on our mailing lists, | |
1175 introducing yourself but also communicating about unrelated tasks. This | |
1176 goes beyond the mere setting up of a working environment and | |
1177 familiarizing yourself with the relevant code, but we think it is | |
1178 crucial for the GSoC project to be mutually satisfying. | |
1179 | |
1180 @item | |
1181 If you are accepted to the program you will have one mentor explicitly | |
1182 assigned to your project. With this mentor you will have to agree upon | |
1183 a communication strategy, be it emails, chatrooms, issue trackers or | |
1184 voice/video chats. Regular communication is absolutely crucial for the | |
1185 success of a GSoC project so you are stricly required to keep talking to | |
1186 your mentor. But keep in mind that your mentor has explicitly taken | |
1187 over the responsibility for your project, and while unlike you he isn't | |
1188 paid for this activity you are still entitled to get regular attention | |
1189 from him. | |
1190 | |
1191 @item | |
1192 In order to get support from your mentor you have to give him a chance | |
1193 to follow your progress and efforts. Therefore it is important to | |
1194 regularly commit your changes to the versioning repository you are | |
1195 working on. Don't hesitate making unfinished code available because you | |
1196 are afraid of criticism, and don't suppress questions because you think | |
1197 they might be considered stupid. But ideally your code should at any | |
1198 time be accompanied by compatible testing code. Your mentor may not be | |
1199 able to properly assess your code by only @emph{reading} it without the | |
1200 opportunity to apply it in a real example. | |
1201 | |
1202 @end itemize | |
1203 | |
1204 There is a list of inactive projects in the @ref{Attic}. We list | |
1205 projects there that are still considered valuable but for which there | |
1206 are currently no mentors available. | |
1207 | |
1208 @divEnd | |
1209 | 888 |
1210 @node Authors | 889 @node Authors |
1211 @unnumberedsec Authors | 890 @unnumberedsec Authors |
1212 | 891 |
1213 @divClass{column-left-top} | 892 @divClass{column-left-top} |
1214 @subheading Current Development Team | 893 @subheading Current Development Team |
1215 | 894 |
1216 @divClass{keep-bullets} | 895 @divClass{keep-bullets} |
1217 @developersCurrent | 896 @developersCurrent |
1218 @divEnd | 897 @divEnd |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1407 @miscLink{CHANGES-1.3,v1.3}, | 1086 @miscLink{CHANGES-1.3,v1.3}, |
1408 @miscLink{CHANGES-1.2,v1.2}, | 1087 @miscLink{CHANGES-1.2,v1.2}, |
1409 @miscLink{CHANGES-1.1,v1.1}, | 1088 @miscLink{CHANGES-1.1,v1.1}, |
1410 @miscLink{CHANGES-1.0,v1.0}, | 1089 @miscLink{CHANGES-1.0,v1.0}, |
1411 @miscLink{CHANGES-0.1,v0.1}, | 1090 @miscLink{CHANGES-0.1,v0.1}, |
1412 @miscLink{CHANGES-0.0,v0.0} | 1091 @miscLink{CHANGES-0.0,v0.0} |
1413 | 1092 |
1414 @divEnd | 1093 @divEnd |
1415 | 1094 |
1416 @divClass{column-center-middle-color2 bigger-subsubheadings} | 1095 @divClass{column-center-middle-color2 bigger-subsubheadings} |
1417 @subheading Inactive Google Summer of Code project suggestions | 1096 @gsocInactive |
1418 | |
1419 The following list describes GSoC projects that had been proposed | |
1420 in recent years and which are still considered valuable but for | |
1421 which we currently don't have mentors available. | |
1422 | |
1423 | |
1424 @subsubheading Improve slurs and ties | |
1425 | |
1426 The engraving quality of slurs and ties is often unsatisfactory. Ties | |
1427 @q{broken} by clef or staff changes are not handled well. The project | |
1428 could include collecting and sorting examples of bad output, deciding on | |
1429 the intended output and writing code to improve them. | |
1430 | |
1431 @emph{Difficulty:} hard | |
1432 | |
1433 @emph{Requirements:} C++, experience with writing heuristics | |
1434 | |
1435 @emph{Recommended knowledge:} LilyPond knowledge, aesthetic sense | |
1436 | |
1437 | |
1438 @subsubheading Grace notes | |
1439 | |
1440 Fix problems with synchronization of grace notes. Grace notes can | |
1441 interfere with LilyPond's timing and cause odd effects, especially when | |
1442 multiple staffs are used where some have grace notes and others don't. | |
1443 This is one of the longest-standing and one of the more embarrassing | |
1444 @uref{https://sourceforge.net/p/testlilyissues/issues/34/,bugs} in | |
1445 LilyPond. | |
1446 | |
1447 @emph{Difficulty:} medium | |
1448 | |
1449 @emph{Requirements:} C++, MIDI | |
1450 | |
1451 @emph{Recommended:} familiarity with LilyPond internals | |
1452 | |
1453 | |
1454 @subsubheading Improve default beam positioning | |
1455 | |
1456 For regular, cross-staff, broken and kneed beams. Beaming should depend | |
1457 on context and neighbor notes (see section 2.2 of | |
1458 @uref{http://imslp.org/wiki/Repository_of_Music-Notation_Mistakes_%28Coulon%2C_J
ean-Pierre%29, | |
1459 this book}). If possible also reduce beaming-computation time. | |
1460 | |
1461 @emph{Difficulty:} medium | |
1462 | |
1463 @emph{Requirements:} C++, experience with writing heuristics | |
1464 | |
1465 @emph{Recommended knowledge:} aesthetic sense | |
1466 | |
1467 | |
1468 @subsubheading Help improve compilation behavior | |
1469 | |
1470 Automatic code analysis tools, like valgrind memory leak detection or | |
1471 callgrind code profilers, provide valuable information about possible | |
1472 flaws in our C++ code. Cleaning up warnings would allow us to automate | |
1473 the rejection of any patch which introduced extra warnings. | |
1474 | |
1475 @emph{Difficulty:} medium | |
1476 | |
1477 @emph{Requirements:} C++ | |
1478 | |
1479 @divEnd | 1097 @divEnd |
1480 | 1098 |
1481 @divClass{column-center-middle-color2} | 1099 @divClass{column-center-middle-color2} |
1482 @subheading Old News | 1100 @subheading Old News |
1483 | 1101 |
1484 Older news items dating back to July 2003. Newer news can be found on | 1102 Older news items dating back to July 2003. Newer news can be found on |
1485 the @ref{News} page. | 1103 the @ref{News} page. |
1486 @divEnd | 1104 @divEnd |
1487 | 1105 |
1488 @include web/news-old.itexi | 1106 @include web/news-old.itexi |
OLD | NEW |