]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'pagebreak-2735' into staging
authorTrevor Daniels <t.daniels@treda.co.uk>
Wed, 22 Aug 2012 08:39:34 +0000 (09:39 +0100)
committerTrevor Daniels <t.daniels@treda.co.uk>
Wed, 22 Aug 2012 08:39:34 +0000 (09:39 +0100)
Documentation/music-glossary.tely
scm/music-functions.scm

index a57dffbe63beb09c0693e1e0675754c9f6930832..306d0504d80c4d837d1f3bf39c4b0eb1969906dd 100644 (file)
@@ -248,6 +248,7 @@ Languages in this order.
 * homophony::
 * hook::
 * hymn meter::
+* incomplete dominant seventh chord::
 * interval::
 * inversion::
 * inverted interval::
@@ -3876,10 +3877,29 @@ functionally different chords: tonic (T, the chord on the first note of the
 scale), subdominant (S, the chord on the fourth note), and dominant (D, the
 chord on the fifth note).  Others are considered to be variants of the base
 chords.
-
-TODO: what does the @q{p} mean in Sp, Dp, Tp?
+A few examples among many others are the tonic, subdominant or dominant of
+the parallel minor scale, or the incomplete dominant seventh chord.
 
 @lilypond[quote,notime,relative=2,line-width=13.0\cm]
+#(define-markup-command (diagonal-stroke layout props arg)
+  (markup?)
+  #:category font
+  #:properties ((font-size 0) (thickness 1.5) (extension 0.07))
+  (let*
+   ((thick (* (magstep font-size)
+      (ly:output-def-lookup layout 'line-thickness)))
+    (underline-thick (* thickness thick))
+    (markup (interpret-markup layout props arg))
+    (x1 (car (ly:stencil-extent markup X)))
+    (x2 (cdr (ly:stencil-extent markup X)))
+    (y1 (car (ly:stencil-extent markup Y)))
+    (y2 (cdr (ly:stencil-extent markup Y)))
+    (dx (* extension (- x2 x1)))
+    (dy (* extension (- y2 y1)))
+    (line (make-line-stencil underline-thick
+      (- x1 dx) (- y1 dy)
+      (+ x2 dx) (+ y2 dy))))
+   (ly:stencil-add markup line)))
 <<
   {
     <g e c>1 <a f d> <b g e>
@@ -3887,13 +3907,14 @@ TODO: what does the @q{p} mean in Sp, Dp, Tp?
   }
   \lyrics {
     T Sp Dp S D Tp
-    \markup { D \translate #'(-2 . 0) | }
+    \markup { \concat { \diagonal-stroke D \super "7" } }
   }
 >>
 @end lilypond
 
 @seealso
-No cross-references.
+@ref{dominant}, @ref{incomplete dominant seventh chord},
+@ref{subdominant}, @ref{tonic}.
 
 
 @node G
@@ -4335,6 +4356,25 @@ easier reading, a hymn with a meter of 87.87.87.87 is usually written
 No cross-references.
 
 
+@node incomplete dominant seventh chord
+@section incomplete dominant seventh chord
+
+ES: ?,
+I: ?,
+F: ?,
+D: verkürzter Dominantseptakkord,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+A dominant seventh chord where the root tone is removed.
+The remaining three tones build a diminished triad.
+
+@seealso
+@ref{chord}, @ref{dominant seventh chord}, @ref{functional harmony}.
+
+
 @node interval
 @section interval
 
index cd0ff32e1cd7ec47b34139e382ffe3c3fef797ec..24661730f0b116e040f2b68ebb5bcf39825ec20b 100644 (file)
@@ -1321,33 +1321,43 @@ immediately', that is, only look at key signature.  @code{#t} is `forever'."
   (check-pitch-against-signature context pitch barnum laziness octaveness))
 
 (define (key-entry-notename entry)
-  "Return the pitch of an entry in localKeySignature.  The entry is either of the form
-  '(notename . alter) or '((octave . notename) . (alter barnum . measurepos))."
-  (if (number? (car entry))
-      (car entry)
-      (cdar entry)))
+  "Return the pitch of an @var{entry} in @code{localKeySignature}.
+The @samp{car} of the entry is either of the form @code{notename} or
+of the form @code{(octave . notename)}.  The latter form is used for special
+key signatures or to indicate an explicit accidental.
+
+The @samp{cdr} of the entry is either a rational @code{alter} indicating
+a key signature alteration, or of the form
+@code{(alter . (barnum . measurepos))} indicating an alteration caused by
+an accidental in music."
+  (if (pair? (car entry))
+      (cdar entry)
+      (car entry)))
 
 (define (key-entry-octave entry)
-  "Return the octave of an entry in localKeySignature (or #f if the entry does not have
-  an octave)."
+  "Return the octave of an entry in @code{localKeySignature}
+or @code{#f} if the entry does not have an octave.
+See @code{key-entry-notename} for details."
   (and (pair? (car entry)) (caar entry)))
 
 (define (key-entry-bar-number entry)
-  "Return the bar number of an entry in localKeySignature (or #f if the entry does not
-  have a bar number)."
-  (and (pair? (car entry)) (caddr entry)))
+  "Return the bar number of an entry in @code{localKeySignature}
+or @code {#f} if the entry does not have a bar number.
+See @code{key-entry-notename} for details."
+  (and (pair? (cdr entry)) (caddr entry)))
 
 (define (key-entry-measure-position entry)
-  "Return the measure position of an entry in localKeySignature (or #f if the entry does
-  not have a measure position)."
-  (and (pair? (car entry)) (cdddr entry)))
+  "Return the measure position of an entry in @code{localKeySignature}
+or @code {#f} if the entry does not have a measure position.
+See @code{key-entry-notename} for details."
+  (and (pair? (cdr entry)) (cdddr entry)))
 
 (define (key-entry-alteration entry)
   "Return the alteration of an entry in localKeySignature.
 
 For convenience, returns @code{0} if entry is @code{#f}."
   (if entry
-      (if (number? (car entry))
+      (if (number? (cdr entry))
          (cdr entry)
          (cadr entry))
       0))
@@ -1592,15 +1602,14 @@ Entries that conform with the current key signature are not invalidated."
     (set! (ly:context-property context 'localKeySignature)
          (map-in-order
           (lambda (entry)
-            (let* ((localalt (key-entry-alteration entry))
-                   (localoct (key-entry-octave entry)))
+            (let* ((localalt (key-entry-alteration entry)))
               (if (or (accidental-invalid? localalt)
-                      (not localoct)
+                      (not (key-entry-bar-number entry))
                       (= localalt
                          (key-entry-alteration
                           (find-pitch-entry
                            keysig
-                           (ly:make-pitch localoct
+                           (ly:make-pitch (key-entry-octave entry)
                                           (key-entry-notename entry)
                                           0)
                            #t #t))))