C'mon, no-one in this day and age actually plays instruments, it's all point-n-click, innit?!
Is there any VST host that doesn't quantize live MIDI ?
-
- KVRAF
- 4229 posts since 9 Apr, 2003 from Right here, in front of my computer...
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
Read my topic. I know that lowering the audio buffer would help (using better ans faster hardware), but I just wanted to know if there are some hosts that don't quantize MIDI on live input, to give it a try.loophead wrote:Well I dont understand your refusal to state all the hardware. So no help from here. Enjoy your new found religion.
That's all.
-
- KVRian
- 1238 posts since 12 Mar, 2002 from Kentucky
Would you believe anyone that said "Yes" or would you tell them they don't understand and wink again like something is in your eye?mbncp wrote:Read my topic. I know that lowering the audio buffer would help (using better ans faster hardware), but I just wanted to know if there are some hosts that don't quantize MIDI on live input, to give it a try.loophead wrote:Well I dont understand your refusal to state all the hardware. So no help from here. Enjoy your new found religion.
That's all.
All I need to be happy is one more VSTi.
- KVRAF
- 16792 posts since 8 Mar, 2005 from Utrecht, Holland
The hardware includes a midified guitar (Yamaha EZ?) but my conclusion is that's irrelevant. Mbncp actually has a point and can prove it scientificly. No "religion" found here...loophead wrote:Well I dont understand your refusal to state all the hardware. So no help from here. Enjoy your new found religion.
There's a work-around (latency below 1ms) and at leat one host behaving good (Herman Seib's VSTHost.) Now all he wants is to get the developers and big host software companies to get aware of this and implement it better. KVR is probably not the place the big companies are looking for feedback.
We are the KVR collective. Resistance is futile. You will be assimilated. 
My MusicCalc is served over https!!
My MusicCalc is served over https!!
-
- KVRAF
- 2608 posts since 26 Aug, 2002 from here
sorry i know nothing about how asio works - but what you seem to be saying is that the audio to fill the entire latency of the souncard - lets say 40ms - is calculated at once before going to the soundcard
i always imagined it was sent in fractions of that amount - dunno why tho
i always imagined it was sent in fractions of that amount - dunno why tho
I believe every thread should devolve into character attacks and witch-burning. It really helps the discussion.
- KVRAF
- 16792 posts since 8 Mar, 2005 from Utrecht, Holland
Correct, but ...ericj23 wrote:but what you seem to be saying is that the audio to fill the entire latency of the souncard - lets say 40ms - is calculated at once before going to the soundcard
That IS a possible implementation: request small buffers from the plugins and delivering a big one to ASIO. The host is free to do that (not likely though for efficiency)ericj23 wrote:i always imagined it was sent in fractions of that amount - dunno why tho
We are the KVR collective. Resistance is futile. You will be assimilated. 
My MusicCalc is served over https!!
My MusicCalc is served over https!!
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
There would be no point in doing so, that's why we can change the buffer size.ericj23 wrote:i always imagined it was sent in fractions of that amount - dunno why tho
For each buffer cycle, the host will first send the MIDI it has in stock to each plug who wants it.
Then it will ask each plug to fill the buffer, which is always (AFAIK) the size of the ASIO buffer.
Then the host will wait for the ASIO driver callback to send that buffer.
Off course, the cost for filling a 2048 samples buffer is higher than a 64 samples one, but most plugs will require some extra calculation which is not dependent of the buffer size, which can overflow the time allowed to fill the buffer. And if the buffer is not ready, that's when we get cracks, audio gap or whatever.
With a larger buffer, the extra calculation is made less often, that's why larger buffers allow more plugs.
Now I hope than one day, a host will be able to deal with 2 buffers at the same time, one big one for the tracks already recorded (the buffer can be filled in advance) and one for the live playing.
This is what I'm doing now, using one host with a large buffer and another one with a small one for live playing, and this works fine, I even have SIR, master fx running while playing/recording live MIDI, off course not on the "live" host.
This way, I never have to freeze ( = song death)
EDIT:
And yes, in this case the host would then split the large buffer and mixing it with the small one.ericj23 wrote:i always imagined it was sent in fractions of that amount - dunno why tho
New topic: Is there any host than can deal with 2 different buffers ?
-
- KVRist
- 95 posts since 22 Aug, 2001 from US
Besides Phrazor, I believe Console is another host which preserves the Delta positioning on live input.
Live has a seperate buffer for plugins and another for audio....also preserves delta positioning.mbncp wrote:New topic: Is there any host than can deal with 2 different buffers ?
-
- KVRAF
- 1718 posts since 3 Sep, 2003
It's not about preserving delta, all hosts do that. It's about introducing a consistant delay rather than playing notes as fast as possible, because the latter is unpredictable and causes notes to bunch up if you strum a guitar.
mbncp > This topic is faschinating in how much confusion it has caused.
I realized that it is of interest for me too, since I like to use a non vst sequencer with midi yoke to play stand alone VSTs. A static delay is definaatly better than as fast as possible in this scenario.
VST host is OK, but it doesn't offer any routing caps, does it?
mbncp > This topic is faschinating in how much confusion it has caused.
I realized that it is of interest for me too, since I like to use a non vst sequencer with midi yoke to play stand alone VSTs. A static delay is definaatly better than as fast as possible in this scenario.
VST host is OK, but it doesn't offer any routing caps, does it?
-
- KVRAF
- 1718 posts since 3 Sep, 2003
Oh, actually, it could be solved by holdinging on to the delta time, only applying it to the next buffer rather than the one that the midi message actually came in during..if that's what you meant?
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
It kind of is that, all host will preserve correct timestamp, but only on playback, while a few other host will preserve it on live input.Rock Hardbuns wrote:It's not about preserving delta, all hosts do that.
correctIt's about introducing a consistant delay rather than playing notes as fast as possible, because the latter is unpredictable and causes notes to bunch up if you strum a guitar.
Yes, if you use yoke to send MIDI to a vst host and you set a large buffer, your MIDI will sound clumsy.mbncp > This topic is faschinating in how much confusion it has caused.
I realized that it is of interest for me too, since I like to use a non vst sequencer with midi yoke to play stand alone VSTs. A static delay is definaatly better than as fast as possible in this scenario.
VST host is OK, but it doesn't offer any routing caps, does it?
That's why a host like VSTHost (or others that I will test) delays the output to preserve consistent playback, even if that increases latency.
I'm a bit surprised that not many people where aware of that, but right now is a thread going on (I didn't started it) in the VST developer forum about VST parameters and some people didn't realize that parameters are quantized like MIDI input, and that even on playback.
And another one who though that delta of MIDI was always zero, even on playback
So, if a plug builder who can actually see what's going on is missing a few points, I can easily understand that "common" users are not aware about these problems as they are not easy to detect, at least when using small audio buffers.
It seems that VSTHost is getting better and better, you can do MIDI and AUDIO routing, like Ext, and it even supports sending sysex to VST plug, something that only Cubase/Nuendo (AFAIK) can do (a must for my EZAG vst plug).
But there is that weird problem when selecting a different port, after that, all timestamps are set to zero too.
And to clarify a little. Most (all?) live MIDI events never make it to the next buffer. Let's start from the point where the host passes the buffer to the ASIO driver.
1.1) Pass buffer 1 to the ASIO driver
1.2) Send ALL pending MIDI events to all VST(i) plugs
1.3) Ask each plug to fill buffer 2
1.4) Wait for next ASIO call
2.1) Pass buffer 2 to the ASIO driver
2.2) Send ALL pending MIDI events to all VST(i) plugs
Now if a MIDI event (which is always from another thread and can arrive at any time), arrives after 1.1 and before 2.2, they will only play in buffer 3.
The reason is that the main job is 1.3, and there is no way a host will wait some late incoming MIDI.
A host, if it sees that the plugs are not to hungry, could wait a little between 1.1 and 1.2, to try to get some more MIDI events that could still make it in buffer 2. But I don't think any host does that.
So when we hear buffer 1, any MIDI sent to the host will only make it in buffer 3. Most host will place all pending events at the beginning of the buffer (timestamp=0), while some will preserve their relative delta, but in this case they will still play in buffer 3.
Sorry for my technical garbage
- KVRAF
- 10286 posts since 17 Sep, 2004 from Austin, TX
-
- KVRian
- Topic Starter
- 1239 posts since 17 Jul, 2003
Just checked Phrazor Prewiev 6 and Live 5.2 Demo and indeed both preserve live delta position of MIDI events.MotorsKill23 wrote:Besides Phrazor, I believe Console is another host which preserves the Delta positioning on live input.
I couldn't try Console, as my demo period expired.
So that's at least 3 vst host that don't quantize Live MIDI : VSTHost, Phrazor, Live and maybe Console.
Can't believe I had to go thru all that just to get that answer
That's neat, but I'm a 100% MIDI guy.Live has a separate buffer for plugins and another for audio[..]
What I would like is a host, when enabling a MIDI track for recording, that the destination plug(s) and related fx would be treated as high priority with a smaller buffer and off course special routing, and the other tracks, with a "much" larger buffer gets treated when the host is busy doing nothing.
Even better if this would work within the same vsti synth (multi-channel), but this would certainly require an update of the VST SDK.
