MIDI delay recording

UHE is now closed. For Technical Support from Ableton, please go here: http://www.ableton.com/support
Locked
Amaury
Posts: 5885
Joined: Mon Mar 20, 2006 6:59 pm
Location: Ableton Headquarters
Contact:

Re: about the machines used

Post by Amaury » Fri Apr 06, 2007 6:38 pm

gach wrote:We have tested this with two more friends using:

Elektron Machine Drum
Acces Virus
Vermona Perfourmer
Vermona MKII
Korg Electribe

Of course using just one per time to avoid midi chains..using Motu Ultralite, Motu Traveler, Macbookpro and macbookG4

Best

Gach
Thanks for the details. What I mean is that you are doing two things at the same time: using MIDI sync, and recording MIDI (or audio?). That couls be usefull to only try to record without MIDI sync to see if your results are straight or not.

Regards,
Amaury
Ableton Product Team

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

Post by popslut » Sat Apr 07, 2007 12:56 am

Gach,

I don't doubt you have the problem which you describe - i have had problems synching external gear too.

But the problem you are having is not the problem being dealt with in this thread.

This thread is specifically concerned with the anomalies of the different monitor modes and the unecessary latency applied to external midi gear.

For the sake of clarity it would be best to start a new thread for your problem or search an existing one.

Best wishes,

Popslut.

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

Post by bry2k » Sat Apr 07, 2007 6:11 am

Wow. I found this thread very interesting. Glad I found it.

I don't know why Ableton finds this such a difficult issue to resolve.

In Pro Tools, it is very simple. There is a setting called "Auto-compensate for delay after record pass."

What is means is simply that, while you are recording, and monitoring with some amount of latency, you are responding to what you hear, which is later in time than the current playback position of the timeline.

No problem. When you hit stop after done recording, the track you just recorded, whether it is audio or MIDI, is automatically shifted backward by the amount of the total delay compensation.

So for example, using big numbers to make the point obvious:

1) You have a hi-hat penciled in to use as a metronome 1 & 2 & 3 & 4 &

2) You have latency of lets say 1 second (1000ms) as an extreme example.

3) You hit play. Pro Tools plays beat 1. One second later you hear it and play a kick drum on your MIDI keyboard. The track you are recording on has delay compensation turned off (automatically in Pro Tools) so you here what you are playing instantly. But the timeline is one second past what you are hearing, so your performed note is going to be recorded one second later in the timeline that it should be.

4) No problem! Because when you hit stop, Pro Tools automatically shifts the whole recorded region (clip) backwards in time 1 second. Or 11.5ms, or 1743 samples, or whatever the total latency of host and plugins is. So the end result is that you both hear what you are playing correctly (because delay comp is off for the track you are recording on), and your notes are placed where you heard them, because Pro Tools auto-compensates AFTER the record pass.

Therefore no laws of physics are violated as Amaury has suggested. And everything works perfectly.

Of course there are real world caveats to the above example, such as if you have a bunch of plugins on your master fader that induce delay to the outputs you are monitoring on (such as a mix bus compressor/EQ with high latency) then you are going to have a hard time monitoring your performance while recording it because there will be a delay between what you play and what you hear. The workaround is to minimize total latency during recording by deactivating plugins or shutting off delay compensation on tracks that add a lot of latency. In Pro Tools, delay compensation can be easily turned on/off globally or on a track by track basis.

Basically, Ableton has boxed themselves in with some very poor methods of dealing with delay compensation that they will have to completely re-work for it to ever work intuitively and as we expect. I suggest they review how Digidesign has implemented it in Pro Tools, which is as perfect a solution as can be implemented.

But to summarize, the simple fix for the primary problem discussed in this thread is for Live to auto-compensate for latency after the record pass is completed. MIDI notes should always be placed on the timeline where you heard them during the performance. I was kind of surprised after reading all 10 pages of this thread that nobody at Ableton has replied that they understand this.

-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 am

bry2k wrote:Wow. I found this thread very interesting. Glad I found it.

I don't know why Ableton finds this such a difficult issue to resolve.

In Pro Tools, it is very simple. There is a setting called "Auto-compensate for delay after record pass."

What is means is simply that, while you are recording, and monitoring with some amount of latency, you are responding to what you hear, which is later in time than the current playback position of the timeline.

No problem. When you hit stop after done recording, the track you just recorded, whether it is audio or MIDI, is automatically shifted backward by the amount of the total delay compensation.

So for example, using big numbers to make the point obvious:

1) You have a hi-hat penciled in to use as a metronome 1 & 2 & 3 & 4 &

2) You have latency of lets say 1 second (1000ms) as an extreme example.

3) You hit play. Pro Tools plays beat 1. One second later you hear it and play a kick drum on your MIDI keyboard. The track you are recording on has delay compensation turned off (automatically in Pro Tools) so you here what you are playing instantly. But the timeline is one second past what you are hearing, so your performed note is going to be recorded one second later in the timeline that it should be.

