2004-07-31 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * Documentation/user/notation.itely (Educational use): new section
+
+ * input/test/*.ly: clean up directory: move examples into manual
+ or regtest.
+
+
* stepmake/stepmake/metafont-rules.make ($(outdir)/%.log): add
mode as well. This fixes resolution errors.
* Orchestral music::
* Ancient notation::
* Contemporary notation::
-* Special notation::
+* Educational use::
* Sound::
@end menu
@menu
* Manual beams::
* Setting automatic beam behavior::
+* Beam formatting::
@end menu
@node Manual beams
different parts of a measure. This means that it is not possible to use
automatic beaming in irregular meters such as @code{5/8}.
+@node Beam formatting
+@subsection Beam formatting
+
+
+When a beam falls in the middle of the staff, the beams point normally
+down. However, this behaviour can be altered with the
+@code{neutral-direction} property.
+
+
+@lilypond
+\relative c'' {
+ b8[ b]
+ \override Beam #'neutral-direction = #-1
+ b[ b]
+ \override Beam #'neutral-direction = #1
+ b[ b]
+}
+@end lilypond
+
@node Accidentals
@section Accidentals
@cindex Accidentals
the following sections are about.
@menu
-* Easy lyrics entry
* Entering lyrics::
* The Lyrics context::
* More stanzas::
* Custodes::
* Divisiones::
* Ligatures::
-* Figured bass::
* Vaticana style contexts::
+* Figured bass::
@end menu
If this all is way too much of documentation for you, and you just
such as fermatas to notes.
-@node Special notation
-@section Special notation
+@node Educational use
+@section Educational use
@menu
* Balloon help::
+* Blank music paper::
+* Notation for excercises::
* Easy Notation note heads::
@end menu
Examples: @inputfileref{input/regression,balloon.ly}.
+
+
+
+@node Blank music paper
+@subsection Blank music paper
+
+A blank music paper can be produced also by using invisible notes, and
+removing @code{Bar_number_engraver}.
+
+
+@lilypond
+emptymusic = {
+ \repeat unfold 2 % Change this for more lines.
+ { s1\break }
+ \bar "|."
+}
+\new Score \with {
+ \override TimeSignature #'transparent = ##t
+ defaultBarType = #""
+ \remove Bar_number_engraver
+} <<
+ \context Staff \emptymusic
+ \context TabStaff \emptymusic
+>>
+@end lilypond
+
+
+@node Notation for excercises
+@subsection Notation for excercises
+
+@cindex Blank Notes
+
+Invisible (or transparent) notes can be useful, when weird tricks are
+needed; especially, a slur cannot be attach to a rest or spacer rest.
+
+
+@lilypond
+blanknotes = { \override NoteHead #'transparent = ##t
+ \override Stem #'transparent = ##t }
+unblanknotes = { \revert NoteHead #'transparent
+ \revert Stem #'transparent }
+
+
+\relative c'' {
+ c4 d4
+ \blanknotes e4 f4 \unblanknotes
+ g4 a
+}
+@end lilypond
+
+
@node Easy Notation note heads
@subsection Easy Notation note heads
# For direct ps output: ps/lilyponddefs.ps
- GS_LIB="$datadir/ps:"${GS_LIB:=""}
- export GS_LIB
+# GS_LIB="$datadir/ps:"${GS_LIB:=""}
+# export GS_LIB
# For direct ps output fonts. Add all available TeX Type1 fonts
- tmppfadir=`kpsewhich ecrm10.pfa`
- GS_FONTPATH=$datadir/pfa:`dirname $tmppfadir`:${GS_FONTPATH:=""}
- export GS_FONTPATH
+# tmppfadir=`kpsewhich ecrm10.pfa`
+# GS_FONTPATH=$datadir/pfa:`dirname $tmppfadir`:${GS_FONTPATH:=""}
+# export GS_FONTPATH
fi # remove for zsh
--- /dev/null
+
+\version "2.3.8"
+\header{
+ texidoc = "@cindex Beaming Presets
+There are presets for the @code{auto-beam} engraver in the case of common
+time signatures. " }
+\score{
+ \relative c''{
+
+ \time 1/2
+ c8 c c c
+ c16 c c c c c c c
+ c32 c c c c c c c c c c c c c c c
+ \time 1/4
+ c8 c
+ c16 c c c
+ c32 c c c c c c c
+ \time 1/8
+ c8
+ c16 c
+ c32 c c c
+
+ \time 2/2
+ c8 c c c c c c c
+ c16 c c c c c c c c c c c c c c c
+ c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
+ \time 2/4
+ c8 c c c
+ c16 c c c c c c c
+ c32 c c c c c c c c c c c c c c c
+ \time 2/8
+ c8 c
+ c16 c c c
+ c32 c c c c c c c
+ \time 3/2
+ c8 c c c c c c c c c c c
+ c16 c c c c c c c c c c c c c c c c c c c c c c c
+ \time 3/4
+ c8 c c c c c
+ c16 c c c c c c c c c c c
+ c32 c c c c c c c c c c c c c c c c c c c c c c c
+ \time 3/8
+ c8 c c
+ c16 c c c c c
+ c32 c c c c c c c c c c c
+ \time 4/4
+ c8 c c c c c c c
+ c16 c c c c c c c c c c c c c c c
+ c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
+ \time 4/8
+ c8 c c c
+ c16 c c c c c c c
+ c32 c c c c c c c c c c c c c c c
+ \time 6/8
+ c8 c c c c c
+ c16 c c c c c c c c c c c
+ \time 9/8
+ c8 c c c c c c c c
+ c16 c c c c c c c c c c c c c c c c c
+ }
+ \paper{
+ }
+}
+
--- /dev/null
+
+\version "2.3.8"
+\header{
+ texidoc="@cindex Beam Isknee
+
+Beams can be placed across a @code{PianoStaff}.
+
+"
+
+}
+\score{
+ \context PianoStaff <<
+ \context Staff=one \relative c'{
+ s1
+ }
+ \context Staff=two \relative c'{
+ \clef bass
+% no knee
+ \stemUp c8[ \change Staff=one \stemDown g'16 f]
+ s8
+ s2
+ }
+ >>
+ \paper{
+ raggedright = ##t
+ }
+}
+
+
+
\header {
-texidoc = "The showing of ambituses can be switched off or they can be
-shifted horizontally by using @code{applyoutput}.
-If you want to mix per-voice and per-staff ambituses, then you have to
-define new context type derived from the @code{Voice} or @code{Staff}
-context. The derived context must contain the @code{Ambitus_engraver}
-and it must be accepted by a proper parent context, which are respectively
-the @code{Staff} context or @code{Score} context in the example below.
-The original context and the derived context can then be used in parallel
-in the same score (not demonstrated in this file).
-"
+ texidoc = "Ambituses can be added per voice. In that case, the
+ambitus must be moved manually to prevent collisions."
+
}
\version "2.3.8"
-#(define (kill-ambitus grob grob-context apply-context)
- (if (memq 'ambitus-interface (ly:grob-property grob 'interfaces))
- (ly:grob-suicide grob)
- ))
-
-#(define ((shift-ambitus x) grob grob-context apply-context)
- (if (memq 'ambitus-interface (ly:grob-property grob 'interfaces))
- (ly:grob-translate-axis! grob x X)
- ))
-
-
-
-voiceA = \relative c'' {
- c4 a d e f2
-}
-voiceB = \relative c' {
- es4 f g as b2
-}
-\score {
- \context ChoirStaff <<
- \new Staff <<
- {
- \applyoutput #(shift-ambitus 1.0)
- \voiceA
- } \\
- {
- \voiceB
- }
- >>
- \new Staff <<
- { \applyoutput #kill-ambitus \voiceA } \\
- { \applyoutput #kill-ambitus \voiceB }
- >>
- >>
- \paper {
+\paper {
raggedright = ##t
+}
- \context {
- \Voice
- \consists Ambitus_engraver
+\new Staff <<
+ \new Voice \with {
+ \consists "Ambitus_engraver"
+ } \relative c'' {
+ \override Ambitus #'X-offset-callbacks
+ = #(list (lambda (grob axis) -1.0))
+ \voiceOne
+ c4 a d e f2
}
+ \new Voice \with {
+ \consists "Ambitus_engraver"
+ } \relative c' {
+ \voiceTwo
+ es4 f g as b2
}
-}
+>>
\version "2.3.8"
-\score {
- \context Voice \relative c {
- \time 3/4
- \override Staff.Accidental #'style = #'default
- cisis''^"Accidental style = \#'default" cisis! cisis? |
- cis cis! cis? |
- c c! c? |
- ces ces! ces? |
- ceses ceses! ceses? |
- \break
-
- \override Staff.Accidental #'style = #'hufnagel
- cisis^"Accidental style = \#'hufnagel" cisis! cisis? |
- cis cis! cis? |
- c c! c? |
- ces ces! ces? |
- ceses ceses! ceses? |
- \break
-
- \override Staff.Accidental #'style = #'medicaea
- cisis^"Accidental style = \#'medicaea" cisis! cisis? |
- cis cis! cis? |
- c c! c? |
- ces ces! ces? |
- ceses ceses! ceses? |
- \break
-
- \override Staff.Accidental #'style = #'vaticana
- cisis^"Accidental style = \#'vaticana" cisis! cisis? |
- cis cis! cis? |
- c c! c? |
- ces ces! ces? |
- ceses ceses! ceses? |
- \break
-
- \override Staff.Accidental #'style = #'mensural
- cisis^"Accidental style = \#'mensural" cisis! cisis? |
- cis cis! cis? |
- c c! c? |
- ces ces! ces? |
- ceses ceses! ceses? |
-
- }
+\relative c'' {
+ \time 5/4
+ \override Staff.Accidental #'style = #'default
+ cisis^\markup { \typewriter default } cis c ces ceses
+ \override Staff.Accidental #'style = #'hufnagel
+ cisis^\markup { \typewriter hufnagel } cis c ces ceses
+ \override Staff.Accidental #'style = #'medicaea
+ cisis^\markup { \typewriter medicaea } cis c ces ceses
+ \override Staff.Accidental #'style = #'vaticana
+ cisis^\markup { \typewriter vaticana } cis c ces ceses
+ \override Staff.Accidental #'style = #'mensural
+ cisis^\markup { \typewriter mensural } cis c ces ceses
}
-
}
}
-\score {
- {
- \time 6/8 \partial 4
- \tieUp
- \slurUp
- \transpose a a' {
- #(add-grace-property 'Voice 'Stem 'length 6)
+\transpose a a' {
+ #(add-grace-property 'Voice 'Stem 'length 6)
+ \time 6/8 \partial 4
+ \tieUp
+ \slurUp
+
+ f'4 |
+ \gg f'4 e'8 \thrd d'4. |
+ \eg a4.(a4) d'8 |
+ \gg d'4 f'8 \dble e'4. ( | \noBreak
+ e'8) d'4 \gg d'4 e'8 |
- f'4 |
- \gg f'4 e'8 \thrd d'4. |
- \eg a4.(a4) d'8 |
- \gg d'4 f'8 \dble e'4. ( | \noBreak
- e'8) d'4 \gg d'4 e'8 |
+%{
+
+ \break
+ \time 9/8
+ \dblf f'2.( f'4) d'8 |
+ \time 6/8
+ \dblg g'4 a'8 \gg a'4. |
+ \thrd d'4.( d'4) \eg a8 |
+ \time 9/8
+ \dble e'4 \lag e'8 \gg e'16[ d'8. e'8] \gg f'4 g'8 |
- \break
- \time 9/8
- \dblf f'2.( f'4) d'8 |
- \time 6/8
- \dblg g'4 a'8 \gg a'4. |
- \thrd d'4.( d'4) \eg a8 |
- \time 9/8
- \dble e'4 \lag e'8 \gg e'16[ d'8. e'8] \gg f'4 g'8 |
+ \break
+ \time 6/8
+ \gg f'4 e'8 \thrd d'4. |
+ \eg a4.( a4) d'8 |
+ \dblg g'4 a'8 \gg a'4. |
+ \thrd d'4.( d'4) f'8 |
- \break
- \time 6/8
- \gg f'4 e'8 \thrd d'4. |
- \eg a4.( a4) d'8 |
- \dblg g'4 a'8 \gg a'4. |
- \thrd d'4.( d'4) f'8 |
-
- \break
- \dblg g'4 e'8( e'8) \dblf f'8.[ e'16] |
- \thrd d'4.( d'4) \cg d'8 |
- \gg c'4 e'8 \thrd d'4.( |
- d'4.) \gdcg d'4.
- }
- }
+ \break
+ \dblg g'4 e'8( e'8) \dblf f'8.[ e'16] |
+ \thrd d'4.( d'4) \cg d'8 |
+ \gg c'4 e'8 \thrd d'4.( |
+ d'4.) \gdcg d'4.
+
+%}
}
}
\score {
- \relative c' \context ChoirStaff <<
- \new Staff { c1 c1 c1}
- \context Lyrics \lyrics <<
- { bla1 die bla }
- { foo bar foo }
- { foo bar foo }
- >>
- \new Staff { c1 c1 c1}
- >>
+ \relative c' \context ChoirStaff <<
+ \new Staff { c1 c1 c1}
+ \lyrics <<
+ \new Lyrics { bla1 die bla }
+ >>
+ \new Staff { c1 c1 c1}
+ >>
-\paper {
+ \paper {
raggedright = ##t
-\context {
- \Lyrics
- \consists Bar_engraver
- % need procedure, since lyrics doesn't have a staff_sym engraver.
- \override BarLine #'bar-size-procedure = #(lambda (x) 3.0)
-}
-\context {
- \Lyrics
- \consists "Span_bar_engraver"
-}
-\context{
- \ChoirStaff
- \remove "Span_bar_engraver"
-}
-\context {
- \Staff
- \remove "Bar_engraver"
+ \context {
+ \Lyrics
+ \consists Bar_engraver
+
+
+ %% need procedure, since lyrics doesn't have a staff_sym engraver.
+ \override BarLine #'bar-size-procedure = #(lambda (x) 3.0)
+ }
+ \context{
+ \ChoirStaff
+ \remove "Span_bar_engraver"
+ }
+ \context {
+ \Staff
+ \remove "Bar_engraver"
+ }
+ }
}
-}}
\once \override NoteHead #'transparent = ##t
\once \override Stem #'transparent = ##t
}
-
-
-\score {
- \relative c'' {
- << {
- c8[~
- \wipeNote
- c8
- c8~
- \wipeNote
- c~
- c]
- }\\
- { s8 c8 [ s c s c] }
-
-
- >>
- }
- \paper { raggedright = ##t }
-}
+\paper { raggedright = ##t }
+
+
+\relative c''<< {
+ c8[~
+ \wipeNote
+ c8
+ c8~
+ \wipeNote
+ c
+ c]~
+ \wipeNote
+ c\noBeam
+}\\
+ { s8 c8 [ s c s c] }
+
+
+>>
+++ /dev/null
-
-\version "2.3.8"
-\header{
- texidoc = "@cindex Beaming Presets
-There are presets for the @code{auto-beam} engraver in the case of common
-time signatures. " }
-\score{
- \relative c''{
-
- \time 1/2
- c8 c c c
- c16 c c c c c c c
- c32 c c c c c c c c c c c c c c c
- \time 1/4
- c8 c
- c16 c c c
- c32 c c c c c c c
- \time 1/8
- c8
- c16 c
- c32 c c c
-
- \time 2/2
- c8 c c c c c c c
- c16 c c c c c c c c c c c c c c c
- c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
- \time 2/4
- c8 c c c
- c16 c c c c c c c
- c32 c c c c c c c c c c c c c c c
- \time 2/8
- c8 c
- c16 c c c
- c32 c c c c c c c
- \time 3/2
- c8 c c c c c c c c c c c
- c16 c c c c c c c c c c c c c c c c c c c c c c c
- \time 3/4
- c8 c c c c c
- c16 c c c c c c c c c c c
- c32 c c c c c c c c c c c c c c c c c c c c c c c
- \time 3/8
- c8 c c
- c16 c c c c c
- c32 c c c c c c c c c c c
- \time 4/4
- c8 c c c c c c c
- c16 c c c c c c c c c c c c c c c
- c32 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
- \time 4/8
- c8 c c c
- c16 c c c c c c c
- c32 c c c c c c c c c c c c c c c
- \time 6/8
- c8 c c c c c
- c16 c c c c c c c c c c c
- \time 9/8
- c8 c c c c c c c c
- c16 c c c c c c c c c c c c c c c c c
- }
- \paper{
- }
-}
-
%% from center to one above centre (position 2)
\override Beam #'positions = #'(0 . 1)
c[ c]
-
- %% normal beam-algorithm
- \revert Beam #'positions
- \revert Beam #'positions
- c[ e] e[ c]
}
\paper{raggedright = ##t}
}
" }
-fragment = {
+\paper { raggedright = ##t}
+
+\relative {
#(override-auto-beam-setting '(end * * * *) 1 4)
f32 g a b b a g f
\set stemLeftBeamCount = #1 b
a g f
}
-
-
-\score {
- \relative c \fragment
- \paper { raggedright = ##t}
-}
-
+++ /dev/null
-
-\version "2.3.8"
-\header{
- texidoc="@cindex Beam Isknee
-
-Beams can be placed across a @code{PianoStaff}.
-
-"
-
-}
-\score{
- \context PianoStaff <<
- \context Staff=one \relative c'{
- s1
- }
- \context Staff=two \relative c'{
- \clef bass
-% no knee
- \stemUp c8[ \change Staff=one \stemDown g'16 f]
- s8
- s2
- }
- >>
- \paper{
- raggedright = ##t
- }
-}
-
-
-
+++ /dev/null
-
-\version "2.3.8"
-\header{
- texidoc="@cindex Beam Neutral Direction
-When a beam falls in the middle of the staff, the beams point normally
-down. However, this behaviour can be altered, if desired.
-" }
-
-fragment = {
- b''8[ b]
- \override Beam #'neutral-direction = #-1
- b[ b]
- \override Beam #'neutral-direction = #1
- b[ b]
-}
-
-\paper { raggedright = ##t}
-
-\score {
- \relative c \fragment
- \paper {raggedright = ##t }
-}
-
+++ /dev/null
-
-\version "2.3.8"
-
-\header{
-texidoc="@cindex Beam Over Rests
-Beams may be forced to be over rests.
-" }
-
-\score{
- \relative c''{
- r4 r8[ g a]
- bes8[ r16 f g a]
- bes8[ r16 \set stemLeftBeamCount = #1 f g a]
- }
-
- \paper{
- raggedright = ##t
- }
-}
-
especially, a slur cannot be attach to a rest or spacer rest.
" }
-blanknotes = { \override NoteHead #'transparent = ##t
- \override Stem #'transparent = ##t }
-unblanknotes = { \revert NoteHead #'transparent
- \revert Stem #'transparent }
-
-
-\score {
- \relative c'' { c4 d4
- \blanknotes e4 f4 \unblanknotes
- g4 a
- }
-\paper{raggedright = ##t}
-}
-
-
+++ /dev/null
-\version "2.3.8"
-\header {
-
-texidoc = "@cindex Blank Paper Tab
-A blank music paper can be produced by using spacer rests, and removing
-@code{Bar_number_engraver}. Here is an empty staff with a tablature staff.
-" }
-
-emptymusic = { \repeat unfold 4 { s1\break } \bar "|." }
-
-\score {
- <<
- \context Staff \emptymusic
- \context TabStaff \emptymusic
- >>
-
-
- \paper {
- \context {
- \Score
- \remove Bar_number_engraver
- }
- }
-}
-