Latency adjustment

Discuss or suggest new features here.
Please do not report bugs here, use the "Bug Reports" forum instead.
Post Reply
mynameisdanno
Posts: 13
Joined: 06 Mar 2022, 18:32

Latency adjustment

Post by mynameisdanno »

Official topic in the Potential future feature Forum: viewtopic.php?t=207

Feel free to still write here in this topic for debates or larger discussions around the feature.

------------------------------------------


I know the current hardware design won't allow for dedicated knobs for real-time adjustment of per-output latency, but I would like to recommend at least providing menu-configurable latency adjustments per output. I have found that some popular gear (most often, effects pedals) have some inherent latency that needs to be compensated for when sync'd to MIDI clock. The Boss SL-20 is one example, and I've found the Eventide H9 on certain "chopper" type presets to need adjustment as well.

A range of +/- 100ms range should be adequate to adjust for this type of issue.

The Multiclock implementation for negative offsets (wait a bar after the internal clock starts running before beginning to send clock to outputs with appropriate offset applied) works fine, since local modifications to the space-time continuum are probably off the table.
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

Nice to hear Daniel and thank you for writing! :)

Are you also the one who gave me that whole list on Facebook about how many usages you have of the per-output latency adjustment? :D

I'm gonna be very open about this - there are two issues with implementing this:
1) First because of the way the MIDI Clock is sent it's actually a lot of code work - that means time to code, time to test, more troubles down the line.
(just FYI the reason the MIDI Clock is implemented in a non-standard way is how I could obtain such a low jitter)
2) The settings interface is very limited, it's basically just a knob you can turn and press, and a 3-digit LED display. So there are no possibilities for menus and like. And the list of settings is already getting very long.

So, with that in mind, what would you say to having a simple setting, a value in milliseconds (0 by default, probably 150 max) which will be a latency added on MIDI Output #2? If you need to have negative offset simply use MIDI Output #1 (which compared to Output #2 will have negative offset).

If that works, what about the audio click and the CV/Analog/DIN outputs? The easiest is for them to stay where they are, with Output #1, but I guess you would want them to be moved as well, so the setting is basically negative latency on MIDI Output #1.

Let me know :D
mynameisdanno
Posts: 13
Joined: 06 Mar 2022, 18:32

Re: Latency adjustment

Post by mynameisdanno »

Yes, that was me with the long list on Facebook!

Your solution of only providing for offset on only one of the MIDI outputs seems like a fairly elegant one. It minimizes the added complexity to the interface design, as well as implementation and testing. I also think it's "good enough" because:
1) one hopes you won't have more than one misbehaving device in your rig.
2) My only experience with devices needing negative offset to line up properly has been with ones that take MIDI clock. I think parsing MIDI clock is where some of these programmers get a little out of their depth, or don't do enough testing, and fail to minimize or internally compensate for the resulting latency (not naming names, but guitar pedal makers are the main culprits in my experience).
3) I am not a big modular guy, but I would think that devices that clock to CV/Analog/DIN sync are hopefully a little more likely to be "bang on", so not having the ability to dial in offset there should be fine.

Unfortunately, the type of offset I need to dial in most frequently is negative offset. Typically I'm trying to compensate for a device that has some internal latency, in order to bring it back into time with the metronome that everyone's playing to, or to compensate for a synth patch or tremolo-type effect with a soft attack envelope, where I want the notes to begin sounding sooner to partially compensate. These are scenarios where the MIDI clock needs to be slightly ahead of the metronome.

If you can't easily implement negative MIDI clock offset with respect to the metronome in this revision, it's probably not worth the complexity of including offset adjustment at all; positive offset is much less likely to be needed, in my experience. In fact, I'm not sure that I've ever needed positive offset with respect to the click for any reason, though I can see that someone going for a "Dilla time" feel might want to have something consistently late on the grid.

An alternate approach to getting negative offset would be to just implement an adjustable delay on the metronome audio output. Depending on what software/hardware you've implemented this thing in, this might be easier to implement. It would essentially result in a negative latency on all outputs, rather than only one of them, but many of your customers will only be trying to sync up a single device (that's most often all I'm trying to do). Of course, the truly determined can always just put a delay effect on the metronome output, set it to 100% wet, single repeat, and dial in the delay time to taste!
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

Ha ha good point about putting a delay on the metronome - did not think of that :D

I understand about the delay, and yes I guess most people would want a negative offset.

I'll experiment implementing a simple setting then, which will be a negative offset on one MIDI Port.
I'll keep this thread updated ;)
lrbouchard
Posts: 4
Joined: 16 Mar 2022, 14:42

Re: Latency adjustment

Post by lrbouchard »

Hi,

About the metronome delay, here is an other use : when I am looping guitar with a looper, I always click the record buttons some ms before my attack of the strings to be sur to get it. When using midi clock, the vast majority of midi sync guitar looper start recording right on the midi beat, so if the click is too tight on the midi beat, it is possible that the looper starts recoding some ms after the attack, loosing it. I did some test with an other midi clock with metronome and a 50ms delay was perfect in my setup.
n4Sphere
Posts: 65
Joined: 16 Mar 2022, 23:21

Re: Latency adjustment

Post by n4Sphere »

