*/
-#include <pbd/basename.h>
+#include "pbd/basename.h"
-#include <ardour/types.h>
-#include <ardour/quantize.h>
-#include <ardour/session.h>
-#include <ardour/smf_source.h>
-#include <ardour/midi_region.h>
-#include <ardour/tempo.h>
+#include "ardour/types.h"
+#include "ardour/quantize.h"
+#include "ardour/session.h"
+#include "ardour/smf_source.h"
+#include "ardour/midi_region.h"
+#include "ardour/tempo.h"
#include "i18n.h"
boost::shared_ptr<MidiModel> model = src->model();
- // FIXME: Model really needs to be switched to beat time (double) ASAP
-
- const Tempo& t = session.tempo_map().tempo_at(r->start());
- const Meter& m = session.tempo_map().meter_at(r->start());
-
- double q_frames = _q * (m.frames_per_bar(t, session.frame_rate()) / (double)m.beats_per_bar());
-
- for (MidiModel::Notes::iterator i = model->notes().begin(); i != model->notes().end(); ++i) {
- const double new_time = lrint((*i)->time() / q_frames) * q_frames;
- double new_dur = lrint((*i)->duration() / q_frames) * q_frames;
+ for (Evoral::Sequence<MidiModel::TimeType>::Notes::iterator i = model->notes().begin();
+ i != model->notes().end(); ++i) {
+ const double new_time = lrint((*i)->time() / _q) * _q;
+ double new_dur = lrint((*i)->length() / _q) * _q;
if (new_dur == 0.0)
- new_dur = q_frames;
+ new_dur = _q;
(*i)->set_time(new_time);
- (*i)->set_duration(new_dur);
+ (*i)->set_length(new_dur);
}
model->set_edited(true);