!Timing! bugs with Plugin Buffers and Latency Compensation
Posted: Fri Dec 14, 2007 1:46 am
I have changed this post to reflect my newest finding! For details see my post later on.
There are a couple of bugs with Latency Compensation and Plugin (VST) Buffers concerning both Live 6.10 and 7.01 on my Windows XP AMD A64 X2 (Nforce4) computer. I will mark where a bug is only affecting one of the two versions or has a differenct effect. These bugs seriously affect timing of Midi Instrument Plugins, both internal and external (VST) ones. If needed by Ableton staff I can provide audio files demonstrating all problems I am posting about down below. I did my tests with Simpler, Battery, FM8 and Crystal.
First of all
In Live 6.10 when you warp a clip at original tempo in "Beats" mode the clip can shift by 1 to 1.5 samples after a few ms when (re)starting an already playing scene. Using "High Quality" mode even at original sample-rate and any mode will always shift the clip by one sample. This does not happen in Live 7.01.
1. Attack timings fluctuate/are unstable for External (VST) Plugins
In both Live 6.10 and 7.01 timing of Attacks for external (VST) plugins are not stable neither with nor without Latency Compensation turned on (it really makes no difference whatsoever). The higher the Plugin Buffers setting the more attack timings of external plugins will be at odd. It can be made audible with a simple cancelation test for values downto 32 samples and can even be made audible for values up from 256 samples without a cancelation test by simply playing 1/16 notes in succession. To make sure it's not a Battery issue I also tested this with FM8 and with the non NI "Crystal" soft-synth.
This does not happen with internal plugins (Simpler) and I am very unhappy about this finding, because there is not even a workaround! You can only try to minimize it by using as few Plugin Buffers as possible (32 samples for 7.01, fixed value for 6.10 only as described below)
2.1 Plugin (VST) Buffer in Live 6.10 cannot be changed
Short story: Changing Plugin Buffers via Preferences in Live 6.10 has no whatsoever effect. The buffer size seems to be fixed, most likely to some small value like 64 samples and not to "As Audio Buffers" or any high value. Latency Compensation is "correct" with this fixed buffer size in Live 6.10, 7.01 corrects this issue while introducing two timing bugs linked to this setting (see 2.2).
Internal Midi Instrument Plugins (Simpler) do not seem to be affected by this setting at all.
2.2 Plugin (VST) Buffer in Live 7.01 is always Latency compensated as 64 samples
This means that in contrast to 6.10 you can change the Plugin Buffers and it does audibly have an effect (including a bug, see below), but Latency Compensation will always tread it as 64 samples. So any value apart from 64 samples (including "As Audio Buffers" if Audio Buffers are not =64 samples) will lead to timing differences. Latency Compensation is "correct" for a setting of 64 samples and can be made "correct" by setting Track Delay according to the difference between 64 samples the set Plugin Buffers (i.e. 512 Plugin Buffers need -448 samples Track Delay on VST tracks, else you will experience a latency of about 10 ms!).
Additionally the "As Audio Buffers" setting does not recognize changes of the sample-rate of your audio-card via Preferences unless you change it to some other value once and then set it back to "As Audio Buffers"
Internal Midi Instrument Plugins (Simpler) do not seem to be affected by this setting at all.
3. Simpler plays the first note of a midi clip 1.0 ms/44 samples too late if a note was played at the end of the preceding/loop
This affects both Live 6.10 and 7.01 the same and is a minor issue compared to the other ones. Regardless of wether Simpler is used in a Drum Rack or on its own it will play the first note of a clip by 1.00 ms/44 samples too late if the preceding clip played a note at the end of the clip. This happens both with loops and with follow action clips.
I have changed this post to reflect my newest finding! For details see my post later on.
There are a couple of bugs with Latency Compensation and Plugin (VST) Buffers concerning both Live 6.10 and 7.01 on my Windows XP AMD A64 X2 (Nforce4) computer. I will mark where a bug is only affecting one of the two versions or has a differenct effect. These bugs seriously affect timing of Midi Instrument Plugins, both internal and external (VST) ones. If needed by Ableton staff I can provide audio files demonstrating all problems I am posting about down below. I did my tests with Simpler, Battery, FM8 and Crystal.
First of all
In Live 6.10 when you warp a clip at original tempo in "Beats" mode the clip can shift by 1 to 1.5 samples after a few ms when (re)starting an already playing scene. Using "High Quality" mode even at original sample-rate and any mode will always shift the clip by one sample. This does not happen in Live 7.01.
1. Attack timings fluctuate/are unstable for External (VST) Plugins
In both Live 6.10 and 7.01 timing of Attacks for external (VST) plugins are not stable neither with nor without Latency Compensation turned on (it really makes no difference whatsoever). The higher the Plugin Buffers setting the more attack timings of external plugins will be at odd. It can be made audible with a simple cancelation test for values downto 32 samples and can even be made audible for values up from 256 samples without a cancelation test by simply playing 1/16 notes in succession. To make sure it's not a Battery issue I also tested this with FM8 and with the non NI "Crystal" soft-synth.
This does not happen with internal plugins (Simpler) and I am very unhappy about this finding, because there is not even a workaround! You can only try to minimize it by using as few Plugin Buffers as possible (32 samples for 7.01, fixed value for 6.10 only as described below)
2.1 Plugin (VST) Buffer in Live 6.10 cannot be changed
Short story: Changing Plugin Buffers via Preferences in Live 6.10 has no whatsoever effect. The buffer size seems to be fixed, most likely to some small value like 64 samples and not to "As Audio Buffers" or any high value. Latency Compensation is "correct" with this fixed buffer size in Live 6.10, 7.01 corrects this issue while introducing two timing bugs linked to this setting (see 2.2).
Internal Midi Instrument Plugins (Simpler) do not seem to be affected by this setting at all.
2.2 Plugin (VST) Buffer in Live 7.01 is always Latency compensated as 64 samples
This means that in contrast to 6.10 you can change the Plugin Buffers and it does audibly have an effect (including a bug, see below), but Latency Compensation will always tread it as 64 samples. So any value apart from 64 samples (including "As Audio Buffers" if Audio Buffers are not =64 samples) will lead to timing differences. Latency Compensation is "correct" for a setting of 64 samples and can be made "correct" by setting Track Delay according to the difference between 64 samples the set Plugin Buffers (i.e. 512 Plugin Buffers need -448 samples Track Delay on VST tracks, else you will experience a latency of about 10 ms!).
Additionally the "As Audio Buffers" setting does not recognize changes of the sample-rate of your audio-card via Preferences unless you change it to some other value once and then set it back to "As Audio Buffers"
Internal Midi Instrument Plugins (Simpler) do not seem to be affected by this setting at all.
3. Simpler plays the first note of a midi clip 1.0 ms/44 samples too late if a note was played at the end of the preceding/loop
This affects both Live 6.10 and 7.01 the same and is a minor issue compared to the other ones. Regardless of wether Simpler is used in a Drum Rack or on its own it will play the first note of a clip by 1.00 ms/44 samples too late if the preceding clip played a note at the end of the clip. This happens both with loops and with follow action clips.
I have changed this post to reflect my newest finding! For details see my post later on.

