New UI Lag Rate MIDIMONO v1.5
New UI Lag Rate MIDIMONO v1.5
Don't get me wrong, I like Waverley Instrument's practice of having on-going improvements. However, it would be nice to have the ability for user priorities. I understand the reason behind maximizing sound v. UI updating, but for me the extreme lag with the MIDI IN Led is too creepy. Let's say I have 8 instances (or more) in a live performance. The lag means I do not get visual feedback as to which of the 8 (or more) is triggering. Also, a high percent of note offs get swallowed. As a result there is almost no correlation between keypresses and the MIDI IN LED.
Oddly enough, the Amp Env. LED is more consistent than the MIDI IN LED when the Atk is 0.
Oddly enough, the Amp Env. LED is more consistent than the MIDI IN LED when the Atk is 0.
Last edited by Steve W on Wed Feb 01, 2023 5:19 pm, edited 1 time in total.
- Waverley Instruments
- Posts: 147
- Joined: Thu May 05, 2022 2:10 pm
Re: New UI Lag Rate MIDIMONO v1.5
Hi Steve,
Why do you think the UI lag rate has changed in v1.5?
Because... it hasn't
The Voltage Modular default GUI update timer runs every 50ms. In MIDIMONO, we've changed the timer to run every 25ms and it's been like that for quite some time now.
For anyone else reading: please note this is the GUI update only and doesn't usually reflect what's actually going on in the processing code.
Hope that helps. -Rob @ WI
Why do you think the UI lag rate has changed in v1.5?
Because... it hasn't
The Voltage Modular default GUI update timer runs every 50ms. In MIDIMONO, we've changed the timer to run every 25ms and it's been like that for quite some time now.
For anyone else reading: please note this is the GUI update only and doesn't usually reflect what's actually going on in the processing code.
Hope that helps. -Rob @ WI
Re: MIDI IN LED Problem MIDIMONO v1.5
MIDIMONO has been updated to v1.5 and may be of interest to those who like to MIDI CC their parameters or wiggle their mod wheels! A selection of parameters have been optimised for performance to almost sample-rate accuracy. This includes mod wheel assignments, filter cutoff, envelope amount and resonance, sub, noise, glide and VCO 1/2 mix. What does this mean? Well... if you use your mod wheel a lot, the response should be super snappy and if you're modulating CC parameters with a sequencer, then the chosen few should be very responsive, even at fast tempos. Please note that the UI will still "lag" as it's on a different, and much lower refresh rate.
I will reboot my PC and see if its an issue just on my PC. In my experience modules that have a MIDI IN LED are usually consistent. That is, when the host light flashes, the modules are usually in sync. That's why I thought it was odd that the Env LED (atk = 0) matched the Host, but the MIDI IN LED was not in sync with MIDI IN. I will reboot now and let you know if that fixes the issue.Waverley Instruments wrote: ↑Mon Jan 30, 2023 10:20 pm Hi Steve,
Why do you think the UI lag rate has changed in v1.5?
Because... it hasn't
The Voltage Modular default GUI update timer runs every 50ms. In MIDIMONO, we've changed the timer to run every 25ms and it's been like that for quite some time now.
For anyone else reading: please note this is the GUI update only and doesn't usually reflect what's actually going on in the processing code.
Hope that helps. -Rob @ WI
So, for the second time today, I rebooted. Maybe I didn't notice it in previous versions, but MIDI IN LED doesn't match the HOST MIDI IN LED. Maybe its not a lag issue. Maybe on/offs are being dropped. Maybe its not supposed to track note ons and note offs. But it just seems odd that with short envelopes, the AMP ENV doesn't have the problem.
On one of my patches with 4 instances, I channelize the HOST with MIDISPLITCH (channels 1 -> 4). I get the same problem on all 4 instances. The MIDI IN on MIDISPLITCH blinks in sync with the HOST (which matches keypresses). Also, each respective OUT match the keypresses, the HOST LED, and the IN LED and the ENV GEN with the short envelope. But, the MIDI IN of the MONOMIDI consistently has the issue--the LED status does not match. Also, I connected the CA MIDI OUT module to each MIDI OUT of MIDISPLITCH one at a time. The LED matched all of the others except MONOMIDI IN LED.
I also tested this issue without channelizing the midi data, that is directly from the HOST to the MIDIMONO (that is, not using MIDISPLITCH). Same problem.
Another test yielded the same problem. Four cables from the HOST, one to each of the 4 instances, all having short envelopes. I also had a cable to the CA MIDI Out module. The problem was even more striking: with repeated keypresses, all of the other MIDI LEDs (plus the Amp Env.) are in sync, but the MIDIMODO MIDI INs all blink differently from each other (and are not in sync with the other MIDI LEDs).
NOTE: The HOST LED stays lit for a slightly longer time (both note ons and note offs) but other than that it is always in sync with MIDISPLITCH and the AMP ENV (with short envelops).
Maybe this issue will disappear overnight.
Last edited by Steve W on Wed Feb 01, 2023 5:22 pm, edited 1 time in total.
- Waverley Instruments
- Posts: 147
- Joined: Thu May 05, 2022 2:10 pm
Re: New UI Lag Rate MIDIMONO v1.5
Thanks for the extra info Steve, I'll do some investigation.
In the meantime, initial thoughts are that Voltage Modular / host LEDs may be on the default refresh rate of 50ms, so would potentially be out of sync and stay lit longer, depending on how they handle that. MIDIMONO is our only module that has a 25ms refresh rate, so could also potentially be different.
Also the envelope LEDs will reflect the current state of the envelope at the time they are refreshed, whereas MIDI in / out works on a flag basis:
If anything is sent or received on a MIDI port during processing, a flag is set. When the UI updates (every 25 or 50ms) the LED lights if the flag is set, then the flag is reset. In between that time, the flag might be set again during processing. It's a fairly standard way of doing this.
Finally, I don't know for sure, but my guess is that the UI update in Voltage Modular runs at a lower priority than the audio processing. For more complex setups, we might not see the UI get updated at the specified refresh rate, but I'm just guessing here - I don't know how Voltage Modular handles that.
-Rob
In the meantime, initial thoughts are that Voltage Modular / host LEDs may be on the default refresh rate of 50ms, so would potentially be out of sync and stay lit longer, depending on how they handle that. MIDIMONO is our only module that has a 25ms refresh rate, so could also potentially be different.
Also the envelope LEDs will reflect the current state of the envelope at the time they are refreshed, whereas MIDI in / out works on a flag basis:
If anything is sent or received on a MIDI port during processing, a flag is set. When the UI updates (every 25 or 50ms) the LED lights if the flag is set, then the flag is reset. In between that time, the flag might be set again during processing. It's a fairly standard way of doing this.
Finally, I don't know for sure, but my guess is that the UI update in Voltage Modular runs at a lower priority than the audio processing. For more complex setups, we might not see the UI get updated at the specified refresh rate, but I'm just guessing here - I don't know how Voltage Modular handles that.
-Rob
Re: New UI Lag Rate MIDIMONO v1.5
Thanks for the reply and your willingness to look into the matter. When I have a chance, I will look for any other modules I have that have MIDI IN LEDs to compare.
Yesterday, I also used Andrew Macaulay's Midi Display module to test MIDIMONO. I grabbed a few more that have LEDs. Even though the duration differed for some, they were all in sync with the HOST. As well, where there were MIDI OUTS, those were in sync. The MIDI IN on MIDIMONO had missing or delayed blinks and were not in sync.
But it sounds great!!!!!!!!!!!
Yesterday, I also used Andrew Macaulay's Midi Display module to test MIDIMONO. I grabbed a few more that have LEDs. Even though the duration differed for some, they were all in sync with the HOST. As well, where there were MIDI OUTS, those were in sync. The MIDI IN on MIDIMONO had missing or delayed blinks and were not in sync.
But it sounds great!!!!!!!!!!!
- Attachments
-
- MIDI IN LEDs.png (246.45 KiB) Viewed 5102 times
Last edited by Steve W on Wed Feb 01, 2023 5:25 pm, edited 3 times in total.
- Waverley Instruments
- Posts: 147
- Joined: Thu May 05, 2022 2:10 pm
Re: New UI Lag Rate MIDIMONO v1.5
No problem, although keep in mind there's no standard way of doing this - it's totally up to the crazy developer how this is handled! So it's probably going to vary from module to module / developer to developer. -Rob
Re: New UI Lag Rate MIDIMONO v1.5
Not sure why the MIDI INs on other Waverley Instruments I tried are in sync but the MIDIMONO isn't. I hope there's some difference in the code you can find that might account for it.
- Waverley Instruments
- Posts: 147
- Joined: Thu May 05, 2022 2:10 pm
Re: New UI Lag Rate MIDIMONO v1.5
The only difference (as far as I know...) is the UI update refresh rate, i.e. 25ms vs 50ms.
But just so I know we're on the same page, we're agreed that the UI update is never going to truly reflect what's happening in realtime, right?
Otherwise you'd have to refresh the UI at 48KHz
PS. Missed the bit about it sounding great - we're glad you like it!
Anyway, it's on the list of things to investigate, just in case there's something odd going on.
Cheers, -Rob
But just so I know we're on the same page, we're agreed that the UI update is never going to truly reflect what's happening in realtime, right?
Otherwise you'd have to refresh the UI at 48KHz
PS. Missed the bit about it sounding great - we're glad you like it!
Anyway, it's on the list of things to investigate, just in case there's something odd going on.
Cheers, -Rob
Re: New UI Lag Rate MIDIMONO v1.5
If you are talking about real time accuracy to the nanosecond, you are correct. After all MIDI communication still uses serial data even though USB MIDI can pump serial data faster than DIN-based MIDI. It takes time for bits in a succession of three note on/off bytes to pass to be communicated, so it is not totally instant.Waverley Instruments wrote: ↑Tue Jan 31, 2023 3:41 pm But just so I know we're on the same page, we're agreed that the UI update is never going to truly reflect what's happening in realtime, right?
I think we have different notions of what constitutes a UI.Waverley Instruments wrote: ↑Tue Jan 31, 2023 3:41 pm Otherwise you'd have to refresh the UI at 48KHz
- Waverley Instruments
- Posts: 147
- Joined: Thu May 05, 2022 2:10 pm
Re: New UI Lag Rate MIDIMONO v1.5
OK, to be precise, I mistakenly used the term realtime instead of sample rate i.e. 48KHz.
In the module, MIDI messages will be "seen" at (virtual) MIDI ports at the sample rate. My understanding is that MIDI data transferred from one module to another will occur at the sample rate, so the receiving module will get the MIDI data at the next sample. I don't know how familiar you are with Voltage Modular development, but MIDI data will typically be handled in a block of code that is executed 48000 times per second, i.e. the sample rate.
You then have some other code that gets executed that updates the UI - LEDs for example... This might be every 50ms, unless the developer has specified something else. I'm talking specifically about UI refresh rate.
Typically with DSP, you don't update the UI every time "something" changes. The signal processing and UI updates are different blocks of code executed at different intervals, on different threads with different priorities.
Hope that makes sense, -Rob
In the module, MIDI messages will be "seen" at (virtual) MIDI ports at the sample rate. My understanding is that MIDI data transferred from one module to another will occur at the sample rate, so the receiving module will get the MIDI data at the next sample. I don't know how familiar you are with Voltage Modular development, but MIDI data will typically be handled in a block of code that is executed 48000 times per second, i.e. the sample rate.
You then have some other code that gets executed that updates the UI - LEDs for example... This might be every 50ms, unless the developer has specified something else. I'm talking specifically about UI refresh rate.
Typically with DSP, you don't update the UI every time "something" changes. The signal processing and UI updates are different blocks of code executed at different intervals, on different threads with different priorities.
Hope that makes sense, -Rob