diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 848f74ccb6..ff3d5d6775 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -911,6 +911,7 @@ MidiDiskstream::do_flush (RunContext /*context*/, bool force_flush) error << string_compose(_("MidiDiskstream %1: cannot write to disk"), _id) << endmsg; return -1; } else { + cerr << "didn't write, _write_source = " << _write_source << endl; _last_flush_frame = _session.transport_frame(); } } else { diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index cf46099a3e..158c9c144d 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -240,9 +240,13 @@ SMFSource::write_unlocked (MidiRingBuffer& source, framepos_t positi Evoral::MIDIEvent ev; + cerr << "SMFSource::write unlocked, begins writing from src buffer\n"; + while (true) { bool ret = source.peek ((uint8_t*)&time, sizeof (time)); if (!ret || time > _last_write_end + duration) { + DEBUG_TRACE (DEBUG::MidiIO, string_compose ("SMFSource::write_unlocked: dropping event @ %1 because ret %4 or it is later than %2 + %3\n", + time, _last_write_end, duration, ret)); break; } @@ -277,11 +281,12 @@ SMFSource::write_unlocked (MidiRingBuffer& source, framepos_t positi continue; } + cerr << "SMFSource:: calling append_event_unlocked_frames()\n"; append_event_unlocked_frames(ev, position); } Evoral::SMF::flush(); - free(buf); + free (buf); return duration; } @@ -336,6 +341,7 @@ SMFSource::append_event_unlocked_frames (const Evoral::Event& ev, fr { assert(_writing); if (ev.size() == 0) { + cerr << "SMFSource: asked to append zero-size event\n"; return; } @@ -545,8 +551,9 @@ SMFSource::load_model (bool lock, bool force_reload) have_event_id = false; } - _model->end_write(false); - _model->set_edited(false); + //_model->end_write (_length_beats, false, true); + _model->end_write (false); + _model->set_edited (false); _model_iter = _model->begin(); @@ -567,7 +574,7 @@ SMFSource::flush_midi () return; } - Evoral::SMF::end_write(); + Evoral::SMF::end_write (); /* data in the file means its no longer removable */ mark_nonremovable (); }