]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/usage/external.itely
Doc: selective point and click
[lilypond.git] / Documentation / usage / external.itely
index ff80c2d01909e7359ecf84e5f19593f305b3e450..1668953b1ffad9690aa3e7600abf05b55de61c89 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.14.0"
 
 @node External programs
 @chapter External programs
@@ -27,6 +27,17 @@ LilyPond can interact with other programs in various ways.
 @node Point and click
 @section Point and click
 
+Point and click adds links to pdf documents for certain music
+elements.
+
+@menu
+* Enabling point and click::
+* Selective point-and-click::
+@end menu
+
+@node Enabling point and click
+@unnumberedsubsec Enabling point and click
+
 @cindex point and click
 
 Point and click lets you find notes in the input by clicking on them
@@ -42,8 +53,8 @@ follow hyperlinks using the @file{lilypond-invoke-editor} script
 supplied with LilyPond.
 
 For Xpdf on UNIX, the following should be present in
-@file{xpdfrc}@footnote{On UNIX, this file is found either in
-@file{/etc/xpdfrc} or as @file{.xpdfrc} in your home directory.}
+@file{xpdfrc}.  On UNIX, this file is found either in
+@file{/etc/xpdfrc} or as @file{$HOME/.xpdfrc}.
 
 @example
 urlCommand     "lilypond-invoke-editor %s"
@@ -114,6 +125,83 @@ lilypond -dno-point-and-click file.ly
 @warning{You should always turn off point and click in any LilyPond
 files to be distributed to avoid including path information about
 your computer in the .pdf file, which can pose a security risk.}
+
+@node Selective point-and-click
+@unnumberedsubsec Selective point-and-click
+
+For some interactive applications, it may be desirable to only
+include certain point-and-click items.  For example, if somebody
+wanted to create an application which played audio or video
+starting from a particular note, it would be awkward if clicking
+on the note produced the point-and-click location for an
+accidental or slur which occurred over that note.
+
+This may be controlled by indicating which events to include:
+
+@itemize
+@item
+Hard-coded in the @file{.ly} file:
+
+@example
+\pointAndClickTypes #'note-event
+\relative c' @{
+  c2\f( f)
+@}
+@end example
+
+or
+
+@example
+#(ly:set-option 'point-and-click 'note-event)
+\relative c' @{
+  c2\f( f)
+@}
+@end example
+
+@item
+Command-line:
+
+@example
+lilypond -dpoint-and-click=note-event   example.ly
+@end example
+
+@end itemize
+
+Multiple events can be included:
+
+@itemize
+@item
+Hard-coded in the @file{.ly} file:
+
+@example
+\pointAndClickTypes #'(note-event dynamic-event)
+\relative c' @{
+  c2\f( f)
+@}
+@end example
+
+or
+
+@example
+#(ly:set-option 'point-and-click '(note-event dynamic-event))
+\relative c' @{
+  c2\f( f)
+@}
+@end example
+
+@item
+Command-line:
+
+@smallexample
+lilypond \
+  -e"(ly:set-option 'point-and-click '(note-event dynamic-event))" \
+  example.ly
+@end smallexample
+
+
+@end itemize
+
+
 @node Text editor support
 @section Text editor support
 
@@ -160,39 +248,21 @@ your @var{load-path} by appending the following line (as modified) to your
 @node Vim mode
 @unnumberedsubsec Vim mode
 
-For @uref{http://@/www@/.vim@/.org,VIM}, a @file{vimrc} is supplied,
-along with syntax coloring tools.  A Vim mode for entering music and
-running LilyPond is contained in the source archive in @code{$VIM}
-directory.
-
-To enable the Vim mode, locate the @file{filetype.vim} file and find
-the first section which looks like
+For @uref{http://@/www@/.vim@/.org,Vim}, a filetype plugin, indent
+mode, and syntax-highlighting mode are available to use with
+LilyPond.  To enable all of these features, create (or modify)
+your @file{$HOME/.vimrc} to contain these three lines, in order:
 
 @example
-au filegroup detect
-(many lines here)
-augroup END
-@end example
-
-then insert the following lines in the section, which is generally in
-alphabetic order
-
-@example
-: LilyPond
-  au! BufNewFile,BufRead *.ly,*.ily           setf lilypond
-@end example
-
-The next step is to append the following line to your @file{vimrc}
-
-@example
-set runtimepath+=/usr/local/share/lilypond/$@{LILYPOND_VERSION@}/vim/
+filetype off
+set runtimepath+=/usr/local/share/lilypond/current/vim/
+filetype on
 @end example
 
 @noindent
-where $@{LILYPOND_VERSION@} is your LilyPond version.  If your LilyPond
-is installed in a different location, the path should be modified to suit.
-To locate the @file{filetype.vim} and @file{.vimrc} files being used in
-your install of Vim, use the @code{":version"} in a Vim session.
+If LilyPond is not installed in the @file{/usr/local/} directory,
+change the path appropriately.  This topic is discussed in
+@rlearning{Other sources of information}.
 
 
 @node Other editors
@@ -257,7 +327,7 @@ for pitches, durations are only written when necessary.
 It is possible to record a MIDI file using a digital keyboard, and
 then convert it to @file{.ly}.  However, human players are not
 rhythmically exact enough to make a MIDI to LY conversion trivial.
-When invoked with quantizing (@code{-s} and @code{-d} options)
+When invoked with quantizing (@option{-s} and @option{-d} options)
 @command{midi2ly} tries to compensate for these timing errors, but is not
 very good at this.  It is therefore not recommended to use @command{midi2ly}
 for human-generated midi files.
@@ -331,7 +401,7 @@ to a single duration and add phrase markings or pedal indicators.
 for representing music notation.
 
 @command{musicxml2ly} extracts the notes, articulations, score structure,
-lyrics, etc. from part-wise MusicXML files, and writes them to a .ly
+lyrics, etc. from part-wise MusicXML files, and writes them to a @file{.ly}
 file.  It is invoked from the command-line.
 
 
@@ -357,8 +427,11 @@ convert pitches in absolute mode.
 print usage and option summary.
 
 @item -l, --language=LANG
-use a different language file 'LANG.ly' and corresponding pitch names,
-e.g. 'deutsch' for deutsch.ly and German note names.
+use LANG for pitch names, e.g. 'deutsch' for note names in German.
+
+@item --loglevel=@var{loglevel}
+Set the output verbosity to @var{loglevel}. Possible values are @code{NONE},
+@code{ERROR}, @code{WARNING}, @code{PROGRESS} (default) and @code{DEBUG}.
 
 @item --lxml
 use the lxml.etree Python package for XML-parsing; uses less memory and cpu time.
@@ -565,13 +638,21 @@ the following options
 @{ c1 @}
 @end example
 
-To produce a useful @file{EPS} file, use
+To produce useful image files:
 
 @example
-lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts   myfile.ly
+EPS
+
+lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts myfile.ly
+
+PNG
 
-@file{PNG}:
 lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png myfile.ly
+
+A transparent PNG
+
+lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts \
+  -dpixmap-format=pngalpha --png myfile.ly
 @end example