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