Is there any VST host that doesn't quantize live MIDI ?

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

Phrazor is itself a plugin though, or is there a stand alone version? Otherwise it would depend on the where it's being hosted.

Post

Rock Hardbuns wrote:Phrazor is itself a plugin though, or is there a stand alone version? Otherwise it would depend on the where it's being hosted.
Right, but it's also a host, and that's the one I tested.

I think I have more host application than fx and synth together on my machine :oops:

Post

A few questions if I may ... (maybe also be food for thought)

What are the exact drawbacks for the host implementing this (the "not-quantizing"), or both, has this already been mentioned somewhere ?
This could certainly be some optional setting (per-track/input etc.) , couldn't it ? Like e.g. live mode vs. playback mode.

Post

plastique wrote:A few questions if I may ... (maybe also be food for thought)

What are the exact drawbacks for the host implementing this (the "not-quantizing"), or both, has this already been mentioned somewhere ?
This could certainly be some optional setting (per-track/input etc.) , couldn't it ? Like e.g. live mode vs. playback mode.
First, why did they do so from the beginning ?
1) Could be that these people where non-musicians and in their head, faster was better.
2) At that time, the full MIDI process was jitter, so a little more or less ...
3) It was maybe to expensive to calculate in realtime the correct position
4) ?

The advantage of the jitter method is that the perceptive latency is shorter. Hit 3 times a key and chances are that at least one of it will play almost immediatly, and people who just spend $$$$ on a daw will prefer to remember that one instead of the longer one.
While with the other method, you always have the longer one, as it's constant.

For a host that preserves delta positionning, it's really easy to do one or the other, just set the timestamp to zero.
For the others it may be some hard work to implement this, I'm not sure.

Post

Rock Hardbuns wrote:It's not about preserving delta, all hosts do that.
You are wrong...all hosts do not preserve the delta. As we've covered, while recording your MIDI(live input), some hosts(Cubase/Sonar) will send the events at delta position 0, but actually "print" the correct delta to the track and will play the notes back from your recorded tracks correctly(which means it will sound different while recording and playing back....completely different when your talking about small intervals such as strumming a guitar.)
While some hosts even record this incorrect delta position to tracks. :shock: ....such as my favorite host EnergyXT. Which is why I host the eXT VSTi within Live or Phrazor...in which case XT will recieve and record the MIDI data accurately.

Post

mbncp wrote:I couldn't try Console, as my demo period expired.
...well you will have to take my word for it then ;) ...seriously it was my solution before Phrazor went standalone.

Post

plastique wrote:A few questions if I may ... (maybe also be food for thought)

What are the exact drawbacks for the host implementing this (the "not-quantizing"), or both, has this already been mentioned somewhere ?
This could certainly be some optional setting (per-track/input etc.) , couldn't it ? Like e.g. live mode vs. playback mode.
IMHO....there are no drawbacks, and it should be part of the VST spec. Why the hell would you not want your performance captured accurately? ...I'm interested in hereing other peoples opinion. But think about this...you can see all the people in this thread who doubt this is even an issue....fact is when playing a keyboard with any buffer setting below 2048 it is almost impossible to detect this "jitter" of 1-2048 samples. Probably because the latency itself is distracting enough to screw up perceptions. So if all the notes are occuring exactly 2048 samples later, rather than some constantly randomizing latency of 1-2048 samples, are they gonna even notice the difference or complain? ...I bet most would not.

Post

MotorsKill23 wrote:
Rock Hardbuns wrote:It's not about preserving delta, all hosts do that.
You are wrong...all hosts do not preserve the delta. As we've covered, while recording your MIDI(live input), some hosts(Cubase/Sonar) will send the events at delta position 0, but actually "print" the correct delta to the track and will play the notes back from your recorded tracks correctly(which means it will sound different while recording and playing back....completely different when your talking about small intervals such as strumming a guitar.)
While some hosts even record this incorrect delta position to tracks. :shock: ....such as my favorite host EnergyXT. Which is why I host the eXT VSTi within Live or Phrazor...in which case XT will recieve and record the MIDI data accurately.
Ahrg. So much conceptual confusion. I accepted the erroneus use of the word in this thread for sake of not creating further confusion. That paid off big time :)

