Is this normal? (midi behaviour)

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

Say I have a project running with a quite a few plugins that introduce latency (eg look ahead compressors, filters etc). Lets say this latency is 120ms. So when I press a note on my midi controller, the note will sound 120ms after I hit it.

Now, I want to record a live midi piano with my midi keyboard, so I press record and play away. To make the piano sound in time with the mix, obviously i need to play a bit early (which would be around the 120ms mark). So I perform adjusting to the latency using my ears.

Finally, when I look at the midi notes on the sequencer, all the notes have been recorded 120ms early, and therefore playback very obviously early relative to the mix.

My question is - is this NORMAL midi behaviour?

Meaning that if you have any latency in your song, your midi performances will record early unless you somehow learn to perform hearing everything completely out of time?

I would really appreciate any light people can shed on this topic!!

I am using Cubase 4 with a Konnekt 24D and MOTU microlite midi interface.
http://www.youtube.com/reflekshun
Music Producer / Audio Engineer

Post

the note will be recorded when you play it, not when you hear it.
:ud:

Post

Do you have the "Use system timestamp" option activated?

Reducing your hardware audio buffers will decrease latency. It will probably distort, but since it's MIDI you're recording, that's not a problem. Just knock them back up after tracking.

Also, you probably need to use emulated ports for your Motu interface. Couldn't swear to it, of course, but there are other Motu devices in the list for port emulation.

Here's a good post on the topic at cubase.net

http://www.cubase.net/phpbb2/viewtopic. ... 112#617112

Also, as Vurt just said (I was posting at the same time), the MIDI will be recorded when you play it, not when you hear it.
Please understand that this is coming from someone who quotes Terry Pratchett - Melkor

Post

Thankyou vurt and hackenslash. Its nice to have that cleared up to know its not my software or hardware thats faulty. (I have tried emulated ports + timestamp options with no noticable effect). The problem is not that I'm experiencing latency, I'm responsible for that by adding certain plugins. The problem is in recording midi according to what I hear. (especially drums or other percussive parts)

I had memories of recording with soundblaster live massive latencies and everything still playing back in time?? Or am I tripping? haha I'm sure of this being possible in the past.. Maybe I'm dreaming!

3 questions:

- Is there any way within cubase (or elsewhere) of finding out the current total latency in ms? (perhaps then I can accurately move the midi back in place after recording)

- Is there some sort of plugin or app, that will detect the plugin latency, then move the recorded midi notes accordingly?

- Is there a clock that the audio interface uses that I can perhaps link the midi to? I'm confused! I want to know more about clocks and syncing perhaps I'll google.

I know this may sound trivial to some, but I often need very tight timing but with human touch (not quantized or 'humanized'). Especially for recording electronic drums.

Thanks once again anyone who can lend a hand. I really appreciate it!
http://www.youtube.com/reflekshun
Music Producer / Audio Engineer

Post

it shouldn't be possible to have the notes recorded early - this is a bug in the host where the midi input is being over-compensated.

simple solution: move the events forward or backward as needed and quantize.

there is no such thing as midi latency - only audio latency. only the audio output is delayed. midi should remain unaffected. a hardware timer measures the time at which midi input events occur and the midi driver translates to the os' clock.

this is one major problem with using software instruments while also recording midi input. you could try routing your midi tracks to a hardware device rather than plugins while you're recording, then work with the plugins after you've already got the midi input recorded.

you could also do over-dubbing, however if there is latency on the audio output you'll face the same problems unless your audio input is from a hardware source.
Is there any way within cubase (or elsewhere) of finding out the current total latency in ms? (perhaps then I can accurately move the midi back in place after recording)
you never need to know the audio output latency, you only need to line things up to the proper points in your track. a bar is always a bar, latency doesn't change that. latency is completely irrelevant when recording. it's only a performance issue.

Post

aciddose: thankyou for your reply. Wow what a flaw in the use of virtual instruments! Quantizing is not usually an option for me and I am often recording solos over busy mixes (naturally i will usually do those last) and quantizing is out of the question there.

I wanted to know how much latency plugins were introducing, because that is essentially how much earlier I am playing the midi keyboard while recording with high latency. With this amount I can more accurately move the midi back into place. It is not a bad suggestion to route midi to hardware while recording, then back to vsti for playback. However Alot of the time it is critical for me to play by ear especially with drums and piano parts. I need to hear the tone of the piano at all times as these things are very sensitive to velocities and stuff.

