]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/faq.texi
patch::: 1.3.76.jcn2
[lilypond.git] / Documentation / faq.texi
index 3fc9c667a7f39289f75b18704c8ffa88f8e47d27..725efa3fa6fd34a0fb20798789951f452a1e9ddf 100644 (file)
@@ -2,16 +2,9 @@
 @setfilename faq.info
 @settitle FAQ - GNU LilyPond FAQs
 
-@node Top, , Windows32, (dir)
+@node Top, , , (dir)
 @top
 @menu
-* FAQ - GNU LilyPond FAQs::       FAQ - GNU LilyPond FAQs
-@end menu
-
-
-
-@node FAQ - GNU LilyPond FAQs, Miscellaneous, , Top
-@menu
 * Miscellaneous::                 Miscellaneous
 * Installing::                    Installing
 * Documentation::                 Documentation
 @chapter FAQ - GNU LilyPond FAQs
 
 
-@node Miscellaneous, Installing, FAQ - GNU LilyPond FAQs, FAQ - GNU LilyPond FAQs
+@node Miscellaneous, ,,top
 @section Miscellaneous
 
 @subsubsection HELP! I'm stuck!
 
-Please read this document carefully.  If you are still at loss,
-send your subsubsections to the @strong{mailing list}, and not to authors
+Please read this document carefully.  If you are still at loss, send
+your questions to the @strong{mailing list}, and not to authors
 directly.
 
 Note: relative paths are meant to be relative to the source directory
 
-@node Installing, Documentation, Miscellaneous, FAQ - GNU LilyPond FAQs
+@node Installing,, ,top
 @section Installing
 
 
@@ -46,7 +39,6 @@ Note: relative paths are meant to be relative to the source directory
 The NT port is done with the Cygnus GNU/Windows32 port of the GNU utils.
 It does @emph{not} work with windows 3.x; you need Windows-NT (95/98?).
 
-
 @subsubsection Where is guile-config
 
 Old RedHat RPMS don't include guile-config.  You need guile-config as it
@@ -76,42 +68,11 @@ yourself:
 @end example 
 
 
-@subsubsection Some of your neat scripts fail, what directories do you use:
-
-[This only applies if you don't do @code{make install}, and develop out
-of the source directory]
-
-I have a directory which contains all our development projects
-@example 
-
-    ~/usr/
-@end example 
-
-which looks like @file{/usr/}
-@example 
-
-    bin/
-    share
-    lib/
-    share/
-    src/
-
-    etc....
-@end example 
-
-
-       
-
-~/usr/src/bin is in the PATH, and contains symbolic links to the
-compiled executables.
-
 @subsubsection Is there an emacs mode?
 
-Yes.  It is included with the source archive as mudela-mode.el.  If
-you have an rpm it is in /usr/doc/lilypond-X/.  You have to install it
-yourself.
+Yes.  It is included with the source archive as @file{lilypond-mode.el}.
+If you have an RPM it is in @file{/usr/doc/lilypond-X/}.  You have to
+install it yourself.
 
 @subsubsection How do I create the @file{.tfm} files?
 
@@ -120,28 +81,27 @@ Metafont when you run TeX.  Check your TeX installation, or ask
 your local TeX guru.  The supplied @file{.afm} files are intended to
 be used by LilyPond, not by any other programs.
 
-@node Documentation, Language- mudela, Installing, FAQ - GNU LilyPond FAQs
+@node Documentation,, ,top
 @section Documentation
 
-@subsubsection Why is the documentation/website/etc. so lousy?
+@subsubsection What a sober website/manual you have there!
 
-LilyPond development is moving quite fast, documentation will often
-lag a bit behind.  We must always make a choice between writing more
-doco, writing more code and answering email.
+LilyPond development is moving fast, so the documentation will often be out
+of date.  But don't hesitate to point out inaccuracies. Whip up your
+mail reader and write to the mailing list.
 