4) No problem! Because when you hit stop, Pro Tools automatically shifts the whole recorded region (clip) backwards in time 1 second. Or 11.5ms, or 1743 samples, or whatever the total latency of host and plugins is. So the end result is that you both hear what you are playing correctly (because delay comp is off for the track you are recording on), and your notes are placed where you heard them, because Pro Tools auto-compensates AFTER the record pass.

Therefore no laws of physics are violated as Amaury has suggested. And everything works perfectly.

Of course there are real world caveats to the above example, such as if you have a bunch of plugins on your master fader that induce delay to the outputs you are monitoring on (such as a mix bus compressor/EQ with high latency) then you are going to have a hard time monitoring your performance while recording it because there will be a delay between what you play and what you hear. The workaround is to minimize total latency during recording by deactivating plugins or shutting off delay compensation on tracks that add a lot of latency. In Pro Tools, delay compensation can be easily turned on/off globally or on a track by track basis.

Basically, Ableton has boxed themselves in with some very poor methods of dealing with delay compensation that they will have to completely re-work for it to ever work intuitively and as we expect. I suggest they review how Digidesign has implemented it in Pro Tools, which is as perfect a solution as can be implemented.

But to summarize, the simple fix for the primary problem discussed in this thread is for Live to auto-compensate for latency after the record pass is completed. MIDI notes should always be placed on the timeline where you heard them during the performance. I was kind of surprised after reading all 10 pages of this thread that nobody at Ableton has replied that they understand this.

-Bryan
Hi,

So, from your description, as I understand it, Pro tools would let you hear your performance as you play it, and then would shift the data to a place you never intended to play? I doubt it is the case, but I'm not the one in the house who studies all of this.

The goal is to provide something that:
-let's your hear something meaningfull, e.g without latency or with a minimum latency
-leave it as you heard it so you can trust what you play
-or if you do not monitor via the software, record without latency as it is the case right now. (read our lessons about driver error compensation, it shows how something is recorded with no latency at all, though it is audio)

Then another point I can't believe: if you have a latency of, say, 1 second as in your example, it is there both for the input and for the output, that is so. So, if you play and monitor a soft synthesizer for instance, with no other effects on the track or on the master track, you'll have the latency of one second for the soft synth audio out needs that time to reach the speakers.

As you noticed, mainly the problem arises when you put more and more effects on the track you are recording to or on the Master track. Different software use different techniques to shut down the effects when you monitor, or ignore the problem etc... and we are also aware of that.

The main problem we are focussing on in that thread is pure MIDI recording though, even before talking of soft synthesizer. The use of soft synth is a step forward of pure MIDI recording, so it is included in the problem. But we need to concentrate on the core of MIDI recording, where a lot of things are invlolved.

For instance, Digidesign only works with its own devices, and now M-audio devices, but I bet it developped its own drivers for the M-audio devices too. The biggest problem, and I don't want to go too deep into details, as I'm not the most skillfull person (with is good for all of us :wink: ), is a triangular relationship between the devices drivers, the computer operating system, and the sequencer.

Anyway thanks for your input,
Regards,
Amaury
Ableton Product Team

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

Post by bry2k » Sat Apr 07, 2007 11:52 am

Amaury wrote:Hi, So, from your description, as I understand it, Pro tools would let you hear your performance as you play it, and then would shift the data to a place you never intended to play?
No. If you got that from what I wrote, then you are completely misunderstanding what I am talking about. Sorry.
I doubt it is the case, but I'm not the one in the house who studies all of this.
That is not the case. Re-read what I wrote. Think about it.
The goal is to provide something that:
-let's your hear something meaningfull, e.g without latency or with a minimum latency
-leave it as you heard it so you can trust what you play
The Pro Tools feature I described: auto-compensate for delay after record pass, accomplishes both of those things.
Then another point I can't believe: if you have a latency of, say, 1 second as in your example, it is there both for the input and for the output, that is so. So, if you play and monitor a soft synthesizer for instance, with no other effects on the track or on the master track, you'll have the latency of one second for the soft synth audio out needs that time to reach the speakers.
You aren't thinking about this problem correctly. The "1 second" in my example was meant to represent host latency, ie, the sound card. If you have latency at the sound card, whether it is 10ms or 1000ms, the latency is only present at the OUTPUT. You hear sound from the speakers, you perform along with it, and your MIDI actions are recorded to the timeline instantly. The timeline is always advanced later in time than what you are hearing (because of the output latency). Therefore if you compensate for the host latency after the record pass, you elimate the latency, thereby placing the notes or audio you performed on the timeline relative to what you were hearing when you performed the notes - which is the correct location.
The main problem we are focussing on in that thread is pure MIDI recording though, even before talking of soft synthesizer. The use of soft synth is a step forward of pure MIDI recording, so it is included in the problem. But we need to concentrate on the core of MIDI recording, where a lot of things are invlolved.
I understand exactly what this thread is about. The problem is that Live does not compensate for host latency by placing recorded notes on the timeline where they should be relative to what the user is hearing as he performs them - unless, as has been discussed, you are not monitoring on the track you are recording on. The problem is simple. Again, look to Pro Tools for how to implement the solution. Provide the ability to turn off delay compensation for the track that is armed. Compensate for the output latency of the system after the record pass.
For instance, Digidesign only works with its own devices, and now M-audio devices, but I bet it developped its own drivers for the M-audio devices too. The biggest problem, and I don't want to go too deep into details, as I'm not the most skillfull person (with is good for all of us :wink: ), is a triangular relationship between the devices drivers, the computer operating system, and the sequencer.
The only reason its relevant that Pro Tools only uses Digi/M-Audio hardware is because Pro Tools knows automatically what the exactly latency of the hardware is. If I use "Sound Card XYZ" with Live, and I know the total latency of the audio card, plus the total latency of the software as a result of delay compensation for plugins, then when I play along with existing tracks, my performance can be delay compensated after the record pass. This is what Live is NOT doing, which is incorrect.

