[document reintroduced deficiencies.]
-wrong instrument:
-
-cad = \melodic { \id "Staff" "fr horn"; c4 }
-
-\score {
- \melodic {\cad}
-}
-
*******************
'.' -> lilypond: lexer.l:258: int My_lily_lexer::yylex(): Assertion `cnv == 1' failed.
***********************
-2nd staff takes too long.
\score { <
\melodic { \id "Staff" ""; c'4 g'4 }
+august 1
+
+VERSION 0.1.0
+
+ - bf: output tempo to track 0 too
+ - bf: don't forget to copy id_str_, so moved into Music
+
+pl 78.jcn1
+ - fix for multi-staff midi: wohltemperirt.ly, standchen.ly
+ - doze fixes
+ - bf: conflily, configure (text)
+*****
+july 31
pl 78
- bf: Midi_instrument
- added enable/disable defaults to help.
-0.1:
-
- * versioning stuff (cvt mudela, mudela, etc.)
-
Features you cannot find in the doco as working, should be mentioned here.
This is an assorted collection of stuff that will be done, might be
Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr
+ * versioning stuff (cvt mudela, mudela, etc.)
+
+ * get rid of gif files.
+
+ * set_midi_channel/staff() out of performer.
+
* dots into separate item.
* use String iso Text_def for lyrics.
* use position 0 for center of staff iso bottom.
- * return status
+ * return status on exit
* lyrics in chords still fuck up.
- * add to MIDI output:
- - tempo change
- - repeat
- - slurs
- - dynamics etc.
-
* rewire acknowledge_element() logic with a process_acknowledged()
* progress when creating MIDI elts.
* decent TeX page layout
- * enter script priority
-
- * a hands on tutorial
+ * a tutorial
PROJECTS
+ * add to MIDI output:
+ - tempo change
+ - repeat
+ - slurs
+ - dynamics etc.
+
* grace notes
- adapt for multiple font sizes.
- make separate class for Grace_*_engravers
public:
int multi_level_i_;
- /// what kind of iterator needed to walk this music?
- String type_str_;
-
- /// what name (or look for this name)
- String id_str_;
Music_list(Music_list const&);
Music_list();
DECLARE_MY_RUNTIME_TYPEINFO;
class Music:public Input {
public:
Music_list * parent_music_l_;
+
+ /** what kind of iterator needed to walk this music? This doesn't
+ make sense for simple (ie non-list) music, but it does no harm
+ here. Yes, it did harm Music_list: you can forget to copy it.
+
+ */
+ String type_str_;
+
+ /// what name (or look for this name)
+ String id_str_;
virtual MInterval time_int()const;
virtual ~Music(){}
else if (m->is_type_b( Voice::static_name()))
p = new Voice_iterator( (Voice*) m);
- if ( m->is_type_b( Music_list::static_name())) {
- Music_list* ml = (Music_list*) m;
- if (ml -> type_str_ != "") {
- Translator * a =report_l->
- find_get_translator_l(ml-> type_str_, ml->id_str_);
-
-
+ if (m -> type_str_ != "") {
+ Translator * a =report_l->
+ find_get_translator_l(m-> type_str_, m->id_str_);
p->set_translator( a);
-
- }
- }
- if (! p->report_to_l() )
+ }
+
+
+ if (! p->report_to_l() )
p ->set_translator(report_l);
return p;
Moment
Chord_iterator::next_moment()const
{
- Moment next_ = INFTY;
+ Moment next_ = INFTY_f;
for (PCursor<Music_iterator*> i(children_p_list_.top()); i.ok(); i++)
next_ = next_ <? i->next_moment() ;
return next_;