Cabbage Logo
Back to Cabbage Site

Csound/Cabbage as VST CPU usage

Hello,
One question : did anyone encounter an increasing CPU usage whilst playing a VST csound/cabbage instrument ?
I turned the morpheur instrument into a VST and I discovered that the more notes I play with it, the more the CPU usage (shown by REAPER) is increasing.
Somehow, it behaves as if some calculation were never finished.
Resetting the instrument brings everything to normal.
Any idea were this may come from ? Could there be a faulty opcode ?

I can try it tomorrow with the developer analysis tools on OSX and see if it’s Csound or Cabbage.

I, at least, did reimplemented the echo and reverb instrument. It seems that the morpheur is less CPU consuming now but it could be good to see which are the most CPU consuming activites

I definitely remember experiencing issues with VSTs and Cabbage 1. On Linux just a simple MIDI-activated oscillator was a problem whenever I pressed down more than ten keys or so.

The same .csd running just on Csound wasn’t a problem no matter how many keys I did. At the time I thought it could be because JUCE was handling the MIDI.

JUCE handles the MIDI, and passes it to Csound. We should probably assume that both Csound and JUCE are rock solid. That leaves my MIDI callback routines as a potential problem spot. I’ll take a look. There were issues with MIDI some time back, but they were addressed in the later releases of version 1.

I tried the default MIDI synth example with pure Csound and -+rtaudio=JACK. I get 3.7% of CPU usage pressing as much keys as I could with both of my arms (real scientific method).

The same thing as a VST compiled with latest Cabbage and running inside carla-single (so displaying the keyboard widget this time) gave me 5% of CPU usage. I think this is acceptable because of the GUI, don’t you think?

Sounds reasonable to me. I would say that is god considering the overhead the GUI brings. Also remember that the more channels/widgets used, the more CPU used. Cabbage will query each channel at each k boundary.