MIDI delay recording

UHE is now closed. For Technical Support from Ableton, please go here: http://www.ableton.com/support
Locked
bry2k
Posts: 20
Joined: Fri Oct 06, 2006 1:15 am

Post by bry2k » Sat Apr 07, 2007 9:00 pm

Amaury wrote:I'm still not sure if I would like a software to shift my performance after I played it while hearing it, means that what I will get will be earlier than what I heard when playing... but I may not fully get it.

Regards,
Amaury
Amaury, you aren't getting it. You have this idea in your head that the way Live is dealing with latency correctly, and that any other way isn't going to work.

The fact of the matter is, Live is dealing with this problem the wrong way. You clarified what is wrong with Live when you wrote:
-If monitor is ON, the note is recorded later, but if for example you are monitoring a soft synth, it is recorded so you'll hear the playback as you heard the performance when you were playing.
That is the entire problem. "If monitor is ON, the note is recorded later...".

Why can't monitor be on, and the note gets "recorded later" because that "later" amount represents the total latency, then the note gets shifted backwards after the record pass by the amount of system latency present so the note position on the timeline reflects the musically correct location where it will be heard, then delay compensation takes care of the latency in the same way as it does with the track whose monitor is off.

If you understand why the monitor OFF tracks make sense, then surely you can understand the monitor ON tracks DO NOT make sense.

The note needs to be on the timeline in a position that correctly represents where the note will be heard. Presently, that is not the case with Live, which makes editing, or even looking at a performance IMPOSSIBLE (other than if you are fully quantizing it). If you are looking at the timeline to see what you played, and it shows you notes that are in a different location than where they will be heard when played back, that is unacceptable. Delay compensation must take place while still recording notes in the proper place on the timeline. Therefore:

Pro Tools: "Auto compensate for delays after record pass."

Simple! @#$@#$@#$ :-)

I can't explain this any better than I have. Please gain some perspective. Read the Pro Tools reference guide. Unlearn what Live has taught you for a few minutes. Please. :-)

-Bryan

bry2k
Posts: 20
Joined: Fri Oct 06, 2006 1:15 am

Post by bry2k » Sat Apr 07, 2007 9:42 pm

Amaury wrote:the thing is, if you monitor devices on the track, when you hit a note, the sound comes later, according to the latency of the devices.
So, if monitor is ON, and you play and record notes, you hear the sound delayed.
Now, when playing back, the delay of the devices will be compensated, so, if the notes were recorded 'where you played them', you wouldn't hear what you have done while recording. The fact that the notes are recorded late ensures that you hear what you heard while recording.

that is certainly ok with small latencies, as a player can adapt to a small latency, so he will play notes 'early', to hear the sound 'on time'. Then, the notes are recorded 'late' according to the devices latency, and when playing back the track, it sounds on time.

To put it in another way: imagine a 10 ms latency. When monitoring the sound, the sound comes 10 ms after hitting the notes. the player 'adapts' to these 110 ms, so he plays the notes 10 ms early.

-If the notes were actually recorded where he played them, means 10 ms early, on playing back, the sound would be 10 ms early, as Live compensates the latency of the devices on play back.
-As it is right now, the player plays the notes 10 ms early, but it gets recorded 10 ms after he played them, so, on play back, while the 10ms latency is compensated, he will hear the sound as he played it.

Now, when dealing with higher latencies, it can be a real problem. But the real problem would be to reduce the latency while monitoring.

regards,
Amaury
Now I understand the part of the equation that you are adding to this to confuse yourself. Again, I refer back to how Pro Tools deals with this in a much better way than Live and most other DAWs.

It's called "Timestamped MIDI". OS X implements it in CoreMIDI. The Digidesign MIDI I/O implements it. I believe Windows/Vista can do this too.

Lets go back to a real world latency scenario for a moment - in the range of 5-10ms as is typical with 256/512 samples of latency.

Forget the player "adapting" to play 10ms early for a moment. That is possible, but it is UNCOMFORTABLE and all decent players avoid it and/or complain about it, including me. Lets just accept, as I KNOW actually happens in the real world, that what really happens is that the player falls into a human groove centered around hitting the keys when the OTHER sounds he is playing along to (metronome, other recorded parts, etc) actually hit his ears. Players don't adapt and play early to accomodate latency. Rather, a good player PREDICTS when to play because he feels the groove of the tempo, and hits the keys at the same time as the sounds he is hearing and playing along to.

So we have a metronome: tick-tock-tick-tock....1 and 2 and....

A bar of metronome goes by. The player is experienced and feels the groove of the tempo. Now Bar 2 comes along....

"1" hits the players ears. He's a tight player. He hits the keys exactly as "1" hits his ears.

