#include <algorithm>
#include <stdexcept>
#include <stdint.h>
-#include <evoral/Sequence.hpp>
-#include <evoral/ControlList.hpp>
-#include <evoral/Control.hpp>
-#include <evoral/ControlSet.hpp>
-#include <evoral/EventSink.hpp>
-#include <evoral/MIDIParameters.hpp>
-#include <evoral/TypeMap.hpp>
+#include "evoral/Sequence.hpp"
+#include "evoral/ControlList.hpp"
+#include "evoral/Control.hpp"
+#include "evoral/ControlSet.hpp"
+#include "evoral/EventSink.hpp"
+#include "evoral/MIDIParameters.hpp"
+#include "evoral/TypeMap.hpp"
using namespace std;
const bool ret = _control_iter->list->rt_safe_earliest_event_unlocked(
_control_iter->x, DBL_MAX, x, y, false);
- if ( !(!ret || x > _control_iter->x) ) {
- cerr << "Warning: Assertion failed: !ret || x > _control_iter->x in Sequence.cpp" << endl;
- }
+ assert(!ret || x > _control_iter->x);
if (ret) {
_control_iter->x = x;
} else if (ev.is_note_off()) {
append_note_off_unlocked(ev.channel(), ev.time(), ev.note());
} else if (!_type_map.type_is_midi(ev.event_type())) {
- printf("WARNING: Sequence: Unknown event type %X\n", ev.event_type());
+ printf("WARNING: Sequence: Unknown event type %X: ", ev.event_type());
+ for (size_t i=0; i < ev.size(); ++i) {
+ printf("%X ", ev.buffer()[i]);
+ }
+ printf("\n");
} else if (ev.is_cc()) {
append_control_unlocked(
Evoral::MIDI::ContinuousController(ev.event_type(), ev.channel(), ev.cc_number()),
{
debugout << this << " " << _type_map.to_symbol(param) << " @ " << time << " \t= \t" << value
<< " # controls: " << _controls.size() << endl;
- control(param, true)->list()->rt_add(time, value);
+ boost::shared_ptr<Control> c = control(param, true);
+ c->list()->rt_add(time, value);
}