]> git.donarmstrong.com Git - lilypond.git/commitdiff
Doc: NR: Organize `List of articulations' appendix.
authorMark Polesky <markpolesky@yahoo.com>
Sun, 14 Mar 2010 18:53:49 +0000 (11:53 -0700)
committerMark Polesky <markpolesky@yahoo.com>
Sun, 14 Mar 2010 20:36:30 +0000 (13:36 -0700)
Documentation/included/script-chart.ly
Documentation/notation/notation-appendices.itely

index 6300d32e7e94278dc3e1c80d964876d426d9bc0d..5ebffc4e2bb9ad1d0a89a6dadb27819a6a79b1af 100644 (file)
@@ -6,57 +6,189 @@ This chart shows all articulations, or scripts, that the feta font contains.
 "
 }
 
-\score {
-  <<
-    \new Voice = "scripts" {
-      c''\accent             c''\marcato         c''\staccatissimo c''\espressivo
-      c''\staccato           c''\tenuto          c''\portato
-      c''\upbow              c''\downbow         c''\flageolet
-      c''\thumb              c''^\lheel          c''\rheel
-      c''^\ltoe              c''\rtoe            c''\open          c''\halfopen
-      c''\stopped            c''\snappizzicato   c''\turn          c''\reverseturn
-      c''\trill              c''\prall           c''\mordent
-      c''\prallprall         c''\prallmordent    c''\upprall
-      c''\downprall          c''\upmordent       c''\downmordent
-      c''\pralldown          c''\prallup         c''\lineprall
-      c''\signumcongruentiae c''\shortfermata    c''\fermata
-      c''\longfermata        c''\verylongfermata c''\segno
-      c''\coda               c''\varcoda
-    }
-    \new Lyrics \lyricsto "scripts" {
-      accent             marcato         staccatissimo espressivo
-      staccato           tenuto          portato
-      upbow              downbow         flageolet
-      thumb              lheel           rheel
-      ltoe               rtoe            open          halfopen
-      stopped            snappizzicato   turn          reverseturn
-      trill              prall           mordent
-      prallprall         prallmordent    upprall
-      downprall          upmordent       downmordent
-      pralldown          prallup         lineprall
-      signumcongruentiae shortfermata    fermata
-      longfermata        verylongfermata segno
-      coda               varcoda
-    }
-  >>
-  \layout {
-    line-width = 5.1\in
-    indent = 0.0\mm
-    \context {
-      \Score
-      timing = ##f
-      barAlways = ##t
-      \override NonMusicalPaperColumn #'padding = #2.5
-    }
-    \context {
-      \Staff
-      \remove "Time_signature_engraver"
-      \override BarLine #'transparent = ##t
-    }
-    \context {
-      \Lyrics
-      \override LyricText #'font-family = #'typewriter
-      \override LyricText #'font-shape = #'upright
-    }
+#(begin
+
+  (define script-list (map car default-script-alist))
+
+  (define ignore
+    '("comma"
+      "varcomma"))
+
+  (define ancient
+    '("ictus"
+      "accentus"
+      "circulus"
+      "semicirculus"
+      "signumcongruentiae"))
+
+  (define articulations
+    '("accent"
+      "espressivo"
+      "marcato"
+      "portato"
+      "staccatissimo"
+      "staccato"
+      "tenuto"))
+
+  (define ornaments
+    '("prall"
+      "mordent"
+      "prallmordent"
+      "turn"
+      "upprall"
+      "downprall"
+      "upmordent"
+      "downmordent"
+      "lineprall"
+      "prallprall"
+      "pralldown"
+      "prallup"
+      "reverseturn"
+      "trill"))
+
+  (define instrument-specific
+    '("upbow"
+      "downbow"
+      "flageolet"
+      "thumb"
+      "snappizzicato"
+      "open"
+      "halfopen"
+      "stopped"
+      "lheel"
+      "rheel"
+      "ltoe"
+      "rtoe"))
+
+  (define fermatas
+    '("shortfermata"
+      "fermata"
+      "longfermata"
+      "verylongfermata"))
+
+  (define repeats
+    '("segno"
+      "coda"
+      "varcoda"))
+
+
+  ;; remove all remaining groups from the script-list
+  (for-each
+    (lambda (x) (set! script-list (delete x script-list)))
+    (append ignore
+            ancient
+            articulations
+            ornaments
+            instrument-specific
+            fermatas
+            repeats))
+
+  ;; require all scripts to appear here
+  (if (pair? script-list) ; script-list should be empty by now
+      (ly:error
+        (_ "Unlisted scripts in Documentation/included/script-chart.ly: ~A")
+        script-list))
+
+
+  ;;;;;;; functions to generate the tables
+
+  ;;; notes
+
+  (define (make-script-note script)
+    (make-event-chord
+       (list (make-music
+               'NoteEvent
+               'duration
+               (ly:make-duration 2 0 1 1)
+               'pitch
+               (ly:make-pitch 0 0 0))
+             (make-music
+               'ArticulationEvent
+               'direction
+               ;; everything goes up except "ictus"
+               (if (string=? script "ictus") -1 1)
+               'articulation-type
+               script))))
+
+  (define (make-script-notes scripts)
+    (make-sequential-music
+      (map make-script-note scripts)))
+
+  (define (make-scripts-voice-context scripts)
+    (let ((music (make-script-notes scripts)))
+      (context-spec-music music 'Voice "voiceA")))
+
+  (define (make-scripts-vaticana-context scripts)
+    (let ((music (make-script-notes scripts)))
+      (context-spec-music music 'VaticanaVoice "voiceA")))
+
+
+  ;;; lyrics
+
+  (define (make-script-lyric script)
+    (make-event-chord
+      (list (make-music
+              'LyricEvent
+              'duration
+              (ly:make-duration 2 0 1 1)
+              'text
+              script))))
+
+  (define (make-script-lyrics scripts)
+    (make-sequential-music
+      (map make-script-lyric scripts)))
+
+  (define (make-scripts-lyrics-context scripts)
+    (let ((music (make-script-lyrics scripts)))
+      (context-spec-music music 'Lyrics "voiceA")))
+
+
+  ;;; combining notes and lyrics
+
+  (define (make-scripts-staff scripts)
+    (make-simultaneous-music
+      (list (make-scripts-voice-context scripts)
+            (make-scripts-lyrics-context scripts))))
+
+  (define (make-scripts-staff-ancient scripts)
+    (make-simultaneous-music
+      (list (make-scripts-vaticana-context scripts)
+            (make-scripts-lyrics-context scripts))))
+
+) % end of (begin ...)
+
+\layout {
+  line-width = 5.1\in
+  indent = 0.0\mm
+  \context {
+    \Score
+    timing = ##f
+    barAlways = ##t
+    \override NonMusicalPaperColumn #'padding = #2.5
+    \override PaperColumn #'keep-inside-line = ##t
+  }
+  \context {
+    \RhythmicStaff
+    \remove "Time_signature_engraver"
+    \override BarLine #'transparent = ##t
+    \override Stem #'direction = #down
+  }
+  \context {
+    \Lyrics
+    \override LyricText #'font-family = #'typewriter
+    \override LyricText #'font-shape = #'upright
+  }
+  \context {
+    \VaticanaVoice
+    \override Script #'padding = #0
   }
 }
+
+
+scriptStaff =
+#(define-music-function (parser location scripts) (list?)
+   (make-scripts-staff scripts))
+
+scriptStaffAncient =
+#(define-music-function (parser location scripts) (list?)
+   (make-scripts-staff-ancient scripts))
index 452cd7708baafe49c56461ae2c22c08442fcbe06..b18810e872ef26a528061f7670f27664e8f7f38c 100644 (file)
@@ -859,39 +859,124 @@ The following styles may be used for note heads.
 @node List of articulations
 @appendixsec List of articulations
 
+
 @cindex accent
-@cindex marcato
-@cindex staccatissimo
+@cindex accentus
+@cindex circulus
+@cindex coda
+@cindex downbow
+@cindex downmordent
+@cindex downprall
 @cindex espressivo
 @cindex fermata
-@cindex stopped
-@cindex staccato
-@cindex portato
-@cindex tenuto
-@cindex upbow
-@cindex downbow
-@cindex foot marks
-@cindex organ pedal marks
-@cindex turn
-@cindex open
-@cindex halfopen
-@cindex stopped
 @cindex flageolet
-@cindex reverseturn
-@cindex trill
-@cindex prall
+@cindex halfopen
+@cindex ictus
+@cindex lheel
+@cindex lineprall
+@cindex longfermata
+@cindex ltoe
+@cindex marcato
 @cindex mordent
-@cindex prallprall
+@cindex open
+@cindex portato
+@cindex prall
+@cindex pralldown
 @cindex prallmordent
-@cindex prall, up
-@cindex prall, down
-@cindex thumb marking
+@cindex prallprall
+@cindex prallup
+@cindex reverseturn
+@cindex rheel
+@cindex rtoe
 @cindex segno
-@cindex coda
+@cindex semicirculus
+@cindex shortfermata
+@cindex signumcongruentiae
+@cindex snappizzicato
+@cindex staccatissimo
+@cindex staccato
+@cindex stopped
+@cindex tenuto
+@cindex thumb
+@cindex trill
+@cindex turn
+@cindex upbow
+@cindex upmordent
+@cindex upprall
 @cindex varcoda
+@cindex verylongfermata
+
+The following scripts are available in the Feta font and may be
+attached to notes (eg. @samp{c\accent}).
+
+@c Articulations and ornamentations
+@c Fingering instructions (for "thumb")
+@c Common notation for unfretted strings
+@c   Bowing indications
+@c   Harmonics
+@c   Snap (Bartók) pizzicato
+@c Custom percussion staves (for "halfopen" -- not yet funindexed)
+@c References for wind instruments (for "open"/"stopped" -- not yet funindexed)
+
+
+@menu
+* Articulation scripts::
+* Ornament scripts::
+* Fermata scripts::
+* Instrument-specific scripts::
+* Repeat sign scripts::
+* Ancient scripts::
+@end menu
 
 
-@lilypondfile[quote,texidoc]{script-chart.ly}
+@node Articulation scripts
+@unnumberedsubsec Articulation scripts
+
+@lilypond[quote]
+\include "script-chart.ly"
+\new RhythmicStaff { \scriptStaff #articulations }
+@end lilypond
+
+@node Ornament scripts
+@unnumberedsubsec Ornament scripts
+
+@lilypond[quote]
+\include "script-chart.ly"
+\new RhythmicStaff { \scriptStaff #ornaments }
+@end lilypond
+
+@node Fermata scripts
+@unnumberedsubsec Fermata scripts
+
+@lilypond[quote]
+\include "script-chart.ly"
+\new RhythmicStaff { \scriptStaff #fermatas }
+@end lilypond
+
+@node Instrument-specific scripts
+@unnumberedsubsec Instrument-specific scripts
+
+@lilypond[quote]
+\include "script-chart.ly"
+\new RhythmicStaff { \scriptStaff #instrument-specific }
+@end lilypond
+
+@node Repeat sign scripts
+@unnumberedsubsec Repeat sign scripts
+
+@lilypond[quote]
+\include "script-chart.ly"
+\new RhythmicStaff { \scriptStaff #repeats }
+@end lilypond
+
+@node Ancient scripts
+@unnumberedsubsec Ancient scripts
+
+@lilypond[quote]
+\include "script-chart.ly"
+\include "gregorian.ly"
+\new VaticanaStaff { \scriptStaffAncient #ancient }
+@end lilypond
 
 
 @node Percussion notes