2 // mudela-item.hh -- declare mudela_item
4 // copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
9 #include "mi2mu-proto.hh"
12 #include "duration.hh"
16 // * be Voice_elements/requests
17 // * get a name-change
24 Mudela_item (Mudela_column
* mudela_column_l
);
26 virtual Moment
at_mom();
27 virtual Moment
duration_mom();
28 void output (Mudela_stream
& mudela_stream_r
);
29 virtual String
str() = 0;
31 Mudela_column
* mudela_column_l_
;
34 class Mudela_key
: public Mudela_item
37 Mudela_key (int accidentals_i
, int minor_i
);
39 String
notename_str (int pitch_i
);
47 class Mudela_meter
: public Mudela_item
50 Mudela_meter (int num_i
, int den_i
, int division_4_i
, int count_32_i
);
52 Duration
i2_dur (int time_i
, int division_1_i
);
67 class Mudela_note
: public Mudela_item
70 Mudela_note (Mudela_column
* mudela_column_l
, int channel_i
, int pitch_i
, int dyn_i
);
73 virtual Moment
duration_mom();
76 // int const c0_pitch_i_c_ = 60; // huh?
77 int const c0_pitch_i_c_
= 48;
79 static bool const simple_plet_b_s
= false;
82 Mudela_column
* end_column_l_
;
85 class Mudela_skip
: public Mudela_item
88 Mudela_skip (Mudela_column
* mudela_column_l
, Moment skip_mom
);
91 virtual Moment
duration_mom();
99 class Mudela_tempo
: public Mudela_item
102 Mudela_tempo (int useconds_per_4_i
);
104 int get_tempo_i (Moment moment
);
105 virtual String
str();
106 int useconds_per_4_i();
109 int useconds_per_4_i_
;
110 Real seconds_per_1_f_
;
113 class Mudela_text
: public Mudela_item
117 TEXT
= 1, COPYRIGHT
, TRACK_NAME
, INSTRUMENT_NAME
, LYRIC
,
120 Mudela_text (Mudela_text::Type type
, String str
);
121 virtual String
str();
128 #endif // MUDELA_ITEM_HH