DBraun / DawDreamer

Digital Audio Workstation with Python; VST instruments/effects, parameter automation, FAUST, JAX, Warp Markers, and JUCE processors
GNU General Public License v3.0
922 stars 66 forks source link

Automatically determine render length #43

Open sonovice opened 3 years ago

sonovice commented 3 years ago

Hi and thank you very much for this great evolution from RenderMan!

Most DAWs (all?) compute the final length of the rendered output based on the audio/MIDI input and the "tail" of any subsequent effects or modifiers. It would be great to not have to provide the exact number of seconds to render, but simply call engine.render() and let DawDreamer estimate the correct length automatically.

EDIT: Alternatively, a method that returns the computed length of the current graph would suffice, I guess. Wouldn't feel as polished, though.

DBraun commented 3 years ago

I can see this being important if you're rendering directly from a MIDI file. However, in the other cases, the user probably has a relatively easy way to determine what the duration needs to be. Either you'd be specifying individual MIDI notes or passing audio files with a known duration. Which processor are you thinking about most?

sonovice commented 3 years ago

Rendering MIDI files is exactly my most common use case. I could always just parse them with sth like pretty_midi to get the total length, but having all the needed functionality in a concise package would be great.

Also, some processors or effects like delays, reverb etc. have that mentioned "tail", whose total duration is sometimes rather hard to guesstimate.