So I guess I will have to resort to 'contrain delay compensation' button in cubase. Sliding the a midi performance and guessing where it should be is VERY unprofessional and unpredictable!! I didn't know midi was so limited in this way, and I'm quite surprised I'm the only one who seems to have a problem with it. The 'current' latency is surely easy for the computer to learn and apply to the midi notes being recorded, so that how something is recorded sounds the same when it is played back. Am I running on some completely inhuman logic or something lol?

Once again, thankyou for the enlightenment all :) and I am shocked! :-o :-o :-o
http://www.youtube.com/reflekshun
Music Producer / Audio Engineer

Post

yes, you are applying inhuman logic.

you shouldn't have to guess where a part goes. are you composing midi in cubase? in that case, you absolutely need one of these things:

1) zero, or very low latency audio card
2) hardware for auditioning melodies, like a mt-32 or whatever
3) learn to compose correctly, with the proper workflow

actually, i'd advise that you get all three of these things.

- it'll be impossible to compose correctly "by ear" with any more than 20ms of latency. any more than 5ms is a total disaster, you should aim for 1-3ms.

- it's silly to compose by ear in the first place. get a hardware unit like a mt-32 or some other module so you can play melodies in real time over top of your existing composition. audition your parts, then play them out and record them into the host. line everything up to the proper time-base of the composition and quantize at some level, either by hand or using a tool. try turning the audio output OFF while you're actually recording the part - all you need is a metronome, if that, while simply recording your already decided upon melodies.

- who says you need to even play melodies out on a keyboard? try composing some tracks by the mouse, or get a tracker and use the keyboard the good old way.

- learn about multi-tracking and over-dub using either your daw, or an external multi-track. cubase is a brilliant multi-tracker and is a much better multi-tracker than it is a midi composition tool. learn to use this functionality correctly.

- understand the workflow of all these methods and develop your own workflow based upon the methods you prefer to use. the fact that you say you'll need to "guess" how to line up parts gives me the impression you're really, really novice. i'm not even able to understand how you could possibly need to ever "guess" where a part lines up, or what the tempo / timebase / quantization of a part is or should be. unless i really am not getting what you're trying to do, you should assume you're doing it all the wrong way and learn to do it correctly.

try asking some more specific questions if you have any problems. for example, if you have one midi part playing through a vsti (bass) and you want to add another part (lead) beside it, then you don't know how to line up the parts correctly, describe that situation exactly and somebody will be sure to give you a hand to learn the process.

Post

more on the "inhuman logic"..

if you're recording some solos, adding a part over top of a piece of audio the first thing you need to do is find the exact tempo of that piece and all tempo changes - track the tempo perfectly or as close as you're capable so that the audio is lining up perfectly on every bar with the midi. that way you won't need to guess about anything and you can perfectly quantize your parts.

you should _never_ attempt to record a part "live" over existing audio... that's just silly and it defeats the purpose of having these tools in the first place.

if you want your melodies to remain "humanized", quantize with a lower "threshold" or "strength". i don't use cubase so i'm not sure if this option is even available, but it should be. there should be an option to quantize only events which are not within a certain range, as well as an option to quantize only events within a certain range.

if your source audio has a lot of erratic tempo changes, try getting your band or whatever to play to a metronome so everything is lined up correctly in the first place. if it isnt, you're in for an awful lot of trouble fixing the tempo of your project to the audio. if you're going to over-dub live, although i've already said you never should do this, you'll need to first record your dub solo with a marker (a beep, or whatever) on a known event like a kick. that way you can line it up to the audio after recording without having to worry about latency.

if you're dealing in audio only - deal in audio only. treat vsti as hardware audio sources and record their output as audio. if you're doing hybrid, or all midi work - you absolutely must have an accurate tempo in your project.

of course when i say "absolutely must", i'm only talking about what you need in order to avoid wasting hours of your time doing brainless monkey-work lining things up and never getting perfect results.

Post

Aciddose: thanks again for your input, however I dont think you quite understand what I'm getting at.

My style of composition is largely by ear, that is my strength. For me personally this is the correct way to compose. For others it isn't but to each his own :)

It just so happens that I'm often recording detailed two handed piano solos, so iterative quantize or click composing isn't going to be too effective. In the past I have had to:

Move midi roughly in place, select key sections with less adlib and iterative quantize, then manually fix the little details if needed.

My point is: this is all possible, but far from efficient or predictable.