In Pro Tools, the MIDI event representing when the player hit the keys enters the hardware MIDI interface (in this case a Digidesign MIDI I/O) and gets timestamped with a system time: the time when the player actually hit the keys.

That note stamped with time information enter the OS, enters Pro Tools, and gets placed on the track exactly where it was timestamped, right at the exact same time as the "1" metronome event.

That event triggers the soft synth the player is playing. That audio output begins traversing the host latency of the system.

10ms later, the synth the player is playing is heard (after passing through the host latency).

(If there are other delays in the session, such as plugins on other tracks that the software is delay compensating everything for, they are ignored in Pro Tools during recording. Only the host latency is unavoidable. Record tracks - ie, tracks in "input", are monitored without delay compensation - only host latency is relevant).

Therefore, events are heard when they are played plus host latency, which, if it is in a low enough acceptable range such as 5-10ms, does not bother the player. I try to keep my host latency at 256 samples while recording, which is about 6ms of latency. That feels fine.

But back to the main point: the "input latency" is entirely eliminated by the timestamped MIDI. The note is placed on the timeline where it was heard by the player relative to other tracks (ie, the metronome).

In the case of audio recording, which cannot be "timestamped" like MIDI can, the audio is shifted backwards AFTER recording stops to compensate for the amount of latency the player heard while playing, which places the audio in EXACTLY the place on the timeline where, relative to other tracks, he heard the stuff he was playing.

If you don't understand this, you just have to take the time to follow through the logic. It works, and it works perfectly, and Pro Tools implements it this way, and there is no better way to do it - except by eliminating all latency as much as possible throughout the system with faster computers, faster sync devices, faster MIDI implementations, etc.

Live doesn't implement timestamped MIDI, so it can do one notch less of a job than what Pro Tools does, which would still be good. It can just implement the "auto-compensate after recording" and move the audio/MIDI date backwards on the timeline so it is placed on the timeline where the player heard it when he performed it - and this is the key part Amaury is ignoring - RELATIVE TO THE OTHER SOUNDS THE PLAYER WAS HEARING WHEN HE PLAYED THE PERFORMANCE. Then, upon playback, delay compensation will take care of putting everything in the right place.

Players are not "grooving" along to the absolute timeline and looking at the cursor playback position in Live. They are hearing another sound, music or a metronome, and performing along with what they HEAR. That is why I used the 1000ms latency as an extreme example. If you are hearing your metronome (1 and 2 and...) out of Live 1000ms after the place where it actually occurs on the timeline, then to you, 1 and 2 and is 1000ms after where Live's timeline is located. You want your notes placed relative to what you hear, not absolutely on the timeline. So you want your snare drum to be placed right at the same time as the metronome "1", which just so happens to be located at "1" on the Live timeline. Therefore, moving it backwards 1000ms to be placed on the timeline is the correct location. Think about it.

One other point:

Delay compensation does not delay the track with latency. Delay compensation delays OTHER tracks with less latency to match the TOTAL latency of the track with the longest latency.

If you have two tracks - a hi-hat, and a snare. The hi-hat has a Waves Linear EQ with 4400 samples of latency (about 100ms). The snare has no plugins. With no delay compensation, the hi-hat is going to sound late, relative to the snare. Solution: Live doesn't play the hi-hat earlier (it can't do that). It plays the snare 4400 samples later than where the snare notes actually are on the timeline. Now the snare matches the hi-hat in terms of audibility. But on the timeline, both are still displayed as being located in their musically correct positions on the timeline, ie, 1 and 2 and 3 and...etc.

Amaury, think this through before you post anymore opinions about this subject. You are confusing people because you don't understand, or at least are not explaining properly, the logic of properly implemented delay compensation.

Respectfully,
Bryan

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Sat Apr 07, 2007 9:50 pm

bry2k wrote:
Amaury, you aren't getting it. You have this idea in your head that the way Live is dealing with latency correctly, and that any other way isn't going to work.
Not at all! :)
bry2k wrote:The fact of the matter is, Live is dealing with this problem the wrong way. You clarified what is wrong with Live when you wrote:
-If monitor is ON, the note is recorded later, but if for example you are monitoring a soft synth, it is recorded so you'll hear the playback as you heard the performance when you were playing.
That is the entire problem. "If monitor is ON, the note is recorded later...".

Why can't monitor be on, and the note gets "recorded later" because that "later" amount represents the total latency, then the note gets shifted backwards after the record pass by the amount of system latency present so the note position on the timeline reflects the musically correct location where it will be heard, then delay compensation takes care of the latency in the same way as it does with the track whose monitor is off.
The thing is: we are talking about monitoring an instrument right? So when you play it, it sounds later than the played notes on the keyboard, because of the latency it introduces (and that is not avoidable), right?