i started to get some hardware over the last year and midi is just a a miracle. ableton as a host does not work for me. so i was really looking at the erm multiclock and what i saw and heard when changing the latency with the knobs was really effective. there is one knob and some leds. it could work. maybe also with a simple shift function by holding play oder mute. i dont‘ know if negative or positive latency is needed, but having a tight midi clock where i can adjust the latency on output 2 would be beneficial.

cheers.
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

Awesome, guys, thanks for writing.

@n4Sphere: will the solution written above fit for you? There will be no knob to change it directly, i.e. the only way to adjust will be in the settings. The idea being that you set it once so it fits your needs, and that's it.
n4Sphere
Posts: 65
Joined: 16 Mar 2022, 23:21

Re: Latency adjustment

Post by n4Sphere »

everything what makes this unit more versatile works for me :)
monovan__
Posts: 3
Joined: 19 Sep 2022, 12:58

Re: Latency adjustment

Post by monovan__ »

Hi! I'm really interested in buying Midronome, but negative MIDI clock offset is a must for me. Will it be implemented in the coming batch? Thanks!
masi
Posts: 35
Joined: 16 Apr 2022, 21:57

Re: Latency adjustment

Post by masi »

monovan__ wrote: 19 Sep 2022, 13:06 Hi! I'm really interested in buying Midronome, but negative MIDI clock offset is a must for me.
Why? There are only two ports and I don't see the difference between 0 offset paired positive one and a 0 offset paired with a negative one.

Just let the slow devices use 0 offset and let the fast ones get a bit of an offset.
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

monovan__ wrote: 19 Sep 2022, 13:06 Hi! I'm really interested in buying Midronome, but negative MIDI clock offset is a must for me. Will it be implemented in the coming batch? Thanks!
Hey monovan, thanks for asking! Well Ricky Tinez (Youtuber) already said he will not review a device if it does not have the clock shift option... So that should be enough motivation ha ha :D

So I do not want to overpromise but this is definitely gonna make it to the device, and yes there is a good chance it will be implemented even before shipping (if it happens after shipping you can still upgrade the firmware to get it).

Simon
monovan__
Posts: 3
Joined: 19 Sep 2022, 12:58

Re: Latency adjustment

Post by monovan__ »

Simon wrote: 21 Sep 2022, 08:34
monovan__ wrote: 19 Sep 2022, 13:06 Hi! I'm really interested in buying Midronome, but negative MIDI clock offset is a must for me. Will it be implemented in the coming batch? Thanks!
Hey monovan, thanks for asking! Well Ricky Tinez (Youtuber) already said he will not review a device if it does not have the clock shift option... So that should be enough motivation ha ha :D

So I do not want to overpromise but this is definitely gonna make it to the device, and yes there is a good chance it will be implemented even before shipping (if it happens after shipping you can still upgrade the firmware to get it).

Simon
That's great news, thanks! And what about tempo presets? Seems like a really handy feature to just scroll through a set list instead of manually adjusting tempo before each track.
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

Plan is to send a big survey to all backers after the campaign so that you can all vote on which extra feature you want to see on the device first.

But I think the tempo presets are also very popular 8-)

At the end I'm the one taking the final decision, and I really see both tempo presets, tempo decimals, and the clock shifts as a great addition to the device, so I think they will all 3 make it eventually ;)
masi
Posts: 35
Joined: 16 Apr 2022, 21:57

Re: Latency adjustment

Post by masi »

Simon wrote: 04 Oct 2022, 12:51tempo decimals
Arturia added fine grained tempos with firmware upgrades to (some of their) sequenced gear.

I reckon they got enough requests for this feature.
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

Ok nice to know masi thanks :)
fmq75
Posts: 4
Joined: 24 Mar 2023, 11:06

Re: Latency adjustment

Post by fmq75 »

+1 for shifting midi clock. i was not interested first but now i need to get one it seems
SonicRevolutions
Posts: 2
Joined: 22 Apr 2023, 09:44

Re: Latency adjustment

Post by SonicRevolutions »

+1 for me too! The main reason for backing the project for me 8-)
thetechnobear
Posts: 3
Joined: 06 May 2023, 14:19

Re: Latency adjustment

Post by thetechnobear »

+ 1 on this

a simple offset per output would be very useful.

Negative would be handy, and should be simple to add … as I practice you just add the negative amount to every other output.
( no such thing as negative latency 😂)
Simon
Posts: 998
Joined: 09 Jan 2022, 22:08

Re: Latency adjustment

Post by Simon »

thetechnobear wrote: 07 May 2023, 13:05 Negative would be handy, and should be simple to add … as I practice you just add the negative amount to every other output.
Correct, the "negative" on one output will basically shift everything else positively. When using it as a master you probably won't notice it.

But when syncing to a DAW using Audio Sync, this means that even though you set a "negative latency" on one output, it will actually not move compared to the DAW, but everything else will move forward (then you can adjust the sync track in the DAW according to move the whole thing backwards). This can be quite confusing because of the naming "negative latency".

What do you guys think about this?

Cheers
Simon
SonicRevolutions
Posts: 2
Joined: 22 Apr 2023, 09:44

Re: Latency adjustment

Post by SonicRevolutions »

Yes please! :)
Post Reply