Cpu Override Problems Solution.

I have an idea that can solve CPU usage (override) problems forever!

I am happy user of Renoise from the very beginning, but always had a problem with too much CPU consuming VST instruments and effects. I’m making space/ambient music with tons of instruments (many tracks) and lots of VST effects on each track (for example: backgroud souds which are used only once in the song for a few seconds but every sound is placed in a diferent “space”).
The problem is that sometimes one track (VSTi + lots of VSTs) can take even half (or more…) of CPU and it makes me discourage to meke music at all.

I know - somebody will say - “buy faster computer!”- but it’s not the point - I did it many times and trust me even on fastest machines I had a problem with my tunes and I think many of other musitians creating music in similar genres have the same trouble.

Ok, I can do the compromises, but why should I think during making music in mathematical categories like “I can’t use here this instrument, or this VST effect, because it takes to much of CPU”…?

Sometimes I try to pre-render each track (to WAV) and then glue the song back in some sequencer - but it takes a time, and I don’t have a possibility to hear my song in a realtime mode while creating.

That option in Renoise - rendering each track as a separate track inspires me.

As I’m also a programmer (this is my occupation) I conceive the solutions which can make Renoise realy powerfull tool independently of CPU, offering always possibility to hear our creation realtime during composing the music!

Here it is:

Prebuffering selected tracks into memory or/and into a special Renoise TMP folder on HDD/FlashDrive.

Imagine that on the top of every track you have a checkbox named for example “prebuffer”.
When unchecked Renoise treats it normaly - the track is rendering realtime while playing the song and the output is sending to master track.
When checked Renoise renders this track into a memory or HDD before first playing the song (for ex. after loading song into the tracker from HDD), or intelligently renders it ONLY after making some changes in the track!
Checked tracks once rendered are stored in the memory or tmp folder (during the session with a song) and are NOT rendered everytime from the beginning before playing the song. The track only need to be prebuffered again when some changes in this concrete track was made.

And now while playing the song Renoise uses these tracks stored in the memory like WAV files - they consuming lot of memory but very few of CPU!

Little taste of mathematics:
Imagine that we have a song which is 4 minutes long.
Each whole track prebuffered into memory with 44100Hz/16bit/stereo will take 4410022604 = 42 336 000 bytes (42MB). But most of each track will be filled with empty space (silence) which can be intelligently cutted by prebuferring engine. For example on track no.1 we have two parts of melody - first starts at 0:30 and ends at 0:55, the second part starts at 2:45 and ends at 3:05 - so we have 2 parts with a total of 0:45! The engine only need to remember when to start and to finish playing each part.

Even when we have whole track prebuffered - 42MB isn’t too much when we have for ex. 2GB of memory and HDD or better (then HDD): Flash Drive for TMP folder (for ex. USB flash drive).

The only important thing is that we need to have 176KB/s of transfer assured for each prebuffered track (44,1Khz/16bit/stereo).
With high speed flash drive (45MB/s) today we have hypothetically over 250 prebuffered tracks! RAM memory is much faster!

Somebody will say - “yeah! do you know how long it takes to prebuffer for ex. 100 tracks?”.

Depending of CPU and used VSTs, VSTis - from several minutes to… several hours but after that composing will be a pleasure! Beside that once prebuffered tracks can be stored in that TMP folder for each song with remembered date of last track modyfication - so it wont be necessary to prebuffer it each time after loading the song into tracker (until cleanning TMP).

Maybe it looks very complicated as for a start, but Renoise already have much more advanced/complicated features and I don’t think that it is imposibble to create such mechanism for its autors :O)

But for users/musicians like me it will be the function that incredibly expands possibilities!

I’m personaly ready to pay much more for a new version of Renoise if it will have such feature!

best regards
Greg (Grzegorz Szymczak)

PS. sorry for my poor english…

isn’t this called ‘freezing’ in other audio apps? I think I’ve seen threads about this here before :slight_smile: , Wouldn’t mind seeing this implemented myself.

Yeah, that’s ‘freezing’ alright.

Works very well in SX, although I imagine it relies on a fair bit of direct harddisk streaming. (I notice Renoise seems to stutter and splurt a lot when it’s loading a few samples into RAM after I’ve had a project minimized for a while - so maybe it’d need the disk access routines looked at?)

I’ve got a gig of RAM - and Vista (groan) - and Renoise seems to rely on the disk a lot.

Good idea though. I’d like some way of increasing the processing potential. I have to compartmentalize a lot at the moment. Work on drums completely seperately and resample a lot. Obviously becomes more of an issue with higher end stuff like Sonnox plug-ins and Nebula.

I struggle to run more than 2 good quality reverbs, a few EQ’s and a softsynth tbh. My current machine’s twice as fast as the old one, and I’m only seeing a marginal power increase with audio app’s. (In fact, I think the PC I was using 7 years ago was about on par with that - albeit with Waves rather than Sonnox plug-ins.)

Of course, you want a REAL bump in DSP power, get on board with Nvidia’s CUDA - (a way of harnessing the potential DSP power of a standard 3D gfx card for processing audio.)

Early days, and there’s still issues with memory throughput I hear, but people have got extremely maths intensive filters and things running on it 150x faster than they’d run off a CPU. (apparently!)

Interested to see how that goes anyway. Always used to think it’s a bit crazy buying UAD’s and Powercores and things when you’re sitting on a ridiculously powerful board of maths processors anyway which aren’t being used at all when you’re running an audio app.

I would be guessing that using vista with 1gb of ram and a bunch of standard M$ settings, you’ll probably be sending a whole bunch of crap to your hard drive all the time anyway; you know what the “page file” does, right?
I do like this idea, it sounds alot more efficient than rendering chunks and re-importing them; I would probably feel more comfortable having chunky effects chains with some such option available. I fully sympathise; all too often I come up with effects chains based on what my computer doesnt start to choke up on rather than experimenting with massive ones. Sure, efficient effects chains are a beautiful thing, but I definately do see the limiting edges of trial and error quite often with the current system.