- Source sound volume can be analyzed and converted into an automation envelope (found under the Ops menu button as “Generate from sound”, the unnamed slider changes the window length of the analysis, I’ll label etc this in a future update)
- Source sound pitch can be analyzed and converted into an automation envelope.(*) Don’t expect too much out of this, it’s mainly useful to get an envelope that vaguely resembles the pitch curve of the source sound. (found under the Ops menu button as “Generate from pitch analysis”)
- Fragment scripts can have 2 different sections that are called at seek time or at fragment generation time (forgot to include an example of this in the script presets…) (**)
- When used as an external editor, no longer require a render target folder to have been set
- Effect/VST plugin reported latency now taken into account in the offline preprocessing (ie, the assumably silent beginning of the processing is removed in the processed result)
- Offline preprocessing resets effect/VST before rendering (should fix for example ReaFIR losing the start of the sound)
- Envelope generation function rewritten so that the audio engine mutex lock is held only for a very brief time, even if tons of envelope points are generated
- Some other changes/fixes
Download (Windows-only, OS-X builds still on indefinite hold) :
(*) The pitch analysis uses the csound “plltrack” opcode source code, which is LGPL licensed. So I added some plugin APIs for HourGlass to allow dynamically loading the pitch analysis binary. The source code for the pitch tracking plugin and the modified csound opcode is also included in this release. If you want to modify/rebuild the plugin yourself, you must use the Microsoft Visual Studio 2010 C++ compiler with Service Pack 1. Note that the plugin APIs and the required compiler will likely change in future releases of HourGlass, requiring to do rebuilds of the plugin!
(**) Example script that does a random walk for the source position fragment parameter, starting the random walk at the middle of the source sound play range when the HourGlass playback is seeked. If the source position would go before the beginning of the play range, it jumps to the end of the play range and vice versa.
@seek rw=0.5; @fragment delta=-0.025+0.05*rand(1); offset=rw; rw+=delta; rw < 0.0 ? (rw=1.0;); rw > 1.0 ? (rw=0.0;);