A common workflow for me is to buildup parts largely by playing in live (this is fine in the beginning, but as more fx start to be introduced, so does longer latency, and therefore midi being recorded progressively earlier, which needs to be shifted after recording.

A soaring violin solo with loose timing and manual vibrato or detailed piano solos these are things simply not worth trying to click in with a mouse. I am aware of the options where clicking is a good thing, and I use them, and with other parts, full quantize is a nice fix.

My Audio Interface latency is about 5ms (even 10ms doesn't bother me). However the problem is rather in plugin latency rather than soundcard latency.

Anyways, I'm pretty unimpressed by midi integration at the moment haha. It has its charms, but I'm a bit surprised that there isn't some sort of plugin or solution that makes this issue transparent. Well, contrain delay compensation button - here we come!

Thankyou again for all your suggestions :)
http://www.youtube.com/reflekshun
Music Producer / Audio Engineer

Post

it sounds like your problem is all based upon a lack of bothering to work by metronome from the start. if you start your composition with proper timing there will not be timing issues. if you're using this stuff like a scratch-pad, well, you won't get _any_ of the useful features to work for you since they're all designed for and wholly based upon a work-flow where the timing is known.

you might want to seperate the two, first use a scratch-pad to get your composition down, then put it into a proper notational format.

what i'm trying to say is that your problems all seem to be based upon the fact you're not working from the beginning with a proper idea of the timing in your pieces.

Post

"because that is essentially how much earlier I am playing the midi keyboard while recording with high latency"

i forgot to mention, you've got this completely backward. you're playing the notes too late, not too early.

edit:

you _should_ be playing the notes too late. you need to have an instant feedback so you can hear when you're actually playing the notes. the notes should be in-time with the audio output from cubase. as far as i know, cubase compensates midi and audio input for latency, meaning that if there is 150ms latency the midi will be set back 150ms.

i get what you mean, if you're compensating for audio latency by playing too early, but this is just silly. by compensating -150ms, you're severely limiting yourself. a lot of rhythmic modulations require feedback, for example playing a swing. if you have 150ms latency the feedback will be delayed by 150ms and your brain won't be able to set up the required oscillation in-phase.

do you really need effects which introduce this kind of latency while you're merely recording the melodies? would it hurt so much to turn them off?

i'm a bit confused at exactly what your point is because you're saying that you want to perform live and you can't be bothered to edit notation, line things up or quantize, and you also say you are not able to correctly line up parts without "guessing". none of that makes any sense to me. i can completely understand the issues you might have with recording listening to audio with that kind of latency - the only real solution is to use a zero latency instrument so you can get feedback in real-time.

it may be a "eat your cake and have it too" issue. you'll just have to either give up with the software instruments, or get in there and learn to line up and quantize your parts. you can't have both.

Post

No such thing as MIDI latency??? Of course there is. There is always a degree of latency, because electrons travel a finite speed. Add this to the fact that MIDI is buffered, you have more latency (and jitter). While it may not be latency to a significant degree, it's still there, and it's misinformation to say otherwise.

Also, it seems you don't quite understand th OP's original post. He's playing early to compensate for audio latency, so he is playing too early. He's offsetting his latency of 120ms by playing the same amount early. Seems fairly straightforward.

Oh, and justed spotted this.
you should _never_ attempt to record a part "live" over existing audio... that's just silly and it defeats the purpose of having these tools in the first place.
What drugs are you on? Some of what you've said in this thread is true, but overall it constitutes the worst advice I've ever seen on any audio forum. Sorry.
Please understand that this is coming from someone who quotes Terry Pratchett - Melkor

Post

you should probably read the complete post before you agree/disagree with any specific sentence therein.

what i actually said was: you should never record over a audio clip without first syncing the project tempo track to that clip, otherwise you're missing out on all of the host's features such as tempo sync, quantization and so forth.

Post

I read all of your posts in this thread, and I didn't quote you out of context. I quoted exactly what you posted. I will concede on this point that perhaps you weren't complete in what you meant to say, in which case, my apologies. I still stand by my appraisal, though.
Please understand that this is coming from someone who quotes Terry Pratchett - Melkor

Post

it sounds like your problem is all based upon a lack of bothering to work by metronome from the start.
This problem occurs when everything is locked to the metronome. I dont think you quite understood my problem there.
as far as i know, cubase compensates midi and audio input for latency, meaning that if there is 150ms latency the midi will be set back 150ms.
This is exactly what I'm getting at. If someone can confirm or deny this I would really appreciate it. But according to vurt and hackenslash. Midi will record when you play it, not when you hear it.

Thankyou :wink:
http://www.youtube.com/reflekshun
Music Producer / Audio Engineer

Post Reply

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