Page MenuHome

Missing progress indicator for 'Render Audio'
Confirmed, NormalPublicBUG

Description

System Information
Operating system: Darwin-19.6.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 570 OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.10.16

Blender Version
Broken: version: 2.83.4, branch: master, commit date: 2020-08-05 06:00, hash: rBc113af82881a
Worked: (newest version of Blender that worked as expected)

Short description of error
When we use the 'Render Audio' option from Render menu, after the rendering starts, there is no indicator about the rendering progress, how much time is left.

Exact steps for others to reproduce the error
In any scene with audio in the Sequence editor, try using Render>Render audio command. There is no progress indicator. It is very vital specially for long length tracks.

Event Timeline

Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Tue, Sep 1, 4:18 PM
Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".

Mixdown (the internal name for "Render Audio") is fully handled by the audaspace which is an external library and which is currently not providing any way to monitor its progress during mixdown.

@Joerg Mueller (nexyon) , do you have time to look into this in the near future?

Would it suffice if I add the possibility to add a callback that is periodically called during the mixdown function call? If so, how often should it be called? Without further measures it would be probably be called multiple times per second (i.e. calling it every iteration of the mixdown for loop). Alternatively I could call it every N samples, or check the system time and call it every N milliseconds.

Adding callback in API should be suffice.

On Blender side it will be integrated into the job system, where the job stores boolean meaning "i do have a progress update, please update the UI" and the window manager does actual redraw with the specified timer. So I for Blender needs I don't think you need to do anything smart with checking system time, or trying to skip iterations.
Not sure about non-Blender users though. But kind of makes sense than if application's update is slow it should care about it on its own side.

Will you be able to provide progress (percentage, or factor from 0 to 1, doesn't really matter)?

I made the according changes in rB9cac181fbead. The mixdown functions now expect two more parameters, the first is a function pointer to a function that gets a float and a void*, where the float is the progress (0-1 range) and the second parameters is the second new parameter, i.e. the void* is passed through.

@Joerg Mueller (nexyon), thanks! Now it should be trivial to implement the rest from Blender side.

@Germano Cavalcante (mano-wii), did you have an example which takes a long time to mixdown? I've tried with multiple files here, and all of them are too fast for me.

@Germano Cavalcante (mano-wii), did you have an example which takes a long time to mixdown? I've tried with multiple files here, and all of them are too fast for me.

In my case, I just added a long-running movie that has audio in the Video Editor.
Be sure to change the frame end value to accommodate the movie.
Perhaps the Debug version of blender is easier to visualize the problem as it is slower.