2 // midi-track.hh -- declare midi_track
4 // copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
12 Midi_track( int number_i, String copyright_str, String track_name_str, String instrument_str );
15 void add_event( Moment mom, Midi_event* midi_event_p );
18 void output_mudela( Lily_stream& lily_stream_r );
19 Moment next_begin_mom( Moment now_mom );
20 Moment next_end_mom( Moment now_mom );
22 void set_tempo( int useconds_i );
23 void set_time( int num_i, int den_i, int clocks_i, int count_32_i );
24 Track_column* tcol_l( Moment mom );
26 String copyright_str_;
27 String instrument_str_;
29 Midi_tempo* midi_tempo_p_;
30 Midi_time* midi_time_p_;
35 void add_begin_at( Link_list<Midi_voice*>& open_voices_r, Moment mom );
37 void add_begin_at( Array<Midi_voice*>& open_voices_r, Moment mom );
39 int check_begin_bar_i( Moment now_mom, int open_bar_i );
40 int check_end_bar_i( Moment now_mom, int open_bar_i );
41 Midi_voice* get_free_midi_voice_l( Moment mom );
43 void remove_end_at( Link_list<Midi_voice*>& open_voices_r, Moment mom );
45 void remove_end_at( Array<Midi_voice*>& open_voices_r, Moment mom );
47 void output_mudela_begin_bar( Lily_stream& lily_stream_r, Moment now_mom, int bar_i );
48 void output_mudela_rest( Lily_stream& lily_stream_r, Moment begin_mom, Moment end_mom );
49 void output_mudela_rest_remain( Lily_stream& lily_stream_r, Moment mom );
52 Pointer_list<Track_column*> tcol_p_list_;
54 Array<Track_column*> tcol_p_array_;
57 Pointer_list<Midi_voice*> midi_voice_p_list_;
59 Array<Midi_voice*> midi_voice_p_array_;
63 #endif // MIDI_TRACK_HH