So, while recording the instrument, how will you play the notes? On the grid/metronome? In that case, you'll hear the sound late, and you won't hear anything that makes sense musically while you record.

So what I was saying is that you will have a tendency to play the notes early, and they will actually be recorded ON time, on the grid. So, while recording, you play a bit early and the sound is on time. While playing back, the notes were recorded later than you played them, means on the grid, and at least the sound is as much on time as you heard it wile recording. Does this make sense? Re-read my earlier post with the example, I think it does make sense.

The point is to ensure that what you hear while you record is what you'll hear while playing back.

The latency of the recorded notes is only the latency of the instrument present on the track you are recording to, and eventually the effects present on that track and on the Master track. The overall set's latency is not present, the Delay Compensation (means the added latency of all devices in the set) is automatically shut off on the track you are recording to.

A discutable point is how the software could ensure the lowest possible latency? should Live shut off the effects on the track you are recording to and the Master track, for a lower latency?

Again, if you perform in order to hear the sound where you want it, the notes will be placed where they have to and the play back will sound as you performed.
bry2k wrote:If you understand why the monitor OFF tracks make sense, then surely you can understand the monitor ON tracks DO NOT make sense.

The note needs to be on the timeline in a position that correctly represents where the note will be heard. Presently, that is not the case with Live, which makes editing, or even looking at a performance IMPOSSIBLE (other than if you are fully quantizing it). If you are looking at the timeline to see what you played, and it shows you notes that are in a different location than where they will be heard when played back, that is unacceptable. Delay compensation must take place while still recording notes in the proper place on the timeline. Therefore:
The notes will be on the grid, or as close as you played them. Try it with an instrument that has a quite low latency, playing a kick for example (for a good attack sound). Monitor the track, record a clip against the metronome, be on time. now turn monitor off, play the track, you'll hear the notes as you played them. If you were on time, you'll see the notes on the grid. Only thing, you played a bit early to 'compensate', as lots of musicians do in the real world.
bry2k wrote:Pro Tools: "Auto compensate for delays after record pass."

Simple! @#$@#$@#$ :-)

I can't explain this any better than I have. Please gain some perspective. Read the Pro Tools reference guide. Unlearn what Live has taught you for a few minutes. Please. :-)
I'm always happy to learn :) and I've read the Pro Tools manual. The paragraph you are refering to is about recording MIDI alone (on page 659 of the PT 7.3 manual). Also in Live, the overall set's latency does not affect the recording of MIDI: you can have devices that introduce very high latencies on other tracks, the notes you record won't be affected by that, even with monitor IN.

In Live, the recording is affected by the audio buffer though, if monitor is turned IN. That's a point that is looked at right now. I think that is what most of the people here are complaining about.

So, I'm not defending the Live way at all, but we can't say all is wrong. Other softwares may implement ways of reducing the latency for a more pleasant performance when monitoring a software instrument, but that's all.

To ensure the best experience, as advised with most software: use the lowest latency for your soundcard, using ASIO or Core Audio drivers, set the plugin latency same as audio buffer, or lower if possible, and record instruments without any effect on the track nor on the Master track.

Regards,
Amaury
Ableton Product Team

bry2k
Posts: 20
Joined: Fri Oct 06, 2006 1:15 am

Post by bry2k » Sun Apr 08, 2007 2:38 pm

Amaury wrote:The thing is: we are talking about monitoring an instrument right?
Yes.
So when you play it, it sounds later than the played notes on the keyboard, because of the latency it introduces (and that is not avoidable), right?
Right.
So, while recording the instrument, how will you play the notes?
I will listen to the other instruments or metronome I am playing along with, those sounds will hit my ears and trigger my brain to hit keys on my keyboard. If I feel the groove and am fairly playing well, my fingers will strike the keys simultaneously with the beat of the music I am hearing. Subsequently, the softsynth I'm playing will make sound that corresponds to my keyboard inputs, and hopefully the latency is low enough that it does not substantially affect the feel of what I am playing.
On the grid/metronome?
Yes.
In that case, you'll hear the sound late, and you won't hear anything that makes sense musically while you record.
Using real world latencies of 5-6ms, what I hear will make perfect sense. Using my extreme example of 1000ms, no, then it would not make sense. That example was only to make the point that regardless of the output latency of the synth, the notes should get recorded where I hit the keys (on the grid). The output latency is unavoidable and can only be minimized. But the notes can be recorded in the right place. My fingers are going to hit the keys on the grid. If the softsynth is latent, or has a slow attack (like a soft pad), I'm still going to play on the grid, or adapt my playing to the feel of the instruments I'm listening to. I'm not going to adapt to the latency of the softsynth I'm performing with.
So what I was saying is that you will have a tendency to play the notes early, and they will actually be recorded ON time, on the grid.
This is where we will have to agree to disagree.

