The CPU usage does seem a bit high when you look at this example in isolation, but I think it’s important to keep in mind that Renoise is designed as a multi-threaded/multi-core application, and it will obviously benefit from situations where your CPU cores can be utilised more effectively.
In a more typical real world situation, your song would have other elements spread across multiple different tracks, and the load would be shared among those tracks (and your CPU cores) accordingly. I believe this is where you’ll start to see things even out a bit more.
Nevertheless, the performance will get optimised, as taktik has already pointed out.
Just out of curiosity, I did some very quick benchmarking with Bit_Arts’ example. I took his Mau5chords sound and duplicated it (track, instrument, automations, etc) to give a total of 16 instances. I then enabled each instance, one-by-one, and took CPU readings from Task Manager (which is always more reliable), and just observed where the CPU % seemed to hover most of the time. By no means scientific, but good enough to get an idea of things, I’d say.
The CPU did occasionally spike a little bit higher than the values listed below, but I put that down to Windows’ usual system fluctuations. My system is pretty much stock, and not optimised for high performance or overclocked in any way. This is just my typical day-to-day usage of Renoise where I keep it open to sketch ideas, while also having other applications running such as Chrome web browser, uTorrent, IRC, Sublime Text, and so on.
I should also point out that I can play all 16 instances simultaneously without interruptions or audio drop outs. If I try to push my system any further – adding more instances, increasing sample rate, lowering latency, attempting to use other applications, and so on – then it does indeed start to fail and break up.
My basic system specs:
- MSI GT70 laptop (GT70H-804817B)
- OS: Windows 8 64-bit
- CPU: i7-3630QM 2.4 GHz (up to 3.4 GHz Turbo)
- RAM: 8GB DDR3
- Audio: Shitty integrated Realtek ALC892
- Renoise: 3.0 beta 5, 32-bit
My Renoise settings:
- Audio -> Device type: DirectSound
- Audio -> Sample rate: 44100 Hz
- Audio -> Latency: 15 ms
- Audio -> Use hardware buffers: ON
- Audio -> Dithering: ON
- Audio -> Realtime audio CPUs: 8
- Audio -> Overload prevention when CPU is above 90% for at least 500ms
- GUI -> Enable GUI effects and animations: OFF
- GUI -> More compatible GFX updates: OFF
- GUI -> Limit frame rate to: 30 fps
My results:
- 1x Mau5chords: 6.5%
- 2x Mau5chords: 9.5%
- 3x Mau5chords: 13%
- 4x Mau5chords: 18%
- 8x Mau5chords: 38%
- 16x Mau5chords: 75%
Here’s the stress test song, if anyone is curious to test it themselves:
Bit_Arts-Mau5chords-Stress-Test.xrns
@Bit_Arts: Hopefully you’re cool with me sharing this, purely in the interests of testing. If not, just say the word and I’ll take it down.