I think you are assuming that I don't understand the problem. Trust me, I do.
Anyway thanks for your input,
Regards,
Amaury
Thanks for your reply. Please check out the reference manual for Pro Tools at www.digidesign.com and read the section on delay compensation, and the section on synchronization with delay compensation, and the auto-compensation after record pass feature that I mentioned. Digidesign implemented everything about delay compensation exactly right. There is no better way to do it, except by eliminating all latency throughout the system, which is of course impossible...for now. Perhaps soon...

Best,
Bryan

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

Post by Amaury » Sat Apr 07, 2007 1:01 pm

Hi,
I think you are assuming that I don't understand the problem. Trust me, I do.
Sorry if I gave you that impression, it is not the case.
The only reason its relevant that Pro Tools only uses Digi/M-Audio hardware is because Pro Tools knows automatically what the exactly latency of the hardware is. If I use "Sound Card XYZ" with Live, and I know the total latency of the audio card, plus the total latency of the software as a result of delay compensation for plugins, then when I play along with existing tracks, my performance can be delay compensated after the record pass. This is what Live is NOT doing, which is incorrect.
It is not only a matter of knowing the total latency, we also know that. But here we deal with ASIO and Core audio, where they deal with their own driver types, so it is a plus to deal with latency, sync, drop out detection and so on. I'm not saying that it is impossible with ASIO and Core Audio, but a bit more difficult.
Thanks for your reply. Please check out the reference manual for Pro Tools at www.digidesign.com and read the section on delay compensation, and the section on synchronization with delay compensation, and the auto-compensation after record pass feature that I mentioned. Digidesign implemented everything about delay compensation exactly right. There is no better way to do it, except by eliminating all latency throughout the system, which is of course impossible...for now. Perhaps soon...
I will do, but again we have skillful engineers and programmers that know about all of this. They simply don't spend too much time on the forum, so I try to answer and give feedback about the state of things.

Thanks again for the heads up. I'll give some update when I am able to.

Regards,
Amaury
Ableton Product Team

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

Post by Tarekith » Sat Apr 07, 2007 1:12 pm

The PT method sounds like a perfect solution Amaury.

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

Post by bry2k » Sat Apr 07, 2007 1:52 pm

Digidesign implemented everything about delay compensation exactly right. There is no better way to do it, except by eliminating all latency throughout the system, which is of course impossible...for now. Perhaps soon...
I will do, but again we have skillful engineers and programmers that know about all of this. They simply don't spend too much time on the forum...
Perhaps they should. :oops:

Thanks for the reply.

-Bryan

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

Post by Amaury » Sat Apr 07, 2007 1:59 pm

bry2k wrote:
Digidesign implemented everything about delay compensation exactly right. There is no better way to do it, except by eliminating all latency throughout the system, which is of course impossible...for now. Perhaps soon...
I will do, but again we have skillful engineers and programmers that know about all of this. They simply don't spend too much time on the forum...
Perhaps they should. :oops:

Thanks for the reply.

-Bryan
At this point, I guess you're right. I just prefer to know them actually working on the software, but it may be necessary.

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
Ableton Product Team

iain.morland
Posts: 111
Joined: Thu Dec 08, 2005 9:57 pm
Contact:

Post by iain.morland » Sat Apr 07, 2007 3:26 pm

bry2k: I think your detailed explanation and suggestions are very helpful. Have you considered emailing (or even snail-mailing!) this to Ableton, given that (as Amaury says) the programmers may not read it here?

I'd like to go back to a slightly earlier question that I asked Amaury on the previous page of this thread.

