]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-context-properties.scm
Don't let lyrics interfere with StaffGrouper.
[lilypond.git] / scm / define-context-properties.scm
index 1012c8685568a32a833db3fb6f713f11c216c501..1da05b637a1e2f5c8215ac2deb21235d9bccb47c 100644 (file)
@@ -1,9 +1,20 @@
-;;;; define-context-properties.scm -- part of backend documentation
+;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 1998--2009  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2010  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                  Jan Nieuwenhuizen <janneke@gnu.org>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 
 (define-public all-translation-properties '())
            (procedure? type?)
            (string? description)))
       (throw 'init-format-error))
-          
-       
+
+
   (if (not (equal? #f (object-property symbol 'translation-doc)))
       (ly:error (_ "symbol ~S redefined" symbol)))
-  
+
   (set-object-property! symbol 'translation-type? type?)
   (set-object-property! symbol 'translation-doc description)
   (set! all-translation-properties (cons symbol all-translation-properties))
    `(
 
      ;; TODO FIXME
-   
+
      (aDueText ,markup? "Text to print at a unisono passage.")
-     (alignBelowContext ,string? "Where to insert newly created context in
-vertical alignment.")
      (alignAboveContext ,string? "Where to insert newly created context in
 vertical alignment.")
      (alignBassFigureAccidentals ,boolean? "If true, then the accidentals
 are aligned in bass figure context.")
+     (alignBelowContext ,string? "Where to insert newly created context in
+vertical alignment.")
      (associatedVoice ,string? "Name of the @code{Voice} that has the
 melody for this @code{Lyrics} line.")
      (autoAccidentals ,list? "List of different ways to typeset an
@@ -90,9 +101,6 @@ printed. @code{(#t . #f)} does not make sense.
 arguments, @var{context}, @var{dir} [start/stop (-1 or 1)], and
 @var{test} [shortest note in the beam].  A non-@code{#f} return value
 starts or stops the auto beam.")
-     (autoBeamSettings ,list? "Specifies when automatically generated
-beams should begin and end.  See @ruser{Setting automatic beam
-behavior} for more information.")
      (autoBeaming ,boolean? "If set to true then beams are generated
 automatically.")
      (autoCautionaries ,list? "List similar to @code{autoAccidentals},
@@ -105,7 +113,7 @@ be printed automatically; they must be explicitly created with a
 are still counted.  Bar line generation will resume according to that
 count if this property is unset.")
 
-     
+
      (barAlways ,boolean? "If set to true a bar line is drawn after
 each note.")
      (barCheckSynchronize ,boolean? "If true then reset
@@ -120,15 +128,15 @@ format.")
      (bassStaffProperties ,list? "An alist of property settings to
 apply for the down staff of @code{PianoStaff}.  Used by
 @code{\\autochange}.")
+     (beamSettings ,list? "Specifies when automatically generated
+beams should begin and end, as well as beam subdivision behavior.
+See @ruser{Setting automatic beam
+behavior} for more information.")
      (beatLength ,ly:moment? "The length of one beat in this time
 signature.")
-     (beatGrouping ,list? "A list of beatgroups, e.g., in 5/8 time
-@code{'(2 3)}.")
 
 
      (chordChanges ,boolean? "Only show changes in chords scheme?")
-     (chordNameFunction ,procedure? "The function that converts lists
-of pitches to chord names.")
      (chordNameExceptions ,list? "An alist of chord exceptions.
 Contains @code{(@var{chord} . @var{markup})} entries.")
      (chordNameExceptionsFull ,list? "An alist of full chord
@@ -136,6 +144,9 @@ exceptions.  Contains @code{(@var{chord} . @var{markup})} entries.")
      (chordNameExceptionsPartial ,list? "An alist of partial chord
 exceptions.  Contains @code{(@var{chord} . (@var{prefix-markup}
 @var{suffix-markup}))} entries.")
+     (chordNameFunction ,procedure? "The function that converts lists
+of pitches to chord names.")
+        (chordNameLowercaseMinor ,boolean? "Downcase roots of minor chords?")
      (chordNameSeparator ,markup? "The markup object used to
 separate parts of a chord name.")
      (chordNoteNamer ,procedure? "A function that converts from a pitch
@@ -159,11 +170,11 @@ percent repeats.")
 the clef is changed.")
      (createSpacing ,boolean? "Create @code{StaffSpacing} objects?
 Should be set for staves.")
-     (crescendoText ,markup? "The text to print at start of non-hairpin
-crescendo, i.e., @samp{cresc.}.")
      (crescendoSpanner ,symbol? "The type of spanner to be used for
 crescendi.  Available values are @samp{hairpin} and @samp{text}.  If unset,
 a hairpin crescendo is used.")
+     (crescendoText ,markup? "The text to print at start of non-hairpin
+crescendo, i.e., @samp{cresc.}.")
      (currentBarNumber ,integer? "Contains the current barnumber.
 This property is incremented at every bar line.")
 
@@ -231,6 +242,9 @@ at this point.")
      (forceClef ,boolean? "Show clef symbol, even if it has not
 changed.  Only active for the first clef after the property is set, not
 for the full staff.")
+     (fretLabels ,list? "A list of strings or Scheme-formatted markups
+containing, in the correct order, the labels to be used for lettered
+frets in tablature.")
 
 
      (gridInterval ,ly:moment? "Interval for which to generate
@@ -254,14 +268,16 @@ string selector for tablature notation.")
 printed as numbers, but only as extender lines.")
      (implicitTimeSignatureVisibility ,vector? "break visibility for
 the default time signature.")
+     (includeGraceNotes ,boolean? "Do not ignore grace notes for
+@rinternals{Lyrics}.")
      (instrumentCueName ,markup? "The name to print if another
 instrument is to be taken.")
-     (instrumentName ,markup? "The name to print left of a staff.  The
-@code{instrument} property labels the staff in the first system, and
-the @code{instr} property labels following lines.")
      (instrumentEqualizer ,procedure? "A function taking a string
 (instrument name), and returning a @code{(@var{min} . @var{max})} pair
 of numbers for the loudness range of the instrument.")
+     (instrumentName ,markup? "The name to print left of a staff.  The
+@code{instrumentName} property labels the staff in the first system, and
+the @code{shortInstrumentName} property labels following lines.")
      ;; the definition is reversed wrt traditional transposition
      ;; otherwise \transpose { \transposition .. } won't work
      (instrumentTransposition ,ly:pitch? "Define the transposition of
@@ -270,11 +286,11 @@ This is used to transpose the MIDI output, and @code{\\quote}s.")
      (internalBarNumber ,integer? "Contains the current barnumber.
 This property is used for internal timekeeping, among others by the
 @code{Accidental_engraver}.")
-     
+
 
      (keepAliveInterfaces ,list? "A list of symbols, signifying grob
 interfaces that are worth keeping a staff with @code{remove-empty} set
-around for.")   
+around for.")
      (keyAlterationOrder ,list? "An alist that defines in what order
 alterations should be printed.  The format is @code{(@var{step}
 . @var{alter})}, where @var{step} is a number from 0 to@tie{}6 and
@@ -309,11 +325,6 @@ manual beams are considered.  Possible values include
 @code{beamMelismaBusy}.")
      (metronomeMarkFormatter ,procedure? "How to produce a metronome
 markup.  Called with four arguments: text, duration, count and context.")
-     (midiInstrument ,string? "Name of the MIDI instrument to use.")
-     (midiMaximumVolume ,number? "Analogous to
-@code{midiMinimumVolume}.")
-     (midiMinimumVolume ,number? "Set the minimum loudness for MIDI.
-Ranges from 0 to@tie{}1.")
      (middleCClefPosition ,number? "The position of the middle C,
 as determined only by the clef.  This can be calculated by looking at
 @code{clefPosition} and @code{clefGlyph}.")
@@ -323,6 +334,11 @@ is used for ottava brackets.")
      (middleCPosition ,number? "The place of the middle C, measured in
 half staff-spaces.  Usually determined by looking at
 @code{middleCClefPosition} and @code{middleCOffset}.")
+     (midiInstrument ,string? "Name of the MIDI instrument to use.")
+     (midiMaximumVolume ,number? "Analogous to
+@code{midiMinimumVolume}.")
+     (midiMinimumVolume ,number? "Set the minimum loudness for MIDI.
+Ranges from 0 to@tie{}1.")
      (minimumFret ,number? "The tablature auto string-selecting
 mechanism selects the highest string with a fret at least
 @code{minimumFret}.")
@@ -332,8 +348,12 @@ page turn to be allowed.")
 repeated section for a page turn to be allowed within that section.")
 
 
-     (noteToFretFunction ,procedure? "How to produce a fret diagram.
-Parameters: A list of note events and a list of tabstring events.")
+     (noChordSymbol ,markup? "Markup to be displayed for rests in a
+ChordNames context.")
+     (noteToFretFunction ,procedure? "Convert list of notes and list of
+defined strings to full list of strings and fret numbers.
+Parameters: The context, a list of note events, a list of
+tabstring events, and the fretboard grob if a fretboard is desired.")
 
 
      (ottavation ,markup? "If set, the text for an ottava spanner.
@@ -365,12 +385,6 @@ shortest-playing duration.  This is used for switching on proportional
 notation.")
 
 
-     (recordEventSequence ,procedure? "When
-@code{Recording_group_engraver} is in this context, then upon
-termination of the context, this function is called with current
-context and a list of music objects.  The list of contains entries with
-start times, music objects and whether they are processed in this
-context.")
      (rehearsalMark ,integer? "The last rehearsal mark printed.")
      (repeatCommands ,list? "This property is a list of commands
 of the form @code{(list 'volta @var{x})}, where @var{x} is a string or
@@ -385,7 +399,7 @@ measures than this, a number is printed.")
 
      (shapeNoteStyles ,vector? "Vector of symbols, listing style for
 each note head relative to the tonic (qv.) of the scale.")
-     (shortInstrumentName ,markup? "See @code{instrument}.")
+     (shortInstrumentName ,markup? "See @code{instrumentName}.")
      (shortVocalName ,markup? "Name of a vocal line, short version.")
      (skipBars ,boolean? "If set to true, then skip the empty bars
 that are produced by multimeasure notes and rests.  These bars will
@@ -435,18 +449,21 @@ cautionary suggestions over the note.")
 of the system/staff?  Set to @code{SystemStartBrace},
 @code{SystemStartBracket} or @code{SystemStartBar}.")
      (systemStartDelimiterHierarchy ,pair? "A nested list, indicating
-the nesting of a start delimiters.") 
+the nesting of a start delimiters.")
 
 
      (tablatureFormat ,procedure? "A function formatting a tablature
-note head.  Called with three arguments: string number, context and event.
-It returns the text as a string.")
-     (tempoWholesPerMinute ,ly:moment? "The tempo in whole notes per
-minute.")
+note head.  Called with three arguments: context, string number and,
+fret number.  It returns the text as a markup.")
+     (tabStaffLineLayoutFunction ,procedure? "A function determining the
+staff position of a tablature note head.  Called with two arguments:
+the context and the string.")
+     (tempoHideNote ,boolean? "Hide the note=count in tempo marks.")
+     (tempoText ,markup? "Text for tempo marks.")
      (tempoUnitCount ,number? "Count for specifying tempo.")
      (tempoUnitDuration ,ly:duration? "Unit for specifying tempo.")
-     (tempoText ,markup? "Text for tempo marks.")
-     (tempoHideNote ,boolean? "Hide the note=count in tempo marks.")
+     (tempoWholesPerMinute ,ly:moment? "The tempo in whole notes per
+minute.")
      (tieWaitForNote ,boolean? "If true, tied notes do not have to
 follow each other directly.  This can be used for writing out
 arpeggios.")
@@ -456,6 +473,9 @@ signifying the time signature.  For example, @code{#'(4 . 4)} is a
      (timing ,boolean? "Keep administration of measure length,
 position, bar number, etc.?  Switch off for cadenzas.")
      (tonic ,ly:pitch? "The tonic of the current scale.")
+     (topLevelAlignment ,boolean? "If true, the @var{Vertical_align_engraver}
+will create a @var{VerticalAlignment}; otherwise, it will create a
+@var{StaffGrouper}")
      (trebleStaffProperties ,list? "An alist of property settings to
 apply for the up staff of @code{PianoStaff}.  Used by
 @code{\\autochange}.")
@@ -479,7 +499,7 @@ setting this property, you can make brackets last shorter.
 
      (useBassFigureExtenders ,boolean? "Whether to use extender lines
 for repeated bass figures.")
-     
+
      (verticallySpacedContexts ,list? "List of symbols, containing
 context names whose vertical axis groups should be taken into account
 for vertical spacing of systems.")
@@ -520,8 +540,6 @@ are described in @rinternals{bar-line-interface}.")
      (barCheckLastFail ,ly:moment? "Where in the measure did the last
 barcheck fail?")
      (beamMelismaBusy ,boolean? "Signal if a beam is present.")
-     (breakableSeparationItem ,ly:grob? "The breakable items in this
-time step, for this staff.")
      (busyGrobs ,list? "A queue of @code{(@var{end-moment} .
 @var{GROB})} cons cells.  This is for internal (C++) use only.  This
 property contains the grobs which are still busy (e.g. note heads,
@@ -534,7 +552,9 @@ current breakable (clef, key signature, etc.) items.")
 non-breakable items (note heads, lyrics, etc.).")
 
 
-     (dynamicAbsoluteVolumeFunction ,procedure? "[DOCUMENT-ME]")
+     (dynamicAbsoluteVolumeFunction ,procedure? "A procedure that takes
+one argument, the text value of a dynamic event, and returns the absolute
+volume of that dynamic event.")
 
 
      (finalizations ,list? "A list of expressions to evaluate before
@@ -549,10 +569,6 @@ should be manipulated through the @code{add-grace-property} function.")
 @code{CommandColumn} contains items that will affect spacing.")
 
 
-     (instrumentSupport ,grob-list? "A list of grobs to attach the
-instrument name to.")
-
-
      (lastKeySignature ,list? "Last key signature before a key
 signature change.")
      (localKeySignature ,list? "The key signature at this point in the
@@ -566,14 +582,12 @@ This can be used to signal melismas on top of those automatically
 detected.")
 
 
-     (originalMiddleCPosition ,integer? "Used for temporary overriding
-middle@tie{}C in octavation brackets.")
-
-
+     (quotedCueEventTypes ,list? "A list of symbols, representing the
+event types that should be duplicated for @code{\\cueDuring} commands.")
      (quotedEventTypes ,list? "A list of symbols, representing the
-event types that should be duplicated for @code{\\quote} commands.")
-;    (quotes ,hash-table? "A hash table, mapping names to
-;@code{music-event} vectors.")
+event types that should be duplicated for @code{\\quoteDuring} commands.
+This is also a fallback for @code{\\cueDuring} if @code{quotedCueEventTypes}
+is not set")
 
 
      (rootSystem ,ly:grob? "The System object.")