First, if I play the notes early, then I want to see them on the timeline where I played them: EARLY.

Second, if I feel the latency so much that I am trying to play in front of the other instruments I am playing along with, then I am hearing too much latency, I'm uncomfortable, and I'm probably going to suck badly, and end up quantizing the whole thing. However, if the latency is 5-6ms, I can fall into the pocket of the instruments I'm listening to and just hit the keys at the right time - on the grid. Not early. I'm telling you from years of experience that I don't do that, and other players I know don't do that, and if they do - it's because the latency is too high and then they just stop playing and complain about it. Nobody wants to try to play on top of the beat to compensate for output latency. That sucks. We just try to minimize latency until its unnoticeable.
So, while recording, you play a bit early and the sound is on time.
Please set that theory aside for a moment because I fundamentally disagree with it...
While playing back, the notes were recorded later than you played them,
Here you completely lost me. Please clarify this one point. Why are you saying the notes recorded LATER than when I played them? I thought you were saying I was playing in front of the grid (EARLY)? If I played relative to the other instruments I was hearing, why doesn't Live place my notes on the timeline relative to the other instruments I was listening to (ie, on the grid)? This is the primary point we are debating here.
means on the grid, and at least the sound is as much on time as you heard it wile recording. Does this make sense?
No. It doesn't make sense to me to place notes on the timeline in a place that does not represent where I heard them. If I play a note at exactly Bar 1/beat 1, that is exactly where I want to see the note on the timeline, even if the softsynth I'm triggering doesn't make a sound for another 24 hours.

Again, if we are talking about real world latencies of 5-6ms here, the output latency is not all that relevant. The way you are talking about latency and the player compensating and playing "early"...that's like saying this: if the computer system had zero latency, but sounds takes 6ms to travel from my speakers to my ears, I'm going to play 6ms early to compensate for the "speed of sound" latency. No, I'm not going to do that. I'm going to hit the keys when the sounds I'm playing along with hit my ears, and fall into the groove and predict that each beat of sound will arrive at regular intervals.

Here's another way to debate your point about a player adapting and playing early: symphony orchestras. They're big, and spread out, and the sounds is coming from all directions across a big stage. If everybody was trying to adapt to everybody else in an orchestra and play a little early to compensate for the speed of sound latency across a large stage, then it would be a mess. So instead, everybody just looks at a conductor waving a stick and plays along with him regardless of what they are hearing. Now translate that analogy to Live and a softsynth. The "conductor" is the metronome or instruments I am playing along with. The latency of the softsynth I am playing is the "big stage". I'm going to ignore the big stage and the late sound and just play along with the conductor. And because we're talking about only 5-6ms max, it's not going to feel different when I listen back. The exception would be drums - overdubbing kicks/snares etc, which requires sample accuracy to avoid flams and loose drum sounds. But that stuff we just quantize and pencil in manually and edit anyway to make it tight.
Re-read my earlier post with the example, I think it does make sense.
Sorry, I think it does not. :-)
The point is to ensure that what you hear while you record is what you'll hear while playing back.
Which has nothing to do with where the notes are on the timeline. If they are placed on the muscially correct position on the timeline, and then Live uses delay compensation to delay the other tracks to account for the latency on the softsynth track we just recorded on, then everything will sound fine, while still displaying the notes in the correct place on the timeline. That is how it should work.
The latency of the recorded notes is only the latency of the instrument present on the track you are recording to, and eventually the effects present on that track and on the Master track. The overall set's latency is not present, the Delay Compensation (means the added latency of all devices in the set) is automatically shut off on the track you are recording to.
I agree with and understand all of that.
A discutable point is how the software could ensure the lowest possible latency? should Live shut off the effects on the track you are recording to and the Master track, for a lower latency?
It should be a user selectable option. In Pro Tools LE, you select "Low Latency monitoring" to auto-disable plugins in the monitor path while in record to minimize latency.
Again, if you perform in order to hear the sound where you want it, the notes will be placed where they have to
...no...they should be placed on the timeline where they were played relative to the other instruments/metronome that the muscian was performing with.
and the play back will sound as you performed.
...playback is a separate issue...delay compensation handles playing things back properly as I mentioned earlier. Once the notes are recorded, the software can compute the delay compensation and play everything correctly.
In Live, the recording is affected by the audio buffer though, if monitor is turned IN. That's a point that is looked at right now. I think that is what most of the people here are complaining about.
Yes. Including me.
So, I'm not defending the Live way at all, but we can't say all is wrong.
Yes, we can. :-) The way it is right now is wrong.
Other softwares may implement ways of reducing the latency for a more pleasant performance when monitoring a software instrument, but that's all.
Pro Tools does a lot more than that. As I said, timestamped MIDI at the input to the MIDI hardware interface, delay compensation of all signal paths to the output, even delay compensated synchronization with user-configurable offsets. It's very flexible and accurate.
To ensure the best experience, as advised with most software: use the lowest latency for your soundcard, using ASIO or Core Audio drivers, set the plugin latency same as audio buffer, or lower if possible, and record instruments without any effect on the track nor on the Master track.
Agreed.

