diff options
Diffstat (limited to 'libs/evoral/src/libsmf/smf_load.c')
-rw-r--r-- | libs/evoral/src/libsmf/smf_load.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/evoral/src/libsmf/smf_load.c b/libs/evoral/src/libsmf/smf_load.c index c043c26c97..6bcf14980e 100644 --- a/libs/evoral/src/libsmf/smf_load.c +++ b/libs/evoral/src/libsmf/smf_load.c @@ -812,8 +812,22 @@ parse_mtrk_chunk(smf_track_t *track) break; } - if (event_is_end_of_track(event)) + if (event_is_end_of_track(event)) { break; + } + + if (smf_event_is_metadata (event)) { + switch (event->midi_buffer[1]) { + case 0x03: + track->name = smf_event_extract_text (event); + break; + case 0x04: + track->instrument = smf_event_extract_text (event); + break; + default: + break; + } + } } track->file_buffer = NULL; |