---- ../lilypond-1.3.141.hwn2/CHANGES Sun Mar 25 00:23:24 2001
-++ b/CHANGES Sun Mar 25 13:30:43 2001
-@@ -1,6 +1,11 @@
- 1.3.141.hwn2
- ============
-
-* property silencedNotes
-
-1.3.141.hwn2
-============
-
- * Fix: instrument names on piano staffs.
-
- * Bugfix: don't left-align absolute dynamics.1.3.141.jcn3
+1.3.141.jcn3
============
* some mup2ly progress.
* Bugfix: ly2dvi: don't include empty set fo latexheaders, don't use
python-1.5.2 abspath func.
-1.3.141.jcn2
-============
-
* Setup for new mup converter, based on pmx2ly.
* Bugfix: lilypond-book: accept \documentclass{article}.
* Bugfix: building of topdocs.
-1.3.141.hwn1
+1.3.141.hwn2
============
-* doco fixes.
+* Fix: instrument names on piano staffs.
+
+* Bugfix: don't left-align absolute dynamics.
+
+* Bugfix: don't make spacing rods for absolute dynamics.
+
+* Various bugfixes for examples (thanks Laura!).
+
+* Bugfix: clean up of hairpin ending logic. Crescendi start under
+notes now.
+
+* Don't substitute '\ ' for '\_' in lyrics. (Suggestion by Roy Rankin)
+
+* In computing text lengths handle the following cases \['`"^_]. (the same)
+
+* Made directories input/no-notation, input/ascii-art
+
+* Doco fixes.
* Beat repeats, double measure repeats; removed repeat sign character
from the font (WARNING: FONT CHANGED).
-* cleanups in (de)crescendo code, fixed continued (de)crescendi.
+* Cleanups in (de)crescendo code, fixed continued (de)crescendi.
* German chords (Rune Zedler)
@lilypondfile[printfilename]{accidental-single-double.ly}
-
@section Stems
@lilypondfile[printfilename]{stem-tremolo.ly}
@lilypondfile[printfilename]{staccato-pos.ly}
-@lilypondfile[printfilename]{dynamics-line.ly}
-
-@lilypondfile[printfilename]{dynamics-broken-hairpin.ly}
-
@lilypondfile[printfilename]{arpeggio.ly}
@lilypondfile[printfilename]{glissando.ly}
-@lilypondfile[printfilename]{follow-thread.ly}
+@section Dynamics
+
+@lilypondfile[printfilename]{dynamics-line.ly}
+
+@lilypondfile[printfilename]{hairpin-ending.ly}
+
+@lilypondfile[printfilename]{dynamics-broken-hairpin.ly}
-@section Beams, slurs and other spanners
+@section Beams
@lilypondfile[printfilename]{beaming.ly}
@lilypondfile[printfilename]{triplets.ly}
+@section Slurs
@lilypondfile[printfilename]{slur-nice.ly}
+
@lilypondfile[printfilename]{slur-symmetry.ly}
+
@lilypondfile[printfilename]{slur-symmetry-1.ly}
@lilypondfile[printfilename]{slur-broken-trend.ly}
@lilypondfile[printfilename]{phrasing-slur.ly}
+@section Ties
+
@lilypondfile[printfilename]{tie.ly}
@lilypondfile[printfilename]{tie-chord.ly}
@lilypondfile[printfilename]{tie-accidental.ly}
-@lilypondfile[printfilename]{beam-cross-staff.ly}
-
-@lilypondfile[printfilename]{slur-cross-staff.ly}
@lilypondfile[printfilename]{tup.ly}
@lilypondfile[printfilename]{repeat-line-break.ly}
-@lilypondfile[printfilename]{percent-repeat.ly}
-
-@lilypondfile[printfilename]{auto-change.ly}
-
-
+@lilypondfile[printfilename]{volta-broken-left-edge.ly}
@section Lyrics
@section PianoStaff
+@lilypondfile[printfilename]{beam-cross-staff.ly}
+
+@lilypondfile[printfilename]{slur-cross-staff.ly}
+
+@lilypondfile[printfilename]{auto-change.ly}
+
+@lilypondfile[printfilename]{follow-thread.ly}
+
@section Global stuff
@lilypondfile[printfilename]{keys.ly}
-
-@ignore
-@c the input file is too long and does not test for specific bugs
-
-By default, time signatures are written with two numbers. With style
-``C'', 4/4 and 2/2 are written with their corresponding symbols and
-with style ``old'', 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and
-9/8 are typeset with symbols, all other signatures retain the default
-layout. The style ``1'', gives single number signatures for all
-signatures.
-%
-\mu delafile{time.ly}
-@end ignore
-
-
-
-
-
@section Hacks and Features
@lilypondfile[printfilename]{generic-output-property.ly}
A bar check is entered using the bar symbol, @code{|}
-@node Speeding up debugging
-@subsection Speeding up debugging
-[TODO: describe skipTypesetting here]
@c . {Point and click}
@node Point and click
* An orchestral score::
* Part extraction::
* end of tutorial:: The end
+* Pre-cooked makefile::
@end menu
@node Introduction
[TODO figure out what to do with this: ]
-@menu
-* Pre-cooked makefile::
-@end menu
@node Pre-cooked makefile
-@subsection Pre-cooked makefile
+@section Pre-cooked makefile
@c waar deze info? is uiteindelijk wel handig, schat ik.
[TODO: cut blabla]
once in a while. They may lag several versions behind the latest
version.
+Beams, slurs and crescendi are not displayed at all!
+----------------------------------------------------
+
+ XDvi uses GhostScript for displaying PostScript, check that you have
+GhostScript installed. If you use a different DVI viewer (eg, on
+Windows), check if it will display embedded PostScript. Don't worry,
+the symbols should appear on the printout.
+
resulting binaries can be found in the subdirectories `out/' (which
contain all files generated during compilation).
+Emacs mode
+==========
+
+ An emacs mode for LilyPond is included with the source archive as
+`lilypond-mode.el' and `lilypond-font-lock.el'. If you have an RPM, it
+is in `/usr/share/doc/lilypond-X/'. You have to install it yourself.
+
+ Add this to your ~/.emacs or ~/.emacs.el:
+ (load-library "lilypond-mode.el")
+ (setq auto-mode-alist
+ (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
+ (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
+
+ If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
+is automatically loaded, so you need not modify your ~/.emacs file.
+
Configuring for multiple platforms
==================================
* tetex-devel
+SuSE
+====
+
+ [TODO: document this]
+
+ Install `tetex', `te_mpost', `te_kpath'.
+
Debian GNU/Linux
================
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=141
-MY_PATCH_LEVEL=hwn3
+PATCH_LEVEL=142
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
def tfm_checksum (fn):
+ sys.stderr.write ("Reading checksum from `%s'\n" % fn)
s = open (fn).read ()
s = s[ 12 * 2 : ]
cs_bytes = s[:4]
depth = ..
-SUBDIRS=bugs tricks test regression tutorial
+SUBDIRS=bugs tricks test regression tutorial no-notation ascii-art
examples=trip star-spangled-banner paddy scarlatti-test
flexamples=
--- /dev/null
+# input/bugs/Makefile
+
+depth = ../..
+
+LOCALSTEPMAKE_TEMPLATES=mutopia
+include $(depth)/make/stepmake.make
+
+
--- /dev/null
+
+% ascii art
+
+\include "paper-as5.ly"
+
+\score {
+ \notes\relative c''{
+ \time 4/4;
+ g1 a b c
+ g2 a b c
+ g4 a b c
+ }
+ \paper {
+ \paperAs_five
+ \translator { \StaffContext barSize = #5 }
+ }
+
+}
+
--- /dev/null
+
+\score{
+ <
+ \context Staff \notes\relative c'{
+ c d e f
+ \repeat "volta" 2 { g a b c }
+ \alternative { { c b a g } { f e d c } }
+ }
+ \context Lyrics \lyrics {
+ De eer- ste < { maat } { moet } >
+ \repeat fold 2 { }
+ \alternative {
+ { en dan twee keer }
+ { een koe- plet _ }
+ }
+ en dan nog dit er ach- ter aan
+ }
+ >
+}
--- /dev/null
+
+% asci art output
+
+
+
+\include "paper-as5.ly"
+
+\score {
+ \context StaffGroup <
+ \context Staff=upper \notes\relative c{
+ \key f \major;
+ \time 3/4;
+ r8^"Moderato" %\pp
+ <g'-. c-.> <c-. es-.> <g-. c-.> <c-. es-.> <g-. c-.> |
+ r8 <as-. c-.> <c-. es-.>
+ }
+ \context Staff=lower \notes\relative c{
+ \key f \major;
+ \time 3/4;
+ \clef "bass";
+ <c,2 c'> r4
+ <as2 as'> r4
+ }
+ >
+ \paper {
+% \paperAs_nine
+ indent=4.0\char;
+ linewidth=78.0\char;
+ \translator { \StaffContext barSize = #4.5 }
+ %\translator { \VoiceContext beamHeight = #0 }
+ \translator {
+ \VoiceContext
+ beamHeight = ##f
+ autoBeamSettings \override (begin * * * *) = #(make-moment 0 1)
+ textNonEmpty = ##f
+ }
+ }
+
+}
+
--- /dev/null
+
+% asci-art output, TODO: include how-to-use-this
+
+\include "paper-as9.ly"
+
+\score {
+ \context GrandStaff <
+ \context Staff=upper \notes\relative c{
+ \key f \major;
+ \time 3/4;
+ r8^"Moderato" %\pp
+ <g'-. c-.> <c-. es-.> <g-. c-.> <c-. es-.> <g-. c-.> |
+ r8 <as-. c-.> <c-. es-.>
+ }
+ \context Staff=lower \notes\relative c{
+ \key f \major;
+ \time 3/4;
+ \clef "bass";
+ <c,2 c'> r4
+ <as2 as'> r4
+ }
+ >
+ \paper {
+% \paperAs_nine
+ indent=4.0\char;
+ linewidth=78.0\char;
+ %\translator { \StaffContext barSize = #9 }
+ %\translator { \VoiceContext beamHeight = #0 }
+ \translator {
+ \VoiceContext
+ beamHeight = ##f
+ autoBeamSettings \override #(begin * * * *) = #(make-moment 0 1)
+ textNonEmpty = ##f
+ }
+ }
+
+}
+
--- /dev/null
+% ascii art output
+
+\header{
+filename = "twinkle.ly";
+title = "Twinkle Twinkle Little Star";
+composer = "Traditional";
+enteredby = "hwn and jcn";
+copyright = "public domain";
+}
+
+
+
+\include "paper-as5.ly"
+
+melody = \notes \relative c'' {
+ \time 2/4;
+ c4 c | g' g | a a | g g |
+%{
+ f f | e e | d d8.( e16 | )c2 |
+
+ g'4 g | f f | e e | d d |
+ g g | f f | e( e8. f16 | e4 )d |
+
+ c c | g' g | a a | g g |
+ f f | e e | d d8.( e16 | )c2 |
+%}
+}
+
+accompany = \notes \relative c {
+ \clef "bass";
+ \time 2/4;
+ c4 c' | e c | f c | e c |
+%{
+ d b | c a | f g | c,2 |
+
+ e'4 g, | d' g, | c g | b g |
+ e' g, | d' g, | c c8.( d16 | c4 )b |
+
+ c, c' | e c | f c | e c |
+ d b | c a | f g | c,2
+%}
+}
+
+
+text = \lyrics{
+ Twin -- kle, twin -- kle, lit -- tle star, " "
+%{
+ How I won -- der what you " " are.
+ Up a -- bove the world so high, " "
+ Like a dia -- mond in the " " sky. " "
+ Twin -- kle, twin -- kle, lit -- tle star, " "
+ How I won -- der what you " " are!
+%}
+}
+
+\score{
+ \context GrandStaff <
+ \addlyrics
+ \context Staff=upper \melody
+ \context Lyrics=between \text
+ \context Staff=lower \accompany
+ >
+ \paper{
+ \translator { \GrandStaffContext \accepts "Lyrics"; }
+ indent=4.0\char;
+ linewidth=78.0\char;
+ }
+}
+
+++ /dev/null
-%{
-instrument names on grandstaffs. GR is centered on entire score
-%}
-
-
-\include "paper20.ly"
-\header{
- latexpackages = "amsmath";
-}
-
-\score{
- \notes <
- \context Staff = sa {\property Staff.instrument = "A" g,2 c''''2}
- \context Staff = sb {\property Staff.instrument = "B" g,2 c''''2}
- \context GrandStaff=gs <
- \property GrandStaff.instrument = "Gr"
- \context Staff = ga {\property Staff.instrument = "" c''1 }
- \context Staff = gb {\property Staff.instrument = "" c''1 }
- >
- \context Staff = sc {\property Staff.instrument = "foobar"
-% "\small$\mathrm{\genfrac{}{}{0pt}{0}{C}{D}}$"
-
-<g'1 c''> }
- \context Staff = sd {\property Staff.instrument = "E" c''1 }
-
- >
- \paper{
- \translator {
- \StaffContext
- \consists "Instrument_name_engraver";
- }
- \translator {
- \GrandStaffContext
- \consists "Instrument_name_engraver";
- }
-
- }
-}
-
-
-
-
+++ /dev/null
-%
-% mmrests of second voice should not disappear
-%
-% the problem is more complex: the mmrest-engraver lives at staff level,
-% but it seems that we need one per voice.
-%
-\score {
- \notes <
- \context Staff = Viole <
- \context Voice=one \partcombine Voice
-
- % ordering significant ??
- \context Thread=two \relative c''{ R1 c2 c2 }
- \context Thread=one { R1*2 }
- >
- >
- \paper {
-% {
- \translator {
- \StaffContext
- \remove Multi_measure_rest_engraver;
- \remove Bar_engraver;
- }
- \translator {
- \VoiceContext
- \consists Multi_measure_rest_engraver;
- \consists Bar_engraver;
- }
-% }
- }
-}
\ No newline at end of file
+++ /dev/null
-\header{
-filename = "denneboom.ly";
-enteredby = "jcn";
-copyright = "public domain";
-}
-%{ file tests silly line shapes %}
-% Broken since 1.3.55
-
-\include "paper20.ly"
-
-
-
-oden = \lyrics{
- O |
- den- ne- boom, o |
- den- ne- boom Wat |
- zijn uw tak- ken |
- won- der- schoon
-}
-
-ikheb = \lyrics{
- Ik |
- heb u laatst in_'t |
- bos zien staan toen |
- zat- en er geen |
- kaars- jes aan
-}
-
-ugloeit = \lyrics{
- U |
- gloeit in bar- re |
- win- ter- tijd, als |
- sneeuw op aar- de |
- licht ge- spreid
-}
-
-oboom = \notes\transpose c''{
- g,8 |
- c8. c16 c4. d8 |
- e8. e16 e4. e8 |
- d e f4 b, |
- d8. c16 c4 r8
-}
-
-bos = \notes\transpose c''{
- g8 |
- g e a4. g8 |
- g8. f16 f4 r8 f8 |
- f d g4. f8 |
- f8. e16 e4 r8
-}
-
-
-melody = \notes{
- \oboom
- \oboom
- \bos
- \oboom
-}
-
-
-verseOne = \notes{
- \oden
- \oden
- \ikheb
- \oden
-}
-
-verseOneStaff = \context Lyrics = one
- \$verse_one
-
-
-verseTwo = \notes{
- \oden
- \oden
- \ugloeit
- \oden
-}
-
-verseTwoStaff = \context Lyrics = two
- \$verse_two
-
-
-denneboomShape = \paper{
- \paperTwenty
- indent = 20. \mm;
-
- % UGH -- THIS IS HAIRY
- #'margin-shape = #(map
- (lambda (x) (cons-map mm-to-pt x))
- '((70.0 . 20.)
- (65.0 . 30.0)
- (57.5 . 45.0)
- (50.0 . 60.0)
- (42.5 . 75.)
- (35.0 . 90.)
- (27.5 . 105.)
- (20.0 . 120.0)
- (10.0 . 140.0)
- (65.0 . 30.0))
- )
-
- gourlay_maxmeasures = 30.;
- arithmetic_basicspace = 3.8;
- arithmetic_multiplier = 8.\pt;
-}
-
-\score{
- \addlyrics
- \context Staff { \time 3/4; \melody }
- \context Lyrics \$verse_one
- \paper{
- \$denneboom_shape
- }
- \midi{ \tempo 4 = 90; }
-}
%{
+
+You should preprocess this file with the C preprocessor. The one with
+FAKE_GRACE looks best.
+
+1.
+
cpp -P -traditional -o l.ly les-nereides.ly
+
+2.
+
cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
+
%}
+++ /dev/null
-
-
-
-\score{ \sequential {\clef bass ; }
-\paper { \translator { \type Score_engraver ; \name "Score"; }
- linewidth =1.5\cm;
-
-}
-
-}
--- /dev/null
+# input/bugs/Makefile
+
+depth = ../..
+
+LOCALSTEPMAKE_TEMPLATES=mutopia
+include $(depth)/make/stepmake.make
+
+
--- /dev/null
+
+% Test parser error
+
+\score{
--- /dev/null
+
+% Test parser error
+
+foo = \notes{
+
+
+\score{
+}
--- /dev/null
+
+% Test parser error
+
+foo = \notes{
+
+
+\score{
+
--- /dev/null
+
+% Test parser error
+
+foo = \notes{
+}
+
+
+\score{
+ burp
+}
+
}
\context Voice=four {
\stemDown\slurDown\tieDown
- \property Voice.horizontalNoteShift=-1
+ \property Voice.NoteColumn \override #'horizontal-shift = #-1
fis
}
>
-header = {
+\header {
texidoc = "arpeggio stays clear of accidentals and flipped note heads.
-Since Arpeggio engraver is Voice, it does nothing for voice collisions."
-};
+Since Arpeggio engraver is Voice, it does nothing for voice collisions.";
+}
hairyChord = \context Staff \notes\relative c' <
\context Voice=one {
--- /dev/null
+
+\header {
+
+texidoc = "Hairpin dynamics start under notes if there are
+no text-dynamics. If there are text dynamics, the hairpin does not run
+into them.";
+
+}
+
+
+\score {
+\notes \relative c'' { c4 \> c4 \! c4 c4_\ff \> c4 \! c4 \p }
+\paper { linewidth = -1.;}
+}
\header {
-texidoc ="Broken volta spanners behave correctly at left edge in all cases."
-};
+texidoc ="Broken volta spanners behave correctly at left edge in all cases.";
+
+}
%{
\paper{
%my standard paper block
- % figure out a way to do this cleanly.
% 0=\font "feta19"
% -1=\font "feta16"
% \stylesheet #(make-style-sheet 'paper19)
- arithmetic_multiplier=7.\pt;
indent=0.;
linewidth=188.\mm;
- forced_stem_shorten0=0.;
- forced_stem_shorten1=0.;
- forced_stem_shorten2=0.;
- forced_stem_shorten3=0.;
+
\translator{
\PianoStaffContext
- maxVerticalAlign=8.4;
- minVerticalAlign=8.4;
+ VerticalAlignment \set #'forced-distance = #8.4
}
\translator{\StaffContext
TimeSignature \override #'style = #'C
}
- \translator{\VoiceContext
+ \translator {
+ \ScoreContext
+ SpacingSpanner \override #'arithmetic-multiplier = #1.4
+ }
+ \translator{
+ \VoiceContext
noStemExtend = ##t
tupletVisibility = ##f
+ Stem \override #'stem-shorten = #'(0.0)
}
}
-
-
-
-
+% include file for scarlatti-test
rh=\property Thread.NoteHead \override #'style = #'default
lh=\property Thread.NoteHead \override #'style = #'diamond
%{
-Converted from star.mup with the aid of the old mup2ly.py
-http://www.arkkra.com/doc/star.html
-http://www.arkkra.com/doc/star.ps
+Converted from star.mup with the aid of mup2ly.py
+http://www.Arkkra.com/doc/star.html
+http://www.Arkkra.com/doc/star.ps
%}
-
+%
+% TODO: what's this?
+%
global = \notes {
\context Staff=down <
\global
\clef bass;
- \autochange Staff \accompany
+ \autochange Staff \context Voice \accompany
>
>
\paper {
- gourlay_maxmeasures = 4.;
indent = 8.\mm;
textheight = 295.\mm;
- % ugly is beautiful
- slur_beautiful = 5.0;
-
\translator{
\PianoStaffContext
defaultBarType = #""
defaultBarType = #""
\remove "Time_signature_engraver";
- slurVerticalDirection = #1
- verticalDirection = -1
+ Slur \override #'direction = #1
+
+
autoBeamSettings \override #'(end * * * *) = #(make-moment 1 2)
}
}
+% test for ascii-art output
\include "paper-as9.ly"
+++ /dev/null
-
-\include "paper-as5.ly"
-
-\score {
- \notes\relative c''{
- \time 4/4;
- g1 a b c
- g2 a b c
- g4 a b c
- }
- \paper {
- \paperAs_five
- \translator { \StaffContext barSize = #5 }
- }
-
-}
-
% barline spacing disrupts visual rhythm.
-#(set! space-alist (assoc-set! space-alist '("Staff_bar" "begin-of-note") '(minimum_space 0.0)))
-#(set! space-alist (assoc-set! space-alist '("Staff_bar") '(minimum_space 0.0)))
+#(define nbal (acons '("Staff_bar" "begin-of-note") '(minimum_space 0.0) default-break-align-space-alist))
\score{
\notes \relative c' <
\context Staff= AS {
- \time 3/4;
+ \property Staff.timeSignatureFraction = #'(3 . 4)
c4 c c | c c c |
}
\context Staff=BS {
- \time 2/4;
+ \property Staff.timeSignatureFraction = #'(2 . 4)
c4 c | c c | c c
}
% TODO: make c4. here align with c4 there.
\context Staff =CS {
- \time 3/8;
+ \property Staff.timeSignatureFraction = #'(3 . 8)
c4. c8 c c c4. c8 c c
}
>
linewidth = -1.0\cm;
\translator{
\ScoreContext
+ BreakAlignment \override #'space-alist = #nbal
\remove Timing_engraver;
}
\translator{
+%
+% TODO: junkme.
+%
flauti = \notes \relative c' {
--- /dev/null
+\score {
+ \context Voice \notes\relative c {
+ % to see the magic: uncomment size stuff in init/paper20.ly
+
+ c'4 c4
+
+ \property Voice.fontSize= #-2
+ b16 (*1/2
+ \property Voice.fontSize= #0
+
+ ) g4 *31/32
+
+ a a g2
+
+ }
+ \paper { }
+ \midi { }
+}
+% body for the font test. Does not work standalone
+
FontBody= \notes\transpose c''{
\bar "|:";
c2\sustainDown c\sustainUp |
}
}
+\score {
+ \FontBody
+}
\paper{
\paperEleven
linewidth = 17.5 \cm;
- gourlay_maxmeasures =5.;
+
}
}
-
-
\header{
title= "The Feta Font";
subtitle = "proofsheet";
\include "paper13.ly"
-\include "font-body.ly"
-\score{
- \FontBody
- \paper{
- \paperThirteen
- linewidth = 17.5 \cm;
- gourlay_maxmeasures =5.;
- }
+\paper{
+linewidth = 17.5 \cm;
}
+\include "font-body.ly"
\include "paper16.ly"
-\include "font-body.ly"
-
-\score{
- \FontBody
\paper{
% don't change this.
% otherwise 16pt and 20pt layouts differ.
- \paperSixteen
- linewidth = 12.5 \cm;
- gourlay_maxmeasures =5.;
- }
-}
-
+
+ linewidth = 12.5 \cm;}
+
+ \include "font-body.ly"
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\include "font-body.ly"
-
-\score{
- \context Staff { \FontBody}
\paper{
linewidth = 17.5 \cm;
- gourlay_maxmeasures =5.;
}
-}
+
+\include "font-body.ly"
}
\include "paper26.ly"
-\include "font-body.ly"
-
-\score{
- \FontBody
\paper{
- \paperTwentysix
+
linewidth = 17.5 \cm;
- gourlay_maxmeasures =5.;
+
}
-}
+
+ \include "font-body.ly"
+\header {
+texidoc = "Hara kiri staffs disappear when empty ";
+}
+
+
+% todo: use partcombine?, junk?
toeterI = \notes\relative c <{
\property Staff.instrument = #"Toeters"
}
toeters = \context Staff = toeters <
- \toeter_i
- \toeter_ii
+ \toeterI
+ \toeterIi
>
zager = \context Staff = zager \notes \relative c'' {
-blah = \notes {
-
-\transpose c'' {
- \time 4/4;
- \keysignature es;
- [cis8 d e f] [e! a b cis'] |
- es e f e a a' a a' |
- \clef "bass"; }
- [es16 c' b a] [g f es d] [c d es d] [c bes, as, g,] |
-
-\clef "violin";
- \keysignature c;
- cis4 c cis cis |
- <cis dis eis fes ges> cis dis2 ~ |
- \time 2/4 ;
- dis4 dis ~ | c cis~ | c
-}
-
-\score{
- \context Staff \blah
-
-}
+++ /dev/null
-
-
-voiceOne = \notes\transpose c''{ \stemUp
- R1 * 2 | f'4-. r r2 | R1 * 3 |
- f'4-. r r2 | R1 * 3 |
- es'4-. r r2 | r1 |
- \property Score.skipBars = ##t6
- g4-. r r2 | g4-. r r2 |
- R1 * 5 |
- r2 r4 g4-. |
- }
-
-voiceTwo = \notes
- { \transpose c' { \stemDown
- R1 * 2 | f'4-. r r2 | R1 * 3 |
- f'4-. r r2 | R1 * 3 |
- es'4-. r r2 | r1 |
- \property Score.skipBars = ##t6
- g4-. r r2 | g4-. r r2 |
- R1 * 5 |
- r2 r4 g4-. |
-
- }}
-
-\score { \notes
- \context Staff <
- \voiceTwo
- \voiceOne
- >
-
- }
-
+++ /dev/null
-
-% Test parser error
-
-\score{
+++ /dev/null
-
-% Test parser error
-
-foo = \notes{
-
-
-\score{
-}
+++ /dev/null
-
-% Test parser error
-
-foo = \notes{
-
-
-\score{
-
+++ /dev/null
-
-% Test parser error
-
-foo = \notes{
-}
-
-
-\score{
- burp
-}
-
+++ /dev/null
-
-
-%{
-
-Look at ly/engraver.ly for inspiration on which XXXX
-there are.
-
-Generally, you can find interesting element properties associated with
-\property in scm/generic-property.scm. For example, this file contains
-
- (define generic-stem-properties
- (cons 'stem-interface
- (list
- (list 'stemVerticalDirection dir? 'direction)
- (list 'verticalDirection dir? 'direction)
- (list 'stemLength number? 'length)
- (list 'flagStyle string? 'flag-style)
- )))
-
-
-which means that setting \property stemVerticalDirection overrides
-setting \property verticalDirection, and that both have the effect of
-setting `direction' in Stem object. You can use \overrideproperty for
-setting stem directions by doing.
-
-
- \overrideproperty #'(Stem) #'direction #1
-
-(#-1 if you want down).
-
-A modest amount of memory is involved each time you do a
-\overrideproperty. If you do \revertproperty in the right order (reversed
-from \overrideproperty), then \revertproperty doesn't cost memory.
-
-Correct:
-
- \overrideproperty #'( ... ) #'symbolA #valueA
- \overrideproperty #'( ... ) #'symbolB #valueB
- \revertproperty #'( ... ) #'symbolB
- \revertproperty #'( ... ) #'symbolA
-
-Incorrect (\revertproperty costs memory):
-
- \overrideproperty #'( ... ) #'symbolA #valueA
- \overrideproperty #'( ... ) #'symbolB #valueB
- \revertproperty #'( ... ) #'symbolA
- \revertproperty #'( ... ) #'symbolB
-
-You can use identifiers, eg.
-
- slursUp = \context Voice \overrideproperty '(Slur)
- #'direction #1
- slursBoth = \context Voice \revertproperty '(Slur)
-
-%}
-
-\score { \notes
-\relative c' {
- c4-.(
- \property Voice.Dots \override #'direction = #-1
- \property Voice.Stem \override #'direction = #-1
- \property Voice.noteColumnProperties \override #'direction = #-1
- \property Voice.Stem \override #'direction = #-1
-
- ) c4-. (
- ) c4-. (
- \property Voice.Slur \override #'direction = #-1
- ) c4-. (
-
- \property Dots \revert #'direction
- \property Stem \revert #'direction
- \property Script \revert #'direction
- \property Text \revert #'direction
-
- ) c4-. () c4-.
-}
-
-\paper {
-\translator { \VoiceContext
- NoteHead \override #'font-relative-size = #-2
-}
-}
-}
+++ /dev/null
-
-\score{
- <
- \context Staff \notes\relative c'{
- c d e f
- \repeat "volta" 2 { g a b c }
- \alternative { { c b a g } { f e d c } }
- }
- \context Lyrics \lyrics {
- De eer- ste < { maat } { moet } >
- \repeat fold 2 { }
- \alternative {
- { en dan twee keer }
- { een koe- plet _ }
- }
- en dan nog dit er ach- ter aan
- }
- >
-}
+++ /dev/null
-
-\score {
- \context Voice \notes\relative c {
- c'' d e f | \repetitions1*3 |
- \time 3/4;
- g4 a b | R2.*2 |
-
- }
- \paper { }
- \midi { }
-}
+++ /dev/null
-
-\score {
- \context Voice \notes\relative c {
- % to see the magic: uncomment size stuff in init/paper20.ly
-
- c'4 c4
-
- \property Voice.fontsize= -2
- b16 * 1 / 2 (
- \property Voice.fontsize= 0 )
- g4 *31/32
-
- a a g2
-
- }
- \paper { }
- \midi { }
-}
+\header {
+texidoc = "" ;
+}
\score{
\notes\relative c''{
\time 2/4;
+ \property Voice.Slur \set #'minimum-length = #40
c()c
c~c\break
}
- \paper{
- linewidth=-1.\mm;
- slur_x_minimum=40.0*\interline;
- }
}
}
\paper {
% linewidth= 18.\cm;
-% gourlay_maxmeasures = 4.0
+
}
}
+++ /dev/null
-
-
-
-
-\include "paper-as5.ly"
-
-\score {
- \context StaffGroup <
- \context Staff=upper \notes\relative c{
- \key f \major;
- \time 3/4;
- r8^"Moderato" %\pp
- <g'-. c-.> <c-. es-.> <g-. c-.> <c-. es-.> <g-. c-.> |
- r8 <as-. c-.> <c-. es-.>
- }
- \context Staff=lower \notes\relative c{
- \key f \major;
- \time 3/4;
- \clef "bass";
- <c,2 c'> r4
- <as2 as'> r4
- }
- >
- \paper {
-% \paperAs_nine
- indent=4.0\char;
- linewidth=78.0\char;
- \translator { \StaffContext barSize = #4.5 }
- %\translator { \VoiceContext beamHeight = #0 }
- \translator {
- \VoiceContext
- beamHeight = ##f
- autoBeamSettings \override (begin * * * *) = #(make-moment 0 1)
- textNonEmpty = ##f
- }
- }
-
-}
-
+++ /dev/null
-
-
-\include "paper-as9.ly"
-
-\score {
- \context GrandStaff <
- \context Staff=upper \notes\relative c{
- \key f \major;
- \time 3/4;
- r8^"Moderato" %\pp
- <g'-. c-.> <c-. es-.> <g-. c-.> <c-. es-.> <g-. c-.> |
- r8 <as-. c-.> <c-. es-.>
- }
- \context Staff=lower \notes\relative c{
- \key f \major;
- \time 3/4;
- \clef "bass";
- <c,2 c'> r4
- <as2 as'> r4
- }
- >
- \paper {
-% \paperAs_nine
- indent=4.0\char;
- linewidth=78.0\char;
- %\translator { \StaffContext barSize = #9 }
- %\translator { \VoiceContext beamHeight = #0 }
- \translator {
- \VoiceContext
- beamHeight = ##f
- autoBeamSettings \override (begin * * * *) = #(make-moment 0 1)
- textNonEmpty = ##f
- }
- }
-
-}
-
\transpose a \beamintervals
\transpose b \beamintervals
}
- \paper{
- gourlay_maxmeasures = 2.;
- }
}
\clef "bass";
\key c \major;
<e1\sff cis'^\downbow> | <cis\sff a'^\downbow> |
- <d,\ffff\decr g> ~ <d2 g> ~ <d8\p\rced g> |
+ <d,\ffff\decr g> | ~ <d2 g> ~ <d8\p\rced g>
}
\header{
piece="example 2";
+++ /dev/null
-
-\score{
- \notes\relative c''{
- \time 2/4;
- c~c\break
- c()c
- }
- \paper{
- linewidth=-1.\mm;
- tie_x_minimum=40.0*\interline;
- }
-}
+++ /dev/null
-\header{
-filename = "twinkle.ly";
-title = "Twinkle Twinkle Little Star";
-composer = "Traditional";
-enteredby = "hwn and jcn";
-copyright = "public domain";
-}
-
-
-
-\include "paper-as5.ly"
-
-melody = \notes \relative c'' {
- \time 2/4;
- c4 c | g' g | a a | g g |
-%{
- f f | e e | d d8.( e16 | )c2 |
-
- g'4 g | f f | e e | d d |
- g g | f f | e( e8. f16 | e4 )d |
-
- c c | g' g | a a | g g |
- f f | e e | d d8.( e16 | )c2 |
-%}
-}
-
-accompany = \notes \relative c {
- \clef "bass";
- \time 2/4;
- c4 c' | e c | f c | e c |
-%{
- d b | c a | f g | c,2 |
-
- e'4 g, | d' g, | c g | b g |
- e' g, | d' g, | c c8.( d16 | c4 )b |
-
- c, c' | e c | f c | e c |
- d b | c a | f g | c,2
-%}
-}
-
-
-text = \lyrics{
- Twin -- kle, twin -- kle, lit -- tle star, " "
-%{
- How I won -- der what you " " are.
- Up a -- bove the world so high, " "
- Like a dia -- mond in the " " sky. " "
- Twin -- kle, twin -- kle, lit -- tle star, " "
- How I won -- der what you " " are!
-%}
-}
-
-\score{
- \context GrandStaff <
- \addlyrics
- \context Staff=upper \melody
- \context Lyrics=between \text
- \context Staff=lower \accompany
- >
- \paper{
- \translator { \GrandStaffContext \accepts "Lyrics"; }
- indent=4.0\char;
- linewidth=78.0\char;
- }
-}
-
+++ /dev/null
-\score {
- \context Voice \notes\relative c {
- % this used to work (long time ago):
- % <{\voiceOne e}
- % {\voiceTwo c}>
-
- % now we need:
- <\context Voice=one {\voiceOne e}
- \context Voice=two {\voiceTwo c}>
-
- }
- \paper { }
- \midi { }
-}
+++ /dev/null
-
-fragment = \notes {
-
-}
-
-\paper { linewidth = -1.; }
-
-\score {
- \notes\relative c \fragment
- \paper { }
-}
@quotation
Your task, if you accept it is to implement a \smarttranspose
command> that would translate such oddities into more natural
- notations. Double accidentals should be removed, as well as #E
- (-> F), bC (-> B), bF (-> E), #B (-> C).
+ notations. Double accidentals should be removed, as well as E-sharp
+ (-> F), bC (-> B), bF (-> E), B-sharp (-> C).
@end quotation
You mean like this. (Sorry 'bout the nuked indentation.)
";
}
-% Btw, I've leant an el-neato trick for formatting code in email messages,
-% using inderect buffers.
-%
-% M-x make-indirect-buffer RET RET foo RET C-x b foo RET
-% Select region and then narrow: C-x n n
-% Set mode, eg: M-x sch TAB RET
-%
-
#(define (unhair-pitch p)
(let* ((o (pitch-octave p))
(a (pitch-alteration p))
\remove Axis_group_engraver;
}
}
+}
+
+% include file for tutorial
+
\header {
title = "Zo, goed lieverd?";
subtitle = "How's, this babe?";
script_req_l_->get_mus_property ("text"));
Side_position_interface::set_direction (script_p_, LEFT);
- Side_position_interface::set_axis (script_p_, X_AXIS);
-
+
if (Direction d = script_req_l_->get_direction ())
Directional_element_interface::set (line_spanner_, d);
switch (text[i])
{
case '\\':
+ // accent marks use width of base letter
+ if (i +1 < text.length_i ())
+ {
+ if (text[i+1]=='\'' || text[i+1]=='`' || text[i+1]=='"' ||
+ text[i+1]=='^')
+ {
+ i++;
+ break;
+ }
+ // for string width \\ is a \ and \_ is a _.
+ if (text[i+1]=='\\' || text[i+1]=='_')
+ {
+ break;
+ }
+ }
+
for (i++; (i < text.length_i ()) && !isspace (text[i])
&& text[i]!='{' && text[i]!='}'; i++)
;
calling_self_b_ = true;
process_music ();
announces ();
- stop_translation_timestep ();
+ pre_move_processing ();
check_removal ();
calling_self_b_ = false;
}
calling_self_b_ = true;
// process_music ();
announces ();
- stop_translation_timestep ();
+ pre_move_processing ();
check_removal ();
calling_self_b_ = false;
}
/* Ugh, must be same as Text_spanner::brew_molecule. */
Real padding = gh_scm2double (me->get_grob_property ("if-text-padding"));
- Real broken_left = spanner->get_broken_left_end_align ();
- Real width = spanner->spanner_length ();
- width -= broken_left;
-
+
Drul_array<bool> broken;
- Drul_array<Real> extra_off;
+ Drul_array<Item*> bounds ;
Direction d = LEFT;
do
{
- Item *b = spanner->get_bound (d);
- broken[d] = b->break_status_dir () != CENTER;
+ bounds[d] =spanner->get_bound (d);
+ broken[d] = bounds[d]->break_status_dir () != CENTER;
+ }
+ while (flip (&d) != LEFT);
- if (!broken [d])
+ Grob *common = bounds[LEFT]->common_refpoint (bounds[RIGHT], X_AXIS);
+ Drul_array<Real> x_points ;
+
+ do
+ {
+ Item *b = bounds[d];
+ x_points[d] = b->relative_coordinate (common, X_AXIS);
+ if (broken [d])
{
-
- Interval e =b->extent (b, X_AXIS);
- Real r = 0.0;
- if (!e.empty_b ())
- r = e[-d] + padding;
- width += d * r;
- extra_off[d] = r;
+ if (d == LEFT)
+ x_points[d] = b->extent (common,X_AXIS)[RIGHT] ;
+ }
+ else
+ {
+ if (dynamic_cast<Paper_column*> (b))
+ {
+ /*
+ If we're hung on a paper column, that means we're not
+ adjacent to a text-dynamic, and we may move closer. We
+ make the padding a little smaller, here.
+ */
+ Interval e =b->extent (common, X_AXIS);
+ x_points[d] = e.center () - d * padding /3; // ugh.
+ }
+ else
+ {
+ Interval e =b->extent (common, X_AXIS);
+ if (!e.empty_b ())
+ x_points[d] = e[-d] - d*padding;
+ }
}
}
while (flip (&d) != LEFT);
- // FIXME: ecs tells us
- width += gh_scm2double (me->get_grob_property ("width-correct"));
- /* /Ugh */
-
+
+ Real width = x_points[RIGHT] - x_points[LEFT];
+
if (width < 0)
{
warning (_ ((grow_dir < 0) ? "decrescendo too small"
gh_double2scm (endh),
SCM_UNDEFINED);
+ /*
+ We make the hairpin too large in Y direction, so it stays at
+ proper distance from the staff.
+ */
Interval yext = 2* height * Interval (-1,1);
Box b (Interval (0, width), yext);
Molecule mol (b, hairpin);
- mol.translate_axis (broken_left + extra_off[LEFT], X_AXIS);
+
+ mol.translate_axis (x_points[LEFT]
+ - bounds[LEFT]->relative_coordinate (common, X_AXIS),
+ X_AXIS);
return mol.smobbed_copy ();
}
Translator_group * daddy_trans_l_ ;
+ void pre_move_processing ();
void announces ();
-
+ void post_move_processing ();
void removal_processing ();
/**
ask daddy for a feature
if (dynamic_cast<Spanner*> (i.elem_l_)
&& i.elem_l_->has_interface (ly_symbol2scm ("dynamic-interface")))
return;
-
+
+ /*
+ Hang the instrument names on the staffs, but not on the alignment
+ groups enclosing that staff. The alignment has no real location,
+ but is only a vehicle for the placement routine it contains, and
+ therefore the location of its refpoint won't be very useful.
+
+ */
if (dynamic_cast<Spanner*> (i.elem_l_)
&& ((Axis_group_interface::has_interface (i.elem_l_)
- && Axis_group_interface::axis_b (i.elem_l_, Y_AXIS))
- || (Align_interface::has_interface (i.elem_l_)
- && Align_interface::axis (i.elem_l_) == Y_AXIS)))
+ && Axis_group_interface::axis_b (i.elem_l_, Y_AXIS)))
+ && !Align_interface::has_interface (i.elem_l_))
{
SCM nl = gh_cons (i.elem_l_->self_scm (),
get_property ("instrumentSupport"));
void strip_trailing_white (String&);
void strip_leading_white (String&);
+String lyric_fudge (String s);
bool
return yylval.i = EXTENDER;
if (s == "--")
return yylval.i = HYPHEN;
- int i = 0;
- while ((i=s.index_i ("_")) != -1) // change word binding "_" to " "
- * (s.ch_l () + i) = ' ';
- if ((i=s.index_i ("\\,")) != -1) // change "\," to TeX's "\c "
- {
- * (s.ch_l () + i + 1) = 'c';
- s = s.left_str (i+2) + " " + s.right_str (s.length_i ()-i-2);
- }
+ s = lyric_fudge (s);
char c = s[s.length_i () - 1];
if (c == '{' || c == '}') // brace open is for not confusing dumb tools.
return true;
}
+
+String
+lyric_fudge (String s)
+{
+ char * chars =s.copy_ch_p ();
+
+ for (char * p = chars; *p ; p++)
+ {
+ if (*p == '_' && (p == chars || *(p-1) != '\\'))
+ *p = ' ';
+ }
+
+ s = String (chars);
+ delete[] chars;
+
+ int i =0;
+ if ((i=s.index_i ("\\,")) != -1) // change "\," to TeX's "\c "
+ {
+ * (s.ch_l () + i + 1) = 'c';
+ s = s.left_str (i+2) + " " + s.right_str (s.length_i ()-i-2);
+ }
+
+ return s;
+}
Moment note_end_mom_;
public:
VIRTUAL_COPY_CONS (Translator);
-
+
protected:
virtual void start_translation_timestep ();
virtual bool try_music (Music *req_l) ;
virtual void stop_translation_timestep ();
};
+
bool
Note_heads_engraver::try_music (Music *m)
{
void
Note_heads_engraver::start_translation_timestep ()
{
-
/* TODO:make this settable?
*/
if (note_end_mom_ > now_mom ())
else
e->forbid_breaks (); // guh. Use properties!
}
-
-
}
scm_unprotect_object (p->self_scm ());
$$ = sp;
+
+/*
+ TODO: should make alias TimingContext for Score
+*/
+
sp-> set_mus_property ("context-type", ly_str02scm ( "Score"));
}
;
Global_translator::prepare (w);
make_columns (w);
- start_translation_timestep ();
+ post_move_processing ();
}
void
void
Score_engraver::one_time_step ()
{
- if (!to_boolean (get_property (ly_symbol2scm("skipTypesetting"))))
- {
- process_music ();
- announces ();
- }
-
-
- stop_translation_timestep ();
+ process_music ();
+ announces ();
+ pre_move_processing ();
check_removal ();
}
Global_translator::prepare (m);
audio_column_l_ = new Audio_column (m);
play_element (audio_column_l_);
- start_translation_timestep ();
+ post_move_processing ();
}
// fixme: put this back.
// process_music ();
announces ();
- stop_translation_timestep ();
+ pre_move_processing ();
check_removal ();
}
}
return ly_interval2scm (r);
}
-
+
MAKE_SCHEME_CALLBACK (Stem,brew_molecule,1);
Real dy = Staff_symbol_referencer::staff_space (me)/2.0;
Real head_wid = 0;
- Real angle =0.0;
+ /*
+TODO:
+
+ I don't really get the idea of the attachment-angle.
+ It seems like that you attach the Stem to the NoteHead at point
+ (1,tan(aa)/2), making it still nessesary to have special CENTER-STEMS
+ option - and if I would like to attach stem i.e. here:
+
+ |
+ |
+ |
+ XXX
+ XXXXX
+ XXXXX
+ XXX
+
+ That would be impossible.
+ Why haven't you just made ATTACHMENT-COORDINATES as a pair of reals,
+ with (0 . 0) meaning CENTER, (1 . 1) upper right, etc...?
+
+-Rune
+
+
+ */
+
+ Real slope =0.0;
if (Grob *hed = support_head (me))
{
head_wid = hed->extent (hed,X_AXIS).length ();
- angle = gh_scm2double (hed->get_grob_property ("attachment-angle"));
+ slope = gh_scm2double (hed->get_grob_property ("attachment-slope"));
}
- stem_y[Direction (-d)] += d * head_wid * tan (angle)/ (2*dy);
+ stem_y[Direction (-d)] += d * head_wid * slope/ (2*dy);
if (!invisible_b (me))
{
void
Translator_group::stop_translation_timestep ()
{
- each (&Translator::stop_translation_timestep);
+ each (&Translator::pre_move_processing);
}
void
Translator_group::start_translation_timestep ()
{
- each (&Translator::start_translation_timestep);
+ each (&Translator::post_move_processing);
}
void
+void
+Translator::post_move_processing ()
+{
+ start_translation_timestep ();
+}
void
Translator::removal_processing ()
}
+void
+Translator::pre_move_processing ()
+{
+ stop_translation_timestep ();
+}
+
+
+
Music_output_def *
Translator::output_def_l () const
{
%
% declare the standard dynamic identifiers.
%
-
+ppppp = \dynamicscript #"ppppp"
pppp = \dynamicscript #"pppp"
ppp = \dynamicscript #"ppp"
pp = \dynamicscript #"pp"
Begin3
Title: LilyPond
-Version: 1.3.141
-Entered-date: 22MAR01
+Version: 1.3.142
+Entered-date: 25MAR01
Description: @BLURB@
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.3.141.tar.gz
+ 1000k lilypond-1.3.142.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.3.141.tar.gz
+ 1000k lilypond-1.3.142.tar.gz
Copying-policy: GPL
End
%define info yes
Name: lilypond
-Version: 1.3.141
+Version: 1.3.142
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.141.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.142.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
# Icon: lilypond-icon.gif
default: $(ALL_GEN_FILES)
-$(outdir)/%.afm $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log
+##
+## todo: this also depends on .tfm, FIXME.
+$(outdir)/%.afm $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log
$(PYTHON) $(buildscript-dir)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep) --afm $(outdir)/$(<F:.log=.afm) --tex $(outdir)/$(<F:.log=.tex) $<
local-clean:
(DynamicText . (
(Y-offset-callbacks . (,Side_position_interface::aligned_on_self))
(molecule-callback . ,Text_item::brew_molecule)
+ (no-spacing-rods . #t)
(script-priority . 100)
(font-series . bold)
(font-family . dynamic)
(style . default)
(molecule-callback . ,Note_head::brew_molecule)
(Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (attachment-angle . ,(* 20/360 3.14159))
+ (attachment-slope . 0.17)
(meta . ,(grob-description "NoteHead"
rhythmic-head-interface font-interface
note-head-interface ))
(no-spacing-rods . #t)
(direction . -1)
(padding . 0.5)
+;; todo: add X self alignment?
(baseline-skip . 2)
(font-family . roman)
(meta . ,(grob-description "TextScript" text-script-interface text-interface side-position-interface font-interface ))
(grob-property-description 'arithmetic-multiplier number? "see @ref{spacing-spanner-interface}.")
(grob-property-description 'attachment pair? "cons of symbols, '(LEFT-TYPE . RIGHT-TYPE), where both types may be alongside-stem, stem, head or loose-end.")
-(grob-property-description 'attachment-angle number? "Where does the stem
+(grob-property-description 'attachment-slope number? "Where does the stem
attach to the notehead?")
(grob-property-description 'attachment-offset pair? "cons of offsets,
'(LEFT-offset . RIGHT-offset). This offset is added to the
(grob-property-description 'shortest-starter-duration moment? "duration of the shortest notes that starts exactly in this column.")
(grob-property-description 'side-relative-direction dir? "if set: get the direction from a different object, and multiply by this.")
(grob-property-description 'side-support list? "the support, a list of grobs.")
+(grob-property-description 'slope number? "some kind of slope")
(grob-property-description 'slope-limit number? "set slope to zero if slope is running away steeper than this.")
+(grob-property-description 'space-alist list? "Alist of break align spacing tuples. See basic-property.scm")
(grob-property-description 'space-function procedure? "function of type multiplicity -> real (in staffspace).")
(grob-property-description 'spacing-procedure procedure? "procedure
taking grob as argument. This is called after
'note-head-interface
"Note head"
'(
- style attachment-angle note-character
+ style attachment-slope note-character
))
(lily-interface
'percent-repeat-interface
"Repeats that look like percent signs"
- '(angle thickness))
+ '(slope thickness))
(lily-interface
'volta-bracket-interface
@end example
")
-(translator-property-description 'skipTypesetting boolean?
- "When true, all no typesetting is done at
-this moment, causing the interpretation phase to go a lot faster. This can
-help with debugging large scores.")
-
(translator-property-description 'slurBeginAttachment symbol?
"translates to the car of grob-property 'attachment of NoteColumn. See
@ref{Slur}.")
debug ('voice: ' + line)
def init_context_grids (self, line):
- self.parse_function = self.parse_context_grids
+ self.parse_function = self.parse_context_line
def parse_context_grids (self, line):
debug ('grids: ' + line)