I asked, "in dpel's screenshot, please could you tell us straightforwardly: Which track has recorded the MIDI as played and which as heard? Which track should be kept - in other words, which is right?"

He replied: "if you record without monitoring the signal, the notes should be written as you played them."

Now I understand up to this point, but here is where my brain jams: which monitoring setting produces a MIDI recording that is correct?

Please nobody say "they're just different". I know they're different - what I'm interested in is finding out which one will let me make music.

In other words, I am asking: which monitoring setting will result in a MIDI recording that plays back as I heard it while I was performing it - just like a tape recorder! Simple question! :wink: :twisted:

murphf
Posts: 54
Joined: Thu Sep 02, 2004 9:37 am

Post by murphf » Sat Apr 07, 2007 3:35 pm

iain.morland wrote:
In other words, I am asking: which monitoring setting will result in a MIDI recording that plays back as I heard it while I was performing it - just like a tape recorder! Simple question! :wink: :twisted:
It's decribed at page 6 of this thread. :idea: I asked exactly that question.

iain.morland
Posts: 111
Joined: Thu Dec 08, 2005 9:57 pm
Contact:

Post by iain.morland » Sat Apr 07, 2007 3:45 pm

Ok - wading through the many posts and trying again to get my head around this - is it true that the track with monitoring OFF will, when played back, be like a tape recording of your performance?

But surely that can't be the case, because you can't hear it while playing - instead, you hear the track with monitoring ON, which is differently timed?

(I am only using this 'tape' terminology because I just want to focus on the end result in terms of making music)

*head explodes*

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

Post by Amaury » Sat Apr 07, 2007 3:52 pm

iain.morland wrote:bry2k: I think your detailed explanation and suggestions are very helpful. Have you considered emailing (or even snail-mailing!) this to Ableton, given that (as Amaury says) the programmers may not read it here?

I'd like to go back to a slightly earlier question that I asked Amaury on the previous page of this thread.

I asked, "in dpel's screenshot, please could you tell us straightforwardly: Which track has recorded the MIDI as played and which as heard? Which track should be kept - in other words, which is right?"

He replied: "if you record without monitoring the signal, the notes should be written as you played them."

Now I understand up to this point, but here is where my brain jams: which monitoring setting produces a MIDI recording that is correct?

Please nobody say "they're just different". I know they're different - what I'm interested in is finding out which one will let me make music.

In other words, I am asking: which monitoring setting will result in a MIDI recording that plays back as I heard it while I was performing it - just like a tape recorder! Simple question! :wink: :twisted:
Hi,

No need to send anything to anyone else at Ableton, that is why I am here, I make a link.

Which signal gets recorded as you play it?

-If monitor is OFF, the notes gets recorded exactly where you played them. After recording, if you add instruments and effects to the track, the delay compensation engine takes care of the latency it would introduce. So, if a note is exactly on the 'one', it will play the sample right on the 'one'

-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.

There may be discutable behaviour with the later, but I can't discuss it further myself, just be sure it is worked on.
As you may also know, we are quite small and we are working on many things, so it is all a matter of resources. That means that there is not (unfortunately) only one matter to work on in Live.

Regards,
Amaury
Ableton Product Team

iain.morland
Posts: 111
Joined: Thu Dec 08, 2005 9:57 pm
Contact:

Post by iain.morland » Sat Apr 07, 2007 4:07 pm

Amaury wrote:-If monitor is OFF, the notes gets recorded exactly where you played them. After recording, if you add instruments and effects to the track, the delay compensation engine takes care of the latency it would introduce. So, if a note is exactly on the 'one', it will play the sample right on the 'one'

-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.
Thanks for the fast reply. :)

When you put it like this, the monitoring ON option sounds completely OK! :P

But wouldn't the delayed position of the notes on that track mean it sounds out of time relative to other tracks, when played back? I.e. if the other tracks are using "on the fly" delay compensation, but one track is "hard" delayed by having its notes recorded later, wouldn't that throw the timing off?

I hope that question makes sense.

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

Post by Amaury » Sat Apr 07, 2007 6:20 pm

iain.morland wrote:
Amaury wrote:-If monitor is OFF, the notes gets recorded exactly where you played them. After recording, if you add instruments and effects to the track, the delay compensation engine takes care of the latency it would introduce. So, if a note is exactly on the 'one', it will play the sample right on the 'one'

-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.
Thanks for the fast reply. :)

When you put it like this, the monitoring ON option sounds completely OK! :P

But wouldn't the delayed position of the notes on that track mean it sounds out of time relative to other tracks, when played back? I.e. if the other tracks are using "on the fly" delay compensation, but one track is "hard" delayed by having its notes recorded later, wouldn't that throw the timing off?

I hope that question makes sense.
Hi,

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
Ableton Product Team

Locked