From: fred Date: Wed, 27 Mar 2002 01:02:42 +0000 (+0000) Subject: lilypond-1.3.148 X-Git-Tag: release/1.5.59~717 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a2456b1fadfeece3c6dbf9197a0236521a6fde34;p=lilypond.git lilypond-1.3.148 --- diff --git a/CHANGES b/CHANGES index 0eefa79a99..c3fdefcb2b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,49 @@ -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. diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index fde9aad3ef..695c8eede1 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -149,17 +149,16 @@ the duration of the long a. is proportionate to that of the main note. @ @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 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'' { @@ -171,11 +170,10 @@ An appoggiatura may have more notes preceding the main note. @ @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 "||" @@ -286,7 +284,6 @@ beams determine the note value of the connected notes. @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 @@ -439,7 +436,6 @@ chords are denoted open chords @lilypond[13pt,eps] \property Score.barNonAuto = ##t -\property Voice.textNonEmpty = ##t \property Voice.TextScript \set #'font-style = #'large \time 4/4 \notes\relative c'' { @@ -676,7 +672,6 @@ also to some extent in newer jazz music. @ @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -691,7 +686,6 @@ also to some extent in newer jazz music. @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -707,7 +701,6 @@ also to some extent in newer jazz music. @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -722,7 +715,6 @@ also to some extent in newer jazz music. @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -737,7 +729,6 @@ also to some extent in newer jazz music. @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -752,7 +743,6 @@ also to some extent in newer jazz music. @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -772,7 +762,6 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and 7th tone. @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -787,7 +776,6 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -802,7 +790,6 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -821,7 +808,6 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and @end lilypond @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -1114,7 +1100,6 @@ a quarter note. The number of flags determines the @w{@ar{}@strong{note value}}. @lilypond[13pt,eps] \property Score.barNonAuto = ##t -\emptyText \property Voice.TextScript \set #'font-style = #'large \notes\relative c'' { g8_"1/8" s8 @@ -1160,7 +1145,6 @@ of the base chords. @ @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large \property Voice.TextScript \set #'font-style = #'large @@ -1474,7 +1458,6 @@ unlike @emph{leggiero} or @emph{non-legato} (b), @emph{portato} (c) and @lilypond[13pt,eps] \property Score.barNonAuto = ##t -\emptyText \property Lyrics.LyricText \set #'font-style = #'large \addlyrics \notes\relative c'' { @@ -1682,7 +1665,6 @@ subject. @lilypond[13pt,eps] \property Score.TimeSignature \override #'style = #'C2/2 -\emptyText \property Voice.TextScript \set #'font-style = #'large \notes\relative c'' { \time 4/4 @@ -1790,7 +1772,6 @@ half. Another dot adds yet a fourth of the duration. @ @lilypond[13pt,eps] -\emptyText \property Voice.TextScript \set #'font-style = #'large \notes\relative c'' { \time 4/4 @@ -1807,7 +1788,6 @@ frequently used. @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 "||" @@ -1844,8 +1824,7 @@ the upper note is played first. @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 "||" @@ -1866,8 +1845,7 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the @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 "||" @@ -2010,7 +1988,6 @@ the same @w{@ar{}@strong{signature}}. @ @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Voice.TextScript \set #'font-style = #'large \notes\relative c' { @@ -2081,7 +2058,6 @@ sub@-do@-mi@-nant (S) and V = dominant (D). @ @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Lyrics.LyricText \set #'font-style = #'large %\property Lyrics.minVerticalAlign = #8 @@ -2272,7 +2248,6 @@ note. @w{@ar{}@strong{beam}} @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 @@ -2346,7 +2321,6 @@ the underlaying (normal) pulse and the actual (abnormal) rhythm. @ @lilypond[13pt,eps] -\emptyText \property Voice.TextScript \set #'font-style = #'large \time 4/4 \notes\relative c' { @@ -2433,7 +2407,7 @@ with figures designating the chief @w{@ar{}@strong{interval}}s and @lilypond[13pt,eps] \context GrandStaff < - \notes\relative c'' { + \context Staff = lh \notes\relative c'' { \time 4/4 \key es \major \clef treble @@ -2445,16 +2419,15 @@ with figures designating the chief @w{@ar{}@strong{interval}}s and < 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" "" } > } @@ -2538,7 +2511,6 @@ a @w{@ar{}@strong{chord}}, usually in the distance of a third @ @lilypond[13pt,eps] -\emptyText \property Score.barNonAuto = ##t \property Voice.TextScript \set #'font-style = #'large \notes\relative c' { diff --git a/input/bugs/markup-definition.ly b/input/bugs/markup-definition.ly new file mode 100644 index 0000000000..17d576b7a0 --- /dev/null +++ b/input/bugs/markup-definition.ly @@ -0,0 +1,20 @@ +%{ + +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")) + + }} diff --git a/lily/command-request.cc b/lily/command-request.cc index 1b06d2f645..aac1ebe576 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -95,8 +95,8 @@ bool Mark_req::do_equal_b (Request const * r) const { Mark_req const * other = dynamic_cast (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; } diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index cde9d412a3..a14c160839 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -64,7 +64,7 @@ void read_lily_scm_file (String); 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. diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 04bb47cdd3..b93e7cb30f 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -268,6 +268,19 @@ isdir_b (SCM s) 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) { diff --git a/lily/output-property-engraver.cc b/lily/output-property-engraver.cc index 7db91b877d..fbf90263b6 100644 --- a/lily/output-property-engraver.cc +++ b/lily/output-property-engraver.cc @@ -64,8 +64,8 @@ Output_property_engraver::acknowledge_grob (Grob_info inf) 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); } } diff --git a/lily/parser.yy b/lily/parser.yy index 165d105e38..39ebda46bb 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -755,8 +755,8 @@ Simple_music: 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); diff --git a/lily/property-iterator.cc b/lily/property-iterator.cc index 84c8486d0b..e38675d939 100644 --- a/lily/property-iterator.cc +++ b/lily/property-iterator.cc @@ -18,10 +18,10 @@ 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?")); diff --git a/lily/text-item.cc b/lily/text-item.cc index afd032dfed..bb99b6f236 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -38,9 +38,14 @@ Text_item::text2molecule (Grob *me, SCM text, SCM alist_chain) { 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); @@ -121,41 +126,36 @@ Text_item::markup_text2molecule (Grob *me, SCM markup_text, 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 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)) @@ -165,16 +165,16 @@ Text_item::markup_text2molecule (Grob *me, SCM markup_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); } diff --git a/ly/performer.ly b/ly/performer.ly index b44fae606f..8cfa8204bd 100644 --- a/ly/performer.ly +++ b/ly/performer.ly @@ -125,7 +125,7 @@ ScoreContext = \translator { \consists "Swallow_performer" dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume - instrumentEqualizer = #default-instrument-equaliser + instrumentEqualizer = #default-instrument-equalizer } \translator { \ScoreContext } diff --git a/scm/c++.scm b/scm/c++.scm index 793d287a5f..852def1a07 100644 --- a/scm/c++.scm +++ b/scm/c++.scm @@ -27,57 +27,55 @@ (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 diff --git a/scm/generate-documentation.scm b/scm/generate-documentation.scm index b7f9142437..114d5f2de7 100644 --- a/scm/generate-documentation.scm +++ b/scm/generate-documentation.scm @@ -16,9 +16,12 @@ ;; ;; PATH=$LILYPONDPREFIX/scm:/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 ;; @@ -28,6 +31,7 @@ (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") @@ -47,7 +51,9 @@ ;; 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") diff --git a/scm/lily.scm b/scm/lily.scm index 352dc96541..75f2ab04e5 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -118,6 +118,7 @@ "slur.scm" "font.scm" "music-functions.scm" + "music-property-description.scm" "auto-beam.scm" "generic-property.scm" "basic-properties.scm" diff --git a/scm/midi.scm b/scm/midi.scm index d44492d961..46cb81c803 100644 --- a/scm/midi.scm +++ b/scm/midi.scm @@ -32,8 +32,8 @@ (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)) @@ -48,7 +48,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 '()) @@ -246,8 +246,8 @@ ) -(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)))) diff --git a/scm/music-documentation-lib.scm b/scm/music-documentation-lib.scm new file mode 100644 index 0000000000..f4dc0ccfe5 --- /dev/null +++ b/scm/music-documentation-lib.scm @@ -0,0 +1,30 @@ + + +(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) stringtexi (string->symbol prop))) + ps)) + (texi (description-list->texi descs)) + ) + + (string-append + (node name) + (texi-section 1 name #f) + texi) + )) + + diff --git a/scm/music-property-description.scm b/scm/music-property-description.scm index ce6c91e7ee..bcc035a1c4 100644 --- a/scm/music-property-description.scm +++ b/scm/music-property-description.scm @@ -15,54 +15,51 @@ (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") diff --git a/scm/translator-property-description.scm b/scm/translator-property-description.scm index 8f91636ac3..8d4e312a90 100644 --- a/scm/translator-property-description.scm +++ b/scm/translator-property-description.scm @@ -198,6 +198,9 @@ remembered for the duration of a measure. 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. diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index 1018a71263..7d35e1539f 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -818,6 +818,7 @@ if 1: return str conversions.append (((1,3,147), conv, 'default-neutral-direction -> neutral-direction')) + ################################ # END OF CONVERSIONS ################################