1 %% 8:35 AM Saturday, January 6, 2024
2 %% Yukio Yoshida
3 %% Location; C:\yukio\sheet-poem.com\lilypond\2024
4 %% This is texinfo's file // TeX run==> pdf / makeinfo run===>html
5 %% So, linux running Only. // Windows-TeX does not has makeinfo.
6 %% html===>name.ly // pdf===>pname.ly
7 %% Web<===Up;html//run ./run--texi.sh
8 \input colordvi.tex
9 \font\cmbBIG=cmr10 at 60pt
10 \font\BigBf=cmr10 at 48pt
11 \font\bigcm=cmr10 at 38truept
12 \font\largcmb=cmbx10 at 14truept
13 \font\largcmbxs=cmbxsl10 at 14truept
14 \font\ninerm=cmr9
15 \font\eightrm=cmr8
16 \font\eightit=cmmi8
17 \font\eighttt=cmtt8
18 \font\seventt=cmtt10 at 7pt
19 \font\sevencmsy=cmsy10 at 7pt
20 \font\ninett=cmtt9
21 \font\ninecmsy=cmsy9
22 \font\fivett=cmtt10 at 5pt
23 \voffset -.6in
24 %%%%%%%%% Start; Texinfo %%%%%%%%%%%%%%%%
25 \input texinfo
26
27
28 @setfilename invitation.info
29 @settitle Invitation
30 @documentlanguage en
31 @documentencoding utf-8
32 @setchapternewpage odd
33
34
35 @iftex
36 @letterpaper
37 @finalout
38 @end iftex
39
40
41
42 @titlepage
43 @c -------------pdf titlepage part #1 -------------------------------------------
44 @iftex
45 @tex
46 \vskip 4pc
47 \centerline {\Red{\cmbBIG Invitation}}
48 \kern 5pt
49 \centerline {\Red{\bigcm Write a Score//Music Notation}}
50 \kern 5pt
51 \centerline {\Red{\bigcm Use LilyPond}}
52 \kern 2pc
53 \centerline {\bigcm On}
54 \kern 2pt
55 \centerline {\cmbBIG WSL}
56 %% \centerline {GNU/Linux 4.4.0-19041-Microsoft x86\_64}
57 \centerline {GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86\_64}
58 \centerline {(Windows 11 \& Linux)}
59 \vfill
60 @end tex
61 @vskip 0pt plus 1filll
62 @center {8:35 AM Saturday, January 6, 2024 Vol #2-1}
63 @center writer:@ @i{Yukio Yoshida}(Japan)
64
65 @page
66
67 @tex
68 \def\MPP {M\raise 5pt\hbox{P}\kern -5pt p{}}
69 \vbox {\null}
70 \vfill
71 \moveleft 1in\vbox{\Red {\P\thinspace \it{Fierst of all; about LilyPond}}}\par
72 \kern 1pc
73 \centerline {\bf Preface(LilyPond)}
74 \smallskip
75 It must have been during a rehearsal of the EJE (Eindhoven Youth Orchestra),
76 somewherein 1995 that Jan, one of the cranked violists told Han-Wen,
77 one of the distorted French horn players, about the grand new project
78 he was working on. It was an automated system for printing music
79 (to be precise, it was \MPP{}, a preprocessor for MusiX\TeX{}. As it happened,
80 Han-Wen accidentally wanted to print out some parts from a score,
81 so he started looking at thesoftware, and he quickly got hooked.
82 It was decided that \MPP{} was a dead end. After lots of philosophizing and
83 heated email exchanges, Han-Wen started LilyPond in 1996. This time, Jan
84 got sucked into Han-Wen's new project.\par
85 \smallskip
86 In some ways, developing a computer program is like learning to play an
87 instrument. In the beginning, discovering how it works is fun, and
88 the things you cannot do are challenging. After the initial excitement,
89 you have to practice and practice. Scales and studies can be dull, and
90 if you are not motivated by others.teachers, conductors or audience.
91 it is very tempting togive up. You continue, and gradually playing becomes
92 a part of your life. Some days it comes naturally, and it is wonderful, and
93 on some days it just does not work, but you keep playing, day after day.\par
94 \smallskip
95 Like making music, working on LilyPond can be dull work, and on some days
96 it feels like plodding through a morass of bugs. Nevertheless,
97 it has become a part of our life, and we keep doing it. Probably the most
98 important motivation is that our program actually does something useful for people.
99 When we browse around the net we find many people who use LilyPond, and
100 produce impressive pieces of sheet music. Seeing that feels unreal,
101 but in a very pleasant way.\par
102 \smallskip
103 Our users not only give us good vibes by using our program, many of them also
104 help us by giving suggestions and sending bug reports, so we would like to
105 thank all users that sent us bug reports, gave suggestions or contributed in
106 any other way to LilyPond.\par
107 \smallskip
108 Playing and printing music is more than a nice analogy. Programming together is
109 a lot of fun, and helping people is deeply satisfying, but ultimately, working
110 on LilyPond is a way to express our deep love for music.
111 \Blue{{\sl May it help you create lots of beautiful music!}}\par
112 \leftline {\it Han-Wen and Jan.}
113 \leftline {Utrecht/Eindhoven, The Netherlands, July 2002.}
114 \rightline{---Excerpt from LilyPond[ver1.6-lilypond.pdf-]---}
115 \vskip 0pt plus 1filll
116 \vfill
117 \vbox{\null}
118 @end tex
119 @end iftex
120 @end titlepage
121
122
123 @ifhtml
124 @html
125 <p align="left">
126 Previous: <a href="https://www.sheet-poem.com/lilypond/index.html">dir(UP)</a> Up: <a href="https://www.sheet-poem.com/index.html">dir(TOP)</a></p>
127 <br />
128 @end html
129 @html
130 <div align="center">
131 <span style="font-size: 40px;">
132 Invitation Write a Score//Music notation<br />
133 use Lilypond<br />
134 on<br />
135 WSL<br />
136 <span style="font-size: 18px;">
137 <!--
138 GNU/Linux 4.4.0-19041-Microsoft x86_64<br />
139 (Windows 10 & windows 11 & Linux)
140 -->
141 GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64<br />
142 (windows 11 & Linux)
143 </span>
144 </span>
145 </div>
146 <div align="left">
147 <span style="font-size: 14px;">
148 8:35 AM Saturday, January 6, 2024 Vol #2-1<br />
149 Writer: <i>Yukio Yoshida</i>(Japan)</span>
150 </div>
151 <hr />
152 @end html
153 @end ifhtml
154
155 @ifnottex
156 @node Top
157 @ifhtml
158 @menu
159 * Concept Index::
160 * context Voice::
161 * Formatting text::
162 * context Staff::
163 * context Score::
164 @end menu
165 @end ifhtml
166
167 @node Concept Index, context Voice, ,
168
169 @unnumbered LilyPond(Sheet Music Typesetting)
170 @end ifnottex
171
172 @ifhtml
173 @html
174 <span style="color: red;">
175 <span styls="font-siza: 10px;">Fierst of all; about LilyPond</span><br />
176 </span>
177 <br />
178 <br />
179 <p style="font-size: 20.6px;">
180 <div align="center">
181 <blockquote><blockquote>
182 <table border="1"><tr><td>
183 <table border="1"><tr><td>
184 <div align="center"><p style="font-size: 34px;"><b>Preface(LilyPond)</b></p></div>
185 It must have been during a rehearsal of the EJE(Eindhoven Youth Orchestra),
186 somewherein 1995 that Jan, one of the cranked violists told Han-Wen,
187 one of the distorted French horn players, about the grand new project
188 he was working on. It was an automated system for printing music
189 (to be precise, it was MPP, a preprocessor for MusiXTeX. As it happened,
190 Han-Wen accidentally wanted to print out some parts from a score,
191 so he started looking at thesoftware, and he quickly got hooked.
192 It was decided that MPP was a dead end. After lots of philosophizing and
193 heated email exchanges, Han-Wen started LilyPond in 1996. This time, Jan
194 got sucked into Han-Wen's new project.<br />
195
196 In some ways, developing a computer program is like learning to play an
197 instrument. In the beginning, discovering how it works is fun, and
198 the things you cannot do are challenging. After the initial excitement,
199 you have to practice and practice. Scales and studies can be dull, and
200 if you are not motivated by others.teachers, conductors or audience.
201 it is very tempting togive up. You continue, and gradually playing becomes
202 a part of your life. Some days it comes naturally, and it is wonderful, and
203 on some days it just does not work, but you keep playing, day after day.<br />
204
205 Like making music, working on LilyPond can be dull work, and on some days
206 it feels like plodding through a morass of bugs. Nevertheless,
207 it has become a part of our life, and we keep doing it. Probably the most
208 important motivation is that our program actually does something useful for people.
209 When we browse around the net we find many people who use LilyPond, and
210 produce impressive pieces of sheet music. Seeing that feels unreal,
211 but in a very pleasant way.<br />
212
213 Our users not only give us good vibes by using our program, many of them also
214 help us by giving suggestions and sending bug reports, so we would like to
215 thank all users that sent us bug reports, gave suggestions or contributed in
216 any other way to LilyPond.<br />
217
218 Playing and printing music is more than a nice analogy. Programming together is
219 a lot of fun, and helping people is deeply satisfying, but ultimately, working
220 on LilyPond is a way to express our deep love for music.
221 <span style="color: blue;"><b>
222 May it help you create lots of beautiful music!</b></span><br>
223 Han-Wen and Jan<br />
224 Utrecht/Eindhoven, The Netherlands, July 2002.<br />
225 </td></tr></table>
226 </td></tr></table>
227 <div align="right">
228 <i>Excerpt from LilyPond[ver1.6-lilypond.pdf-]</i>
229 </div>
230 </blockquote></blockquote>
231 </div>
232 </p>
233 <br />
234 <br />
235 @end html
236 @end ifhtml
237
238
239
240
241 @iftex
242 @iftex
243 @headline{@sevenrm context Voice@hfill @folio}
244 @end iftex
245 @iftex
246 @tex
247 ~@vfill
248 \centerline{{\bigcm context Voice}}
249 \vskip 2pc
250 @end tex
251 @end iftex
252 @iftex
253 @center @b{Knowledge for writing sheet music(using LilyPond)}
254 @center {---LilyPond language in the description of the musical score manuscript---}
255
256 @sp 2
257 @end iftex
258
259 @iftex
260 @noindent
261 LilyPond's @Red{default is @b{to read @t{nederlands.ly}(In Netherlands notation)}} and process
262 the manuscript given. Strings such as @b{Note Names}@t{(sharp, flat ...)} in music are
263 differences between countries(cultures).@ @ It is necessary to replace it with a target flight.@*
264 Those provided by Lilypond are@*
265 ................ @t{english}.ly , @t{deutsch}.ly , @t{norsk}.ly , @t{svenska}.ly , @t{italiano}.ly ,
266 @t{catalan}.ly , @t{espanol}.ly , @t{portugues}.ly , @t{suomi}.ly , @t{vlaams}.ly ...............@*
267 These are the declaration items at @i{the start of the musical score manuscript file}
268 (described in the order below). For example,
269 @*
270 @code{\version "2.24.0"}@*
271 @code{\include "italiano.ly"}
272 @*
273 @i{Version specification}: This manuscript is written in ver2.24.0---.
274 It is a @i{clear statement} to the "lilypond processing (token)".@*
275 In music manuscript coding, lilypond's-running does not choose OS. Also
276 The ly(both old and new manuscript file) will run if it is (@i{LilyPond environment construction})@i{OS},
277 and @i{even in the latest lilypond version}, too.@*
278 @end iftex
279 @iftex
280 @hrule
281 @*
282 @end iftex
283 @iftex
284 @noindent
285 Default typesetting is output in Note(@i{quarter}) , Beat(@i{4/4}) , Clef(@i{treble}) , and
286 Major(@i{C}). Midi is created with "@i{acoustic grand}(piano)" if there is no designated instrument.
287 @sp 1
288 @end iftex
289
290 @iftex
291 @cartouche
292 @end iftex
293 @iftex
294 @noindent
295 @b{Notes}@ Scale(pitch) basic code;@*
296 @hskip 10pt " @kbd{c d e f g a b} " Scale(pitch explicit symbol)@*
297 @end iftex
298 @iftex
299 @hskip 10pt @image{h-example-1-1, 6.in,}
300 @end iftex
301 @iftex
302 @end cartouche
303 @end iftex
304 @iftex
305 @*
306 @b{Notes}@ Note value(length of note) Basic code;@*
307 " @code{ c d e f g a b } " to specify the scale,
308 specify the numerical value @code{1 2 4 8 16 32 64 128} with the subscript.@*
309 @i{Descriptions of}@ " @Red{ @code{ c4@ a'1@ g,2@ }}..... " @i{as note symbols}@*
310 @end iftex
311 @iftex
312 @*
313 @noindent
314 @b{1}(Whole)@result{}@b{2}(Half)@result{}@b{4}(Quarter)@result{}@b{8}(Eigth)@result{}
315 @b{16}(Sixteenth) ...... @hfill @*
316 @noindent
317 1=whole sound divided evenly by all sounds, the following diagram;
318 @Red{Rests are also notes}@*
319 @end iftex
320 @iftex
321 @hskip -20pt @image{h-example-2-1, 5.5in,}@*
322 @end iftex
323
324 @sp 1
325
326 @iftex
327 In Lilypond, for a note without a note value,
328 @Red{ the note value is searched before and before it }, and the note value
329 @Red{ is evaluated}@*
330 {@largcmb
331 For example; " @code{ a4 c8 d e f g r c4 } " is interpreted as
332 " @code{ a4 c8 d8 e8 f8 g8 r8 c4 } "}@*
333 @end iftex
334
335 @sp 2
336
337 @iftex
338 @center { --- \clef treble \key c\major ---- }
339 @center { As c\major @hskip 20pt notes-writing are @code{c' d' e' f' g' a' b'} }
340 @end iftex
341 @iftex
342 @hskip 100pt @image{c-major-1, 6.5in,}
343 @end iftex
344 @iftex
345
346 @sp 1
347
348 Major scale list:@*
349 @b{Cycle of 5th: UP @i{and} DOWN}(The minor scale is omitted,
350 there is nature+harmony ...so,there are many sample notations.)@*
351 @end iftex
352 @iftex
353 @*
354 @b{\clef treble \key c\major}@*
355 @end iftex
356 @iftex
357 @hskip 100pt @image{c-major2-1, 6.5in,}@*
358 @end iftex
359
360 @sp 1
361
362 @iftex
363 {@largcmb
364 @hskip -40pt @Red{\key g\major}@hskip 16pc @Red{\key f\major}}@*
365 @hskip -40pt @image{pg-major-1, 3.5in,}@qquad @image{pf-major-1, 3.5in,}@*
366 @end iftex
367
368 @iftex
369 {@largcmb
370 @hskip -40pt @Red{\key d\major}@hskip 16pc @Red{\key bes\major}}@*
371 @hskip -40pt @image{pd-major-1, 3.5in,}@qquad @image{pbes-major-1, 3.5in,}@*
372 @end iftex
373
374 @iftex
375 {@largcmb
376 @hskip -40pt @Red{\key a\major}@hskip 16pc @Red{\key ees\major}}@*
377 @hskip -40pt @image{pa-major-1, 3.5in,}@qquad @image{pees-major-1, 3.5in,}@*
378 @end iftex
379
380 @iftex
381 {@largcmb
382 @hskip -40pt @Red{\key e\major}@hskip 16pc @Red{\key aes\major}}@*
383 @hskip -40pt @image{pe-major-1, 3.5in,}@qquad @image{paes-major-1, 3.5in,}@*
384 @end iftex
385
386 @iftex
387 {@largcmb
388 @hskip -40pt @Red{\key b\major}@hskip 16pc @Red{\key des\major}}@*
389 @hskip -40pt @image{pb-major-1, 3.5in,}@qquad @image{pdes-major-1, 3.5in,}@*
390 @end iftex
391
392 @iftex
393 {@largcmb
394 @hskip -40pt @Red{\key fis\major}@hskip 16pc @Red{\key ges\major}}@*
395 @hskip -40pt @image{pfis-major-1, 3.5in,}@qquad @image{pges-major-1, 3.5in,}@*
396 @end iftex
397
398 @iftex
399 {@largcmb
400 @hskip -40pt @Red{\key cis\major}@hskip 16pc @Red{\key ces\major}}@*
401 @hskip -40pt @image{pcis-major-1, 3.5in,}@qquad @image{pces-major-1, 3.5in,}@*
402 @end iftex
403
404 @iftex
405 @sp -1
406 @center{Here,both are back. ..... The changes are now back.}
407 @center{(c\major @code{ c' d' e' f' g' a' b' })}
408 @end iftex
409 @iftex
410 @hskip 10pc @image{c-major-1, 6.5in,}
411 @end iftex
412
413
414 @iftex
415 @center{{@largcmb @Red {No matter how much \clef changes,}}}
416 @center{{@largcmb @Red {the notes description convention of}}}
417 @center{{@largcmb @Red {\key name\major and name\miner is unchanged.}}}
418 @end iftex
419
420 @vskip 0pt plus 1filll
421 @page
422 @tex
423 \centerline{{\bigcm Refer \#1}}
424 \vskip 2pc
425 @end tex
426 @iftex
427 @tex
428 \centerline {\largcmb Automatic processing:}
429 \centerline {\largcmb LilyPond processing result sample(file name is pompei4.ly)}
430 @end tex
431 @sp 1
432 Create a pompei4.ly file with a text editor as shown below.@*
433 File-name;@ @t{pompei4.ly}--------------------------------------------------------
434 @verbatim
435 %% #(set-default-paper-size "letter")
436 \version "2.22.2"
437 #(set-global-staff-size 14)
438 \paper { paper-height = 48\mm
439 paper-width = 160\mm
440 page-top-space = 0.00\mm
441 top-margin = 0.00\mm
442 bottom-margin = 0.00\mm }
443 \header { tagline = \markup { \null } }
444 altoOne = { \clef alto
445 \autoBeamOff
446 %1-
447 \repeat volta 3 { \repeat volta 2 {
448 fis'2.^\markup { \column { " " \line {\hspace #-12 \teeny \italic
449 "As a feeling; like walking slowly and step by step in your heart." }}}
450 _\mp\<\( | a'4. g' | e'2. | g'4. fis' |
451 a'2. | e'4. fis'\!\) | } g'2. | } \break }
452
453 bassOne = { \clef bass
454 \autoBeamOff
455 %1-
456 \repeat volta 3 { \repeat volta2 {
457 bes,4 ces\mp^\< bes, | ges,2.\! | fes,4\mp^\< aes, ges, |
458 aes,2.\! | ges,4\mp^\< bes, aes, | fes,2.\! | } ges,2. | } \break }
459
460 %% --- get sheet music
461 \book {
462 \markup { \column {
463 \line {\hspace #8 "Passing in cemetery, We are going into a town."}
464 \line {\hspace #8 "Passing out cemetery, We are going out the town"}
465 } }
466 \score { \context ChoirStaff = "UP" <<
467 \context Staff = "Up" { \key d\major \time 3/4 \altoOne }
468 \context Staff = "Down" { \key ces\major \time 3/4 \bassOne }
469 >>
470 \layout { indent = 0.00\mm }
471 }
472
473 %% --- get midi music
474 \score { \unfoldRepeats
475 \context ChoirStaff = "UPDOWN" <<
476 \context Staff = "Up" { \key d\major \time 3/4 \tempo 4 = 62
477 \set Staff.midiInstrument = "acoustic grand" \altoOne }
478 \context Staff = "Down" { \key ces\major \time 3/4 \tempo 4 = 62
479 \set Staff.midiInstrument = "acoustic grand" \bassOne }
480 >>
481 \midi { tempoWholesPerMinute = #(ly:make-moment 62 4) }
482 }
483 \markup { \vspace #-6 \column {
484 \line {\hspace #8 "This , Our life is the same?"}
485 \line {\hspace #8 "Born to live life, Life in the dead leaves!"}
486 } }
487 }
488 @end verbatim
489 ---------------------------------------------------------------------------------@*
490 Where the pompei4.ly file is,@*
491 windows OS =====> @t{lilypond --pdf --png pompei4.ly}[Enter]@*
492 Linux OS =======$ @t{lilypond --pdf --png pompei4.ly}[Enter]@*
493 When you open the created pompei4.pdf(pompei4.png), it is as follows.@*
494 @sp 1
495 @image{pompei4-1, 6.5in,}
496 @*
497 As you can see; Text can be processed with @code { \markup @{ text @}},
498 whether inside @code{ \score @{.....@} } or outside @code{ \score @{.....@} }.
499 On the contrary, this @code{ \markup @{ \score @{...@}@} } is also possible,too.@*
500 "@code{\markup}" is a kind of Line Editor function,and
501 you can write pronunciation notation characters,
502 special characters,... straight and continue writing the manuscript.
503 Once you get used to it, you can also create a document(sentence only) with only
504 @code{\markup} of lilypond.@*
505 @*
506 Therefore, it is possible to display The score,a score,score-book,score-document,
507 ...etc, in pdf/paper and display only by writing the LilyPond manuscript.@*
508 @sp 2
509 What we are talking about here is the "Formatting text" inside the LilyPond environment,
510 not the "Formatting Text" outside the LilyPond environment.
511 In the outside world, there are various [Word Processors],[@TeX{}(system)],[Hypertext(system)],
512 [Ghostscript]...@ It will be a word processor for general use in paper(documentation).@*
513 @*
514 @bullet{} For example;LibreOffice/OpenOffice(open source)@*
515 If you paste it into Word Processer--musical score,sheet music,sheet music book,
516 musical score document--you can easily and easily put it on paper.@*
517 Reference==>@uref{https://github.com/OOoLilyPond/OOoLilyPond/wiki#ooolilypond}@*
518 @*
519 @bullet{} On the other hand, there is a typesetting method for converting musical scores,
520 musical scores, musical score books, and musical score documents into paper.
521 Also, there is a display specification based on HyperText.@
522 @b{LilyPond} also provides a typesetting (@TeX {})system and a program for HyperText
523 that can display the score at the document position(see usage.pdf for details)@*.
524 @end iftex
525 @vskip 0pt plus 1filll
526
527 @page
528 @tex
529 \centerline{{\bigcm Refer \#2}}
530 \vskip 2pc
531 @end tex
532 @iftex
533 @tex
534 \centerline {\largcmb Automatic processing:}
535 \centerline {\largcmb LilyPond processing result sample(file name is example-4.ly)}
536 @end tex
537 @sp 1
538 Create a example-4.ly file with a text editor as shown below.@*
539 File-name;@ @t{example-4.ly}--------------------------------------------------------
540 @verbatim
541 \version "2.22.2"
542 %% #(set-default-paper-size "letter")
543 #(set-global-staff-size 16)
544 \paper{
545 paper-height = 30.00\mm
546 paper-width = 120.00\mm
547 page-top-space = 00.00\mm
548 top-margin = 0.00\mm
549 bottom-margin = 0.00\mm
550 }
551
552 \header { tagline = \markup { \null } }
553 %%%%%%%%% soprano part %%%%%%%%%%%%%%%%%%%%%
554 soprano = { \hide Staff.BarLine
555 \autoBeamOff
556 %% 9-12
557 e''1 e''4. r8 | d''2 fis''1 | R1. | R1.
558 \undo \hide Staff.BarLine \bar "|." \break
559 }
560 sopranoL = \lyricmode {
561 \override Score . LyricText #'font-shape = #'italic
562 \tiny
563 Do -- minus te -- cum,
564 }
565
566 %%%%%%% bass; part %%%%%%%%%%%%%%%%
567 bass = { \hide Staff.BarLine
568 \autoBeamOff
569 %% 9-12
570 R1. | R1. | b,1 b,4. r8 | cis2 e1
571 \undo \hide Staff.BarLine \bar "|." \break
572 }
573 bassL = \lyricmode {
574 \override Score . LyricText #'font-shape = #'italic
575 \tiny
576 Do -- minus te -- cum,
577 }
578
579 %% get sheet & midi music ---------------------------------------------------------------
580 \score {
581 <<
582 %% \context ChoirStaff = "FourPartStaffaddchorus" <<
583 %% use \hide Staff.BarLine
584 \context StaffGroup <<
585 \context Voice = "soprano" { \clef soprano \key d\major \time 3/2
586 \set Staff.instrumentName = "soprano" \soprano }
587 \new Lyrics = "mainSL" \lyricsto "soprano" { \sopranoL }
588
589 \context Voice = "bass" { \clef bass \key d\major \time 3/2
590 \set Staff.instrumentName = "bass " \bass }
591 \new Lyrics = "mainBL" \lyricsto "bass" { \bassL }
592 >>
593 >>
594 \layout { }
595 \midi { tempoWholesPerMinute = #(ly:make-moment 58 4) }
596 }
597 @end verbatim
598 ---------------------------------------------------------------------------------@*
599 Where the example-4.ly file is,@*
600 windows OS =====> @t{lilypond --pdf --png example-4.ly}[Enter]@*
601 Linux OS =======$ @t{lilypond --pdf --png example-4.ly}[Enter]@*
602 When you open the created example-4.pdf(example-4.png), it is as follows.@*
603 @sp 1
604 @image{example-4-1, 6.5in,}
605 @*
606 context Staff@*
607 Usually "@kbd{\new Staff}"(=@kbd{\context Staff}) is the way to call the staff.@*
608 However, in example-4.ly,@*
609 it is described as "@kbd{\context Voice}"(=@kbd{\new Voice}) instead.@*
610 ----------------------------------------------------------------------------------@*
611 As a rough reference, sopurano = ....lilypond code(music) description is processed
612 by calling \score {[cpu(music) processing] with \soprano.@ @ ...the(memory) stacks
613 is named soprano(Same for bass).
614 @kbd{\context Voice = "soprano"},@kbd{\context Voice = "bass"} is the name,
615 It means the associated(soprano, bass) Staff.@*
616 ..... Therefore @code{\new Lyrics = "mainSL" \lyricsto "soprano" {\sopranoL}} holds.
617 The lyrics of sopranoL are called into \score {with \sopranoL and synchronized
618 with the soprano naming Staff. It will be a musical score(same for bass).@*
619 ----------------------------------------------------------------------------------@*
620 By the way,@*
621 @code{\context Voice = "soprano" \context Voice = "bass"} Rewrite this part@*
622 Write @code{\context Staff = "soprano" \context Staff = "bass"} .......@*
623 (verify)@kbd{lilypond --pdf --png example-4.ly}(running) and get example-4.pdf@*
624 @b{@it{It's obvious if you do (there is no lyrics part!?).}}@*
625 @*
626 It is better to write in the staff call of "\new Voice @{" or "\context Voice @{"
627 ....in the composition process, avoiding the staff call of "\new Staff @{" or
628 "\context Staff @{" is more important than its convenience.@*
629 @sp 2
630 @iftex
631 @tex
632 \centerline {\largcmb Automatic processing:}
633 \centerline {\largcmb LilyPond processing result sample(file name is example-5.ly)}
634 @end tex
635 @*
636 Create a example-5.ly file with a text editor as shown below.@*
637 File-name;@ @t{example-5.ly}--------------------------------------------------------
638 @verbatim
639 \version "2.22.2"
640 #(set-global-staff-size 16)
641 \paper{
642 paper-height = 20.00\mm
643 paper-width = 100.00\mm
644 page-top-space = 0.00\mm
645 top-margin = 0.00\mm
646 bottom-margin = 0.00\mm
647 }
648 \header { tagline = \markup { \null } }
649
650 soprano = { \bar " "
651 %% 45-47
652 \time 4/1
653 << { s\breve ees'\breve ~ | ees'1 s1 s\breve } \\
654 { <c' g'>\breve ~ c'\breve ~ | c'\longa ~ } >> |
655 \time 3/2
656 << { s1. } \\ { c'1 s2 } >> \bar "|." \break }
657 \score {
658 \context Voice = "soprano" { \clef soprano \key ees\major \time 3/2
659 \set Staff.instrumentName = "soprano" \soprano }
660 \layout { \override Score.BarNumber.break-visibility = ##(#f #t #t)
661 \set Score.currentBarNumber=45 }
662 }
663 @end verbatim
664 ---------------------------------------------------------------------------------@*
665 Where the example-5.ly file is,@*
666 windows OS =====> @t{lilypond --pdf --png example-5.ly}[Enter]@*
667 Linux OS =======$ @t{lilypond --pdf --png example-5.ly}[Enter]@*
668 When you open the created example-5.pdf(example-5.png), it is as follows.@*
669 @sp 1
670 @image{example-5-1, 6.5in,}
671 @*
672 The 47th bar should be described as @code{c'1 s2 \bar "|." \break}, but
673 since the 46th bar is described separately from the top and bottom ...
674 @code{from the bottom. Since c'\longa ~} and Tie are being sent ...
675 The code description in bar 47 is processed as above. @ @ @b{However},
676 LilyPond's musical score code description is not absolute for each person.@*
677 @Red{With the exception} of LilyPond,
678 @Red{information sent by that staff is received within that staff in principle}.
679 @sp 1
680 Other;@*
681 Lilypond also has a feature called "@Red{ @code {\skip argument}}" that is similar to " @Red{s} " note.
682 (In notation.pdf)It is recommended to verify with(page-59,286,799). @*
683 @end iftex
684 @vskip 0pt plus 1filll
685
686 @page
687 @tex
688 \centerline{{\bigcm Refer \#3}}
689 \vskip 2pc
690 @end tex
691 @iftex
692 @*
693 @image{example-7-1, 6.5in}
694 @*
695 @end iftex
696 @vskip 0pt plus 1filll
697
698 @page
699
700
701
702
703 @ifnottex
704 @node context Voice, Formatting text, Concept Index, Top
705
706 @unnumbered context Voice
707 @end ifnottex
708
709 @ifhtml
710 @html
711 <blockquote><blockquote><blockquote>
712 <span style="font-size: 18px;">
713 @end html
714 @center @b{Knowledge for writing sheet music(using LilyPond)}
715 @center ---LilyPond language in the description of the musical score manuscript---
716 @cartouche
717
718 @end cartouche
719 LilyPond's default is @b{to read @t{nederlands.ly}(In Nederlands notation)} and process
720 the manuscript given. Strings such as @b{Note Names}@t{(sharp, flat ...)} in music are
721 differences between countries(cultures).@ @ It is necessary to replace it with a target flight.@*
722 Those provided by Lilypond are@*
723 ................ @t{english}.ly , @t{deutsch}.ly , @t{norsk}.ly , @t{svenska}.ly , @t{italiano}.ly ,
724 @t{catalan}.ly , @t{espanol}.ly , @t{portugues}.ly , @t{suomi}.ly , @t{vlaams}.ly ...............@*
725 These are the declaration items at @i{the start of the musical score manuscript file}
726 (described in the order below). For example,
727
728 @html
729 <br />
730 <code>\version "2</code>.<code>24</code>.<code>0"</code><br />
731 <code>\include "italiano</code>.<code>ly"</code><br />
732 <br />
733 @end html
734
735 @i{Version specification}: This manuscript is written in ver2.24.0---.
736 It is a @i{clear statement} to the "lilypond processing (token)".@*
737 In music manuscript coding, lilypond's-running does not choose OS,@*
738 The ly(both old and new manuscript file) will run if it is (@i{LilyPond environment construction})@i{OS},
739 and @i{even in the latest lilypond version}, too.@*
740 @html
741 <hr />
742 @end html
743 Default typesetting is output in Note(@i{quarter}) , Beat(@i{4/4}) , Clef(@i{treble}) , and
744 Major(@i{C}).@*
745 Midi is created with "@i{acoustic grand}(piano)" if there is no designated instrument@*
746 @*
747 @cartouche
748 @html
749 <b>Notes</b>  
750    
751 Scale(pitch) basic code;<br />
752          
753 " <code>c d e f g a b</code> " Scale(pitch explicit symbol)<br />
754 <img src="h-example-1.svg" alt="[picture of music]" /><br /><!-- -->
755 @end html
756 @end cartouche
757 @html
758 <b>Notes</b>  
759    
760 Note value(length of note) Basic code;<br />
761 " <code>c d e f g a b</code> " to specify the scale,
762 specify the numerical value " <code>1 2 4 8 16 32 64 128</code> "
763 with the subscript.<br />
764 <i>Descriptions of<i>   
765 "<span style="color: red;">
766 <code> c4   a'1   g,2   ..... </code></span>"
767 <i>as note symbols</i>.<br />
768 @end html
769 @noindent
770 @b{1}(Whole)@result{}@b{2}(Half)@result{}@b{4}(Quarter)@result{}@b{8}(Eigth)@result{}
771 @b{16}(Sixteenth) ...... @*
772 @noindent
773 1=whole sound divided evenly by all sounds, the following diagram;
774 @html
775    (<span style = "color: red;">Rests are also notes</b></span>).
776 @end html
777 @*
778 @html
779 <img src="h-example-2.svg" alt="[picture of music]" /><br /><!-- -->
780 <br />
781 In Lilypond, for a note without a note value,
782 <span style="color: red;">
783 the note value is searched before and before it,</span> and the note value
784 <span style="color: red;"> is evaluated</span>.<br />
785 <span style="font-size: 16px">
786 For example; " <code>a4 c8 d e f g r c4</code> " is interpreted as
787 " <code>a4 c8 d8 e8 f8 g8 r8 c4</code> "<br />
788 @end html
789 @sp 1
790 @html
791 <p align="center">
792 ---- \clef treble \key c\major ----<br />
793 As c\major   notes-writing are <t> c' d' e' f' g' a' b'</t> <br />
794          
795          
796          
797          
798          
799     
800 <img src="c-major.svg" alt="[picture of music]" /><!-- -->
801 </p>
802 @end html
803 @ifhtml
804 Major scale list:@*
805 @b{Cycle of 5th: UP @i{and} DOWN}(The minor scale is omitted,
806 there is nature+harmony ...so,there are many sample notations.)@*
807 @*
808 @b{\clef treble \key c\major}
809 @end ifhtml
810 @html
811 <p align="center">
812          
813          
814          
815          
816          
817     
818 <img src="c-major2.svg" alt="[picture of music]" /><br />
819 <b>Deployment;</b>
820 </p>
821 <div align="center">
822 <table>
823 <td>
824 <p>
825 \key g\major    <t> c' d' e' fis' g' a' b'</t>
826 <br />
827 <img src="g-major.svg" alt="[picture of music]" /><!-- -->
828 </p>
829 <p>
830 \key d\major    <t> cis' d' e' fis' g' a' b'</t>
831 <br />
832 <img src="d-major.svg" alt="[picture of music]" /><!-- -->
833 </p>
834 <p>
835 \key a\major    <t> cis' d' e' fis' gis' a' b'</t>
836 <br />
837 <img src="a-major.svg" alt="[picture of music]" /><!-- -->
838 </p>
839 <p>
840 \key e\major    <t> cis' dis' e' fis' gis' a' b'</t>
841 <br />
842 <img src="e-major.svg" alt="[picture of music]" /><!-- -->
843 </p>
844 <p>
845 \key b\major    <t> cis' dis' e' fis' gis' ais' b'</t>
846 <br />
847 <img src="b-major.svg" alt="[picture of music]" /><!-- -->
848 </p>
849 <p>
850 \key fis\major    <t> cis' dis' eis' fis' gis' ais' b'</t>
851 <br />
852 <img src="fis-major.svg" alt="[picture of music]" /><!-- -->
853 </p>
854 <p>
855 \key cis\major    <t> cis' dis' eis' fis' gis' ais' bis'</t>
856 <br />
857 <img src="cis-major.svg" alt="[picture of music]" /><!-- -->
858 </p>
859 <p>
860 Here; ..... The changes are now back.<br />
861 (c\major    <t> c' d' e' f' g' a' b'</t>)
862 <br />
863 <img src="c-major.svg" alt="[picture of music]" /><!-- -->
864 </p>
865 </td>
866 <td>
867    
868 </td>
869 <td>
870 <p>
871 \key f\major    <t> c' d' e' f' g' a' bes'</t>
872 <br />
873 <img src="f-major.svg" alt="[picture of music]" /><!-- -->
874 </p>
875 <p>
876 \key bes\major    <t> c' d' ees' f' g' a' bes'</t>
877 <br />
878 <img src="bes-major.svg" alt="[picture of music]" /><!-- -->
879 </p>
880 <p>
881 \key ees\major    <t> c' d' ees' f' g' aes' bes'</t>
882 <br />
883 <img src="ees-major.svg" alt="[picture of music]" /><!-- -->
884 </p>
885 <p>
886 \key aes\major    <t> c' des' ees' f' g' aes' bes'</t>
887 <br />
888 <img src="aes-major.svg" alt="[picture of music]" /><!-- -->
889 </p>
890 <p>
891 \key des\major    <t> c' des' ees' f' ges' aes' bes'</t>
892 <br />
893 <img src="des-major.svg" alt="[picture of music]" /><!-- -->
894 </p>
895 <p>
896 \key ges\major    <t> ces' des' ees' f' ges' aes' bes'</t>
897 <br />
898 <img src="ges-major.svg" alt="[picture of music]" /><!-- -->
899 </p>
900 <p>
901 \key ces\major    <t> ces' des' ees' fes' ges' aes' bes'</t>
902 <br />
903 <img src="ces-major.svg" alt="[picture of music]" /><!-- -->
904 </p>
905 <p>
906 Here; ..... The changes are now back.<br />
907 (c\major    <t> c' d' e' f' g' a' b'</t>)
908 <br />
909 <img src="c-major.svg" alt="[picture of music]" /><!-- -->
910 </p>
911 </td>
912 </table>
913 </div>
914 <br />
915 <br />
916 @end html
917 @ifhtml
918 @cartouche
919 meaning;[ -- For example --- @t{\clef treble \key g \major} The specified score is@*
920 ---------------
921 The author; @result{} " @t{f} "(note) must be written as " @t{fis} "(note).@*
922 ---------------
923 The performer; @result{} All " f " notation notes in the score must be played in " fis "(sound). ]@*
924 Or ....
925 meaning;[ -- For example --- @t{\clef treble \key a \major} The specified score is@*
926 ---------------
927 The author; @result{} " @t{c@ @ f@ @ g} "(note) must be written as " @t{cis@ @ fis@ @ gis} "(note).@*
928 ---------------
929 The performer; @result{} All " c@ @ f@ @ g " notation notes in the score must be played in " cis@ @ fis@ @ gis "(sound). ]@*
930 @*
931 ---------------
932 @bullet{} @i{These are the basic precautions when writing a score}.
933 ---------------@*
934 @end cartouche
935 @*
936 A clef is a symbol at the beginning of a line of music, and...
937 Clef is a word(noun) that refers to a state that envelops a kind of diversity.@*
938 Simply put, the clef symbol indicates the (c)position of its Scale(pitch)-on the staff-@*
939 @end ifhtml
940
941 @html
942 </blockquote></blockquote></blockquote>
943 @end html
944
945 @html
946 <blockquote><blockquote>
947 @end html
948 @ifhtml
949 About the \clef and \key:@*
950 Just move the \key sign notation with clef.@ @bullet{}@ But!@ @
951 @result{}@result{}@result{}
952 @i{The description of notes by \key does not change.}@*
953 @end ifhtml
954 @ifhtml
955 @html
956 <span style="font-size: 18px;">
957   
958 <code>\clef ???????</code>  <=====  
959 <code><span style="color: red;">treble</span></code> <i>or</i>
960 <code><span style="color: red;">soprano</span></code> <i>or</i>
961 <code><span style="color: red;">alto</span></code> <i>or</i>
962 <code><span style="color: red;">tenor</span></code> <i>or</i>
963 <code><span style="color: red;">bass</span></code>
964   
965 </span>
966 @end html
967 (LilyPond has othe \clef, too. see==>notation.pdf)@*
968 @end ifhtml
969 @html
970 <br />
971 <div align="center">
972 <table>
973 <td>
974 <p>
975 <img src="clef-g.svg" alt="[picture of music]" /><!-- -->
976 </p>
977 <p>
978 <img src="clef-d.svg" alt="[picture of music]" /><!-- -->
979 </p>
980 <p>
981 <img src="clef-a.svg" alt="[picture of music]" /><!-- -->
982 </p>
983 <p>
984 <img src="clef-e.svg" alt="[picture of music]" /><!-- -->
985 </p>
986 <p>
987 <img src="clef-b.svg" alt="[picture of music]" /><!-- -->
988 </p>
989 <p>
990 <img src="clef-fis.svg" alt="[picture of music]" /><!-- -->
991 </p>
992 <p>
993 <img src="clef-cis.svg" alt="[picture of music]" /><!-- -->
994 </p>
995 </td>
996 <td>
997     
998 </td>
999 <td>
1000 <p>
1001 <img src="clef-f.svg" alt="[picture of music]" /><!-- -->
1002 </p>
1003 <p>
1004 <img src="clef-bes.svg" alt="[picture of music]" /><!-- -->
1005 </p>
1006 <p>
1007 <img src="clef-ees.svg" alt="[picture of music]" /><!-- -->
1008 </p>
1009 <p>
1010 <img src="clef-aes.svg" alt="[picture of music]" /><!-- -->
1011 </p>
1012 <p>
1013 <img src="clef-des.svg" alt="[picture of music]" /><!-- -->
1014 </p>
1015 <p>
1016 <img src="clef-ges.svg" alt="[picture of music]" /><!-- -->
1017 </p>
1018 <p>
1019 <img src="clef-ces.svg" alt="[picture of music]" /><!-- -->
1020 </p>
1021 </td>
1022 </table>
1023 </div>
1024 <br />
1025 <br />
1026 @end html
1027 @ifhtml
1028 @cartouche
1029 As you can see, all lilypond outputs automatically typesetting.
1030 The author specified \clef \key \time, and then followed \key.
1031 Just write @t{c d e f g a b }with \time in mind.@*
1032 For example;(soprano.ly)@*
1033 @multitable columnfractions .4 .4
1034 @item
1035 @cartouche
1036 @verbatim
1037 \version "2.22.2"
1038 #(set-global-staff-size 18)
1039 %% #(set-default-paper-size "letter")
1040 \paper { paper-height = 35.00\mm }
1041 soprano = { \autoBeamOff
1042 %% 1-4(1-12)
1043 \repeat volta 2 { \repeat volta 2 {
1044 r8 gis'8[ ais'] b'4. cis''8 disis''!2~ disis''8 | ais'4 dis''2 gis'2. | }
1045 fis'4 e' dis'4. fis'8 e'2 | ais'4 dis''2 gis'2. | } \bar "|."
1046 }
1047 %% get sheet
1048 \score { \context ChoirStaff <<
1049 \context Voice = "SopOne" {
1050 \clef soprano \key b\major \time 3/2 \tempo 4 = 58
1051 \set Staff.instrumentName = \markup{"soprano"} \soprano }
1052 >>
1053 \layout {}
1054 }
1055 %% get midi
1056 \score { <<
1057 \new Staff { \clef soprano \key b\major \time 3/2
1058 \set Staff.midiInstrument = "pad 4 (choir)"
1059 \unfoldRepeats \soprano }
1060 >>
1061 \midi { tempoWholesPerMinute = #(ly:make-moment 58 4) }
1062 }%% End score.
1063 @end verbatim
1064 @end cartouche
1065 @tab
1066 @html
1067 <span style="font-size: 18px;">
1068 Any OS; (prompt)<t>lilypond --pdf --png soprano.ly</t></span>[Enter]<br />
1069 <br />
1070 <p>
1071 <img src="soprano.svg" alt="[picture of music]" /><!-- -->
1072 </p>
1073 <a href="soprano.midi">soprano.midi</a> (<a href="soprano.mp3">soprano.mp3</a>)<br />
1074 @end html
1075 Typesetting is output like this.(midi=It’s a one minute and ten second performance.)@*
1076 @*
1077 @*
1078 @i{This is just an example(because there are various forms of description)}@*
1079 @html
1080 <span style="color: red;">
1081 \soprano
1082 </span>
1083 @end html
1084 means soprano = @{... description ....@} is called to this location for processing.@*
1085 The staff call is usually \new Staff @{@*
1086 However, it is better to call the staff with \context Voice @{@*
1087 @*
1088 Also,
1089 @html
1090 <span style="color: red;">
1091 \context Voice = "SopOne"
1092 </span>
1093 @end html
1094 @{... description ....@}@*
1095 It is an act of giving the name "SopOne" to this music-processed memory stacks.@*
1096 (Because you can specify a word etc. to this "SopOne".)@*
1097 @*
1098 @*
1099 --------
1100 Please refer to "notation.pdf" for the correspondence between note spelling and lyrics.@*
1101 @*
1102 @*
1103 @end multitable
1104 @end cartouche
1105 About \time; For example@*
1106 @code{\time 3/2} describes the score with the length of three half notes as one unit.@*
1107 @result{}@i{The upper number indicates the number of beets par measure}.@*
1108 @result{}@i{The lower number indicates the note that gets one beet(2=half note, 4=quarter note,
1109 8=eight note ...etc}.@*
1110 @end ifhtml
1111 @*
1112 @ifhtml
1113 @html
1114 <br />
1115 <br />
1116 <div align="center">
1117 <span style="font-size: 22px;">
1118 <span style="color: red;">
1119 When writing a score, it is recommended to keep notation.pdf + usage.pdf at hand.<br />
1120 </span></span>
1121 </div>
1122 @end html
1123 @end ifhtml
1124
1125 @html
1126 </blockquote></blockquote>
1127 <br />
1128 <br />
1129 @end html
1130
1131 @end ifhtml
1132
1133
1134
1135
1136 @iftex
1137 @headline{@sevenrm Formatting text@hfill @folio}
1138 @end iftex
1139 @tex
1140 \centerline{{\bigcm Formatting text}}
1141 \vskip 2pc
1142 @end tex
1143 @iftex
1144
1145 I'm sorry, I'll omit it. For details, we recommend referring to "notation.pdf".`@*
1146 @largcmb{
1147 [.....\share\doc\lilypond\html\Documentation\notation.pdf(6,832KB) + usage.pdf(521KB) ]}@*
1148
1149 @end iftex
1150 @vskip 0pt plus 1filll
1151 @page
1152
1153
1154
1155
1156 @ifnottex
1157 @node Formatting text, context Staff, context Voice, Top
1158
1159 @unnumbered Formatting text
1160 @end ifnottex
1161 @ifhtml
1162 @html
1163 <blockquote><blockquote><blockquote>
1164 @end html
1165
1166 I'm sorry, I'll omit it. For details, we recommend referring to "notation.pdf".`@*
1167 [.....\share\doc\lilypond\html\Documentation\notation.pdf(6,832KB) + usage.pdf(521KB) ]@*
1168
1169 @html
1170 </blockquote></blockquote></blockquote>
1171 @end html
1172 @end ifhtml
1173
1174
1175
1176
1177 @iftex
1178 @headline{@sevenrm context Staff@hfill @folio}
1179 @end iftex
1180 @tex
1181 \centerline{{\bigcm context Staff}}
1182 \vskip 2pc
1183 @end tex
1184 @iftex
1185
1186 I'm sorry, I'll omit it. For details, we recommend referring to "notation.pdf".`@*
1187 [.....\share\doc\lilypond\html\Documentation\notation.pdf(6,832KB) + usage.pdf(521KB) ]@*
1188
1189 @end iftex
1190 @vskip 0pt plus 1filll
1191
1192 @page
1193
1194
1195
1196
1197 @ifnottex
1198 @node context Staff, context Score, Formatting text, Top
1199
1200 @unnumbered context Staff
1201 @end ifnottex
1202 @ifhtml
1203 @html
1204 <blockquote><blockquote><blockquote>
1205 @end html
1206
1207 I'm sorry, I'll omit it. For details, we recommend referring to "notation.pdf".@*
1208 [.....\share\doc\lilypond\html\Documentation\notation.pdf(6,832KB) + usage.pdf(521KB) ]@*
1209
1210 @html
1211 </blockquote></blockquote></blockquote>
1212 @end html
1213 @end ifhtml
1214
1215
1216
1217
1218 @iftex
1219 @headline{@sevenrm context Score@hfill @folio}
1220 @end iftex
1221
1222 @tex
1223 \centerline{{\bigcm context Score}}
1224 \vskip 2pc
1225 @end tex
1226 @end iftex
1227 @iftex
1228 @*
1229 @image{example-7-1, 6.5in}
1230 @*
1231 @end iftex
1232 @vskip 0pt plus 1filll
1233 @iftex
1234 @sp 1
1235 LilyPond,@*
1236 The outer world of \score called \book {....}, which bundles "the musical scores" and
1237 "scores created by \score{....}" .... has a kind of document world area.
1238 In this area The music cover can also be typeset without relying on @TeX{}.
1239 @vskip 0pt plus 1filll
1240 @page
1241 @iftex
1242 @*
1243 @image{example-8-1, 6.5in}
1244 @*
1245 @end iftex
1246 @end iftex
1247 @page
1248
1249
1250
1251
1252 @ifnottex
1253 @node context Score, , context Staff, Top
1254
1255 @unnumbered context Score
1256 @end ifnottex
1257 @ifhtml
1258 @html
1259 <blockquote><blockquote><blockquote>
1260 @end html
1261
1262 I'm sorry, I'll omit it. For details, we recommend referring to "notation.pdf".`@*
1263 [.....\share\doc\lilypond\html\Documentation\notation.pdf(6,832KB) + usage.pdf(521KB) ]@*
1264
1265 @html
1266 </blockquote></blockquote></blockquote>
1267 <br />
1268 <br />
1269 @end html
1270 @*
1271 `:
1272 @end ifhtml
1273
1274
1275 @bye