Best,
Bryan

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Sun Apr 08, 2007 5:00 pm

Hello,

Oh boy! I don’t believe you! :) With all due respect… ;-)
bry2k wrote: I will listen to the other instruments or metronome I am playing along with, those sounds will hit my ears and trigger my brain to hit keys on my keyboard. If I feel the groove and am fairly playing well, my fingers will strike the keys simultaneously with the beat of the music I am hearing. Subsequently, the softsynth I'm playing will make sound that corresponds to my keyboard inputs, and hopefully the latency is low enough that it does not substantially affect the feel of what I am playing.

Using real world latencies of 5-6ms, what I hear will make perfect sense. Using my extreme example of 1000ms, no, then it would not make sense. That example was only to make the point that regardless of the output latency of the synth, the notes should get recorded where I hit the keys (on the grid). The output latency is unavoidable and can only be minimized. But the notes can be recorded in the right place. My fingers are going to hit the keys on the grid. If the softsynth is latent, or has a slow attack (like a soft pad), I'm still going to play on the grid, or adapt my playing to the feel of the instruments I'm listening to. I'm not going to adapt to the latency of the softsynth I'm performing with.
I think this IS where we disagree. I don’t know a musician (or maybe one to tell the truth) who is able to play an instrument, not hearing it on time, but hitting keys on time.

