summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 89dd83b9c6..1055a7c504 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -38,6 +38,7 @@
#include "ardour/timestamps.h"
#include "ardour/graph.h"
#include "ardour/audio_port.h"
+#include "ardour/tempo.h"
#include "midi++/manager.h"
#include "midi++/mmc.h"
@@ -79,10 +80,14 @@ Session::process (pframes_t nframes)
// the ticker is for sending time information like MidiClock
framepos_t transport_frames = transport_frame();
Timecode::BBT_Time transport_bbt;
- bbt_time(transport_frames, transport_bbt);
- Timecode::Time transport_timecode;
- timecode_time(transport_frames, transport_timecode);
- tick (transport_frames, transport_bbt, transport_timecode); /* EMIT SIGNAL */
+ try {
+ _tempo_map->bbt_time_rt (transport_frames, transport_bbt);
+ Timecode::Time transport_timecode;
+ timecode_time(transport_frames, transport_timecode);
+ tick (transport_frames, transport_bbt, transport_timecode); /* EMIT SIGNAL */
+ } catch (...) {
+ warning << _("Missed MIDI Clock tick due to problems with tempo map") << endmsg;
+ }
SendFeedback (); /* EMIT SIGNAL */