2 // midiitem.hh -- part of LilyPond
4 // copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
13 static String
i2varint_str( int i
);
14 virtual void output_midi( Midi_stream
& midi_stream_r
);
15 virtual String
str() = 0;
18 struct Midi_note
: public Midi_item
{
20 int const c0_pitch_i_c_
= 60;
24 Generate a note-event on a channel pitch.
26 @param #melreq_l# is the pitch.
28 Midi_note( Melodic_req
* melreq_l
, int channel_i
, bool on_b
);
37 struct Midi_duration
: public Midi_item
{
39 Midi_duration( Real seconds_f
);
46 struct Midi_chunk
: Midi_item
{
50 void add( String str
);
51 void set( String header_str
, String data_str
, String footer_str
);
60 struct Midi_header
: Midi_chunk
{
62 Midi_header( int format_i
, int tracks_i
, int clocks_per_4_i
);
65 struct Midi_tempo
: Midi_item
{
67 Midi_tempo( int tempo_i
);
74 struct Midi_track
: Midi_chunk
{
77 Midi_track( int number_i
);
79 void add( int delta_time_i
, String event
);
80 // void add( Moment delta_time_moment, Midi_item& mitem_r );
81 void add( Moment delta_time_moment
, Midi_item
* mitem_l
);
84 #endif // MIDI_ITEM_HH //