X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Finput.itely;h=7c199fef71247d4aa649605d8153b8f529547f61;hb=def21b306e2b8fa2d5630fab0878e9922e197f0c;hp=38f447aebb0d8f3495b2d4e270cbc69c29930fc1;hpb=b90a4cf94efb4d0069113b50fda0e51cc6676e6b;p=lilypond.git diff --git a/Documentation/user/input.itely b/Documentation/user/input.itely index 38f447aebb..7c199fef71 100644 --- a/Documentation/user/input.itely +++ b/Documentation/user/input.itely @@ -7,20 +7,20 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.51" +@c \version "2.11.57" -@node Input syntax -@chapter Input syntax +@node General input and output +@chapter General input and output -This section deals with general LilyPond input syntax issues, +This section deals with general LilyPond input and output issues, rather than specific notation. @menu -* Input structure:: -* Titles and headers:: -* Working with input files:: -* Controlling output:: -* MIDI output:: +* Input structure:: +* Titles and headers:: +* Working with input files:: +* Controlling output:: +* MIDI output:: @end menu @@ -31,9 +31,9 @@ The main format of input for LilyPond are text files. By convention, these files end with @code{.ly}. @menu -* Structure of a score:: -* Multiple scores in a book:: -* File structure:: +* Structure of a score:: +* Multiple scores in a book:: +* File structure:: @end menu @@ -337,10 +337,10 @@ Almost all printed music includes a title and the composer's name; some pieces include a lot more information. @menu -* Creating titles:: -* Custom titles:: -* Reference to page numbers:: -* Table of contents:: +* Creating titles:: +* Custom titles:: +* Reference to page numbers:: +* Table of contents:: @end menu @@ -428,13 +428,13 @@ may use any @ref{Formatting text}, commands in the header. \book { \header { dedication = "dedicated to me" - title = \markup \center-align { "Title first line" "Title second line, + title = \markup \center-column { "Title first line" "Title second line, longer" } subtitle = "the subtitle," subsubtitle = #(string-append "subsubtitle LilyPond version " (lilypond-version)) poet = "Poet" - composer = \markup \center-align { "composer" \small "(1847-1973)" } + composer = \markup \center-column { "composer" \small "(1847-1973)" } texttranslator = "Text Translator" meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge "r" } @@ -760,10 +760,10 @@ Init files: @file{../ly/@/toc@/-init@/.ly}. @section Working with input files @menu -* Including LilyPond files:: -* Different editions from one source:: -* Text encoding:: -* Displaying LilyPond notation:: +* Including LilyPond files:: +* Different editions from one source:: +* Text encoding:: +* Displaying LilyPond notation:: @end menu @@ -885,8 +885,8 @@ the structure of the score will make it easier to change the structure while leaving the notation untouched. @menu -* Using variables:: -* Using tags:: +* Using variables:: +* Using tags:: @end menu @node Using variables @@ -1130,7 +1130,7 @@ Unicode-aware editor and saving the file with UTF-8 encoding. Most popular modern editors have UTF-8 support, for example, vim, Emacs, jEdit, and GEdit do. All MS Windows systems later than NT use Unicode as their native character encoding, so even Notepad can -edit and save a file in UTF-8 format. A more functional +edit and save a file in UTF-8 format. A more functional alternative for Windows is BabelPad. If a LilyPond input file containing a non-ASCII character is not @@ -1145,7 +1145,8 @@ will be generated. Here is an example showing Cyrillic, Hebrew and Portuguese text: -@lilypond[verbatim,quote] +@lilypond[quote] +%c No verbatim here as the code does not display correctly in PDF % Cyrillic bulgarian = \lyricmode { Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон. @@ -1223,8 +1224,8 @@ lilypond file.ly >display.txt @section Controlling output @menu -* Extracting fragments of music:: -* Skipping corrected music:: +* Extracting fragments of music:: +* Skipping corrected music:: @end menu @node Extracting fragments of music @@ -1331,20 +1332,19 @@ settings. Therefore the midi file should not have more than 15 staves (or 14 if you do not use drums). Other staves will remain silent. @menu -* Creating MIDI files:: -* What goes into the MIDI output?:: -* MIDI block:: -* MIDI instrument names:: -* Repeats in MIDI:: -* Controlling MIDI dynamics:: -* Microtones in MIDI:: +* Creating MIDI files:: +* MIDI block:: +* What goes into the MIDI output?:: +* Repeats in MIDI:: +* Controlling MIDI dynamics:: +* Percussion in MIDI:: @end menu @node Creating MIDI files @subsection Creating MIDI files -To create a MIDI output file from a LilyPond input file, add a @code{\midi} block -to a score, for example, +To create a MIDI output file from a LilyPond input file, add a +@code{\midi} block to a score, for example, @example \score @{ @@ -1382,6 +1382,33 @@ can be suppressed, see @ref{Metronome marks}. An alternative way of specifying the inital or overall MIDI tempo is described below, see @ref{MIDI block}. +@unnumberedsubsubsec Instrument names + +@cindex instrument names +@funindex Staff.midiInstrument + +The MIDI instrument to be used is specified by setting the +@code{Staff.midiInstrument} property to the instrument name. +The name should be chosen from the list in @ref{MIDI instruments}. + +@example +\new Staff @{ + \set Staff.midiInstrument = "glockenspiel" + @var{...notes...} +@} +@end example + +@example +\new Staff \with @{midiInstrument = "cello"@} @{ + @var{...notes...} +@} +@end example + +If the selected instrument does not exactly match an instrument from +the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"}) +instrument is used. + + @snippets @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] @@ -1418,44 +1445,6 @@ Not all midi players correctly handle tempo changes in the midi output. Players that are known to work include MS Windows Media Player and @uref{http://@/timidity@/.sourceforge@/.net/,timidity}. -@node What goes into the MIDI output? -@subsection What goes into the MIDI output? - -@c TODO Check grace notes - timing is suspect? - -@unnumberedsubsubsec Supported in MIDI - -The following items of notation are reflected in the MIDI output: - -@itemize -@item Pitches -@item Microtones -@item Chords entered as chord names -@item Rhythms entered as note durations, including tuplets -@item Tremolos entered without @q{@code{:}[@var{number}]} -@item Ties -@item Dynamic marks -@item Crescendi, decrescendi over multiple notes -@item Tempo changes entered with a tempo marking -@end itemize - -@unnumberedsubsubsec Unsupported in MIDI - -The following items of notation have no effect on the MIDI output: - -@itemize -@item Rhythms entered as annotations, e.g. swing -@item Tempo changes entered as annotations with no tempo marking -@item Staccato and other articulations and ornamentations -@item Slurs and Phrasing slurs -@item Crescendi, decrescendi over a single note -@item Tremolos entered with @q{@code{:}[@var{number}]} -@item Figured bass -@c TODO Check Lyrics -@item Lyrics -@end itemize - - @node MIDI block @subsection MIDI block @cindex MIDI block @@ -1526,24 +1515,57 @@ in a @code{\score} block. @} @end example -@node MIDI instrument names -@subsection MIDI instrument names +@node What goes into the MIDI output? +@subsection What goes into the MIDI output? -@cindex instrument names -@funindex Staff.midiInstrument +@c TODO Check grace notes - timing is suspect? -The MIDI instrument name is set by the @code{Staff.midiInstrument} -property. The instrument name should be chosen from the list in -@ref{MIDI instruments}. +@unnumberedsubsubsec Supported in MIDI -@example -\set Staff.midiInstrument = "glockenspiel" -@var{...notes...} -@end example +@cindex Pitches in MIDI +@cindex MIDI, Pitches +@cindex Quarter tones in MIDI +@cindex MIDI, quarter tones +@cindex Microtones in MIDI +@cindex MIDI, microtones +@cindex Chord names in MIDI +@cindex MIDI, chord names +@cindex Rhythms in MIDI +@cindex MIDI, Rhythms +@c TODO etc -If the selected instrument does not exactly match an instrument from -the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"}) -instrument is used. +The following items of notation are reflected in the MIDI output: + +@itemize +@item Pitches +@item Quarter tones (See @ref{Accidentals}. Rendering needs a +player that supports pitch bend.) +@item Chords entered as chord names +@item Rhythms entered as note durations, including tuplets +@item Tremolos entered without @q{@code{:}[@var{number}]} +@item Ties +@item Dynamic marks +@item Crescendi, decrescendi over multiple notes +@item Tempo changes entered with a tempo marking +@end itemize + +@unnumberedsubsubsec Unsupported in MIDI + +@c TODO index as above + +The following items of notation have no effect on the MIDI output: + +@itemize +@item Rhythms entered as annotations, e.g. swing +@item Tempo changes entered as annotations with no tempo marking +@item Staccato and other articulations and ornamentations +@item Slurs and Phrasing slurs +@item Crescendi, decrescendi over a single note +@item Tremolos entered with @q{@code{:}[@var{number}]} +@item Figured bass +@c TODO Check Lyrics +@item Lyrics +@end itemize @node Repeats in MIDI @@ -1606,11 +1628,13 @@ function which takes a dynamic mark as its argument and returns the required fraction, and setting @code{Score.dynamicAbsoluteVolumeFunction} to this function. -For example, if a @notation{rinforzando} dynamic marking, rfz, -has been defined with @code{make-dynamic-script}, this will not +For example, if a @notation{rinforzando} dynamic marking, +@code{\rfz}, is required, this will not by default have any effect on the MIDI volume, as this dynamic marking is not -included in the default set. The following example shows how the -MIDI volume for this new dynamic marking can be added. The Scheme +included in the default set. Similarly, if a new dynamic marking +has been defined with @code{make-dynamic-script} that too will not +be included in the default set. The following example shows how the +MIDI volume for such dynamic markings might be added. The Scheme function sets the fraction to 0.9 if a dynamic mark of rfz is found, or calls the default function otherwise. @@ -1620,8 +1644,6 @@ found, or calls the default function otherwise. 0.9 (default-dynamic-absolute-volume dynamic))) -rfz = #(make-dynamic-script "rfz") - \score { \new Staff { \set Staff.midiInstrument = "cello" @@ -1814,8 +1836,11 @@ to the same values as the previous example. } @end lilypond -@node Microtones in MIDI -@subsection Microtones in MIDI +@ignore +@c Delete when satisfied this is adequately covered elsewhere -td + +@n ode Microtones in MIDI +@s ubsection Microtones in MIDI @cindex microtones in MIDI @@ -1839,7 +1864,37 @@ copied out and compiled to test microtones in your MIDI player. \midi {} } @end lilypond +@end ignore + +@node Percussion in MIDI +@subsection Percussion in MIDI + +Percussion instruments are generally notated in a @code{DrumStaff} +context and when notated in this way they are outputted correctly +to MIDI channel@tie{}10, but some pitched percussion instruments, +like the xylophone, marimba, vibraphone, timpani, etc., are +treated like @qq{normal} instruments and music for these instruments +should be entered in a normal @code{Staff} context, not a +@code{DrumStaff} context, to obtain the correct MIDI output. + +Some non-pitched percussion sounds included in the general MIDI +standard, like melodic tom, taiko drum, synth drum, etc., cannot +be reached via MIDI channel@tie{}10, so the notation for such +instruments should also be entered in a normal @code{Staff} +context, using suitable normal pitches. + +Many percussion instruments are not included in the general MIDI +standard, e.g. castanets. The easiest, although unsatisfactory, +method of producing some MIDI output when writing for such +instruments is to substitute the nearest sound from the standard +set. + +@c TODO Expand with examples, and any other issues + +@knownissues +Because the general MIDI standard does not contain rim shots, the +sidestick is used for this purpose instead.