Hello, I think this is my first message in this forum, despite I dayly follow it and Ardour development. So I will introduce myself: I am Agus Terol from Alicante, Spain, and I have been using Ardour (as amateur/hobbyist musician) for several years now. I would say that from the 2.x series times.
First of all, I would like to thank all the developers their work and effort along these years, and congratulate them for all the success and achieved goals.
Recently, I have been focused on testing Ardour 6’s “Audio/MIDI Setup” window in order to find bugs and provide some feedback about its workflow. I am very excited about the complete latency compensation feature that Ardour 6 brings, and I know it has taken a long time to implement it. Also, in my opinion, if users do not proper calibrate the audio and MIDI devices, this feature could not work properly. That is the reason I am commenting here the need of polish that window, so that the users can receive better feedback about what Ardour is doing, and have a better experience, since this window appears after launching Ardour and opening/creating a session.
At the moment I have reported 6 issues (bugs and features/improvements). Please, ignore #8052 because I thought it was not created after being blocked for a while by the bug tracker.
- #8048 After calibrating MIDI, audio calibration might be required again
- #8049 “Audio/MIDI Setup” window does not wait until the user really wants to let Ardour load the current session after calibrating audio
- #8050 Add a “Cancel” and/or “Back” button in the “Audio/MIDI Setup” window
- #8051 Add a “Refresh devices” button in “Audio/MIDI Setup” window
- #8053 A MIDI device connected after opening “Audio/MIDI Setup” window appears when calibrating another MIDI device
- #8054 MIDI calibration does not produce expected results like Audio calibration does
My main goal is to have a MIDI track in Ardour that is sent to two external keyboards. Then, the audio signal of those keyboards is captured in two audio tracks. As far as I know, if MIDI and audio is correctly calibrated, the recorded audio signals will have a wave synchronized with the MIDI events. That’s partially true, because assuming that the MIDI message is sent a bit earlier by Ardour (due to the latency values got with the MIDI calibration), every device will take a time to process it and render the sound to its audio outputs. So, I assume it should be a delay there. Then, when the audio signals are captured by Ardour, they would be late, but the audio calibration values would make Ardour to move them forward in time.
For these tests, I left audio and MIDI cables used for calibration connected. So, I can record them on respective audio and midi tracks. In the case of the audio signal, I take as reference the metronome click signal, which is routed to an audio output port which is connected with a cable to the audio input port used in the recorded audio. That way, I can compare the delay of the other recorded audio signals. The metronome click signal is captured and perfectly synchronized (except under some circumstances, see bug #8048). The same technique is used with MIDI tracks. Below images illustrates this test, ran with Ardour 6 RC1-82:
As you can see in the image, I cannot achieve the desired synchronization. I am using a big buffer size of 1024 samples (and 3 periods for samples and 48 kHz) for making these errors bigger. Ardour reports 21.3 ms of latency. The audio signals are both delayed 9 ms. That value seems to me a bit high, because when playing the keyboards with headphones, I think I would appreciate that delay, but I am not sure.
However, I would have expected the MIDI signals to be not so much delayed (above 21 ms and 22 ms, respectively). Maybe there are bugs, or maybe I am wrongly understanding some concepts here and/or doing incorrect assumptions or performing wrong measurements. So, that is why I also wanted to discuss about best practices for audio/MIDI calibration. What can be achieve? What cannot be achieved?
I am sorry if this post is being very long, but I had several doubts and I did not know how to expose them atomically, because they are more or less related.
Best regards, and thank you!