View Single Post
Old 02-20-2017, 11:14 AM   #69
Amack
Human being with feelings
 
Join Date: Feb 2017
Posts: 12
Default Adequate Bug Report

Quote:
Originally Posted by Amack View Post
I believe that Reaper does not properly compensate MIDI for ASIO audio interface latency. The delay applied to live MIDI inputs that trigger Internal Virtual Instruments (Vis) is apparently determined by the ASIO buffer size rather than by the interface’s reported input latency. Also, live MIDI outputs are delayed by the sum of the interface’s reported input and output latencies rather than just its reported output latency.

DAW audio inputs and outputs are delayed by the audio interface’s input and output latencies. Since MIDI inputs aren’t, Reaper apparently adds delay to MIDI inputs and outputs in an attempt keep things synchronized during monitoring, recording, and playback. As shown in the attachment, Reaper delays MIDI input track recordings and any associated MIDI outputs by the reported input latency of the audio interface, but (incorrectly) only delays the triggering of internal virtual instruments (Vis) by the interface’s buffer size equivalency. This causes internal VIs to be prematurely triggered by the difference between the interface’s input latency and its buffer size equivalency during monitoring and recording. Also, rather than properly delaying MIDI outputs by the reported output latency of the interface, Reaper delays them by the sum of the reported input and output latencies. External VIs triggered by these MIDI outputs would experience an extra delay equal to the reported input latency during monitoring, recording, and playback.

Test Procedure
For this demonstration, a Roland TD-15K V-drum served as a MIDI (via USB) and audio (via audio output) source. ASIO4ALL was used with the computer’s internal sound “card” as the audio interface. A 1st generation Focusrite Scarlett 6i6 was used as a MIDI loopback device.

A microphone was used to trigger one of the TD-15 drum pads. Although it was recorded on Track 8, the TD-15’s audio was used as the time reference instead because it was quite well synchronized with the TD-15’s MIDI.
TD-15 MIDI was recorded on Track 1. TD-15 Audio was recorded on Track 2 and monitored and externally looped back for recording on Track 3.
TD-15 MIDI also triggered a MT-PowerDrumKit VSTi on Track 4. The VSTi’s output was monitored and externally looped back for recording on Track 5.
TD-15 MIDI was also output to the 6i6 on Track 6 for monitoring, external loopback, and recording on Track 7.

Both recordings were configured to “Use audio driver reported latency”. The first was with ASIO4ALL reporting latencies reflective of the actual input and output latencies. The second was with ASIO4ALL reporting incorrect latencies to demonstrate the problems.

Test Results
Track 1’s second recording shows that the MIDI input recording was delayed 20 milliseconds (ms) * 48k Samples/second (S/s) = 960S from that on the first recording – consistent with the reported input latency (ASIO4ALL’s “Latency Compensation In:”) increase.

The approximately 64 S (1.333 ms) delay between Track 3 and 5 in the first recording suggest that the triggering of the VSTi that produced Track 5 was delayed by the ASIO Buffer Size equivalency (2048 S / 48k S/s = 42.667 ms) rather than the total reported input latency (2048 S + 64 S) / 48k S/s + 1 ms = 45 ms. (This version of ASIO4ALL has and reports an additional 1 ms of input and output “Buffer Offset” latency over what is shown on its control panel slider.) The fact that Track 5 in the second recording experienced no additional delay verifies that.

Tracks 6 on the first recording shows that the MIDI input to output delay was the sum of the input buffer size equivalency and the reported output latency (42.667 + 45 = 87.667 ms). The second recording shows an additional delay of ~ 30 ms delay. The corresponding increase in reported latencies between the two recordings was (1024 + 512 – 2*64) S / 48k S/s = 29.33 ms (within the measurement accuracy).
Did I submit this "bug" report adequately and correctly?
__________________
An Engineer with OCD
Amack is offline   Reply With Quote