]> git.lyx.org Git - lyx.git/blob - lib/examples/lilypond.lyx
847bd394b717b452ea76b83255469bfeb22d34b2
[lyx.git] / lib / examples / lilypond.lyx
1 #LyX 2.0.0svn created this file. For more info see http://www.lyx.org/
2 \lyxformat 404
3 \begin_document
4 \begin_header
5 \textclass article
6 \begin_preamble
7 \date{}
8 \end_preamble
9 \use_default_options true
10 \begin_modules
11 lilypond
12 \end_modules
13 \maintain_unincluded_children false
14 \language english
15 \inputencoding auto
16 \fontencoding global
17 \font_roman default
18 \font_sans default
19 \font_typewriter default
20 \font_default_family default
21 \use_xetex false
22 \font_sc false
23 \font_osf false
24 \font_sf_scale 100
25 \font_tt_scale 100
26
27 \graphics default
28 \default_output_format default
29 \output_sync 0
30 \bibtex_command default
31 \index_command default
32 \paperfontsize default
33 \spacing single
34 \use_hyperref false
35 \papersize default
36 \use_geometry true
37 \use_amsmath 1
38 \use_esint 1
39 \use_mhchem 1
40 \use_mathdots 1
41 \cite_engine basic
42 \use_bibtopic false
43 \use_indices false
44 \paperorientation portrait
45 \suppress_date false
46 \use_refstyle 0
47 \index Index
48 \shortcut idx
49 \color #008000
50 \end_index
51 \leftmargin 2cm
52 \topmargin 2cm
53 \rightmargin 2cm
54 \bottommargin 2cm
55 \secnumdepth 3
56 \tocdepth 3
57 \paragraph_separation skip
58 \defskip smallskip
59 \quotes_language english
60 \papercolumns 1
61 \papersides 1
62 \paperpagestyle default
63 \tracking_changes false
64 \output_changes false
65 \html_math_output 0
66 \html_be_strict true
67 \end_header
68
69 \begin_body
70
71 \begin_layout Title
72 LilyPond-book + LyX
73 \end_layout
74
75 \begin_layout Abstract
76 This is an example file demonstrating the use of LilyPond music notation
77  with LyX.
78 \end_layout
79
80 \begin_layout Section
81 Using LilyPond code within LyX
82 \end_layout
83
84 \begin_layout Standard
85 Support for LilyPond constructs (LilyPond code) within LyX is enabled by
86  adding the LilyPond module to your document.
87  This is done from the menu Document \SpecialChar \menuseparator
88  Settings..., then selecting LilyPond
89  in the list of modules.
90  You can use any LaTeX-based LyX layout and use the regular preview and
91  export mechanism; LyX will take care of processing the LaTeX code through
92  LilyPond-book for you.
93  LilyPond-book can also handle DocBook documents but LilyPond-DocBook support
94  in LyX is missing at the moment.
95 \end_layout
96
97 \begin_layout Subsection
98 Requirements
99 \end_layout
100
101 \begin_layout Itemize
102 LilyPond-book version 2.13
103 \end_layout
104
105 \begin_layout Paragraph
106 Notes:
107 \end_layout
108
109 \begin_layout Standard
110 LilyPond-book supports LaTeX output since version 2.1.
111  However, some features used by LyX are available only in recent versions:
112  PDFLaTeX support (version 2.9), the 
113 \family typewriter
114 --lily-output-dir
115 \family default
116  flag (version 2.11) and especially the 
117 \family typewriter
118 --safe
119 \family default
120  flag (version 2.13).
121 \end_layout
122
123 \begin_layout Subsection
124 Integration
125 \end_layout
126
127 \begin_layout Standard
128 The module provides a LilyPond inset which you insert from the menu Insert
129  \SpecialChar \menuseparator
130  Custom Insets.
131  This inset is for typing the LilyPond code which will be typeset into your
132  musical notes.
133  First, let's try a simple scale:
134 \end_layout
135
136 \begin_layout Standard
137 \begin_inset Flex LilyPond
138 status open
139
140 \begin_layout Plain Layout
141
142
143 \backslash
144 relative c'' {
145 \end_layout
146
147 \begin_layout Plain Layout
148
149   g a b c
150 \end_layout
151
152 \begin_layout Plain Layout
153
154 }
155 \end_layout
156
157 \end_inset
158
159
160 \end_layout
161
162 \begin_layout Standard
163 The previous LyX inset produces the following LaTeX-lookalike code:
164 \end_layout
165
166 \begin_layout LyX-Code
167
168 \backslash
169 begin{lilypond}
170 \end_layout
171
172 \begin_layout LyX-Code
173
174 \backslash
175 relative c'' {
176 \end_layout
177
178 \begin_layout LyX-Code
179   g a b c
180 \end_layout
181
182 \begin_layout LyX-Code
183 }
184 \end_layout
185
186 \begin_layout LyX-Code
187
188 \backslash
189 end{lilypond}
190 \end_layout
191
192 \begin_layout Standard
193 This code is not, in fact, processed by LaTeX, but is preprocessed by LilyPond-b
194 ook, which creates the graphics files and include them in the LaTeX document
195  by replacing the above with 
196 \family typewriter
197
198 \backslash
199 includegraphics{\SpecialChar \ldots{}
200 }
201 \family default
202 .
203 \end_layout
204
205 \begin_layout Standard
206 Thus, the conversion toolchain is as follow: LyX\SpecialChar \menuseparator
207 LilyPond-book\SpecialChar \menuseparator
208 LaTeX.
209  Every step of the toolchain obeys your spacing, so whether you put the
210  musical extract inline or in its own paragraph, centered or left-aligned,
211  etc., what you see in the LyX window should be respected in the final format.
212  An example of inline use may be to display a chord name, such as
213 \begin_inset Flex LilyPond
214 status open
215
216 \begin_layout Plain Layout
217
218
219 \backslash
220 markup { 
221 \backslash
222 concat {B 
223 \backslash
224 super 
225 \backslash
226 flat } }
227 \end_layout
228
229 \end_inset
230
231 , or perhaps a very short snippet.
232 \end_layout
233
234 \begin_layout Subsection
235 Previews
236 \end_layout
237
238 \begin_layout Standard
239 It is possible to have a direct feedback of what the music notation looks
240  like from within LyX.
241  To do this, wrap a LilyPond inset inside a Preview inset, which you find
242  from the menu Insert \SpecialChar \menuseparator
243  Preview.
244  This only affects the display within LyX, not the output:
245 \end_layout
246
247 \begin_layout Standard
248 \begin_inset Preview
249
250 \begin_layout Standard
251 \begin_inset Flex LilyPond
252 status open
253
254 \begin_layout Plain Layout
255
256
257 \backslash
258 relative c'' {
259 \end_layout
260
261 \begin_layout Plain Layout
262
263   ais a g ges
264 \end_layout
265
266 \begin_layout Plain Layout
267
268 }
269 \end_layout
270
271 \end_inset
272
273
274 \end_layout
275
276 \end_inset
277
278
279 \end_layout
280
281 \begin_layout Standard
282 Unfortunately, you might find that the preview isn't exactly instantaneous.
283  You need to move the cursor out of the Preview inset to start compilation,
284  and processing time can take a few seconds.
285 \end_layout
286
287 \begin_layout Subsection
288 Gotchas
289 \end_layout
290
291 \begin_layout Standard
292 LilyPond-book searches for a 
293 \family typewriter
294
295 \backslash
296 score
297 \family default
298  or 
299 \family typewriter
300
301 \backslash
302 relative
303 \family default
304  command when it decides if the code is only a fragment.
305  It is possible to include no LilyPond command at all, but in that case
306  {surrounding braces} are required.
307  Thus, in the following code,
308 \end_layout
309
310 \begin_layout LyX-Code
311
312 \backslash
313 begin{lilypond}
314 \end_layout
315
316 \begin_layout LyX-Code
317   ais' f'' g' e'' % no 
318 \backslash
319 score given
320 \end_layout
321
322 \begin_layout LyX-Code
323
324 \backslash
325 end{lilypond}
326 \end_layout
327
328 \begin_layout Standard
329 LilyPond-book gets confused:
330 \end_layout
331
332 \begin_layout LyX-Code
333 error: syntax error, unexpected NOTENAME_PITCH
334 \end_layout
335
336 \begin_layout LyX-Code
337 ais' f'' g' e'' % no 
338 \backslash
339 score given
340 \end_layout
341
342 \begin_layout Standard
343 With surrounding braces, all is well:
344 \end_layout
345
346 \begin_layout Standard
347 \begin_inset Preview
348
349 \begin_layout Standard
350 \begin_inset Flex LilyPond
351 status open
352
353 \begin_layout Plain Layout
354
355 {ais' f'' g' e''} % no 
356 \backslash
357 score given
358 \end_layout
359
360 \end_inset
361
362
363 \end_layout
364
365 \end_inset
366
367
368 \end_layout
369
370 \begin_layout Standard
371 Another gotcha is with subsequent lilypond snippets with 
372 \family typewriter
373
374 \backslash
375 fret-diagram
376 \family default
377  markup commands:
378 \end_layout
379
380 \begin_layout LyX-Code
381
382 \backslash
383 begin{lilypond}
384 \end_layout
385
386 \begin_layout LyX-Code
387   
388 \backslash
389 markup{ 
390 \backslash
391 fret-diagram-terse #"x;3;2;o;1;o;" }
392 \end_layout
393
394 \begin_layout LyX-Code
395
396 \backslash
397 end{lilypond}
398 \end_layout
399
400 \begin_layout LyX-Code
401
402 \end_layout
403
404 \begin_layout LyX-Code
405
406 \backslash
407 begin{lilypond}
408 \end_layout
409
410 \begin_layout LyX-Code
411   
412 \backslash
413 markup{ 
414 \backslash
415 fret-diagram-terse #"x;x;o;2;3;2;" }
416 \end_layout
417
418 \begin_layout LyX-Code
419
420 \backslash
421 end{lilypond}
422 \end_layout
423
424 \begin_layout Standard
425 For some reason LilyPond-book version 2.13 barks on this when run in safe
426  mode (which you always should use, unless you know what you are doing).
427 \end_layout
428
429 \begin_layout Section
430 LilyPond examples
431 \end_layout
432
433 \begin_layout Standard
434 Example 
435 \begin_inset CommandInset ref
436 LatexCommand ref
437 reference "sub:Editorial-headword"
438
439 \end_inset
440
441  shows a complex example using many LilyPond constructs; some inline scheme
442  code has been removed to be able to run in safe mode.
443  Example 
444 \begin_inset CommandInset ref
445 LatexCommand ref
446 reference "sub:Tablatures-template"
447
448 \end_inset
449
450  shows another LilyPond output which should be interesting to guitarists.
451 \end_layout
452
453 \begin_layout Subsection
454 Editorial headword
455 \begin_inset CommandInset label
456 LatexCommand label
457 name "sub:Editorial-headword"
458
459 \end_inset
460
461
462 \end_layout
463
464 \begin_layout Standard
465 NR 1.7 Editorial annotations Beethoven, Op.
466  31, No.
467  3 Piano sonata 18, Movt II, Scherzo Measures 9--14.
468 \end_layout
469
470 \begin_layout Standard
471 \noindent
472 \align center
473 \begin_inset Preview
474
475 \begin_layout Standard
476 \begin_inset Flex LilyPond
477 status collapsed
478
479 \begin_layout Plain Layout
480
481
482 \backslash
483 new PianoStaff <<
484 \end_layout
485
486 \begin_layout Plain Layout
487
488   
489 \end_layout
490
491 \begin_layout Plain Layout
492
493   % RH Staff
494 \end_layout
495
496 \begin_layout Plain Layout
497
498   
499 \backslash
500 new Staff {
501 \end_layout
502
503 \begin_layout Plain Layout
504
505     
506 \backslash
507 clef treble
508 \end_layout
509
510 \begin_layout Plain Layout
511
512     
513 \backslash
514 key aes 
515 \backslash
516 major
517 \end_layout
518
519 \begin_layout Plain Layout
520
521     
522 \backslash
523 time 2/4
524 \end_layout
525
526 \begin_layout Plain Layout
527
528     %
529 \backslash
530 set Staff.fingeringOrientations = #'(up)
531 \end_layout
532
533 \begin_layout Plain Layout
534
535     %
536 \backslash
537 set Score.currentBarNumber = #9
538 \end_layout
539
540 \begin_layout Plain Layout
541
542     
543 \backslash
544 partial 8
545 \end_layout
546
547 \begin_layout Plain Layout
548
549     <aes''-4 c''>8
550 \backslash
551 staccato
552 \end_layout
553
554 \begin_layout Plain Layout
555
556     |
557 \end_layout
558
559 \begin_layout Plain Layout
560
561     %
562 \backslash
563 set doubleSlurs = ##t
564 \end_layout
565
566 \begin_layout Plain Layout
567
568     <bes''-5 des''-2>4(
569 \end_layout
570
571 \begin_layout Plain Layout
572
573     <aes''-4 c''>8
574 \backslash
575 staccato)
576 \end_layout
577
578 \begin_layout Plain Layout
579
580     
581 \backslash
582 noBeam
583 \end_layout
584
585 \begin_layout Plain Layout
586
587     c''8-5
588 \backslash
589 staccato
590 \backslash
591 pp
592 \end_layout
593
594 \begin_layout Plain Layout
595
596     |
597 \end_layout
598
599 \begin_layout Plain Layout
600
601     
602 \backslash
603 unset doubleSlurs
604 \end_layout
605
606 \begin_layout Plain Layout
607
608     bes'8..(
609 \end_layout
610
611 \begin_layout Plain Layout
612
613     aes'32
614 \end_layout
615
616 \begin_layout Plain Layout
617
618     g'8)
619 \backslash
620 staccato
621 \end_layout
622
623 \begin_layout Plain Layout
624
625     f'8
626 \backslash
627 staccato
628 \end_layout
629
630 \begin_layout Plain Layout
631
632     |
633 \end_layout
634
635 \begin_layout Plain Layout
636
637     e'4-2
638 \end_layout
639
640 \begin_layout Plain Layout
641
642     r8
643 \end_layout
644
645 \begin_layout Plain Layout
646
647     %
648 \backslash
649 once 
650 \backslash
651 override Script #'script-priority = #-100
652 \end_layout
653
654 \begin_layout Plain Layout
655
656     
657 \backslash
658 afterGrace
659 \end_layout
660
661 \begin_layout Plain Layout
662
663     f'8(
664 \backslash
665 trill^
666 \backslash
667 markup { 
668 \backslash
669 finger "3-2" }
670 \end_layout
671
672 \begin_layout Plain Layout
673
674     { e'16[ f'16] }
675 \end_layout
676
677 \begin_layout Plain Layout
678
679     |
680 \end_layout
681
682 \begin_layout Plain Layout
683
684     g'8..-3
685 \end_layout
686
687 \begin_layout Plain Layout
688
689     f'32
690 \end_layout
691
692 \begin_layout Plain Layout
693
694     e'8-1)
695 \backslash
696 staccato
697 \end_layout
698
699 \begin_layout Plain Layout
700
701     d'8-2
702 \backslash
703 staccato
704 \end_layout
705
706 \begin_layout Plain Layout
707
708     |
709 \end_layout
710
711 \begin_layout Plain Layout
712
713     c'4
714 \end_layout
715
716 \begin_layout Plain Layout
717
718     r4
719 \end_layout
720
721 \begin_layout Plain Layout
722
723   }
724 \end_layout
725
726 \begin_layout Plain Layout
727
728   
729 \end_layout
730
731 \begin_layout Plain Layout
732
733   % LH Staff
734 \end_layout
735
736 \begin_layout Plain Layout
737
738   
739 \backslash
740 new Staff {
741 \end_layout
742
743 \begin_layout Plain Layout
744
745     
746 \backslash
747 key aes 
748 \backslash
749 major
750 \end_layout
751
752 \begin_layout Plain Layout
753
754     
755 \backslash
756 clef treble
757 \end_layout
758
759 \begin_layout Plain Layout
760
761     %
762 \backslash
763 override Fingering #'direction = #down
764 \end_layout
765
766 \begin_layout Plain Layout
767
768     %
769 \backslash
770 set Staff.fingeringOrientations = #'(down)
771 \end_layout
772
773 \begin_layout Plain Layout
774
775     
776 \backslash
777 partial 8
778 \end_layout
779
780 \begin_layout Plain Layout
781
782     <aes' aes>8
783 \backslash
784 staccato
785 \end_layout
786
787 \begin_layout Plain Layout
788
789     %
790 \backslash
791 set doubleSlurs = ##t
792 \end_layout
793
794 \begin_layout Plain Layout
795
796     <g'-2 ees'-3>4(
797 \end_layout
798
799 \begin_layout Plain Layout
800
801     <aes' aes>8)
802 \backslash
803 staccato
804 \end_layout
805
806 \begin_layout Plain Layout
807
808     
809 \backslash
810 noBeam
811 \end_layout
812
813 \begin_layout Plain Layout
814
815     
816 \backslash
817 clef bass
818 \end_layout
819
820 \begin_layout Plain Layout
821
822     c'8-1
823 \backslash
824 staccato
825 \end_layout
826
827 \begin_layout Plain Layout
828
829     |
830 \end_layout
831
832 \begin_layout Plain Layout
833
834     %
835 \backslash
836 set doubleSlurs = ##f
837 \end_layout
838
839 \begin_layout Plain Layout
840
841     bes8..(
842 \end_layout
843
844 \begin_layout Plain Layout
845
846     aes32
847 \end_layout
848
849 \begin_layout Plain Layout
850
851     g8-1)
852 \backslash
853 staccato
854 \end_layout
855
856 \begin_layout Plain Layout
857
858     f8
859 \backslash
860 staccato
861 \end_layout
862
863 \begin_layout Plain Layout
864
865     |
866 \end_layout
867
868 \begin_layout Plain Layout
869
870     e4
871 \end_layout
872
873 \begin_layout Plain Layout
874
875     r8
876 \end_layout
877
878 \begin_layout Plain Layout
879
880     
881 \backslash
882 afterGrace
883 \end_layout
884
885 \begin_layout Plain Layout
886
887     f8(
888 \backslash
889 trill_
890 \backslash
891 markup { 
892 \backslash
893 finger "2-1" }
894 \end_layout
895
896 \begin_layout Plain Layout
897
898     { e16[ f16] }
899 \end_layout
900
901 \begin_layout Plain Layout
902
903     |
904 \end_layout
905
906 \begin_layout Plain Layout
907
908     g8..-1
909 \end_layout
910
911 \begin_layout Plain Layout
912
913     f32
914 \end_layout
915
916 \begin_layout Plain Layout
917
918     e8)
919 \backslash
920 staccato
921 \end_layout
922
923 \begin_layout Plain Layout
924
925     d8
926 \backslash
927 staccato
928 \end_layout
929
930 \begin_layout Plain Layout
931
932     |
933 \end_layout
934
935 \begin_layout Plain Layout
936
937     c4
938 \end_layout
939
940 \begin_layout Plain Layout
941
942     r4
943 \end_layout
944
945 \begin_layout Plain Layout
946
947   }
948 \end_layout
949
950 \begin_layout Plain Layout
951
952 >>
953 \end_layout
954
955 \begin_layout Plain Layout
956
957 \end_layout
958
959 \end_inset
960
961
962 \end_layout
963
964 \end_inset
965
966
967 \end_layout
968
969 \begin_layout Standard
970 [from 
971 \begin_inset Flex URL
972 status collapsed
973
974 \begin_layout Plain Layout
975
976 http://lsr.dsi.unimi.it/LSR/Item?id=627
977 \end_layout
978
979 \end_inset
980
981 ; inline scheme code removed, centering applied through the paragraph settings]
982 \end_layout
983
984 \begin_layout Subsection
985 Tablatures template
986 \begin_inset CommandInset label
987 LatexCommand label
988 name "sub:Tablatures-template"
989
990 \end_inset
991
992
993 \end_layout
994
995 \begin_layout Standard
996 \begin_inset Preview
997
998 \begin_layout Standard
999 \begin_inset Flex LilyPond
1000 status collapsed
1001
1002 \begin_layout Plain Layout
1003
1004 upper=  
1005 \backslash
1006 relative c' {
1007 \end_layout
1008
1009 \begin_layout Plain Layout
1010
1011   c4.
1012   g4  g  c
1013 \end_layout
1014
1015 \begin_layout Plain Layout
1016
1017 }
1018 \end_layout
1019
1020 \begin_layout Plain Layout
1021
1022 lower=  
1023 \backslash
1024 relative c {
1025 \end_layout
1026
1027 \begin_layout Plain Layout
1028
1029   c4  e  g,  e'
1030 \end_layout
1031
1032 \begin_layout Plain Layout
1033
1034 }
1035 \end_layout
1036
1037 \begin_layout Plain Layout
1038
1039
1040 \backslash
1041 score {
1042 \end_layout
1043
1044 \begin_layout Plain Layout
1045
1046   
1047 \backslash
1048 new StaffGroup <<
1049 \end_layout
1050
1051 \begin_layout Plain Layout
1052
1053     
1054 \backslash
1055 new Staff = "guitar" <<
1056 \end_layout
1057
1058 \begin_layout Plain Layout
1059
1060       
1061 \backslash
1062 context Voice = "upper guitar" { 
1063 \backslash
1064 clef "G_8" 
1065 \backslash
1066 voiceOne  
1067 \backslash
1068 upper }
1069 \end_layout
1070
1071 \begin_layout Plain Layout
1072
1073       
1074 \backslash
1075 context Voice = "lower guitar" { 
1076 \backslash
1077 clef "G_8" 
1078 \backslash
1079 voiceTwo  
1080 \backslash
1081 lower }
1082 \end_layout
1083
1084 \begin_layout Plain Layout
1085
1086     >>
1087 \end_layout
1088
1089 \begin_layout Plain Layout
1090
1091     
1092 \backslash
1093 new TabStaff = "tab" <<
1094 \end_layout
1095
1096 \begin_layout Plain Layout
1097
1098       
1099 \backslash
1100 context TabVoice = "upper tab" { 
1101 \backslash
1102 clef "tab" 
1103 \backslash
1104 voiceOne 
1105 \backslash
1106 upper }
1107 \end_layout
1108
1109 \begin_layout Plain Layout
1110
1111       
1112 \backslash
1113 context TabVoice = "lower tab" { 
1114 \backslash
1115 clef "tab" 
1116 \backslash
1117 voiceTwo 
1118 \backslash
1119 lower }
1120 \end_layout
1121
1122 \begin_layout Plain Layout
1123
1124     >>
1125 \end_layout
1126
1127 \begin_layout Plain Layout
1128
1129   >>
1130 \end_layout
1131
1132 \begin_layout Plain Layout
1133
1134 }
1135 \end_layout
1136
1137 \end_inset
1138
1139
1140 \end_layout
1141
1142 \end_inset
1143
1144
1145 \end_layout
1146
1147 \begin_layout Standard
1148 [from 
1149 \begin_inset Flex URL
1150 status collapsed
1151
1152 \begin_layout Plain Layout
1153
1154 http://lsr.dsi.unimi.it/LSR/Item?id=634
1155 \end_layout
1156
1157 \end_inset
1158
1159 ]
1160 \end_layout
1161
1162 \end_body
1163 \end_document