diff options
author | Michael Fisher <mfisher31@gmail.com> | 2013-08-02 18:23:36 -0500 |
---|---|---|
committer | Michael Fisher <mfisher31@gmail.com> | 2013-08-02 18:23:36 -0500 |
commit | e82574de05ca96d55226404f3bb54161a2297d84 (patch) | |
tree | 122f688c4f051e07158ad8dce383adb0e090d961 | |
parent | 94f366190e044462bd907de2d96f0d34b275b080 (diff) |
Send and Read MIDI Positions the right way
-rw-r--r-- | gtk2_ardour/midi_tracer.cc | 3 | ||||
-rw-r--r-- | libs/ardour/ticker.cc | 9 |
2 files changed, 5 insertions, 7 deletions
diff --git a/gtk2_ardour/midi_tracer.cc b/gtk2_ardour/midi_tracer.cc index 74c9b1643e..073fd9cc15 100644 --- a/gtk2_ardour/midi_tracer.cc +++ b/gtk2_ardour/midi_tracer.cc @@ -303,8 +303,7 @@ MidiTracer::tracer (Parser&, byte* msg, size_t len) } else if (len == 3 && msg[0] == MIDI::position) { /* MIDI Song Position */ - uint16_t midi_beats = (uint16_t) msg[1]; - midi_beats |= msg[2]; + int midi_beats = (msg[2] << 7) | msg[1]; s += snprintf (&buf[s], bufsize, "%16s %d\n", "Position", (int) midi_beats); } else { diff --git a/libs/ardour/ticker.cc b/libs/ardour/ticker.cc index 0a4081bec7..f32cdf9415 100644 --- a/libs/ardour/ticker.cc +++ b/libs/ardour/ticker.cc @@ -386,11 +386,10 @@ MidiClockTicker::send_position_event (uint32_t midi_beats, pframes_t offset) } /* split midi beats into a 14bit value */ - MIDI::byte msg[3] = { - MIDI_CMD_COMMON_SONG_POS, - midi_beats & 0x007f, - midi_beats & 0x3f80 - }; + MIDI::byte msg[3]; + msg[0] = MIDI_CMD_COMMON_SONG_POS; + msg[1] = midi_beats & 0x007f; + msg[2] = midi_beats >> 7; _midi_port->midimsg (msg, sizeof (msg), offset); |