#ifndef MIDI_ITEM_HH
#define MIDI_ITEM_HH
+#include "cons.hh"
#include "string.hh"
#include "lily-proto.hh"
#include "proto.hh"
-#include "plist.hh"
-#include "virtual-methods.hh"
#include "moment.hh"
/**
Maybe use base classes for RIFF files?
*/
struct Midi_item {
-
Midi_item (Audio_item* audio_item_l);
virtual ~Midi_item ();
static String i2varint_str (int i);
};
struct Midi_duration : public Midi_item {
-
Midi_duration (Real seconds_f);
virtual String str () const;
};
struct Midi_header : Midi_chunk {
-
-
Midi_header (int format_i, int tracks_i, int clocks_per_4_i);
};
Change instrument event
*/
struct Midi_instrument : public Midi_item {
-
Midi_instrument (int channel_i, String instrument_str);
virtual String str () const;
struct Midi_key : public Midi_item {
-
Midi_key (Audio_item* audio_item_l);
virtual String str () const;
};
struct Midi_time_signature : Midi_item {
-
-
Midi_time_signature (Audio_item* audio_item_l);
virtual String str () const;
Turn a note on (blond).
*/
struct Midi_note : public Midi_item {
-
Midi_note (Audio_item* audio_item_l);
Moment length_mom () const;
Turn a note off (dark).
*/
struct Midi_note_off : public Midi_item {
-
Midi_note_off (Midi_note*);
int pitch_i () const;
};
struct Midi_tempo : Midi_item {
-
Midi_tempo (int per_minute_4_i);
Midi_tempo (Audio_item* audio_item_l);
};
struct Midi_track : Midi_chunk {
-
int number_i_;
- Pointer_list<Midi_event*> event_p_list_;
-
+ Cons_list<Midi_event> event_p_list_;
+
Midi_track ();
~Midi_track ();