DELTA TIME = the difference between the timestamp of a midi message and the time of the start of an output buffer. So deltas do not actually get made until there is an output buffer to relate it to.

All hosts timestamps incomming midi while recording. Otherwise it is not recording. If you are observing the "quantized" behaviour on recorded material in ext, it's more likely that it simply does not make deltas for the VSTis.

So this is not an issue of delta time at all, but simply, as we have covred that hosts output messages at the first opportunity.

The solution would be to put a static delay on the messages that is greater than the number of samples in the buffer.

So, to give a more accurate answer, no hosts preserve deltas because before the output there is no delta. But all hosts do preserve timestamps.

Post

Rock Hardbuns wrote: Ahrg. So much conceptual confusion. I accepted the erroneus use of the word in this thread for sake of not creating further confusion. That paid off big time :)
Sorry mate...too many people without a grasp on this concept posting in this thread, sorry I lumped you with them. I took what you were saying as all hosts preserve the positioning relationship between MIDI data events. Which of course is not true in XT's case. ...but I see now that you "get it".
:wink:

Post

MotorsKill23 wrote:
mbncp wrote:I couldn't try Console, as my demo period expired.
...well you will have to take my word for it then ;) ...seriously it was my solution before Phrazor went standalone.
I trust you, so that's 4 !!!

I was just playing with Phrazor and this looks pretty cool.

Tried the strumming, and even with a buffer of 1024 samples (25 msec), I was able to play correctly. It's funny, as the first 1-2 bars are on time (which is wrong) and then I can see that I compensate for the extra latency, and the playing was pleasant.
At 2048 (50 msec) samples, it took me more time to compensate correctly and once in a while I played on the beat again. But with some training I will soon be able to play using a 2 seconds buffer.

When I get a few minutes I will make a little VSTi MIDI plug that sets the deltaframe field to zero, so I can switch from one method to the other.

Post

Thanks mbncp and MotorSkill23 for the replies. It seems I even haven't yet played with a host that does preserve the delta times (at least not before "printing" them), so I'm able to do some fresh tests to see how noticable this constant latency is :) (nice reason to give Phrazor a try finally)

In any case, I think there should be another thread in the DSP forum about this to "awaken" a few host developers about this, or with at least a link to this thread here, don't you think ?

Post

mbncp wrote:But now with VSTHost it's nearly perfect, nothing gets quantized.
The only problem is that changing MIDI ports settings will kill the timestamp like on the other hosts. Really weird, I hope Arakula isn't on vacation right now :cry:
No, but rather busy with other things.
I'll look into the matter, but can't promise a fix date.
"Until you spread your wings, you'll have no idea how far you can walk." Image

Post

Thanks again arakula.

I updated one of my testing tools to emulate buffer quantizing. It's a simple VSTi - MIDI plug http://homepage.hispeed.ch/mbncp/download/MidiThru.zip
Create a track in your sequencer (needs to support VSTi-MIDI !!!), fill it with 1/16th notes (using a brush tool) and route it to MidiThru. Then route the MIDI output of MidiThru to a synth using a short sound with a short attack (sidestick), and start looping it.
In Midithru, leave all parameters as is (some may crash your host), only switch Ignore Timestamp back and forth (yes/no).
With a small buffer it's hard to hear the difference, but as you increase your audio buffer, you'll start to notice the jitter (at least not sounding the same).

This time, try filling the track with 1/128 notes, and even with a very small buffer ( < 3 msec) you should hear the difference.

And this is the difference you get with a host that doesn't quantize live events (ignore timestamp = NO) and one that does (ignore timestamp = yes).

PS: In this case, Ignore Timestamp has nothing to do with the Use System Timestamp in Cubase/Nuendo.

Post

A really early (unreleased) version of Cantabile had this but I took it out because I thought it was the cause of another problem. Maybe I'll put it back in the next version...

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”