|
smf_t * | smf_new (void) |
|
void | smf_delete (smf_t *smf) |
|
smf_track_t * | smf_track_new (void) |
|
void | smf_track_delete (smf_track_t *track) |
|
void | smf_add_track (smf_t *smf, smf_track_t *track) |
|
void | smf_track_remove_from_smf (smf_track_t *track) |
|
smf_event_t * | smf_event_new (void) |
|
smf_event_t * | smf_event_new_from_pointer (const void *midi_data, size_t len) |
|
smf_event_t * | smf_event_new_from_bytes (int first_byte, int second_byte, int third_byte) |
|
void | smf_event_delete (smf_event_t *event) |
|
static gint | events_array_compare_function (gconstpointer aa, gconstpointer bb) |
|
static void | remove_eot_if_before_pulses (smf_track_t *track, size_t pulses) |
|
void | smf_track_add_event (smf_track_t *track, smf_event_t *event) |
|
int | smf_track_add_eot_delta_pulses (smf_track_t *track, uint32_t delta) |
|
int | smf_track_add_eot_pulses (smf_track_t *track, size_t pulses) |
|
int | smf_track_add_eot_seconds (smf_track_t *track, double seconds) |
|
void | smf_event_remove_from_track (smf_event_t *event) |
|
int | smf_event_is_tempo_change_or_time_signature (const smf_event_t *event) |
|
int | smf_set_format (smf_t *smf, int format) |
|
int | smf_set_ppqn (smf_t *smf, uint16_t ppqn) |
|
smf_event_t * | smf_track_get_next_event (smf_track_t *track) |
|
static smf_event_t * | smf_peek_next_event_from_track (smf_track_t *track) |
|
smf_track_t * | smf_get_track_by_number (const smf_t *smf, int track_number) |
|
smf_event_t * | smf_track_get_event_by_number (const smf_track_t *track, size_t event_number) |
|
smf_event_t * | smf_track_get_last_event (const smf_track_t *track) |
|
smf_track_t * | smf_find_track_with_next_event (smf_t *smf) |
|
smf_event_t * | smf_get_next_event (smf_t *smf) |
|
void | smf_skip_next_event (smf_t *smf) |
|
smf_event_t * | smf_peek_next_event (smf_t *smf) |
|
void | smf_rewind (smf_t *smf) |
|
int | smf_seek_to_event (smf_t *smf, const smf_event_t *target) |
|
int | smf_seek_to_seconds (smf_t *smf, double seconds) |
|
int | smf_seek_to_pulses (smf_t *smf, size_t pulses) |
|
size_t | smf_get_length_pulses (const smf_t *smf) |
|
double | smf_get_length_seconds (const smf_t *smf) |
|
int | smf_event_is_last (const smf_event_t *event) |
|
const char * | smf_get_version (void) |
|
Various functions.
Definition in file smf.c.
smf_event_t* smf_event_new_from_bytes |
( |
int |
first_byte, |
|
|
int |
second_byte, |
|
|
int |
third_byte |
|
) |
| |
Allocates an smf_event_t structure and fills it with at most three bytes of data. For example, if you need to create Note On event, do something like this:
smf_event_new_from_bytes(0x90, 0x3C, 0x7f);
To create event for MIDI message that is shorter than three bytes, do something like this:
smf_event_new_from_bytes(0xC0, 0x42, -1);
- Parameters
-
first_byte | First byte of MIDI message. Must be valid status byte. |
second_byte | Second byte of MIDI message or -1, if message is one byte long. |
third_byte | Third byte of MIDI message or -1, if message is two bytes long. |
- Returns
- Event containing MIDI data or NULL.
Definition at line 290 of file smf.c.
int smf_track_add_eot_delta_pulses |
( |
smf_track_t * |
track, |
|
|
uint32_t |
delta |
|
) |
| |
Add End Of Track metaevent. Using it is optional, libsmf will automatically add EOT to the tracks during smf_save, with delta_pulses 0. If you try to add EOT in the middle of the track, it will fail and nonzero value will be returned. If you try to add EOT after another EOT event, it will be added, but the existing EOT event will be removed.
- Returns
- 0 if everything went ok, nonzero otherwise.
Definition at line 531 of file smf.c.