Is there any VST host that doesn't quantize live MIDI ?
-
- KVRAF
- 1718 posts since 3 Sep, 2003
Phrazor is itself a plugin though, or is there a stand alone version? Otherwise it would depend on the where it's being hosted.
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
Right, but it's also a host, and that's the one I tested.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.
I think I have more host application than fx and synth together on my machine
-
- KVRAF
- 3948 posts since 8 Sep, 2003 from germany
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.
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.
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
First, why did they do so from the beginning ?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.
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.
-
- KVRist
- 95 posts since 22 Aug, 2001 from US
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.)Rock Hardbuns wrote:It's not about preserving delta, all hosts do that.
While some hosts even record this incorrect delta position to tracks.
-
- KVRist
- 95 posts since 22 Aug, 2001 from US
...well you will have to take my word for it thenmbncp wrote:I couldn't try Console, as my demo period expired.
-
- KVRist
- 95 posts since 22 Aug, 2001 from US
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.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.
-
- KVRAF
- 1718 posts since 3 Sep, 2003
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 timeMotorsKill23 wrote: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.)Rock Hardbuns wrote:It's not about preserving delta, all hosts do that.
While some hosts even record this incorrect delta position to tracks.....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.
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.
-
- KVRist
- 95 posts since 22 Aug, 2001 from US
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".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
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
I trust you, so that's 4 !!!MotorsKill23 wrote:...well you will have to take my word for it thenmbncp wrote:I couldn't try Console, as my demo period expired....seriously it was my solution before Phrazor went standalone.
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.
-
- KVRAF
- 3948 posts since 8 Sep, 2003 from germany
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 ?
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 ?
-
- KVRAF
- 1940 posts since 16 Aug, 2004 from Vienna, Austria
No, but rather busy with other things.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
I'll look into the matter, but can't promise a fix date.
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
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.
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.
-
- KVRian
- 791 posts since 8 Mar, 2006 from Australia
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...