Look at a piano for example. Put a metronome and ask a pianist to play different notes at different amplitudes, on time. Will he hit the keys on the metronome clicks? No. He will hit the notes in order for the sound to come on the metronome clicks. I choose the piano as an example, because it is particularly bad. According to that article ( http://www.speech.kth.se/music/5_lectur ... ybott.html ), the latency between the moment you hit the key and the hammer hits the string is variable, and up to 20 ms. Does any pianist complain about it? No, they adapt to it by learning. Same goes with an electric guitar, not to talk about church organ and so on.

Most of the musicians I know are adapting to the latency of their instrument as well. It is worth keeping in mind that lots of hardware machines have quite a big latency - and people play them in order to hear the sound on time. I remember in the times I had a K2000 (foolishly sold it), the reputation was ‘wow, it only has 10ms latency on the output!’.

What I mean is that our mind pays more attention to the sound than to the actions, or better put, is more able to adapt the gesture in order to get the right thing sound-wise, than it is able to keep the ‘perfect gesture’ if it does not produce the right sound/rhythm.

I guess that is where we would have to agree. I’m not trying to be right but only speak out of my understanding and experience, own and from others. A player simply can’t play and hear the sound out of time. He has to adapt the playing to what he wants to hears, or give up.
Here you completely lost me. Please clarify this one point. Why are you saying the notes recorded LATER than when I played them? I thought you were saying I was playing in front of the grid (EARLY)? If I played relative to the other instruments I was hearing, why doesn't Live place my notes on the timeline relative to the other instruments I was listening to (ie, on the grid)? This is the primary point we are debating here.
I’ll try to rephrase: as the musician adapts to the latency (we talk here about acceptable latencies, up to maybe 15 ms), he hits the notes 15 ms earlier than he hears the notes. He plays right on time, means his groove (rhythm he hears) is in perfect sync with the playback of the track or metronome, but the fingers hit the notes early, as the pianist does.
On recording, the notes are effectively played 15 ms early, and recorded 15 ms later, so they are recorded exactly where they should, as when playing back, the instrument does not have the 15 ms latency anymore, thanks to the Delay compensation, so the recorded data sounds exactly the same as the playing while recording.
No. It doesn't make sense to me to place notes on the timeline in a place that does not represent where I heard them. If I play a note at exactly Bar 1/beat 1, that is exactly where I want to see the note on the timeline, even if the softsynth I'm triggering doesn't make a sound for another 24 hours.
It DOES place the note where you heard it. That is the thing. It does not place it where you hit it, but where you heard it.
Again, if we are talking about real world latencies of 5-6ms here, the output latency is not all that relevant. The way you are talking about latency and the player compensating and playing "early"...that's like saying this: if the computer system had zero latency, but sounds takes 6ms to travel from my speakers to my ears, I'm going to play 6ms early to compensate for the "speed of sound" latency. No, I'm not going to do that. I'm going to hit the keys when the sounds I'm playing along with hit my ears, and fall into the groove and predict that each beat of sound will arrive at regular intervals.
Right, you’ll play the notes in order for the sound to hit your ears at the same time as the rest of the sound. So you’ll have a tendency to hit the keys earlier. Ooops, I sound like a broken record. :lol:
It should be a user selectable option. In Pro Tools LE, you select "Low Latency monitoring" to auto-disable plugins in the monitor path while in record to minimize latency.
Now we talk about solution to improve the experience, reduce the latency. I’m not aware of that feature in Pro Tools, but I don't doubt your saying. The feature exists in other softwares. It is disputable though, as it disadvantages people working with very low latencies, who wish to have one effect for example that adds to the character of their sound. that is only my opinion and NOT an official Ableton comment. I think it should at least be optional.

What I found in the Pro Tools manual about 'Low Latency Monitoring' though is:
“When a MIDI or Instrument track that is routing MIDI data to an instrument plug-in is record-enable, Pro Tools automatically suspends Delay Compensation through the main outputs of the audio track or Auxiliary Input that the instrument plug-in is inserted on.”

Well, try it in Live. Create a MIDI track (track A), record enable it. Create a second MIDI track (track B), load Simpler with a preset on it. Before that, set the plugin latency to a high value in the Preferences so you can notice latency introduced by additional plugins. Then load about 4 plugins on another track (track C) in the set, so the Delay Compensation is ‘high’.
Set Track A output to Track B, and choose Simpler in the drop-down menu below, so the MIDI data reaches Simpler directly. Play the keyboard: Delay compensation is shut off on the track containing the instrument. Means that the latency introduced by the effects you loaded on track C is not present. Try moving the effects on the Master track, and you’ll experience their latency.

The lesson here is that we certainly should document things better.
Pro Tools does a lot more than that. As I said, timestamped MIDI at the input to the MIDI hardware interface, delay compensation of all signal paths to the output, even delay compensated synchronization with user-configurable offsets. It's very flexible and accurate.
Let me know what is not in Live from these? I’m not sure about what ‘timestamped MIDI at the input to the MIDI hardware interface’ means exactly (again I’m not such a technical person).

Thanks again for the valuable discussion!

Regards,
Amaury
Ableton Product Team

hoffman2k
Posts: 14718
Joined: Tue Jun 15, 2004 6:40 pm
Location: Belgium
Contact:

Post by hoffman2k » Sun Apr 08, 2007 5:08 pm

Hey Amo,

Are they paying you triple today? :lol:

Happy Easter!

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Sun Apr 08, 2007 5:09 pm

hoffman2k wrote:Hey Amo,

Are they paying you triple today? :lol:

Happy Easter!
nah, that's only a hobby :wink:

Happy Easter to everyone!
Amaury
Ableton Product Team

popslut
Posts: 1056
Joined: Sun Oct 22, 2006 4:58 pm

Post by popslut » Mon Apr 09, 2007 2:35 pm

Amaury,

bry2k has it absolutely spot-on.

The main bone of contention here is whether musicians tend to play early to compensate for the latency inherent in their DAW or whether they play [actually move their hands] in time and mentally adapt to the latency they hear - ie they just put up with it.

Like bry2k says, with real-world latency figures of around 5-10ms all but the most picky musicians can cope without a problem. A concert pianist might feel uncomfortable...

My Roland MKS 70 module has an internal latency of between 10 and 15 ms and that is perfectly playable. I also have a Kurzweil K2000 and I've measured that at 10ms - again, not a problem.

If I record me playing my MKS 70 as midi into Cubase with no quantisation and I look at the midi notes I see that I actually played "in the pocket" and the notes more or less line up with the neat grid.

If I do the same in Ableton with monitoring on I see that the midi notes are placed consistently late by the amount of host latency. Obviously if I do it with monitoring off the notes are placed as they should - "in the pocket" - but then I can't actually hear the synth I'm supposed to be playing. *Bangs head on table*

[Actually, the first thing I notice is that, despite the sound of the MKS 70 going anywhere near the soundcard, when playing it thru Ableton Live it is mysteriously subject to the host latency - for no adequately explained reason. Which is the other topic of this thread, but lets leave that for a minute.]

Cubase/Nuendo Logic, Sonar, Fruityloops, Reason - you name it they all deal with this perfectly and invisibly. They all implement their version of "Auto-compensate for delay after record pass." - PT is different in that it gives you the choice.

For me, the key concept that Live's developers need to grasp is this one;
bry2k wrote; ...if I feel the latency so much that I am trying to play in front of the other instruments I am playing along with, then I am hearing too much latency, I'm uncomfortable, and I'm probably going to suck badly, and end up quantizing the whole thing. However, if the latency is 5-6ms, I can fall into the pocket of the instruments I'm listening to and just hit the keys at the right time - on the grid. Not early. I'm telling you from years of experience that I don't do that, and other players I know don't do that, and if they do - it's because the latency is too high and then they just stop playing and complain about it. Nobody wants to try to play on top of the beat to compensate for output latency. That sucks. We just try to minimize latency until its unnoticeable.
That's it. In a nutshell.

There are some who insist that they are able to consistently advance their playing by 25ms or whatever latency figure they work with. I think they are mistaken.

Either way, the very simplest method of resolving this is to include in the preferences an option to "Auto-compensate for delay after record pass.".

This way, those like me and bry2k, who play to the other instruments and can deal with hearing our performance 5-10ms late end up with midi recordings with the notes where they should be by switching it on, and those who feel they are able to automatically latency compensate in their playing get the same result simply by switching it off.

How beautifully simple is that?


Meanwhile, somebody should be assigned the task of working out why my external midi gear should be subject to the same latency as my VSTi's...

Tarekith
Posts: 19140
Joined: Fri Jan 07, 2005 11:46 pm
Contact:

Post by Tarekith » Mon Apr 09, 2007 2:49 pm

Let's not forget that 1ms latency is the same is moving 1 foot from your speakers. (sound travels through aair at roughly 1 foot per second). So many musicians can easily compensate, it's no different than them standing 5 feet from their speakes or amps.

popslut
Posts: 1056
Joined: Sun Oct 22, 2006 4:58 pm

Post by popslut » Mon Apr 09, 2007 3:10 pm

Tarekith wrote:(sound travels through aair at roughly 1 foot per second)
I think you mean 1100 feet/sec don't you?

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Mon Apr 09, 2007 3:34 pm

popslut wrote:The main bone of contention here is whether musicians tend to play early to compensate for the latency inherent in their DAW or whether they play [actually move their hands] in time and mentally adapt to the latency they hear - ie they just put up with it.

Like bry2k says, with real-world latency figures of around 5-10ms all but the most picky musicians can cope without a problem. A concert pianist might feel uncomfortable...
What can they cope with? Hitting the notes on time and hearing the sound some milliseconds too late? Or hit the notes at the right time in order to hear the sound in time with the music/metronome?

On the contrary, a concert pianist, as I said in my earlier post, is used to adapt to a changing latency of his instruments: he hits the keys at various times before the sound comes, and has the sound coming exactly where he wants.
popslut wrote:My Roland MKS 70 module has an internal latency of between 10 and 15 ms and that is perfectly playable. I also have a Kurzweil K2000 and I've measured that at 10ms - again, not a problem.
because you play it between 10 and 15 ms ahead of time, and are able to play well in rhythm (the sound is in sync) with you other pre-recorded instruments
popslut wrote:If I record me playing my MKS 70 as midi into Cubase with no quantisation and I look at the midi notes I see that I actually played "in the pocket" and the notes more or less line up with the neat grid.

If I do the same in Ableton with monitoring on I see that the midi notes are placed consistently late by the amount of host latency. Obviously if I do it with monitoring off the notes are placed as they should - "in the pocket" - but then I can't actually hear the synth I'm supposed to be playing. *Bangs head on table*
If we are talking of external synth, the problem is different. A different solution is needed as you’ll also want, on top of recording MIDI data, to monitor or record your instrument into Live, we are working on that as well.
popslut wrote: [Actually, the first thing I notice is that, despite the sound of the MKS 70 going anywhere near the soundcard, when playing it thru Ableton Live it is mysteriously subject to the host latency - for no adequately explained reason. Which is the other topic of this thread, but lets leave that for a minute.]
As I said earlier, I identify one thing that could be an issue in Live, that is recording of MIDI when no instrument is on the MIDI track or the MIDI track is not routed to any instrument, and we are conscious of that.
popslut wrote:Cubase/Nuendo Logic, Sonar, Fruityloops, Reason - you name it they all deal with this perfectly and invisibly. They all implement their version of "Auto-compensate for delay after record pass." - PT is different in that it gives you the choice.
They do it for the case I described above, I guess. Let me do some testing when I’m in the office, that is not before 10 days.
popslut wrote:For me, the key concept that Live's developers need to grasp is this one;
bry2k wrote; ...if I feel the latency so much that I am trying to play in front of the other instruments I am playing along with, then I am hearing too much latency, I'm uncomfortable, and I'm probably going to suck badly, and end up quantizing the whole thing. However, if the latency is 5-6ms, I can fall into the pocket of the instruments I'm listening to and just hit the keys at the right time - on the grid. Not early. I'm telling you from years of experience that I don't do that, and other players I know don't do that, and if they do - it's because the latency is too high and then they just stop playing and complain about it. Nobody wants to try to play on top of the beat to compensate for output latency. That sucks. We just try to minimize latency until its unnoticeable.
That's it. In a nutshell.

There are some who insist that they are able to consistently advance their playing by 25ms or whatever latency figure they work with. I think they are mistaken.
Again, it is nearly impossible to deal with too high latencies for any musician. As I said earlier on the thread, it may be ok up to 15 ms, but above, it isn’t. And it wouldn’t be if you would have to play the notes ‘on time’, means of the grid, and hear the sound 25 or 50 ms later. This is as impossible if not worst as playing 50 ms early. I know pianists, drummers and the like are very much able to adapt to a small latency in order to hear the sound on time. I know no one who is able to give a good performance by hearing the sound not in time, mentally knowing that it will be later on time. I would be happy to be proven wrong, but that’s my experience and the one of people I’m talking to. It is simply impossible to play a good funky clavinet riff without hearing yourself on time.
popslut wrote:Either way, the very simplest method of resolving this is to include in the preferences an option to "Auto-compensate for delay after record pass.".

This way, those like me and bry2k, who play to the other instruments and can deal with hearing our performance 5-10ms late end up with midi recordings with the notes where they should be by switching it on, and those who feel they are able to automatically latency compensate in their playing get the same result simply by switching it off.

How beautifully simple is that?
I guess we’re simply taking the ‘adapting to 5 to 10 ms latency’ in the opposite way. Maybe neither of us is right and we will take more advice and study about that. I understood your point.

popslut wrote:Meanwhile, somebody should be assigned the task of working out why my external midi gear should be subject to the same latency as my VSTi's...
That is taken in account. I can’t tell if and when it will be succesfull, but it is.

Regards,
Amaury
Ableton Product Team

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Mon Apr 09, 2007 3:37 pm

Tarekith wrote:Let's not forget that 1ms latency is the same is moving 1 foot from your speakers. (sound travels through aair at roughly 1 foot per second). So many musicians can easily compensate, it's no different than them standing 5 feet from their speakes or amps.
Hi,

Sure they can adapt, but what can they adapt to? Can they play theirs keys on time, hear the sound late and say 'oh, but I hit the keys on time, that's the right thing to do!', or can they adapt their playing in order to hear the right thing musically, which is having every sound in sync, thus hitting the keys when they need to to achieve that goal?

Again, let's thing about instruments like piano, electric guitar or church organ..

Regards,
Amaury
Ableton Product Team

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Mon Apr 09, 2007 4:03 pm

popslut wrote:
Tarekith wrote:(sound travels through aair at roughly 1 foot per second)
I think you mean 1100 feet/sec don't you?
Again, the case of external gear is not what I was discussing earlier, and of course we need abetter solution for that. That is totally true. I said it in my earlier post but wanted to make sure you get it right.

Regards,
Amaury
Ableton Product Team

michkhol
Posts: 29
Joined: Wed Oct 11, 2006 3:05 pm
Location: MD, USA

Post by michkhol » Mon Apr 09, 2007 5:10 pm

Why not have both worlds?

1. For those who adapt by using hands leave it as it is now.
2. For those who adapt by using ears have the MIDI note time adjustment disabled and "Auto-compensate for delay after record pass" enabled.

:?:
MacBook 1.83, G5 2.3 Dual-core 1.5G RAM, M-Audio Axiom49, MOTU Ultralite, Live 6.0.7, DP 5.12

Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Post by Amaury » Mon Apr 09, 2007 5:14 pm

michkhol wrote:Why not have both worlds?

1. For those who adapt by using hands leave it as it is now.
2. For those who adapt by using ears have the MIDI note time adjustment disabled and "Auto-compensate for delay after record pass" enabled.

:?:
It is the opposite. If you do it by hear, the current behaviour is the right one.

Let's do a simple 'real-world' test.

-create a Live set
-load an instrument on a MIDI track that does not have a huge latency, maybe up to 10 ms.
-turn monitor ON on the track
-turn the metronome ON
-try to record notes as close as possible to the metronome, using your ears.

after the fact, turn monitor OFF, and listen to what you have recorded: it should play as you recorded it. It you heard your sound 'on the metronome', then woom on your notes, they should be on the grid.

I would like to hear feedback from different users on that.

Regards,
Amaury
Ableton Product Team

Locked