New Tool (2.7, 2.8): Track Freezing

The Freeze Track tool adds ‘track freezing’ functionality to Renoise. :)

The tool will render down a single instrument track into audio files on a pattern by pattern basis. By basing the rendering on individual patterns, the pattern sequence remains flexible and therefore reordering and rearrangement of patterns in the song sequence is still possible.

Freezing and unfreezing the selected track can be performed from the main ‘Edit’ menu or the ‘Track menu’ sub-section of the pattern editor menu.

After rendering, the original source track is disabled and a new ‘frozen track’ and ‘frozen track instrument’ are created.

The instrument will contain multiple samples, each of which is a rendered pattern. Autoseek is enabled by default on these samples so playback will start from any point in the song.

The new track will have notes automatically added to trigger the correct rendered pattern sample at the correct time to give the same overall sound as the original source track.

Unfreezing a track performs the reverse process (deleting the frozen track and instrument, while re-enabling the original track).

This tool is useful for exchanging songs with other users who do not have the same VSTi’s and/or reducing overall CPU usage.

Points to note:

  • Note that due to the way rendering occurs, any patterns that exist but are not in the sequence list cannot be rendered. These will be ignored.
  • Due to the limitations of the number of notes in an instrument, the tool is limited to freezing songs with a maximum of 120 patterns.
  • Automatic unfreezing can only occur when neither the frozen track and instrument have been renamed.

Thanks to taktik and dblue for contributions to the code of this tool.

Enjoy!

(more tools still to come…)

4 Likes

so, it is essentially a pimped up Pattern Editor ‘render selection to sample’, spanning multiple patterns and doing all the tedious work for you?

that is fckn’ awesome. thanks for that.

Hey this works great!

Very clever implementation. Surprisingly clean and terse.

Awesome stuff.

I took the liberty of doing a QA and code review of the quarantine queue. I hope there wasn’t some sort of “Do not publish” PM going on between you and whoever because I approved Batch Render.

Fantastic.

This would be useful if it didn’t render to separate samples but to one seamless sample. Once you use reverbs et c on a track the seams become too obvious.

Would this be possible?

Thanks. I’ve made a new thread for the batch rendering tool here.

Yes it’s definately possible and I understand about reverb trails etc.

However, you are then restricted as you cannot reorder patterns.

I’ll add it as an option (e.g. render Track to single sample) in the next few days.

Awesome, mxb. Thanks a lot. I noticed this also affect trails of instruments of course.

Brilliant!

why is the new frozen sample set to 6db?

Renoise does this automatically when using Render Selection To Sample, in order to compensate for the amount of track headroom you have set in Song Settings.

Next step is auto-sync the freezed pattern-sample to pattern length, than auto-apply slicing and run dblue’s ‘slices to pattern’ script ( New Tool (2.7 & 2.8): Slices To Pattern ) to have the freezed sample cut-up in the pattern again.

:drummer:

but I have 0dB headroom in song settings.

Ah, my bad. I just took a closer look at mxb’s script code and the 6dB boost is actually hard-coded in there. Something for mxb to address in a later version of this tool, I guess.

also, it would be good if frozen track copied vol & pan both pre & post from original track

cool! B)

mxb,
A big reason for using this is the potential ability to freeze hardware instruments. Would you please make it render in realtime if a line-in device is present in the dsp chain?

This will be incorporated into the next version, which should be arriving ‘soon’.

However, as the sample will be launched from the first pattern, if this pattern plays again later in the song sequence the sample will restart at that point.

This is not the required behaviour, so the tool will do a quick check to identify if the pattern in sequencer slot 1 is re-used later and if so will abort and instruct the user how to work around it (duplicate first pattern and make it unique).

There doesn’t appear to be any script access to track headroom value so the value is hard coded to Renoises default setting. There isn’t anything I can really do about this, sorry!

The volume and panning would then then ‘stack up’ (accumulate). i.e. If a track is panned hard right at -18db, then this will be observed in the rendering (the render will only have audio in the right channel and at -18db).

Setting the frozen track to 0db, center panning will result in the same output as the original track.

Good idea! I’ll look into adding this also.

As a general note, thanks for all the positive feedback :)

double post

@mxb: you just did a double post. (you beat me to it!)

(thanks for the revisions/explanations, this is a great tool)

I wouldn’t mind having a version/option that replaces the original track with the freezed content.