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
) const;
15 virtual String
str() const = 0;
18 struct Midi_key
: public Midi_item
{
19 Midi_key( int accidentals_i
, int minor_i
);
21 virtual String
str() const;
27 struct Midi_note
: public Midi_item
{
29 int const c0_pitch_i_c_
= 60;
33 Generate a note-event on a channel pitch.
35 @param #melreq_l# is the pitch.
37 Midi_note( Melodic_req
* melreq_l
, int channel_i
, bool on_b
);
39 virtual String
str() const;
46 struct Midi_duration
: public Midi_item
{
48 Midi_duration( Real seconds_f
);
50 virtual String
str() const;
55 struct Midi_chunk
: Midi_item
{
59 void add( String str
);
60 void set( String header_str
, String data_str
, String footer_str
);
61 virtual String
str() const;
69 struct Midi_header
: Midi_chunk
{
71 Midi_header( int format_i
, int tracks_i
, int clocks_per_4_i
);
74 struct Midi_text
: Midi_item
{
77 TEXT
= 1, COPYRIGHT
, TRACK_NAME
, INSTRUMENT_NAME
, LYRIC
,
80 Midi_text( Midi_text::Type type
, String text_str
);
82 virtual String
str() const;
88 struct Midi_tempo
: Midi_item
{
90 Midi_tempo( int per_minute_4_i
);
92 virtual String
str() const;
97 struct Midi_track
: Midi_chunk
{
100 Midi_track( int number_i
);
102 void add( int delta_time_i
, String event
);
103 // void add( Moment delta_time_moment, Midi_item& mitem_r );
104 void add( Moment delta_time_moment
, Midi_item
* mitem_l
);
107 #endif // MIDI_ITEM_HH //