diff options
Diffstat (limited to 'Documentation/automated-engraving')
17 files changed, 140 insertions, 327 deletions
diff --git a/Documentation/automated-engraving/GNUmakefile b/Documentation/automated-engraving/GNUmakefile new file mode 100644 index 0000000000..c93c9e0624 --- /dev/null +++ b/Documentation/automated-engraving/GNUmakefile @@ -0,0 +1,5 @@ +depth = ../.. + +LOCALSTEPMAKE_TEMPLATES = ly + +include $(depth)/make/stepmake.make diff --git a/Documentation/automated-engraving/benchmarking.itexi b/Documentation/automated-engraving/benchmarking.itexi index 31aec4319c..e4a239579e 100644 --- a/Documentation/automated-engraving/benchmarking.itexi +++ b/Documentation/automated-engraving/benchmarking.itexi @@ -27,8 +27,9 @@ LilyPond 1.4: @divClass{float-center} @divEnd -@ref{pictures/baer-sarabande-hires.jpeg, -@image{pictures/baer-sarabande,,,.png}} +@c @ref{baer-sarabande-hires.jpeg, +@sourceimage{baer-sarabande,,,.png} +@c } @divClass{float-center} @divEnd @@ -36,7 +37,7 @@ B@"arenreiter (click to enlarge) @divClass{float-center} @divEnd -@image{pictures/lily14-sarabande,,,.png} +@sourceimage{lily14-sarabande,,,.png} @divClass{float-center} @divEnd @@ -48,7 +49,7 @@ score showed a lot of errors in the formatting details: @divClass{float-center} @divEnd -@image{pictures/lily14-sarabande-correct,,,.png} +@sourceimage{lily14-sarabande-correct,,,.png} @divClass{float-center} @divEnd @@ -79,7 +80,7 @@ output is very close to publication quality. @divClass{float-center} @divEnd -@image{pictures/lily17-sarabande,,,.png} +@sourceimage{lily17-sarabande,,,.png} @divClass{float-center} @divEnd @@ -87,7 +88,7 @@ LilyPond 1.8 @divClass{float-center} @divEnd -@image{pictures/baer-sarabande,,,.png} +@sourceimage{baer-sarabande,,,.png} @divClass{float-center} @divEnd @@ -98,7 +99,7 @@ Another example of benchmarking is our project for the 2.1 series, a @divClass{float-right} @divEnd -Next: @ref{typography-features.html,Cool features}, +Next: @ref{typography-features,Cool features}, typographical hoops that we made LilyPond jump through. @bye diff --git a/Documentation/automated-engraving/conclusion.itexi b/Documentation/automated-engraving/conclusion.itexi index 880e8be60f..3cba5549af 100644 --- a/Documentation/automated-engraving/conclusion.itexi +++ b/Documentation/automated-engraving/conclusion.itexi @@ -14,18 +14,24 @@ We have shown you what engraved music should look like, and how we built our software to emulate that look. We have put a lot of effort into -building it. Thanks to all that hard work, you can @ref{@DEPTH@switch/tour.html,use the program to print nice music -too}. +building it. Thanks to all that hard work, you can + +FIXME + +@c @ref{@DEPTH@switch/tour.html,use the program to print nice music too}. To complete the reading of this essay, you may want to have a look at -@ref{@DEPTH@about/pubs.html,publications and articles}, -especially @ref{http://www.musicbyandrew.ca/finale-lilypond-1.html,Andrew + +FIXME + +@c @ref{@DEPTH@about/pubs.html,publications and articles}, +especially @uref{http://www.musicbyandrew.ca/finale-lilypond-1.html,Andrew Hawryluk's writings}, which include Finale and LilyPond notation benchmarking. @divClass{float-right} @divEnd -Go @ref{index,back} to the index. +@c Go @ref{Top,back} to the top. @bye diff --git a/Documentation/automated-engraving/divide-and-conquer.itexi b/Documentation/automated-engraving/divide-and-conquer.itexi index 6f28836bf6..566af1a4ce 100644 --- a/Documentation/automated-engraving/divide-and-conquer.itexi +++ b/Documentation/automated-engraving/divide-and-conquer.itexi @@ -7,19 +7,17 @@ @end ignore - +@node divide-and-conquer @unnumberedsec Plan de campagne Since content and form of a score are separate, we have to match that in the design of software. Hence, the basic blueprint of our program should follow this scheme -@table asis +@multitable @columnfractions .3 .3 .3 @item -@tab - -@image{pictures/simple-notation,,,.png} +@sourceimage{simple-notation,,,.png} @tab @@ -29,15 +27,13 @@ should follow this scheme @tab -@code{{ c'4 d'8 }} +@code{@{ c'4 d'8 @}} @item -@tab - 1. form @@ -53,7 +49,7 @@ should follow this scheme -@end table +@end multitable In effect, we are conquering the problem by dividing it into subproblems @@ -79,7 +75,7 @@ Finally, whenever you subdivide a problem, a new problem is created, @divClass{float-right} @divEnd -Next: @ref{implementing-notation.html,Impressive, but does it also +Next: @ref{implementing-notation,Impressive, but does it also work in theory}? A practical approach to capturing notation. @bye diff --git a/Documentation/automated-engraving/engraving.itexi b/Documentation/automated-engraving/engraving.itexi index edc422615a..444a060757 100644 --- a/Documentation/automated-engraving/engraving.itexi +++ b/Documentation/automated-engraving/engraving.itexi @@ -6,16 +6,11 @@ version that you are working on. See TRANSLATION for details. @end ignore - - - @node engraving - - -@image{pictures/hader-slaan,,,.jpeg} - @unnumberedsec Music engraving +@sourceimage{hader-slaan,,,.jpeg} + When we know what symbols to print, we have to decide where to put them so the the result looks pleasing. This art is called @emph{music @@ -44,16 +39,16 @@ about the rules of elegant engraving. @item Finally, engraving is about selecting proper distance and -blackness for scores. @image{pictures/stone-distance,,,.png} The +blackness for scores. @sourceimage{stone-distance,,,.png} The quality of the end result must be judged visually. This is virtually impossible to capture in formal rules. -@end itemize@* +@end itemize @divClass{float-right} @divEnd -Next: @ref{implementing-typography.html,Stamping computer +Next: @ref{implementing-typography,Stamping computer screens?}. Computer hackers take over the engraving business. diff --git a/Documentation/automated-engraving/formatting-architecture.itexi b/Documentation/automated-engraving/formatting-architecture.itexi index 4e551e9d15..11c94e7c2d 100644 --- a/Documentation/automated-engraving/formatting-architecture.itexi +++ b/Documentation/automated-engraving/formatting-architecture.itexi @@ -26,7 +26,7 @@ and arpeggio. In the first chord, the objects have all directions down @divClass{float-center} @divEnd -@image{pictures/directions-updown,,,.png} +@sourceimage{directions-updown,,,.png} The process of formatting a score consists of reading and writing object variables. @@ -40,7 +40,7 @@ Some variables have a preset value. For example, the thickness of @divClass{float-center} @divEnd -@image{pictures/thickness-tweaks,,,.png} +@sourceimage{thickness-tweaks,,,.png} @item Formatting rules are also preset variables: each object has @@ -51,14 +51,14 @@ use to draw their symbol is changed during the music fragment: @divClass{float-center} @divEnd -@image{pictures/mc-squared,,,.png} +@sourceimage{mc-squared,,,.png} @end itemize @divClass{float-right} @divEnd Next: - @ref{scoring-esthetics.html,Beautiful numbers}: how + @ref{scoring-esthetics,Beautiful numbers}: how LilyPond participates in the Miss World contests. @bye diff --git a/Documentation/automated-engraving/implementing-notation.itexi b/Documentation/automated-engraving/implementing-notation.itexi index ee9711c963..4b16dbb8d7 100644 --- a/Documentation/automated-engraving/implementing-notation.itexi +++ b/Documentation/automated-engraving/implementing-notation.itexi @@ -29,7 +29,7 @@ The most basic plug-in creates Note-heads: @divClass{float-center} @divEnd -@image{pictures/engraver-noteheads,,,.png} +@sourceimage{engraver-noteheads,,,.png} This plug-in creates graphical objects from musical events. People that put graphics to musical ideas are called copyists or engravers, @@ -42,7 +42,7 @@ representing the staff lines. @divClass{float-center} @divEnd -@image{pictures/engraver-staff,,,.png} +@sourceimage{engraver-staff,,,.png} @item @@ -51,7 +51,7 @@ each head should be placed. @divClass{float-center} @divEnd -@image{pictures/engraver-clef,,,.png} +@sourceimage{engraver-clef,,,.png} @@ -61,7 +61,7 @@ For the flags and stems we add a @code{Stem_engraver}: @divClass{float-center} @divEnd -@image{pictures/engraver-stem,,,.png} +@sourceimage{engraver-stem,,,.png} This engraver is notified of any note head coming along. Every time one (or more, for a chord) note head is seen, a stem object is @@ -75,7 +75,7 @@ note heads, etc.: @divClass{float-center} @divEnd -@image{pictures/engraver-slur,,,.png} +@sourceimage{engraver-slur,,,.png} @@ -87,7 +87,7 @@ engraver. @divClass{float-center} @divEnd -@image{pictures/engraver-acc,,,.png} +@sourceimage{engraver-acc,,,.png} The @code{Accidental_engraver} is the most complex plug-in: it has to look at the key signature, note pitches, ties, and bar lines to @@ -97,7 +97,8 @@ decide when to print accidentals. @end itemize -@unnumberedsec Polyphonic notation +@c @unnumberedsec Polyphonic notation +@heading Polyphonic notation The system shown in the last section works well for monophonic music, but what about polyphony? In polyphonic notation, many voices can @@ -105,7 +106,7 @@ share a staff: @divClass{float-center} @divEnd -@image{pictures/engraver-final,,,.png} +@sourceimage{engraver-final,,,.png} In this situation, the accidentals and staff are shared, but the stems, slurs, beams, etc. are private to each voice. Hence, engravers @@ -118,11 +119,11 @@ Score context: @divClass{float-center} @divEnd -@image{pictures/engraver-score,,,.png} +@sourceimage{engraver-score,,,.png} @divClass{float-right} @divEnd -Next: @ref{engraving.html,The art of stamping}: +Next: @ref{engraving,The art of stamping}: how @emph{did} they make hand-made music? @bye diff --git a/Documentation/automated-engraving/implementing-typography.itexi b/Documentation/automated-engraving/implementing-typography.itexi index 074695f620..2bf029e4a3 100644 --- a/Documentation/automated-engraving/implementing-typography.itexi +++ b/Documentation/automated-engraving/implementing-typography.itexi @@ -63,7 +63,7 @@ formatting decisions. @divClass{float-right} @divEnd -Next: @ref{formatting-architecture.html,Program architecture, +Next: @ref{formatting-architecture,Program architecture, your flexible friend}: tuning, tweaking and developing typography rules. diff --git a/Documentation/automated-engraving/index.itexi b/Documentation/automated-engraving/index.itexi deleted file mode 100644 index 4377f0b60d..0000000000 --- a/Documentation/automated-engraving/index.itexi +++ /dev/null @@ -1,121 +0,0 @@ -\input texinfo @c -*- coding: utf-8; mode: texinfo; -*- -@ignore - Translation of GIT committish: FILL-IN-HEAD-COMMITTISH - - When revising a translation, copy the HEAD committish of the - version that you are working on. See TRANSLATION for details. -@end ignore - -@ignore -hmm, the one big page is too big, but it was really inviting to - read. this is not. maybe just scrap this menu and introduction - to index? -@end ignore - -@chapheading @qq{Obsessed with putting ink on paper} -@node index - -@unnumberedsec What is behind LilyPond? - - -@image{pictures/hader-collage,,,.jpeg} - - - -LilyPond is not unique in making music notation: there are a lot of -programs that print music, and nowadays most of the newly printed -music is made with computers. Unfortunately, that also shows: just -ask any musician that plays classical music: new scores do not look as -nice as old ones. - -What is the difference between hand-work and machine work, and what - has caused it? How can we improve the situation? This essay explains - problems in music notation (software), and our approach to solving - them. - -@menu - -@itemize - @item - - @ref{introduction.html,Introduction}: what's wrong with - computer music notation. - - - @item - - @ref{software.html,What's wrong with software}, or how - Finale is not the end-all of music software. - - - @item - - @ref{problem-statement.html,How not to design software}, - or: modeling music notation. - - - @item - - @ref{divide-and-conquer.html,Divide and conqueror}, - A blue print for automated notation. - - - @item - - @ref{implementing-notation.html,Impressive, but does it also - work in theory}? A practical approach to capturing notation. - - @item - - @ref{engraving.html,Music engraving}, the art of printing - music. - - - - @item - - @ref{implementing-typography.html,Implementing typography}: - hackers attack the engraving problem. - - - @item - - @ref{formatting-architecture.html,A flexible program - architecture} lets us write engraving software - - - @item - - @ref{scoring-esthetics.html,Beautiful numbers}: how - LilyPond participates in the Miss World contests. - - - @item - - @ref{benchmarking.html,Notation benchmarking}: is a flexible - architecture enough? - - - @item - - @ref{typography-features.html,Typographical features} unique - to LilyPond. - - - @item - - @ref{input-format.html,Input format}: how to enter music. - - - @item - - @ref{conclusion.html,Conclusion} - - -@end itemize - -This essay is also available in @ref{big-page.html,one big - page}. - -@bye - diff --git a/Documentation/automated-engraving/input-format.itexi b/Documentation/automated-engraving/input-format.itexi index 8c39eeaafa..5cf8d4c3db 100644 --- a/Documentation/automated-engraving/input-format.itexi +++ b/Documentation/automated-engraving/input-format.itexi @@ -33,7 +33,7 @@ Are a quarter note C1 and eighth note D1, as in this example: @divClass{float-center} @divEnd -@image{pictures/simple-notation,,,.png} +@sourceimage{simple-notation,,,.png} On a microscopic scale, such syntax is easy to use. On a larger scale, syntax also needs structure. How else can you enter complex pieces @@ -41,85 +41,79 @@ like symphonies and operas? The structure is formed by the concept of music expressions: by combining small fragments of music into larger ones, more complex music can be expressed. For example, -@table asis +@multitable @columnfractions .5 .5 @item -@tab - c4 @tab -@image{pictures/simultaneous-0,,,.png} +@sourceimage{simultaneous-0,,,.png} -@end table +@end multitable -Combine this simultaneously with two other notes by enclosing in << -and >>. +Combine this simultaneously with two other notes by enclosing in << +and >>. -@table asis -@item +@multitable @columnfractions .5 .5 -@tab +@item @verbatim - <<c4 d4 e4>> + <<c4 d4 e4>> @end verbatim @tab -@image{pictures/simultaneous-1,,,.png} +@sourceimage{simultaneous-1,,,.png} -@end table +@end multitable This expression is put in sequence by enclosing it in braces, i.e., -@table asis +@multitable @columnfractions .5 .5 @item -@tab @verbatim - { <<c4 d4 e4>> f4 } + { <<c4 d4 e4>> f4 } @end verbatim @tab -@image{pictures/simultaneous-2,,,.png} +@sourceimage{simultaneous-2,,,.png} -@end table +@end multitable The above is another expression, and therefore, it may be combined again with a simultaneous expression (in this case, a half note). -@table asis +@multitable @columnfractions .5 .5 @item -@tab - @verbatim -<< { <<c4 d4 e4>> f4 } g2 >> +<< { <<c4 d4 e4>> f4 } g2 >> @end verbatim @tab -@image{pictures/simultaneous-3,,,.png} +@sourceimage{simultaneous-3,,,.png} -@end table +@end multitable Such recursive structures can be specified neatly and formally in a @emph{context-free grammar}. The parsing code is also generated @@ -135,35 +129,30 @@ writing decent formatting code is much harder. This is also illustrated by the line-counts for the respective components: parsing and representation take up less than 10% of the code. -@table asis -@item +@multitable @columnfractions .5 .5 @item Parsing + representation +@tab @item total - - -@item - @tab +@item 6000 lines C++ - @tab 61500 lines C++ +@end multitable - -@end table - -<! todo : +@ignore + TODO : blurbs about lilypond today future? - > +@end ignore @divClass{float-right} @divEnd -Next: @ref{conclusion.html,wrapping it up}, the conclusion. +Next: @ref{conclusion,wrapping it up}, the conclusion. @bye diff --git a/Documentation/automated-engraving/introduction.itexi b/Documentation/automated-engraving/introduction.itexi index 97bd6c59c9..29d824649b 100644 --- a/Documentation/automated-engraving/introduction.itexi +++ b/Documentation/automated-engraving/introduction.itexi @@ -30,28 +30,26 @@ is a typical contemporary computer product. Take a few seconds to let the looks of both pages sink in. Which one do you like better, and why? -@table asis +@ifnottex +@multitable @columnfractions .5 .5 @item -@tab -@image{pictures/baer-suite1-fullpage,,,.png} +@sourceimage{baer-suite1-fullpage,,,.png} @tab -@image{pictures/henle-suite1-fullpage,,,.png} +@sourceimage{henle-suite1-fullpage,,,.png} @item -@tab B@"arenreiter (BA 320, (c) 1950) @tab Henle (nr. 666 (c) 2000) - - -@end table +@end multitable +@end ifnottex The left picture looks nice: it has flowing lines and movement. It's music, and it's alive. Now, the picture on the right shows the same @@ -62,7 +60,7 @@ a fragment of both pieces: @divClass{float-center} @divEnd -@image{pictures/baer-suite1-line,,,.png} +@sourceimage{baer-suite1-line,,,.png} @divClass{float-center} @divEnd @@ -72,7 +70,7 @@ Hand-made @divClass{float-center} @divEnd -@image{pictures/henle-suite1-line,,,.png} +@sourceimage{henle-suite1-line,,,.png} @divClass{float-center} @divEnd @@ -107,7 +105,7 @@ to better performances. @divClass{float-right} @divEnd -Next: @ref{software.html,What's wrong with software}, or how +Next: @ref{software,What's wrong with software}, or how Finale is not the end-all of music software. diff --git a/Documentation/automated-engraving/introduction.texi b/Documentation/automated-engraving/introduction.texi deleted file mode 100644 index 42f2e6ecb8..0000000000 --- a/Documentation/automated-engraving/introduction.texi +++ /dev/null @@ -1,50 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename introduction -@settitle What's wrong with computer music notation? -@c %**end of header - -@node Top - - We like to call LilyPond an "automated engraving system." It will format music notation beautifully without requiring typographical expertise of its users. - - LilyPond is not unique in making music notation: there are a lot of programs that print music, and nowadays most of the newly printed music is made with computers. Unfortunately, that also shows: just ask any musician that plays classical music: new scores do not look as nice as old (from before, say, 1970) scores: the new ones have a bland, mechanical look. They are not at all pleasurable to play from. - - To illustrate this, take a look at the following examples. Both are editions of the 1st Cello Suite by J.S.Bach. The one on the left is a very beautifully hand-engraved edition from 1950, the one on the right is a typical contemporary computer product. Take a few seconds to let the looks of both pages sink in. Which one do you like better, and why? - - -@table @asis - -@item - - -@item Bärenreiter (BA 320, (c) 1950) -Henle (nr. 666 (c) 2000) - -@end table - - - The left picture looks nice: it has flowing lines and movement. It's music, and it's alive. Now, the picture on the right shows the same music, and it was written by Bach. His music surely has liveliness and flowing lines.... Except, the score doesn't show it: it looks rigid and mechanical. To understand better why that is, let's blow up a fragment of both pieces: - - - - Hand-made - -@ - - - - -Computer-made - - The location of the bar lines is a giveaway. In the new edition, both barlines are on exactly the same horizontal location. Also, the note heads are on the exact same horizontal location. When you look back at the whole page, you can easily verify that almost all barlines are in the same location, as are most of the note heads. The entire thing is spaced as if it were put to a big grid, which is what causes the mechanical impression. - - This is not the only error on this example, and more importantly, this piece is not the only one with typographical errors. Sadly, almost all music printed nowadays is full of basic typographical mistakes. - - Musicians are usually more absorbed with performing the music than with studying its looks, so this nitpicking about typographical details may seem academical. That is not justified. This piece here has a monotonous rhythm. If all lines look the same, they become like a labyrinth. If the musician looks away once or has a lapse in his concentration, he will be lost on the page. - - In general, this is a common characteristic of typography. Layout should be pretty, not only for its own sake, but especially because it helps the reader in his task. For performance material like sheet music, this is doubly important: musicians have a limited amount of attention. The less attention they need for reading, the more they can focus on playing itself. In other words, better typography translates to better performances. - - Next: What's wrong with software, or how Finale is not the end-all of music software. -@contents -@bye diff --git a/Documentation/automated-engraving/problem-statement.itexi b/Documentation/automated-engraving/problem-statement.itexi index d4219dbe77..8d00b54cdd 100644 --- a/Documentation/automated-engraving/problem-statement.itexi +++ b/Documentation/automated-engraving/problem-statement.itexi @@ -22,14 +22,14 @@ At first sight, music notation follows a straightforward hierarchical pattern. Consider the example below, with two staves containing two measures. -@image{pictures/naive-notation,,,.png} +@sourceimage{naive-notation,,,.png} Isn't writing software all about finding hierarchies and modeling the real world in terms of trees? In the view of a naive programmer, the above fragment of notation is easily abstracted to a nested set of boxes -@image{pictures/naive-notation-uml,,,.png} +@sourceimage{naive-notation-uml,,,.png} It's easy to follow this model when writing software. It's obvious how to store this data in memory, and writing on disk can be easily @@ -37,18 +37,18 @@ mirrored. In an XML-file you could write something like @verbatim - <score> - <staff> - <measure id="1"> - <chord length="1/2"> - <pitch name="c"> - </chord> - <chord> + <score> + <staff> + <measure id="1"> + <chord length="1/2"> + <pitch name="c"> + </chord> + <chord> .... - </measure> - </staff> - </score> + </measure> + </staff> + </score> @end verbatim @@ -57,7 +57,7 @@ used by a lot software. Unfortunately, it's also wrong. The hierarchical representation works for a lot of simpler music, but it falls apart for advanced use. Consider the following example: -@image{pictures/nonnaive-notation,,,.png} +@sourceimage{nonnaive-notation,,,.png} In this example, several assumptions of the previous model are violated: staves start and stop at will, voices jump around between @@ -69,7 +69,7 @@ simpler musical concept. Hence, software should reflect that separation. @divClass{float-right} @divEnd -Next: @ref{divide-and-conquer.html,Divide and conqueror}, +Next: @ref{divide-and-conquer,Divide and conqueror}, a blue print for automated notation @bye diff --git a/Documentation/automated-engraving/schubert.itexi b/Documentation/automated-engraving/schubert.itexi index 5f4c4a2d07..66f3f13de8 100644 --- a/Documentation/automated-engraving/schubert.itexi +++ b/Documentation/automated-engraving/schubert.itexi @@ -7,7 +7,7 @@ @end ignore - +@node schubert @unnumberedsec S@"angers Morgenlied, by Franz Schubert The benchmarking project for the LilyPond 2.1.x series, was the @@ -15,15 +15,15 @@ Ed. Peters version of a Schubert song. The result of 2.1.5 was nice, but certainly not perfect, -@image{pictures/bench-morgenlied,,,.png} +@sourceimage{bench-morgenlied,,,.png} Here is the original, -@image{pictures/morgenlied-crop-2,,,.jpeg} +@sourceimage{morgenlied-crop-2,,,.jpeg} and the result of LilyPond 2.1.35. -@image{pictures/morgenlied-ly-crop2,,,.png} +@sourceimage{morgenlied-ly-crop2,,,.png} This is a page from a song-book, which is printed in a smaller format. Normal print uses 20 pt staff height, this uses 17 pt. In smaller @@ -33,16 +33,11 @@ been implemented in LilyPond 2.1. The difference is hard to see here, due to the limited resolution of computer screens. For a more detailed view, see the LilyPond PDF, available -@ref{@@DOC@@v2.2/input/mutopia/F.Schubert/out-www/morgenlied.pdf,here}. +@uref{http://lilypond.org/documentation/v2.2/input/mutopia/F.Schubert/out-www/morgenlied.pdf,here}. @divClass{float-right} @divEnd -@ref{benchmarking.html,Back to the essay} - - - - - +@ref{benchmarking,Back to the essay} @bye diff --git a/Documentation/automated-engraving/scoring-esthetics.itexi b/Documentation/automated-engraving/scoring-esthetics.itexi index de7cc8abf8..90a324092e 100644 --- a/Documentation/automated-engraving/scoring-esthetics.itexi +++ b/Documentation/automated-engraving/scoring-esthetics.itexi @@ -7,13 +7,13 @@ @end ignore - +@node scoring-esthetics @unnumberedsec Beautiful numbers How do we actually make formatting decisions? In other words, which of the three configurations should we choose for the following slur? -@image{pictures/slur-esthetics,,,.png} +@sourceimage{slur-esthetics,,,.png} There are a few books on the art of music engraving available. Unfortunately, they contain rules of simple thumbs and some @@ -25,7 +25,7 @@ and often not all cases are covered completely. @divClass{float-center} @divEnd -@image{pictures/ross-beam-scan,,,.jpeg} +@sourceimage{ross-beam-scan,,,.jpeg} @divClass{float-center} @divEnd @@ -37,7 +37,7 @@ best formatting solution: score based formatting. The principle is the same as a beauty contest: for each possible configuration, we compute an ugliness score. Then we choose the least ugly configuration. -@image{pictures/slur-esthetics-annotate-1,,,.png} +@sourceimage{slur-esthetics-annotate-1,,,.png} For example, in the above configuration, the slur nicely connects the starting and ending note of the figure, a desirable trait. However, it @@ -45,7 +45,7 @@ also grazes one note head closely, while staying away from the others. Therefore, for this configuration, we deduct a `variance' score of 15.39. -@image{pictures/slur-esthetics-annotate-2,,,.png} +@sourceimage{slur-esthetics-annotate-2,,,.png} In this configuration, the slur keeps a uniform distance from the heads, but we have to deduct some points because the slur doesn't @@ -56,7 +56,7 @@ points. Furthermore, the slur goes up, while the melody goes down. This incurs a penalty of 2.00 points -@image{pictures/slur-esthetics-annotate-3,,,.png} +@sourceimage{slur-esthetics-annotate-3,,,.png} Finally, in this configuration, only the ending the slur is far away from the ending note head, at a score of 10.04 ugliness points. @@ -71,12 +71,12 @@ situations, for example @item determining beam slopes -@image{pictures/beam-scoring-example,,,.png} +@sourceimage{beam-scoring-example,,,.png} @item formatting tied chords -@image{pictures/ties-scoring-example,,,.png} +@sourceimage{ties-scoring-example,,,.png} @item formatting dotted chords @@ -95,7 +95,7 @@ result is much better, and because it makes our lives easy. @divClass{float-right} @divEnd -Next: @ref{benchmarking.html,Man is the measure of things}: is a +Next: @ref{benchmarking,Man is the measure of things}: is a flexible architecture enough? @bye diff --git a/Documentation/automated-engraving/software.itexi b/Documentation/automated-engraving/software.itexi index 250299eec3..3cb64e8847 100644 --- a/Documentation/automated-engraving/software.itexi +++ b/Documentation/automated-engraving/software.itexi @@ -25,7 +25,7 @@ the Sarabande of the 2nd Cello Suite by J. S. Bach. @divClass{float-center} @divEnd -@image{pictures/finale-sarabande-full,,,.png} +@sourceimage{finale-sarabande-full,,,.png} This example far surpasses the previous one when it comes to formatting errors: there are serious errors in literally @@ -36,7 +36,7 @@ magnification of that measure: @divClass{float-center} @divEnd -@image{pictures/finale-flat-detail,,,.png} +@sourceimage{finale-flat-detail,,,.png} The errors go down to the teensy details: below is a blowup of the beam in that measure. Of course, in proper typography the beam should @@ -46,7 +46,7 @@ lack thereof) with the underlying PostScript technology. @divClass{float-center} @divEnd -@image{pictures/finale-beam-detail,,,.png} +@sourceimage{finale-beam-detail,,,.png} Now, one could refute that Finale has a graphical interface, and it lets you easily move about elements to correct errors, or use plug-ins @@ -65,7 +65,7 @@ Did it occur to you that the stem of the last eighth note is too long? @divClass{float-center} @divEnd -@image{pictures/finale-flat-correct,,,.png} +@sourceimage{finale-flat-correct,,,.png} Unless you are an expert, typographical errors will irk you without being obvious. Many of them will go uncorrected and will still be in the @@ -105,7 +105,7 @@ doubt, measure the difference with a magnifying glass. @divClass{float-right} @divEnd -Next: @ref{problem-statement.html,How not to design software}, +Next: @ref{problem-statement,How not to design software}, or: modeling music notation. diff --git a/Documentation/automated-engraving/typography-features.itexi b/Documentation/automated-engraving/typography-features.itexi index 3e57bae77f..dd748576e8 100644 --- a/Documentation/automated-engraving/typography-features.itexi +++ b/Documentation/automated-engraving/typography-features.itexi @@ -17,23 +17,21 @@ blackness of the page. By using heavy stafflines, and a font design to match that, the overall impression is much stronger. This is also very clear from the following blowups: -@table asis@item -@tab +@multitable @columnfractions .3 .3 .3 +@item -@image{pictures/henle-flat-gray,,,.png} +@sourceimage{henle-flat-gray,,,.png} @tab -@image{pictures/baer-flat-gray,,,.png} +@sourceimage{baer-flat-gray,,,.png} @tab -@image{pictures/lily-flat-bw,,,.png} +@sourceimage{lily-flat-bw,,,.png} @item - -@tab Henle (2000) @tab @@ -44,7 +42,7 @@ LilyPond (2003) -@end table +@end multitable Another typical aspect of hand-engraved scores is the general look of the symbols. They almost never have sharp corners. This is because @@ -55,7 +53,8 @@ also present in all glyphs of our "Feta" font. -@unnumberedsec Spacing +@c @unnumberedsec Spacing +@heading Spacing One of the problems that the Bach piece above inspired us to attack is the spacing engine. One of its features is optical spacing. @@ -63,11 +62,11 @@ It is demonstrated in the fragment below. @divClass{float-center} @divEnd -@image{pictures/spacing-with-corr,,,.png} +@sourceimage{spacing-with-corr,,,.png} @divClass{float-center} @divEnd -@image{pictures/spacing-no-corr,,,.png} +@sourceimage{spacing-no-corr,,,.png} This fragment only uses quarter notes: notes that are played in a constant rhythm. The spacing should reflect that. Unfortunately, the @@ -81,7 +80,8 @@ with this correction, the bottom one without. In the last case, the down-stem/up-stems combinations form clumps of notes. -@unnumberedsec Ledger lines +@c @unnumberedsec Ledger lines +@heading Ledger lines Ledger lines are typographically difficult. They can easily blot together with other signs, such as ledger lines or @@ -89,27 +89,25 @@ accidentals. Other software prevents these collisions by spacing the lines wider (thus taking up more space), or shortening ledger lines (which hampers readability.) -@table asis@item -@tab +@multitable @columnfractions .3 .3 .3 +@item -@image{pictures/henle-ledger,,,.png} +@sourceimage{henle-ledger,,,.png} @tab -@image{pictures/baer-ledger,,,.png} +@sourceimage{baer-ledger,,,.png} @tab -@image{pictures/lily-ledger,,,.png} +@sourceimage{lily-ledger,,,.png} @item - -@tab Henle (2000) @tab @@ -120,7 +118,7 @@ LilyPond (2004) -@end table +@end multitable Traditional engravers would adjust the size of a ledger line, depending on what symbols were in the neighborhood. LilyPond does the @@ -129,7 +127,7 @@ lines, and they are shortened when there is an accidental. @divClass{float-right} @divEnd -Next: @ref{input-format.html,Use the Source, Luke}, or: what +Next: @ref{input-format,Use the Source, Luke}, or: what goes into LilyPond. @bye |