-1.3.146.jcn4
+1.3.147.jcn2
============
+* Fixed windows documentation.
+
+* Filled in tutorial section on windows.
+
+* Ly2dvi: don't use posix file utilities if we have python >= 1.5.2.
+
+* Included additional cygwin login and wrapper scripts.
+
+* Added cygwin path conversion to file-path.cc, to get output in cwd.
+After upgrading cross compilation environment to cygwin-1.1.8-2, it
+seems that these are no longer necessary; disabled by default.
+
+1.3.147.mb1
+============
+
+* Glossary and refman fixes
+
+
+1.3.147.lec1
+============
+* abc2ly fixes:
+
+ - Remove $ from voice names.
+
+ - Fix problem with full names of modes
+
+* added documentation of major limitations of abc2ly to converters.itely.
+
+* added documentation of %%LY to converters.itely.
+
+1.3.147.hwn1
+============
+
+* refman fixes.
+
+* Spelling fixes in .scm files: change equaliser to equalizer
+
+* Add music properties to generated documentation.
+
+
+1.3.147
+=======
+
* Updated doco to reflect Windows installer.
* Ripped Cygnus' installer/updater for Windows.
@
@lilypond[13pt,eps]
-\emptyText
-%\property Voice.textNonEmpty = ##f
-\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
\key d \major
\time 4/4
+
+\property Score.TextScript \set #'font-style = #'large
<d4_"notation" a fis> r
-{ \property Grace.Stem \override #'flag-style = ##f
+{ \property Grace.Stem \override #'flag-style = #""
\grace g16 }
fis8 e16 fis
-{ \property Grace.Stem \override #'flag-style = ##f
+{ \property Grace.Stem \override #'flag-style = #""
\grace a16 }
g8 fis16 g | a4 \bar "||" }
\notes\relative c'' {
@
@lilypond[13pt,eps]
-\emptyText
-\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
\key as \major
\time 2/4
+ \property Score.TextScript \set #'font-style = #'large
\grace { bes16 } as8_"notation" as16 bes as8 g |
\grace { [as16 ( bes] } < ) c4 as >
\grace { [as16 ( bes] } < ) c4 as > \bar "||"
@lilypond[13pt,eps]
\property Score.barNonAuto = ##t
-\emptyText
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
[g8_"1/8" g g g] s16
@lilypond[13pt,eps]
\property Score.barNonAuto = ##t
-\property Voice.textNonEmpty = ##t
\property Voice.TextScript \set #'font-style = #'large
\time 4/4
\notes\relative c'' {
@
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
7th tone.
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@end lilypond
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@lilypond[13pt,eps]
\property Score.barNonAuto = ##t
-\emptyText
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
g8_"1/8" s8
@
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
\property Voice.TextScript \set #'font-style = #'large
@lilypond[13pt,eps]
\property Score.barNonAuto = ##t
-\emptyText
\property Lyrics.LyricText \set #'font-style = #'large
\addlyrics
\notes\relative c'' {
@lilypond[13pt,eps]
\property Score.TimeSignature \override #'style = #'C2/2
-\emptyText
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
\time 4/4
@
@lilypond[13pt,eps]
-\emptyText
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
\time 4/4
@lilypond[13pt,eps]
\property Voice.TextScript \set #'font-style = #'large
-\emptyText
\notes\relative c'' {
\time 4/4
\times 2/3 {g8_"triplets" g g} g4 g8 g g4 \bar "||"
@lilypond[13pt,eps]
<
\context Staff = sa {
- \emptyText
- \property Voice.TextScript \set #'font-style = #'large
+ \property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
c2._"pre-1850" b4\trill | c1 \bar "||"
c2._"post-1850" b4\trill | c1 \bar "||"
@lilypond[13pt,eps]
<
\context Staff = sa {
- \emptyText
- \property Voice.TextScript \set #'font-style = #'large
+ \property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
a4_"turn" b\turn c2 \bar "||"
g4_"mordent" a b\mordent a \bar "||"
@
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c' {
@
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Lyrics.LyricText \set #'font-style = #'large
%\property Lyrics.minVerticalAlign = #8
@lilypond[13pt,eps]
\property Score.noAutoBeaming = ##t
\property Score.barNonAuto = ##t
-\emptyText
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c'' {
g2_"1/2" g' s16
@
@lilypond[13pt,eps]
-\emptyText
\property Voice.TextScript \set #'font-style = #'large
\time 4/4
\notes\relative c' {
@lilypond[13pt,eps]
\context GrandStaff <
- \notes\relative c'' {
+ \context Staff = lh \notes\relative c'' {
\time 4/4
\key es \major
\clef treble
< bes8 g > as < as f > g < g es > f < d f > es | < g4 es > }
>
}
- \property Voice.TextScript \set #'font-style = #'large
- \property Lyrics.LyricText \set #'font-style = #'Large
- \property Lyrics.minVerticalAlign = #6
\addlyrics
- \notes\relative c' {
+ \context Staff = rh \notes\relative c' {
\clef bass
\key es \major
es8 c () c bes () bes as () as g16 f | es4
}
\context Lyrics \lyrics {
+ \property Lyrics . LyricText \set #'font-style = #'Large
+ \property Lyrics . VerticalAlign \override #'threshold = #'(6 . 12)
< { "" "6" "4" "6" "4" "6" "4" "6" }
{ "" "" "2" "" "2" "" "2" "" } >
}
@
@lilypond[13pt,eps]
-\emptyText
\property Score.barNonAuto = ##t
\property Voice.TextScript \set #'font-style = #'large
\notes\relative c' {
--- /dev/null
+%{
+
+The definition of markup is incomplete.
+
+Ideally, either the input is valid, and all information therein is
+used, or it is invalid, and an error message is produced.
+
+%}
+
+
+\score { \notes \relative c' {
+ f_#'(lines "one" ( "tow"))
+
+ % three ignored
+ f_#'(lines "one" ( "two" "three" ))
+
+ % italic ignored.
+ f_#'(lines "one" (bold italic "towo"))
+
+ }}
Mark_req::do_equal_b (Request const * r) const
{
Mark_req const * other = dynamic_cast<Mark_req const*> (r);
- return other && scm_equal_p (other->get_mus_property ("mark-label"),
- get_mus_property ("mark-label")) == SCM_BOOL_T;
+ return other && scm_equal_p (other->get_mus_property ("label"),
+ get_mus_property ("label")) == SCM_BOOL_T;
}
void init_lily_guile ();
bool isdir_b (SCM s);
-
+bool isaxis_b (SCM s);
/*
these conversion functions also do a typecheck on the argument, and
return a default value if S has the wrong type.
return false;
}
+
+bool
+isaxis_b (SCM s)
+{
+ if (gh_number_p (s))
+ {
+ int i = gh_scm2int (s);
+ return i== 0 || i == 1;
+ }
+ return false;
+}
+
+
Direction
to_dir (SCM s)
{
gh_list (inf.elem_l_->self_scm (), SCM_UNDEFINED));
if (to_boolean (result))
{
- SCM sym = o->get_mus_property ("symbol");
- SCM val = o->get_mus_property ("value");
+ SCM sym = o->get_mus_property ("grob-property");
+ SCM val = o->get_mus_property ("grob-value");
inf.elem_l_->set_grob_property (sym, val);
}
}
Music *m = new Music (SCM_EOL);
m->set_mus_property ("predicate", pred);
- m->set_mus_property ("symbol", $3);
- m->set_mus_property ("value", $5);
+ m->set_mus_property ("grob-property", $3);
+ m->set_mus_property ("grob-value", $5);
m->set_mus_property ("iterator-ctor",
Output_property_music_iterator::constructor_cxx_function);
void
Property_iterator::process (Moment m)
{
- SCM sym = music_l_->get_mus_property ("symbol");
+ SCM sym = music_l_->get_mus_property ("grob-property");
if (gh_symbol_p (sym))
{
- SCM val = music_l_->get_mus_property ("value");
+ SCM val = music_l_->get_mus_property ("grob-value");
bool ok= true;
if (val != SCM_EOL)
ok = type_check_assignment (val, sym, ly_symbol2scm ("translation-type?"));
{
if (gh_string_p (text))
return string2molecule (me, text, alist_chain);
+
+ /*
+ ugh: gh_list_p () is linear.
+ */
+
else if (gh_list_p (text) && text != SCM_EOL && text != SCM_UNDEFINED)
{
- if (!gh_pair_p (gh_car (text)) && gh_string_p (gh_car (text)))
+ if (gh_string_p (gh_car (text)))
return string2molecule (me, gh_car (text), alist_chain);
else
return markup_text2molecule (me, text, alist_chain);
SCM markup = gh_car (markup_text);
SCM text = gh_cdr (markup_text);
-#if 1
SCM p = gh_cons (gh_call2 (f, sheet, markup), alist_chain);
-#else
- SCM pp = gh_call2 (f, sheet, markup);
- gh_newline ();
- scm_write (pp, scm_current_error_port ());
- gh_newline ();
- SCM p = gh_cons (pp, alist_chain);
-#endif
Real staff_space = Staff_symbol_referencer::staff_space (me);
- Axis align = X_AXIS;
+ Axis axis = X_AXIS;
+
+ /*
+ TODO: change ALIGN into AXIS.
+ */
SCM a = ly_assoc_chain (ly_symbol2scm ("align"), p);
- if (gh_pair_p (a) && gh_number_p (gh_cdr (a)))
- align = (Axis)gh_scm2int (gh_cdr (a));
+ if (gh_pair_p (a) && isaxis_b (gh_cdr (a)))
+ axis = (Axis)gh_scm2int (gh_cdr (a));
Real baseline_skip = 0;
SCM b = ly_assoc_chain (ly_symbol2scm ("baseline-skip"), p);
if (gh_pair_p (b) && gh_number_p (gh_cdr (b)))
baseline_skip = gh_scm2double (gh_cdr (b)) * staff_space;
- Array<Real> kern (2);
- kern[0] = 0; // zucht
- kern[1] = 0;
+ Real kern[2] = {0,0};
+
SCM k = ly_assoc_chain (ly_symbol2scm ("kern"), p);
if (gh_pair_p (k) && gh_number_p (gh_cdr (k)))
- kern[align] = gh_scm2double (gh_cdr (k)) * staff_space;
+ kern[axis] = gh_scm2double (gh_cdr (k)) * staff_space;
Real raise = 0;
SCM r = ly_assoc_chain (ly_symbol2scm ("raise"), p);
if (gh_pair_p (r) && gh_number_p (gh_cdr (r)))
raise = gh_scm2double (gh_cdr (r)) * staff_space;
- Offset o (0, (align == Y_AXIS ? - kern[align] : 0) + raise);
+ Offset o (0, (axis == Y_AXIS ? - kern[axis] : 0) + raise);
Molecule mol;
while (gh_pair_p (text))
if (gh_pair_p (gh_car (text)))
m_p = gh_cons (gh_call2 (f, sheet, gh_caar (text)), alist_chain);
SCM m_k = ly_assoc_chain (ly_symbol2scm ("kern"), m_p);
- Real m_kern = kern[align];
+ Real m_kern = kern[axis];
if (gh_pair_p (m_k) && gh_number_p (gh_cdr (m_k)))
m_kern = gh_scm2double (gh_cdr (m_k)) * staff_space;
if (!m.empty_b ())
{
m.translate (o);
- if (align == Y_AXIS && baseline_skip)
+ if (axis == Y_AXIS && baseline_skip)
m_kern += baseline_skip - m.extent (Y_AXIS)[UP];
- mol.add_at_edge (align, align == X_AXIS ? RIGHT : DOWN, m, m_kern);
+ mol.add_at_edge (axis, axis == X_AXIS ? RIGHT : DOWN, m, m_kern);
}
text = gh_cdr (text);
}
\consists "Swallow_performer"
dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
- instrumentEqualizer = #default-instrument-equaliser
+ instrumentEqualizer = #default-instrument-equalizer
}
\translator { \ScoreContext }
(define (markup? x)
(or (string? x) (list? x)))
-;; ugh: code dup ; merge.
-(define (object-type obj)
- (cond
- ((dir? obj) "direction")
- ((number-pair? obj) "pair of numbers")
- ((ly-input-location? obj) "input location")
- ((ly-grob? obj) "grob (GRaphical OBject)")
- ((pair? obj) "pair")
- ((integer? obj) "integer")
- ((list? obj) "list")
- ((symbol? obj) "symbol")
- ((string? obj) "string")
- ((boolean? obj) "boolean")
- ((moment? obj) "moment")
- ((number? obj) "number")
- ((char? obj) "char")
- ((input-port? obj) "input port")
- ((output-port? obj) "output port")
- ((vector? obj) "vector")
- ((procedure? obj) "procedure")
- ((boolean-or-symbol? obj) "boolean or symbol")
- ((number-or-string? obj) "number or string")
- ((number-or-boolean? obj) "number or boolean")
- ((markup? obj) "markup (list or string)")
- (else "unknown type")))
+(define (scheme? x) #t)
+
+(define type-p-name-alist
+ `(
+ (,dir? . "direction")
+ (,scheme? . "any type")
+ (,number-pair? . "pair of numbers")
+ (,ly-input-location? . "input location")
+ (,ly-grob? . "grob (GRaphical OBject)")
+ (,duration? . "duration")
+ (,pair? . "pair")
+ (,integer? . "integer")
+ (,list? . "list")
+ (,symbol? . "symbol")
+ (,string? . "string")
+ (,boolean? . "boolean")
+ (,moment? . "moment")
+ (,ly-input-location? . "input location")
+ (,music? . "music")
+ (,number? . "number")
+ (,char? . "char")
+ (,input-port? . "input port")
+ (,output-port? . "output port")
+ (,vector? . "vector")
+ (,procedure? . "procedure")
+ (,boolean-or-symbol? . "boolean or symbol")
+ (,number-or-string? . "number or string")
+ (,number-or-boolean? . "number or boolean")
+ (,markup? . "markup (list or string)")
+ ))
+
+
+(define (match-predicate obj alist)
+ (if (null? alist)
+ "Unknown type"
+ (if (apply (caar alist) obj)
+ (cdar alist)
+ (match-predicate obj (cdr alist))
+ )
+ ))
+(define (object-type obj)
+ (match-predicate obj type-p-name-alist))
(define (type-name predicate)
- (cond
- ((eq? predicate dir?) "direction")
- ((eq? predicate number-pair?) "pair of numbers")
- ((eq? predicate ly-input-location?) "input location")
- ((eq? predicate ly-grob?) "Grob")
- ((eq? predicate pair?) "pair")
- ((eq? predicate integer?) "integer")
- ((eq? predicate list?) "list")
- ((eq? predicate symbol?) "symbol")
- ((eq? predicate string?) "string")
- ((eq? predicate boolean?) "boolean")
- ((eq? predicate moment?) "moment")
- ((eq? predicate number?) "number")
- ((eq? predicate char?) "char")
- ((eq? predicate input-port?) "input port")
- ((eq? predicate output-port?) "output port")
- ((eq? predicate vector?) "vector")
- ((eq? predicate procedure?) "procedure")
- ((eq? predicate boolean-or-symbol?) "boolean or symbol")
- ((eq? predicate number-or-string?) "number or string")
- ((eq? predicate markup?) "markup (list or string)")
- (else "unknown type")))
-
+ (let ((entry (assoc predicate type-p-name-alist)))
+ (if (pair? entry) (cdr entry)
+ "unknown"
+ )))
(define (uniqued-alist alist acc)
(if (null? alist) acc
;;
;; PATH=$LILYPONDPREFIX/scm:<datadir>/scm
;;
-(eval-string (ly-gulp-file "documentation-lib.scm"))
-(eval-string (ly-gulp-file "engraver-documentation-lib.scm"))
-(eval-string (ly-gulp-file "backend-documentation-lib.scm"))
+(eval-string
+ (apply string-append
+ (map ly-gulp-file '("documentation-lib.scm"
+ "engraver-documentation-lib.scm"
+ "music-documentation-lib.scm"
+ "backend-documentation-lib.scm"))))
;;(define no-copies #t) ; from 490 to 410K, but doesn't look nice yet
;;
(define no-copies #f)
(let* ((doc (string-append
+ (document-music "LilyPond music properties")
(document-paper "LilyPond interpretation contexts")
(document-all-engravers "LilyPond engravers")
(document-all-engraver-properties "LilyPond context properties")
;; we can't use (dir) and top if we're included by lilypond.tely
"LilyPond internals" name "(lilypond.info)"
- '(("LilyPond interpretation contexts" . "Hierarchy and grouping of Engravers")
+ '(
+ ("LilyPond music properties" . "properties for Music representation")
+ ("LilyPond interpretation contexts" . "Hierarchy and grouping of Engravers")
("LilyPond engravers" . "Engravers create Grobs")
("LilyPond context properties" . "context properties")
("LilyPond backend" . "Detailed description of all Grobs")
"slur.scm"
"font.scm"
"music-functions.scm"
+ "music-property-description.scm"
"auto-beam.scm"
"generic-property.scm"
"basic-properties.scm"
(cdr entry))))
;; define factors of total volume of minimum and maximum volume
-(define instrument-equaliser-alist '())
-(set! instrument-equaliser-alist
+(define instrument-equalizer-alist '())
+(set! instrument-equalizer-alist
(append
'(
("flute" . (0 . 0.7))
("cello" . (0.2 . 0.8))
("contrabass" . (0.2 . 0.8))
)
- instrument-equaliser-alist))
+ instrument-equalizer-alist))
;; (name . program+32768*(channel10 ? 1 : 0) )
(define instrument-names-alist '())
)
-(define (default-instrument-equaliser s)
- (let ((entry (assoc s instrument-equaliser-alist)))
+(define (default-instrument-equalizer s)
+ (let ((entry (assoc s instrument-equalizer-alist)))
(if entry
(cdr entry))))
--- /dev/null
+
+
+(define (music-property->texi sym)
+ (let* ((name (symbol->string sym))
+ (type (object-property sym 'music-type?))
+ (typename (type-name type))
+ (desc (object-property sym 'music-doc)))
+
+ (cons (string-append "@code{" name "} "
+ "(" typename ")"
+ ": "
+ )
+ desc)))
+
+(define (document-music name)
+ (let* (
+ (ps (sort (map symbol->string all-music-properties) string<?))
+ (descs (map (lambda (prop)
+ (music-property->texi (string->symbol prop)))
+ ps))
+ (texi (description-list->texi descs))
+ )
+
+ (string-append
+ (node name)
+ (texi-section 1 name #f)
+ texi)
+ ))
+
+
(exit 2)
))
(set-object-property! symbol 'music-type? type?)
- (set-object-property! symbol 'music-doc description)
- (set! all-music-properties (cons symbol all-music-properties))
- )
+ (set-object-property! symbol 'music-doc description)
+ (set! all-music-properties (cons symbol all-music-properties))
+ )
+
-(define (true? x) #t)
(music-property-description 'iterator-ctor c++-function? "Function to construct music-event-iterator object for this Music")
-(music-property-description 'duration duration? "")
+(music-property-description 'duration duration? "Duration of this note/lyric.")
(music-property-description 'metronome-count number? "How many beats in a minute?")
(music-property-description 'span-type symbol? "What kind of spanner should be created?")
(music-property-description 'alternatives music? "Music_sequence of alternatives for repeated music.")
(music-property-description 'articulation-type symbol? "key for scriptDefinitions alist")
-(music-property-description 'bass boolean? "")
-(music-property-description 'body music? "")
-(music-property-description 'cautionary boolean? "")
-(music-property-description 'change-to-id string? "")
-(music-property-description 'change-to-type string? "")
-(music-property-description 'context-id string? "")
-(music-property-description 'context-type string? "")
-(music-property-description 'denominator integer? "")
-(music-property-description 'direction dir? "")
-(music-property-description 'text-type symbol? "")
-(music-property-description 'element music )
-(music-property-description 'grob-property symbol? "")
-(music-property-description 'grob-value true? "")
-(music-property-description 'elements list? "")
-(music-property-description 'force-accidental boolean? "")
-(music-property-description 'inversion boolean? "")
-(music-property-description 'label string? "")
-(music-property-description 'last-pitch pitch? "")
-(music-property-description 'length procedure? "")
-(music-property-description 'lyrics music? "")
-(music-property-description 'mark-label string? "")
-(music-property-description 'numerator integer? "")
-(music-property-description 'one music? ""); part-combine, fixme, naming.
-(music-property-description 'origin input? "")
-(music-property-description 'penalty number? "")
-(music-property-description 'pitch pitch? "")
-(music-property-description 'pitch-alist list? "")
-(music-property-description 'predicate procedure? "")
-(music-property-description 'type symbol? "")
-(music-property-description 'repeat-count integer? "")
-(music-property-description 'span-direction dir? "")
-(music-property-description 'symbol symbol? "")
-(music-property-description 'symbols list? "")
-(music-property-description 'tempo duration? "")
-(music-property-description 'text string? "");; markup?
+(music-property-description 'bass boolean? "Set if this note is a bass note in a chord")
+(music-property-description 'body music? "The body of a repeat ")
+(music-property-description 'cautionary boolean? "If set, this alteration needs cautionary accidental")
+(music-property-description 'change-to-id string? "name of the context to change to ")
+(music-property-description 'change-to-type string? "type of the context to change to.")
+(music-property-description 'context-id string? "name of context")
+(music-property-description 'context-type string? "type of context")
+(music-property-description 'denominator integer? "denominator in a time signature")
+(music-property-description 'direction dir? "Print this up or down?")
+(music-property-description 'text-type symbol? "Particular type of text script (eg. finger, dynamic).")
+(music-property-description 'element music? "The single child of a Music_wrapper music object.")
+(music-property-description 'grob-property symbol? "The symbol of the grob property to set. ")
+(music-property-description 'grob-value scheme? "The value of the grob property to set")
+(music-property-description 'elements list? "A list of elements for sequential of simultaneous music")
+(music-property-description 'force-accidental boolean? "If set, a cautionary accidental should always be printed on this note")
+(music-property-description 'inversion boolean? "If set, this chord note is inverted.")
+(music-property-description 'label string? "label of a mark.")
+(music-property-description 'last-pitch pitch? "The last pitch after relativization.")
+(music-property-description 'length procedure? "How to compute the duration of this music")
+(music-property-description 'lyrics music? "second argument of a addlyrics")
+(music-property-description 'numerator integer? "numerator of a time signature")
+(music-property-description 'one music? "first argument of partcombine."); part-combine, fixme, naming.
+(music-property-description 'origin ly-input-location? "where was this piece of music defined?")
+(music-property-description 'penalty number? "Penalty for break hint.")
+(music-property-description 'pitch pitch? "the pitch of this note")
+(music-property-description 'pitch-alist list? "list of pitches jointly forming the scale of a key signature")
+(music-property-description 'predicate procedure? "the predicate of a \outputproperty")
+(music-property-description 'type symbol? "The type of this music object. Determines iteration in some cases.")
+(music-property-description 'repeat-count integer? "do a @code{\repeat} how ofen?")
+(music-property-description 'span-direction dir? "Does this start or stop a spanner?")
+(music-property-description 'symbols list? "List of Grob names (symbols) to perform an override/revert on.")
+(music-property-description 'text string? "markup expression to be printed");; markup?
(music-property-description 'tremolo-type integer? "")
-(music-property-description 'two music? ""); part-combine, fixme, naming.
-(music-property-description 'value true? "")
-(music-property-description 'what string? "")
+(music-property-description 'two music? "2nd argument of a part-combine"); part-combine, fixme, naming.
+
+(music-property-description 'what string? "What to change for auto-change. FIXME, naming")
property is used to label subsequent lines. If the
@code{midiInstrument} property is not set, then @code{instrument}
is used to determine the instrument for MIDI output.")
+
+(translator-property-description 'instrumentEqualizer procedure? "[DOCUMENT-ME]")
+
(translator-property-description 'keyAccidentalOrder list? "
Alist that defines in what order alterations should be printed.
The format is (NAME . ALTER), where NAME is from 0 .. 6 and ALTER from -1, 1.
return str
conversions.append (((1,3,147), conv, 'default-neutral-direction -> neutral-direction'))
+
################################
# END OF CONVERSIONS
################################