-If you think you can make a correction, or devised a solution that 
-should be documented, please do so and send in a patch.
+@subsubsection Please take me off your mailing list, I get  so much mail!
+
+Don't ask Han-wen, don't ask David. Instead, read about
+@uref{../../index.html#mailing-lists,  the mailing lists} here.
 
-@node Language- mudela, Do you support -, Documentation, FAQ - GNU LilyPond FAQs
-@section Language: mudela
 
-@subsubsection Why can't you type @code{#c} in stead of @code{cis} ?
 
-We think that @code{#c} looks as if you are entering the symbols to
-print (which you are not; remember, you're entering the musical
-content in Mudela)
+@node Language- mudela,, ,top
+@section Language: mudela
 
-@subsubsection Why do I have to type the accidentals to the note if I specified them?
+@subsubsection Why do I have to type the accidentals to the note if I
+specified them in the keysignature?
 
 Take this example
 @example 
@@ -151,16 +111,8 @@ Take this example
 @end example 
 
 Independently of how it was written and what the current key was, you
-would say that you are playing and reading "two C-sharp" notes.  We
-have tried to make the language somewhat context-free.  Of course
-sheet music is not context-free.  Unfortunately, sheet music is also 2
-dimensional, and ASCII is not.
-
-Technically it would be feasible to have the Interpreting phase do
-tricky things to add (or leave out) the accidentals, but we think that
-it is impractical: it hampers the readability and portability of your
-source, since you need LilyPond to fill in the details and actually
-make sense of it.
+would say that you are playing and reading "two C-sharp" notes, so you
+have to enter C-sharp twice.
 
 @subsubsection What is @code{cis} anyway
 
@@ -193,7 +145,7 @@ of (x,y) positions and symbols.  You can only sensibly do TeX stuff in
 the symbol string.  You can access the symbol string easily for some
 symbols (notably lyrics and @code{^"text"} commands).
 
-@node Do you support -, How do I -, Language- mudela, FAQ - GNU LilyPond FAQs
+@node Do you support -,, ,top
 @section Do you support ...
 
 @subsubsection Do you support pop songs (chords, single staff, lyrics)?
@@ -202,46 +154,43 @@ Yes, see the @file{twinkle-pop} example.
 
 @subsubsection Do you support guitar chord diagrams?
 
-No. Go ahead and send a patch.
-
-We ourselves don't play guitar, and don't know the fine points of this
-notation.  We would welcome anyone who could give this a try.
+No. We ourselves don't play guitar, and don't know the fine points of
+this notation.  We would welcome anyone who could give this a try.
 
 @subsubsection Do you support TAB notation?
 
-No. The same as for the previous subsubsection goes, but TAB is a lot
-more work than diagrams (TAB needs modification of Parser, Lexer,
-Staff, Notehead, Stem code and all the code that creates these graphic
-elements.)
+No. The same as for the previous question goes.
+
 
 @subsubsection Do you support multiple staff-sizes?
 
-Yes.  At this time you can choose between 11, 13, 16, 19, 20, 23 and
-20 pt staff-size.  Use the staffLineLeading property for setting the
-size of the staff, and fontSize for setting the size of the glyphs.
+Yes.  At this time you can choose between 11, 13, 16, 19, 20, 23 and 20
+pt staff-size.  Use the @code{staffSpace} property for setting the
+size of the staff, and @code{fontSize} for setting the size of the
+glyphs.
 
 @subsubsection Do you support Gregorian chant notation?
 
-No.  Go ahead.
+No.
+
 
 @subsubsection Do you support grace notes?
 
-Yes. See @file{input/test/grace.ly}
+Yes. See @file{input/test/grace.ly}.
 
-@node How do I -, Development, Do you support -, FAQ - GNU LilyPond FAQs
+@node How do I -,, ,top
 @section How do I ....
 
 @subsubsection How do I change the TeX layout?
 
 See @file{lilyponddefs.tex}, it has some comments.  Or use @file{ly2dvi}.
 
-subsubsection(How do I place lyrics under @emph{each} of the staves in a score, as choral music. I can work out how to put lyrics for each line all under the top line, or at the bottom but not between!) 
+@subsubsection How do I place lyrics under @emph{each} of the staves in a score, as choral music. I can work out how to put lyrics for each line all under the top line, or at the bottom but not between!
 
 You change the order lyrics and staves.  You have to name all
 staves (lyric and melodic), otherwise they will end up in the same
 staff/lyricline
 @example 
-       
        \score @{
                < \melodic \type Staff = "treble" \trebleMelody
                  \lyric \type Lyrics = "tlyrics" \trebtext
@@ -316,54 +265,93 @@ There are several examples in the @file{mutopia} directory.
 
 See @file{input/test/bar-scripts.ly}.
 
-@subsubsection How do I change the tagline 'Lily was here'
+@subsubsection How do I change the tagline 'Lily was here'?
 
-In the @code{\header} field, add a @code{tagline} entry, eg
+In the @code{\header} field, add a @code{tagline} entry, e.g.
 @example 
 
 tagline="Typeset by GNU LilyPond"
  
 @end example 
 
-to get a bit less frivolous tagging.
+@subsubsection Can I make blank manuscript paper with LilyPond?
 
-@node Development, Running, How do I -, FAQ - GNU LilyPond FAQs
-@section Development
+Theoretically, yes but it is easier to do with (La)TeX. This LaTeX file
+will do the trick for you:
 
-subsubsection(Could you implement feature XXXX? It is really easy, just extend the syntax to allow YYYY!) 
 
-If it is reasonable, I'll add XXXX to the TODO list. In general
-finding a cute syntax (such as YYYY) isn't very hard. The complicated
-issue how to adapt the internals to do XXXX. The parser is really a
-simple front end to the complicated internals. 
+@example
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% notepaper.tex
+% Mats Bengtsson, 18/5 2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[a4paper]@{article@}
 
-@subsubsection Can I join in on LilyPond development?  How do I do this?
+\usepackage@{ifthen@}
+\usepackage[noheadfoot,hmargin=15mm,vmargin=20mm]@{geometry@}
+
+\pagestyle@{empty@}
 
-LilyPond development is open for anyone who wants to join.  We do
-frequent releases, you are welcome to send in a patch or do suggestions.
-Join the gnu-music-discuss mailing list to participate.
+\newcounter@{staffnumber@}
+\newlength@{\interstaffline@}
 
+\newcommand@{\drawline@}@{\hbox@{\rule@{\textwidth@}@{0.5pt@}@}
+  \nointerlineskip\vskip\interstaffline\nointerlineskip@}
 
-@subsubsection I want to implement XXXX!  Should I do this?
+\newcommand@{\printstaff@}@{\vfill
+  \vbox@{\drawline\drawline\drawline\drawline\drawline@}
+  \vfill@}
+
+\begin@{document@}
+\typeout@{@}\typeout@{@}
+\typein[\staffsize]@{Type in the staff size (20pt is a common value):@}
+\setlength@{\interstaffline@}@{\staffsize@}
+\setlength@{\interstaffline@}@{.25\interstaffline@}
+\typeout@{@}
+\typein[\num]@{Type in the number of staffs:@}
+\setcounter@{staffnumber@}@{\num@}
+
+\mbox@{@} % To get a starting point for the \vfill
+\whiledo@{\value@{staffnumber@}>0@}@{%
+  \printstaff \addtocounter@{staffnumber@}@{-1@}@}
+
+\end@{document@}
+@end  example
+
+
+@node Development,, ,top
+@section Development
+
+@subsubsection Could you implement feature XXXX? It is really easy, just extend the syntax to allow YYYY!
+
+In general finding a cute syntax (such as YYYY) isn't very hard. The
+complicated issue how to adapt the internals to do XXXX. The parser is
+really a simple front end to the complicated internals.
+
+@subsubsection Can I join in on LilyPond development?  How do I do this?
 
-Yes.
+Yes, we do frequent releases, you are welcome to send in a patch or do
+suggestions.  Join the list @email{gnu-music-discuss@@gnu.org} to
+participate.
 
-But since there might be better ways of doing XXXX, so it's a good thing to
-ask about this before you start hacking.  If you want to keep in touch
-with current developments, you should subscribe to the mailing list
 
 @subsubsection Is there a GUI frontend?  Should I start building one?
 
-LilyPond currently has no graphical interface.  The authors seriously
-doubt if a simple-minded approach (dragging and dropping notes) is any
-easier or quicker to use than mudela.  But for composing a graphical
-environment probably is indispensable.
+LilyPond currently has no graphical interface.  We (LilyPond authors)
+don't feel the need to write a GUI, but several others do:
 
 Matthew Hiller has extended Midiscore and Koobase to handle mudela.
-Check out @uref{http://zoo.cs.yale.edu/~meh25/}.
+Check out @uref{http://zoo.cs.yale.edu/~meh25/}.  He is now working on
+`Denemo', a GTK based notation program (which is still being developed).
 
-If you want to work on this, please send e-mail to the mailing list
-@email{gnu-music-discuss@@gnu.org}.
+Federico Mena-Quintero and Elliot Lee of RedHat Advanced Development
+labs have plans to write a GNOME based Music notation program. However,
+there is no code, only plans.
+
+Chris Cannam is working a rewrite of Rosegarden.  The new design should
+be more modular, and could conceivably be used to output
+mudela. However, the not much seems to have happened the past year. See
+@uref{http://www.all-day-breakfast.com/rosegarden/development.html}.
 
 
 @subsubsection I want to implement XXXX!  How should I do this?
@@ -374,43 +362,108 @@ Your best bet of getting us to include code, is to present it as a
 Please use the diff command to generate a patch, and don't send complete
 files, even if the diff is larger than the whole file.
 
-Don't forget to put your name and e-mail address
-in the @file{AUTHORS.pod} file, or you won't get credits :-]
+Don't forget to put your name and e-mail address in the file
+@file{Documentation/topdocs/AUTHORS.texi}, or you won't get credits
+:-)
 
 
 @subsubsection Your make system does not adhere to GNU coding standards, could you please fix it?
 
 No.  We have evaluated the standard GNU combination for compiling
-programs (autoconf, automake, libtool) and found to be inadequate in
-several respects.  More detailed argumentation is included with
-LilyPond's generic make package @code{StepMake} 
-(see @file{stepmake-x.x.x/Documentation/automake.urgh})
+programs (autoconf, automake, libtool) and found to be inadequate for
+our needs.
+
+@subsubsection How do I inspect @code{String}s and @code{SCM} values in GDB?
 
-LilyPond already compiles into a different directory ((the different
-directory is called out/, there is one in every source directory).
-make distclean essentially reduces to @file{rm -f out/*} in every directory
+Use the following command definitions, which can be put in 
+the file ~/.gdbinit.
 
-@subsubsection gdb crashes when I debug!
+@example
+define printstr
+    print $arg0->strh_.data->data_byte_p_
+end
 
-Upgrade to 4.17.
+define printscm
+    call gh_display($arg0)
+    call gh_newline()
+end
+@end example
 
-@subsubsection Why do I need g++ >= 2.8 / EGCS-1.1 ?
+@subsubsection GDB crashes when I debug!
 
-Supporting more compilers than EGCS/G++ 2.8 is unlikely to make
-LilyPond run on more platforms.  It would give us an enormous headache
-in detecting and catering for every variant of every compiler: not
-having to support other compilers saves us a @emph{lot} of trouble.
+Upgrade/downgrade to 4.17.
 
-@node Running, Copyright, Development, FAQ - GNU LilyPond FAQs
+@node Running,, ,top
 @section Running
 
+@subsubsection Correcting errors is so tedious. Is there a better way?
+
+As of 1.3.73, lilypond provides support for the xdvi @code{src:}
+special. This can be used with Xdvik (22.16 or better) and xdvi (22.28
+or better) to go to the place in the input that corresponds to a symbol
+in the output: click on the note, and your editor jumps to the place
+where it was defined
+
+lilypond:
+
+Decide if you want column positioning, and edit @file{lily.scm}
+according to the comments at the function @code{define-origin}.
+
+emacs:
+
+Put this in @file{~/.emacs}:
+@example
+(server-start)
+@end example
+
+For column positioning, apply @uref{this
+patch,http://www.cs.uu.nl/~hanwen/software/emacsclient-column} to
+@code{emacsclient.c} and @code{server.el}. Stick the compiled
+emacsclient into a bin directory, and put @code{server.el} into a elisp
+directory (eg. @file{~/usr/share/emacs/}). Add the following to your
+@file{.emacs} init file, before invoking server-start.
+@example
+(setq load-path (cons (concat (getenv "HOME") "/usr/share/emacs")
+ load-path))
+@end example
+
+Xdvik:
+
+Warning: @uref{Xdvik,ftp://ftp.cs.uu.nl/pub/tex-archive/dviware/xdvik/},
+which is shipped with most TeX distributions, doesn't work very well for
+src specials. You're better off using plain xdvi.
+@example
+       xdvi -srcmode -srcvisibility output.dvi
+@end example
+
+Click control-mouse button 2 for making emacs jump to the appropriate place.
+
+For column positioning you must install this @uref{patch,
+http://www.cs.uu.nl/~hanwen/software/xdvik-src} to make Xdvik emit
+column numbers. Add the command line option @code{-srceditorcommand
+"emacsclient --no-wait +%l:%c %f"}
+
+Xdvi
+
+@uref{Xdvi,ftp://ftp.math.berkeley.edu/pub/Software/TeX/xdvi.tar.gz} has
+better support for src specials. Apply @uref{this patch,
+http://www.cs.uu.nl/~hanwen/software/xdvi-src}. Before starting, set the
+environment variable @code{XEDITOR} to @code{"emacsclient --no-wait +%d
+%s"}.  When viewing, control-mousebutton 1 will take you to the correct
+line/column. Control-mousebutton 2 will show all clickable boxes.
+
+dvips:
+
+dvips will complain about the specials, but the complaints are harmless.
+
+
 @subsubsection I use dvilj4, and there are lots of warning messages for the printing
 
 You should use dvips and ghostscript to print the @code{dvi} output: the
 slurs and beams are PS @code{\special} commands.
 
 
-subsubsection My symbols are all messed up after I upgraded, I get the wrong symbols and dvi-checksum errors!
+@subsubsection My symbols are all messed up after I upgraded, I get the wrong symbols and dvi-checksum errors!
 
 We obviously mucked with the fonts in the upgrade.  Remove @emph{all}
 previous fonts, including the @file{.pk} and @file{.tfm} fonts in
@@ -475,37 +528,27 @@ Direct PS output is still experimental.  For creating nice looking ps
 output, use TeX and @code{dvips}.
 
   
-@subsubsection The beams and slurs are gone if use the XDvi magnifying glass!?
+@subsubsection The beams and slurs are gone when using the XDvi magnifying glass!?
 
-The beams and slurs are done in PostScript.  XDvi doesn't show
-PostScript in the magnifying glass.  Complain to the XDvi maintainers.
+Various dynamic symbols, such as beams, crescendi, slurs are done in
+PostScript.  XDvi doesn't show PostScript in the magnifying glass.
+Complain to the XDvi maintainers.
 
-@subsubsection I don't get midi-output, even if I use @strong{-M}!
 
-Your \score should include a \midi block, eg.
-@example 
+@subsubsection Beams, slurs and crescendi are not displayed at all!
 
-       \score @{
-               \melodic @{ c4 c g g @}
-               \paper @{@}     
-               \midi @{
-                       output = "myfile.midi";
-                       \tempo 4=70;
-               @}
-       @}
-@end example 
-
-The @strong{-M} option was added to LilyPond because processing the \paper
-block is so slow.
+See previous answer.  XDvi uses GhostScript for displaying PostScript,
+check that you have GhostScript installed.  If you use a different
+DVI viewer, check if it will display embedded PostScript.  Don't worry,
+the symbols should appear on the printout.
 
-subsubsection(A lot of musical stuff doesn't make it to the MIDI file, eg.  dynamics, articulation, etc.) 
+@subsubsection A lot of musical stuff doesn't make it to the MIDI file, eg.  dynamics, articulation, etc.
 
 The MIDI output was originally put in as a proof that MIDI could be
 done, and as a method of proof"reading" the input.  The MIDI support
 is by no means finished.  Patches appreciated.
 
-@node Copyright, Windows32, Running, FAQ - GNU LilyPond FAQs
+@node Copyright,, ,top
 @section Copyright
 
 @subsubsection What is Urtext?  Critical Edition?
@@ -545,10 +588,12 @@ signature changes, time compression (original in 4/1, playing edition
 in 4/4, for example, with all semibreves replaced with crotchets)
 Copyright is in the arranger/editor.
 
-subsubsection(How does copyright for sheet music work? Can I enter and spread my newly bought Bach urtext?) 
+@subsubsection How does copyright for sheet music work? Can I enter and spread my newly bought Bach urtext?
 
 Silas S. Brown <ssb22@@hermes.cam.ac.uk>:
 
+@quotation
+
 There are several aspects to sheet music copyright:
 
 1.  The music itself - copyright for the composer's life plus 70 years (so
@@ -595,9 +640,45 @@ restrictions imposed on you.
 References - best one I know is the UK-based Performing Right Society,
 @uref{http://www.prs.co.uk/} (especially "membership") and their links to other
 international equivalents.  
+@end quotation
+
+Werner Lemberg @email{wl@@gnu.org} writes:
+
+@quotation
+
+Typesetting [at least in Austria or Germany, but not in France] [..]
+isn't copyrighted -- typesetting is a handcraft, not an
+art.
+
+What's copyrighted in an Urtext edition is the editor's comment or
+the revision remarks, cadenzas added by the editor, etc.
+
+Urtext editions per se are @emph{not} copyrighted -- if you print
+exactly what the composer has written, how can there some copyright be
+added?  Copyrighted are usually only the `Critical notes', the foreword,
+and the cadenzas some editors have added.
+
+This means that the `Photocopying forbidden' sign in many scores is not
+always correct for e.g. J.S. Bach -- you are allowed to copy the pages
+which don't contain editorial stuff which is probably copyrighted.
 
+A very unfortunate situation for the publishers.
+
+@end  quotation
+
+
+Glen Prideaux, @email{glenprideaux@@MailAndNews.com}:
+
+@quotation
+One has to be careful. In Australia typesetting IS covered by copyright, but
+only for 25 years (as opposed to 50 years from the death of the
+author/composer/artist for virtually any other copyright). If the
+typesetting originates in a country that does not protect typesetting then
+there may indeed be no copyright protection available to control the use of
+mudela files.
+@end quotation
 
-Juergen Reuter <reuterj@@ira.uka.de>:
+Juergen Reuter @email{reuterj@@ira.uka.de}
 
 [More information can be had at: ]
 
@@ -620,22 +701,8 @@ See @uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html}
 for a summary of copyright relative to old music, also for the
 expert forum for such subsubsections.
 
-Werner Lemberg <sx0005@@sx2.HRZ.Uni-Dortmund.DE>:
-
-This is not correct.  Urtext editions per se are @emph{not} copyrighted
--- if you print exactly what the composer has written, how can there
-some copyright be added?  Copyrighted are usually only the `Critical
-notes', the foreword, and the cadenzas some editors have added.
-
-This means that the `Photocopying forbidden' sign in many scores is
-not always correct for e.g. J.S. Bach -- you are allowed to copy the
-pages which don't contain editorial stuff which is probably
-copyrighted.
-
-A very unfortunate situation for the publishers.
-
 
-@node Windows32, Top, Copyright, FAQ - GNU LilyPond FAQs
+@node Windows32,, ,top
 @section Windows32
 
 @subsubsection I downloaded the windows32 port, and it doesn't match the website!