1 #LyX 2.0.0svn created this file. For more info see http://www.lyx.org/
9 \use_default_options true
13 \maintain_unincluded_children false
19 \font_typewriter default
20 \font_default_family default
28 \default_output_format default
30 \bibtex_command default
31 \index_command default
44 \paperorientation portrait
56 \paragraph_separation skip
58 \quotes_language english
61 \paperpagestyle default
62 \tracking_changes false
74 \begin_layout Abstract
75 This is an example file demonstrating the use of LilyPond music notation
80 Using LilyPond code within LyX
83 \begin_layout Standard
84 Support for LilyPond constructs (LilyPond code) within LyX is enabled by
85 adding the LilyPond module to your document.
86 This is done from the menu Document \SpecialChar \menuseparator
87 Settings..., then selecting LilyPond
88 in the list of modules.
89 You can use any LaTeX-based LyX layout and use the regular preview and
90 export mechanism; LyX will take care of processing the LaTeX code through
91 LilyPond-book for you.
92 LilyPond-book can also handle DocBook documents but LilyPond-DocBook support
93 in LyX is missing at the moment.
96 \begin_layout Subsection
101 \labelwidthstring 00.00.0000
106 support: LilyPond-book version 2.1
110 \labelwidthstring 00.00.0000
115 support: LilyPond-book version 2.11
118 \begin_layout Paragraph
122 \begin_layout Standard
123 LilyPond-book supports LaTeX output since version 2.1.
124 PDFLaTeX requires LilyPond-book version 2.9 or older, but there are bugs
125 in those early versions.
126 We require version 2.11 and older because we use the -
130 \begin_layout Plain Layout
137 -lily-output-dir flag.
140 \begin_layout Subsection
144 \begin_layout Standard
145 The module provides a LilyPond inset which you insert from the menu Insert
146 \SpecialChar \menuseparator
148 This inset is for typing the LilyPond code which will be typeset into your
150 First, let's try a simple scale:
153 \begin_layout Standard
154 \begin_inset Flex LilyPond
157 \begin_layout Plain Layout
164 \begin_layout Plain Layout
169 \begin_layout Plain Layout
179 \begin_layout Standard
180 The previous LyX inset produces the following LaTeX-lookalike code:
183 \begin_layout LyX-Code
189 \begin_layout LyX-Code
195 \begin_layout LyX-Code
199 \begin_layout LyX-Code
203 \begin_layout LyX-Code
209 \begin_layout Standard
210 This code is not, in fact, processed by LaTeX, but is preprocessed by LilyPond-b
211 ook, which creates the graphics files and include them in the LaTeX document
212 by replacing the above with
216 includegraphics{\SpecialChar \ldots{}
222 \begin_layout Standard
223 Thus, the conversion toolchain is as follow: LyX\SpecialChar \menuseparator
224 LilyPond-book\SpecialChar \menuseparator
226 Every step of the toolchain obeys your spacing, so whether you put the
227 musical extract inline or in its own paragraph, centered or left-aligned,
228 etc., what you see in the LyX window should be respected in the final format.
229 An example of inline use may be to display a chord name, such as
230 \begin_inset Flex LilyPond
233 \begin_layout Plain Layout
248 , or perhaps a very short snippet.
251 \begin_layout Subsection
255 \begin_layout Standard
256 It is possible to have a direct feedback of what the music notation looks
257 like from within LyX.
258 To do this, wrap a LilyPond inset inside a Preview inset, which you find
259 from the menu Insert \SpecialChar \menuseparator
261 This only affects the display within LyX, not the output:
264 \begin_layout Standard
267 \begin_layout Standard
268 \begin_inset Flex LilyPond
271 \begin_layout Plain Layout
278 \begin_layout Plain Layout
283 \begin_layout Plain Layout
298 \begin_layout Standard
299 Unfortunately, you might find that the preview isn't exactly instantaneous.
300 You need to move the cursor out of the Preview inset to start compilation,
301 and processing time can take a few seconds.
304 \begin_layout Subsection
308 \begin_layout Standard
309 LilyPond-book searches for a
321 command when it decides if the code is only a fragment.
322 It is possible to include no LilyPond command at all, but in that case
323 {surrounding braces} are required.
324 Thus, in the following code,
327 \begin_layout LyX-Code
333 \begin_layout LyX-Code
339 \begin_layout LyX-Code
345 \begin_layout Standard
346 LilyPond-book gets confused:
349 \begin_layout LyX-Code
350 error: syntax error, unexpected NOTENAME_PITCH
353 \begin_layout LyX-Code
359 \begin_layout Standard
360 With surrounding braces, all is well:
363 \begin_layout Standard
366 \begin_layout Standard
367 \begin_inset Flex LilyPond
370 \begin_layout Plain Layout
372 {ais' f'' g' e''} % no
387 \begin_layout Section
391 \begin_layout Standard
393 \begin_inset CommandInset ref
395 reference "sub:Editorial-headword"
399 shows that any valid LilyPond construct can be handled, no matter how complicat
402 \begin_inset CommandInset ref
404 reference "sub:Positioning-of-markup"
408 shows how you can mix LilyPond code with tables to display the fingering
411 \begin_inset CommandInset ref
413 reference "sub:Tablatures-template"
417 shows yet another LilyPond output for guitarists.
420 \begin_layout Subsection
422 \begin_inset CommandInset label
424 name "sub:Editorial-headword"
431 \begin_layout Standard
432 NR 1.7 Editorial annotations Beethoven, Op.
434 3 Piano sonata 18, Movt II, Scherzo Measures 9--14.
437 \begin_layout Standard
442 \begin_layout Standard
443 \begin_inset Flex LilyPond
446 \begin_layout Plain Layout
453 \begin_layout Plain Layout
458 \begin_layout Plain Layout
463 \begin_layout Plain Layout
470 \begin_layout Plain Layout
477 \begin_layout Plain Layout
486 \begin_layout Plain Layout
493 \begin_layout Plain Layout
497 set Staff.fingeringOrientations = #'(up)
500 \begin_layout Plain Layout
504 set Score.currentBarNumber = #9
507 \begin_layout Plain Layout
514 \begin_layout Plain Layout
521 \begin_layout Plain Layout
526 \begin_layout Plain Layout
530 set doubleSlurs = ##t
533 \begin_layout Plain Layout
538 \begin_layout Plain Layout
545 \begin_layout Plain Layout
552 \begin_layout Plain Layout
561 \begin_layout Plain Layout
566 \begin_layout Plain Layout
573 \begin_layout Plain Layout
578 \begin_layout Plain Layout
583 \begin_layout Plain Layout
590 \begin_layout Plain Layout
597 \begin_layout Plain Layout
602 \begin_layout Plain Layout
607 \begin_layout Plain Layout
612 \begin_layout Plain Layout
618 override Script #'script-priority = #-100
621 \begin_layout Plain Layout
628 \begin_layout Plain Layout
639 \begin_layout Plain Layout
644 \begin_layout Plain Layout
649 \begin_layout Plain Layout
654 \begin_layout Plain Layout
659 \begin_layout Plain Layout
666 \begin_layout Plain Layout
673 \begin_layout Plain Layout
678 \begin_layout Plain Layout
683 \begin_layout Plain Layout
688 \begin_layout Plain Layout
693 \begin_layout Plain Layout
698 \begin_layout Plain Layout
703 \begin_layout Plain Layout
710 \begin_layout Plain Layout
719 \begin_layout Plain Layout
726 \begin_layout Plain Layout
730 override Fingering #'direction = #down
733 \begin_layout Plain Layout
737 set Staff.fingeringOrientations = #'(down)
740 \begin_layout Plain Layout
747 \begin_layout Plain Layout
754 \begin_layout Plain Layout
758 set doubleSlurs = ##t
761 \begin_layout Plain Layout
766 \begin_layout Plain Layout
773 \begin_layout Plain Layout
780 \begin_layout Plain Layout
787 \begin_layout Plain Layout
794 \begin_layout Plain Layout
799 \begin_layout Plain Layout
803 set doubleSlurs = ##f
806 \begin_layout Plain Layout
811 \begin_layout Plain Layout
816 \begin_layout Plain Layout
823 \begin_layout Plain Layout
830 \begin_layout Plain Layout
835 \begin_layout Plain Layout
840 \begin_layout Plain Layout
845 \begin_layout Plain Layout
852 \begin_layout Plain Layout
863 \begin_layout Plain Layout
868 \begin_layout Plain Layout
873 \begin_layout Plain Layout
878 \begin_layout Plain Layout
883 \begin_layout Plain Layout
890 \begin_layout Plain Layout
897 \begin_layout Plain Layout
902 \begin_layout Plain Layout
907 \begin_layout Plain Layout
912 \begin_layout Plain Layout
917 \begin_layout Plain Layout
922 \begin_layout Plain Layout
936 \begin_layout Standard
938 \begin_inset Flex URL
941 \begin_layout Plain Layout
943 http://lsr.dsi.unimi.it/LSR/Item?id=627
951 \begin_layout Subsection
952 Positioning of markup elements
953 \begin_inset CommandInset label
955 name "sub:Positioning-of-markup"
962 \begin_layout Standard
963 Tabular arrangement of elements
966 \begin_layout Standard
970 <lyxtabular version="3" rows="4" columns="3">
971 <features tabularvalignment="middle">
972 <column alignment="center" valignment="middle" width="20col%">
973 <column alignment="center" valignment="middle" width="20col%">
974 <column alignment="center" valignment="middle" width="20col%">
976 <cell alignment="center" valignment="top" usebox="none">
979 \begin_layout Plain Layout
985 <cell alignment="center" valignment="top" usebox="none">
988 \begin_layout Plain Layout
994 <cell alignment="center" valignment="top" usebox="none">
997 \begin_layout Plain Layout
1005 <cell alignment="center" valignment="top" usebox="none">
1008 \begin_layout Plain Layout
1014 <cell alignment="center" valignment="top" usebox="none">
1017 \begin_layout Plain Layout
1023 <cell alignment="center" valignment="top" usebox="none">
1026 \begin_layout Plain Layout
1027 \begin_inset Preview
1029 \begin_layout Standard
1030 \begin_inset Flex LilyPond
1033 \begin_layout Plain Layout
1039 fret-diagram #"6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;" }
1056 <cell alignment="center" valignment="top" usebox="none">
1059 \begin_layout Plain Layout
1065 <cell alignment="center" valignment="top" usebox="none">
1068 \begin_layout Plain Layout
1069 \begin_inset Preview
1071 \begin_layout Standard
1072 \begin_inset Flex LilyPond
1075 \begin_layout Plain Layout
1100 <cell alignment="center" valignment="top" usebox="none">
1103 \begin_layout Plain Layout
1104 \begin_inset Preview
1106 \begin_layout Standard
1107 \begin_inset Flex LilyPond
1110 \begin_layout Plain Layout
1116 fret-diagram #"6-x;5-1-1;4-3-3;3-3-4;2-2-2;1-1-1;c:5-1-1;" }
1133 <cell alignment="center" valignment="top" usebox="none">
1136 \begin_layout Plain Layout
1142 <cell alignment="center" valignment="top" usebox="none">
1145 \begin_layout Plain Layout
1146 \begin_inset Preview
1148 \begin_layout Standard
1149 \begin_inset Flex LilyPond
1152 \begin_layout Plain Layout
1177 <cell alignment="center" valignment="top" usebox="none">
1180 \begin_layout Plain Layout
1181 \begin_inset Preview
1183 \begin_layout Standard
1184 \begin_inset Flex LilyPond
1187 \begin_layout Plain Layout
1193 fret-diagram #"6-x;5-x;4-2-2;3-1-1;2-1-1;1-4-4;c:2-3-1;" }
1216 \begin_layout Standard
1217 Musical notation with each element placed by hand
1220 \begin_layout Standard
1222 \begin_inset Preview
1224 \begin_layout Standard
1225 \begin_inset Flex LilyPond
1228 \begin_layout Plain Layout
1233 \begin_layout Plain Layout
1235 Snippet for overlay markup command - absolute positioning of items
1238 \begin_layout Plain Layout
1240 Defines a new markup command
1242 overlay which takes a list of markup elements and positions them all at
1246 \begin_layout Plain Layout
1248 By translating each markup element, you can gain control of the
1249 absolute position of each.
1252 \begin_layout Plain Layout
1257 \begin_layout Plain Layout
1259 #(define-public (stack-stencil-overlay stencils)
1262 \begin_layout Plain Layout
1264 "Recursive function to add stencils together"
1267 \begin_layout Plain Layout
1269 (if (and (pair? stencils)
1272 \begin_layout Plain Layout
1274 (ly:stencil? (car stencils)))
1277 \begin_layout Plain Layout
1282 \begin_layout Plain Layout
1284 (if (and (pair? (cdr stencils))
1287 \begin_layout Plain Layout
1289 (ly:stencil? (cadr stencils)))
1292 \begin_layout Plain Layout
1294 (let ((tail (stack-stencil-overlay (cdr stencils)))
1297 \begin_layout Plain Layout
1299 (head (car stencils)))
1302 \begin_layout Plain Layout
1304 (ly:stencil-add head tail))
1307 \begin_layout Plain Layout
1312 \begin_layout Plain Layout
1317 \begin_layout Plain Layout
1319 #(define-markup-command (overlay layout props args)
1322 \begin_layout Plain Layout
1327 \begin_layout Plain Layout
1329 "Overlay arguments one on top of the next"
1332 \begin_layout Plain Layout
1334 (let ((stencils (interpret-markup-list layout props args)))
1337 \begin_layout Plain Layout
1339 (stack-stencil-overlay
1342 \begin_layout Plain Layout
1344 (remove ly:stencil-empty? stencils))))
1347 \begin_layout Plain Layout
1354 \begin_layout Plain Layout
1361 \begin_layout Plain Layout
1369 \begin_layout Plain Layout
1373 justify-string #"Musical notation with each element placed by hand"
1376 \begin_layout Plain Layout
1386 \begin_layout Plain Layout
1393 \begin_layout Plain Layout
1398 \begin_layout Plain Layout
1400 4 0 moveto 74 0 lineto stroke
1403 \begin_layout Plain Layout
1405 4 -1 moveto 74 -1 lineto stroke
1408 \begin_layout Plain Layout
1410 4 -2 moveto 74 -2 lineto stroke
1413 \begin_layout Plain Layout
1415 4 -3 moveto 74 -3 lineto stroke
1418 \begin_layout Plain Layout
1420 4 -4 moveto 74 -4 lineto stroke
1423 \begin_layout Plain Layout
1425 11.6 -5 moveto 13.6 -5 lineto stroke
1428 \begin_layout Plain Layout
1430 42.6 -5 moveto 44.6 -5 lineto stroke
1433 \begin_layout Plain Layout
1435 17.6 -5 moveto 0 0 2 -1 7 -1 9 0 rcurveto stroke
1438 \begin_layout Plain Layout
1440 48.6 -5 moveto 0 0 2 -1 7 -1 9 0 rcurveto stroke
1443 \begin_layout Plain Layout
1448 \begin_layout Plain Layout
1450 73.85 0 moveto 73.85 -4 lineto stroke
1453 \begin_layout Plain Layout
1458 \begin_layout Plain Layout
1466 \begin_layout Plain Layout
1473 musicglyph #"clefs.G_change"
1476 \begin_layout Plain Layout
1483 musicglyph #"timesig.C44"
1486 \begin_layout Plain Layout
1493 note-by-number #1 #0 #DOWN
1496 \begin_layout Plain Layout
1503 musicglyph #"rests.4"
1506 \begin_layout Plain Layout
1513 musicglyph #"rests.3"
1516 \begin_layout Plain Layout
1523 note-by-number #3 #0 #DOWN
1526 \begin_layout Plain Layout
1533 musicglyph #"dots.dot"
1536 \begin_layout Plain Layout
1543 note-by-number #2 #0 #UP
1546 \begin_layout Plain Layout
1553 note-by-number #2 #0 #1.2
1556 \begin_layout Plain Layout
1560 translate #'(20.25 .
1566 \begin_layout Plain Layout
1570 translate #'(20.25 .
1576 \begin_layout Plain Layout
1583 note-by-number #2 #0 #DOWN
1586 \begin_layout Plain Layout
1593 note-by-number #2 #0 #UP
1596 \begin_layout Plain Layout
1603 note-by-number #2 #0 #1.7
1606 \begin_layout Plain Layout
1613 note-by-number #2 #0 #1.3
1616 \begin_layout Plain Layout
1623 note-by-number #2 #0 #UP
1626 \begin_layout Plain Layout
1630 translate #'(28.25 .
1636 \begin_layout Plain Layout
1640 translate #'(28.25 .
1646 \begin_layout Plain Layout
1653 note-by-number #1 #0 #DOWN
1656 \begin_layout Plain Layout
1663 musicglyph #"rests.4"
1666 \begin_layout Plain Layout
1673 musicglyph #"rests.3"
1676 \begin_layout Plain Layout
1683 note-by-number #3 #0 #DOWN
1686 \begin_layout Plain Layout
1693 musicglyph #"dots.dot"
1696 \begin_layout Plain Layout
1703 note-by-number #2 #0 #UP
1706 \begin_layout Plain Layout
1713 note-by-number #2 #0 #1.2
1716 \begin_layout Plain Layout
1720 translate #'(51.25 .
1726 \begin_layout Plain Layout
1730 translate #'(51.25 .
1736 \begin_layout Plain Layout
1743 note-by-number #2 #0 #DOWN
1746 \begin_layout Plain Layout
1753 note-by-number #2 #0 #UP
1756 \begin_layout Plain Layout
1763 note-by-number #2 #0 #1.7
1766 \begin_layout Plain Layout
1773 note-by-number #2 #0 #1.3
1776 \begin_layout Plain Layout
1783 note-by-number #2 #0 #UP
1786 \begin_layout Plain Layout
1790 translate #'(59.25 .
1796 \begin_layout Plain Layout
1800 translate #'(59.25 .
1806 \begin_layout Plain Layout
1811 \begin_layout Plain Layout
1826 \begin_layout Standard
1828 \begin_inset Flex URL
1831 \begin_layout Plain Layout
1833 http://lsr.dsi.unimi.it/LSR/Item?id=628
1841 \begin_layout Subsection
1843 \begin_inset CommandInset label
1845 name "sub:Tablatures-template"
1852 \begin_layout Standard
1853 \begin_inset Preview
1855 \begin_layout Standard
1856 \begin_inset Flex LilyPond
1859 \begin_layout Plain Layout
1866 \begin_layout Plain Layout
1872 \begin_layout Plain Layout
1877 \begin_layout Plain Layout
1884 \begin_layout Plain Layout
1889 \begin_layout Plain Layout
1894 \begin_layout Plain Layout
1901 \begin_layout Plain Layout
1908 \begin_layout Plain Layout
1912 new Staff = "guitar" <<
1915 \begin_layout Plain Layout
1919 context Voice = "upper guitar" {
1928 \begin_layout Plain Layout
1932 context Voice = "lower guitar" {
1941 \begin_layout Plain Layout
1946 \begin_layout Plain Layout
1950 new TabStaff = "tab" <<
1953 \begin_layout Plain Layout
1957 context TabVoice = "upper tab" {
1966 \begin_layout Plain Layout
1970 context TabVoice = "lower tab" {
1979 \begin_layout Plain Layout
1984 \begin_layout Plain Layout
1989 \begin_layout Plain Layout
2004 \begin_layout Standard
2006 \begin_inset Flex URL
2009 \begin_layout Plain Layout
2011 http://lsr.dsi.unimi.it/LSR/Item?id=634