#define HEADGRAV_HH
#include "engraver.hh"
-struct Note_head_engraver : Engraver {
+/**
+ make balls and rests
+ */
+class Note_head_engraver : public Engraver {
Note_head* note_p_;
Rhythmic_req * note_req_l_;
- /* *************** */
+public:
Note_head_engraver();
+ DECLARE_MY_RUNTIME_TYPEINFO;
+protected:
virtual bool do_try_request(Request *req_l) ;
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
~Input_translator_list(){}
};
-struct Input_translator : Input {
+/** Define a intereter for music. This is an runtime interface to the
+ typesystem */
+class Input_translator : public Input {
+public:
Input_translator_list contains_itrans_p_list_;
Array<String> consists_str_arr_;
Array<String> alias_str_arr_;
bool default_b_;
- /* *************** */
DECLARE_MY_RUNTIME_TYPEINFO;
SCORE_ELEM_CLONE(Key_item);
void add(int pitch, int acc);
void read(const Key_engraver&);
void set_c_position(int);
+protected:
virtual void do_pre_processing();
Molecule* brew_molecule_p()const;
};
TODO:
update item if Items are removed
+
+ TODO
+
+ figure out private/public
+
*/
-struct Local_key_item : Item {
+class Local_key_item : public Item {
+public:
DECLARE_MY_RUNTIME_TYPEINFO;
Array<Local_acc> accs;
Link_array<Item> support_items_;
int c0_position;
- /* *************** */
+
Local_key_item(int c0position);
void add_support(Item*);
void add(int oct, int pitch, int acc);
void add(Melodic_req*);
-public:
+protected:
virtual void do_pre_processing();
virtual void do_substitute_dependency(Score_elem*,Score_elem*);
virtual Molecule* brew_molecule_p()const;
/**
+ definitions for midi output. Rather empty
*/
struct Midi_def {
// ugh!
/// output file name
String outfile_str_;
- Assoc<String, Real> *real_vars_p_;
Input_translator* itrans_p_;
/// duration of whole note
Real duration_to_seconds_f(Moment);
Global_translator* get_global_translator_p() const;
- Real get_var( String s ) const;
int get_tempo_i( Moment moment );
void print() const;
void set( Input_translator* itrans_p );
- void set_var( String s, Real r );
void set_tempo( Moment moment, int count_per_minute_i );
};
#include "lily-proto.hh"
#include "string.hh"
-/** In Lily, everything that has a length and a pitch (which can be
- transposed) is considered "music",
+/**
+ Anything which has length or pitch.
+
+ In Lily, everything that can be thought to have a length and a pitch
+ (which has a duration which can be transposed) is considered "music",
Music is hierarchical:
- @seealso Music_list
+ @see Music_list
+
*/
class Music:public Input {
public:
Music_list * parent_music_l_;
- /** what kind of iterator needed to walk this music? This doesn't
+ /** The 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.
#include "lily-proto.hh"
#include "score-elem.hh"
-/** a symbol which is attached between two columns. A spanner is a
+/** A symbol which is attached between two columns. A spanner is a
symbol which spans across several columns, so its final appearance
can only be calculated after the breaking problem is solved.