(ly-make-music "Foo_bar") -> (make-music-by-name 'FooBarEvent).
* mf/feta-din.mf (test): add x-height and space.
2002-10-06 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * scripts/convert-ly.py (FatalConversionError.conv): add rule for
+ (ly-make-music "Foo_bar") -> (make-music-by-name 'FooBarEvent).
+
+ * mf/feta-din.mf (test): add x-height and space.
+
* lily/dynamic-engraver.cc (process_music): take dynamic direction
from ^_ for crescendi. Idem for slurs and phrasing slurs.
behavior. In this section we discuss the @internalsref{PianoStaff} and some
other pianistic peculiarities.
+
@menu
* Automatic staff changes::
* Manual staff switches::
* Voice follower lines::
@end menu
+@refbugs
+
+There is no support for putting chords across staves. You can get
+this result by increasing the length of the stem in the lower stave so
+it reaches the stem in the upper stave, or vice versa. An example is
+included with the distribution as @file{input/test/stem-cross-staff.ly}.
+
+@cindex cross staff stem
+@cindex stem, cross staff
+
+
+@c fixme: should have hyperlinks as well.
+
+
+
@c . {Automatic staff changes}
@node Automatic staff changes
f'4 g'4 a'4 \sostenutoUp
@end lilypond
-@node Cross staff stems
-@subsection Cross staff stems
-@cindex Cross staff stems
-@cindex Stems, cross staff
-
-Unfortunately, there is no support for putting chords across staves.
-You can get this result by increasing the length of the stem in the
-lower stave so it reaches the stem in the upper stave, or vice versa.
-
-@lilypond
-
-sUp = \translator Staff = "up"
-sDown = \translator Staff = "down"
-
-stemExtend = \property Voice.Stem \set #'length = #22
-stemNormal = \property Voice.Slur \revert #'length
-
-
- < { \stemDown \sDown s4. a, } \\
- { \stemDown \sUp f4. \stemExtend f }> |
-
- \stemNormal
-
- [...]
-@end lilypond
-
@node Arpeggio
@subsection Arpeggio
@cindex Arpeggio
@cindex object description
-
-
A object definition is a Scheme association list, that is stored in a
context property. By assigning to that property (using plain
@code{\property}), you can change the resulting objects.
}
#(define (make-note-req p d)
- ;; huh? lily-guile: Could not find music type `Note_req'
- ;;(let* ((ml (make-music-by-name "Note_req")))
(let* ((ml (make-music-by-name 'NoteEvent)))
(ly-set-mus-property! ml 'duration d)
(ly-set-mus-property! ml 'pitch p)
ml))
#(define (make-note elts)
- (let* ((ml (make-music-by-name 'RequestChord)))
+ (let* ((ml (make-music-by-name 'EventChord)))
(ly-set-mus-property! ml 'elements elts)
ml))
+\header {
+
+ texidoc= "Chord names don't attempt to find inversions and
+bass notes." }
+
\version "1.5.68"
scheme = \notes {
\score {
<
- \context ChordNamesVoice \scheme
+ \context ChordNames \scheme
\context Staff \scheme
>
\paper { linewidth = -1. }
bottom_blot = 1.3 serif_thick;
+code := 32;
+fet_beginchar("Space", "space", "space")
+ set_char_box(0, horizontal_space#, 0, ex#);
+fet_endchar;
+
%
% Couldn't find many z examples. This one is losely inspired
staffspace# := 1.75 / 2.0 * ex#;
stafflinethickness# := staffspace# / 10;
+horizontal_space# := .66 ex#;
+
+font_x_height ex#;
+font_normal_space horizontal_space#;
+
define_pixels (staffspace, stafflinethickness, ex, descender, ascender);
fet_beginfont("feta-din", design_size);
(define (make-prop-set props)
(let*
(
- (m (make-music-by-name 'PropertySet))
+ (m (make-music-by-name 'PropertySet))
)
(map (lambda (x) (ly-set-mus-property! m (car x) (cdr x))) props)
)
(begin
(ly-warn (format "Unknown clef type `~a'
-See scm/lily.scm for supported clefs"))
+See scm/lily.scm for supported clefs" cl))
(make-music-by-name 'Music)
)
(use-modules (ice-9 regex))
+
+
+;; should make module?
+
"
(begin
(music-to-xml-helper e port)))
(display (close-tag 'music) port)
- ))
+ ))
(define-public (music-to-xml music port)
"Dump XML-ish stuff to PORT."
- (display (dtd-header) port)
+
+ ;; dtd contains # -- This confuses tex during make web.
+ ;;
+ ;; (display (dtd-header) port)
+
(display (open-tag 'music '((type . score)) '()) port)
(music-to-xml-helper music port)
(display (close-tag 'music) port))
conversions.append (((1,5,72), conv, 'set! point-and-click -> set-point-and-click!'))
-if 1:
- def conv (str):
- str = re.sub ('ly-make-music', 'make-music-by-name', str)
- return str
-
- conversions.append (((1,7,1), conv, 'ly-make-music -> make-music-by-name'))
-
if 1:
def conv (str):
conversions.append (((1,6,5), conv, 'Stems: flag-style -> stroke-style; style -> flag-style'))
+if 1:
+ def subst_req_name (match):
+ return "(make-music-by-name \'%sEvent)" % regularize_id (match.group(1))
+
+ def conv (str):
+ str = re.sub ('\\(ly-make-music *\"([A-Z][a-z_]+)_req\"\\)', subst_req_name, str)
+ str = re.sub ('Request_chord', 'EventChord', str)
+ return str
+
+ conversions.append (((1,7,1), conv, 'ly-make-music foo_bar_req -> make-music-by-name FooBarEvent'))
+
################################
# END OF CONVERSIONS
################################
sys.stderr.write ("can't remove: `" + f + "'\n'")
def dirname (v):
- # urg, again?
- from packagepython import *
return flags.package.name + '-' + version_tuple_to_str (v)
def tarball(v):
def makediff (fromdir, todir, patch_name):
- # urg, again?
- from packagepython import *
-
remove_automatic ([fromdir, todir])
# ugh