Operating system: Linux-4.9.0-12-amd64-x86_64-with-debian-9.12 64 Bits
Graphics card: Gallium 0.4 on AMD KAVERI (DRM 2.49.0 / 4.9.0-12-amd64, LLVM 3.9.1) X.Org 4.3 (Core Profile) Mesa 13.0.6
Broken: version: 2.90.0 Alpha, branch: master, commit date: 2020-07-10 20:07, hash: rBd2b910fafec6
Worked: (newest version of Blender that worked as expected)
Short description of error
This annoying bug with audio strips seems to affect Linux systems only. At first I thought that it's random, but then I noticed that it appears right after using undo. After several hours of investigating I narrowed down its cause to 3 triggers that have to be used together: using proxy, splitting movie strips and then using undo.
I recorded a screencast with the steps to reproduce the bug:
I hope my amateur investigation will help to find the root of the problem.
Exact steps for others to reproduce the error
This bug is hard to reproduce, so please follow these steps strictly without doing any additional clicks/commands, on Linux. With those steps I managed to get the bug every single time.
If you mess the steps, it's necessary to restart Blender and start from the beginning. Do not use undo, except when it's in the steps:
- Add a movie strip (http://neoncipher.net/example.mp4)
- Set the end frame so that the strips fit in the range entirely.
- Select the video strip
- Set and generate 25% size proxy
- Go to the preview window and activate 25% size proxy
- We want to split both video and audio strips in half. Click in the sequencer to place the timeline somewhere in the middle of the strips and select the audio strip as well.
- Select Strip --> Split or press K
- Now we need to do some action to undo it later. In my example I add gamma cross, but it can be some other things. Although not every action seems to lead to the bug appearance, so, again, stick to these steps.
- Select the second half of the video strip and move it to the channel above, overlapping with the first half of around 200 frames.
- Select the first half of the video strip, then the second half and choose Add --> Transition --> Gamma Cross
- Now undo several times in a row using Ctrl+Z without clicking or pressing anything else, until the second half gets to its original place.
- What we got now is an additional invisible copy of the second half of the audio strip sitting in the memory. If you play the second half of the audio, you can notice that it got twice as loud because it's actually two identical audio strips playing at the same time. To reveal the invisible strip clearer, you can grab the visible second half and move it some frames to the right, so when you play, it will generate some echo because the visible and invisible strips would be playing with some delay between them. Or you can delete the visible second half of the audio and hear the invisible one still playing when there is no audio strips visible at all. Maybe it's the first part of the strip but overlapping the second one? Because when you use split it affetively creates a copy of the strip that has new strip offset marks.
- If you play the first part of the audio strip you can hear that it's intact. So the problem occurs only with the second part.
- So I assumed that maybe the problem is in the first part of the audio strip that overlaps the second one. Let's delete it. If you delete the first half of the audio strip, the hidden strip still plays, but if you delete the first part of the video strip, the hidden audio strip disappears.
So the fact that this bug only appears when using proxy, tells us that maybe video strips are involved in its cause.
The bug seems to be affecting only memory. If you save this file, after restarting Blender, the additional audio strip from the memory goes away.