diff --git a/libs/evoral/SMF.cc b/libs/evoral/SMF.cc index 9dbfc7f58b..3d9dbd08db 100644 --- a/libs/evoral/SMF.cc +++ b/libs/evoral/SMF.cc @@ -548,7 +548,15 @@ SMF::begin_write() assert(_smf_track); smf_add_track(_smf, _smf_track); - assert(_smf->number_of_tracks == 1); +} + +void +SMF::end_track () +{ + /* nothing to do in libsmf API to "close" the track, it seems */ + _smf_track = smf_track_new(); + assert (_smf_track); + smf_add_track(_smf, _smf_track); } void diff --git a/libs/evoral/evoral/SMF.h b/libs/evoral/evoral/SMF.h index f007fe3a76..67ba0074b2 100644 --- a/libs/evoral/evoral/SMF.h +++ b/libs/evoral/evoral/SMF.h @@ -168,6 +168,8 @@ public: bool _has_pgm_change; int _num_channels; UsedChannels _used_channels; + + void end_track (); }; }; /* namespace Evoral */