Any possibilty of CPU decrease?

General feedback, questions and feature requests.
Post Reply
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Any possibilty of CPU decrease?

Post by Argitoth » 19 Mar 2008 21:43

Yeah, just wondering, because creating supersaw-type synths are out of the question. :?:

I was thinking maybe a low-quality mode or something. Just wondering though, why does some setups in KarmaFX take so much CPU compared to many other synths?

karmafx
Site Admin
Posts: 1189
Joined: 07 Mar 2005 16:37

Post by karmafx » 19 Mar 2008 23:42

You really cannot compare performance to other fixed-path VSTi's directly.
They are easier to optimize, simply because they are fixed.

That said, I believe there still is stuff that can be done to speed up the synth.... and I promise to take a look at it :-)
If you have a specific setup that you think takes excessive amounts of CPU, please do send me a patch so I can take a look and perhaps remove or optimize the bottleneck.

Please note however that the power you are given with a modular synth has a price. This power is freedom to let you patch modules together in endless ways, but that freedom also allows you create setups that will bring even a modern PC to its knees. If you for instance route an OSC into a reverb module then into a 16xunison module and finally into a 8x polyphony notepitch module, that is like asking for trouble, but that setup is of course also far from optimal.

Some general patch performance tips are:

* Try using as few modules as possible to get the desired result.
Remember, every module will eat a tiny chunk of your CPU.

* If you use polyphony, place all modules that don't need polyphony after the notepitch module.
Typically this means effect modules. If you place a reverb _before_ an 8x polyphonic notepitch module the synth will worstcase internally run 8 instances of the reverb. Expensive stuff, and you won't really hear the difference.

* Place any unison module as close to the osc as possible in the signal chain.

* Only use stereo where it counts.

* Be aware that some modules are more expensive to use than others.
Simplified, Osc's, simple filters and Modulators are fast, while Effects, EQ filters and unison/polyphony is slow.

The code in KarmaFX Synth is highly optimized, in many cases by writing inner loops by hand in FPU/SSE assembler. While this is all fine, things could be made even faster by cutting corners at the cost of a slight quality loss. For instance, modulation doesn't really have to be updated every sample, but could be updated at a lower frequency, like say every fourth sample, in many cases without you would hear a difference.
However, KarmaFX Synth has never walked down that path. I truly believe that quality matters and is far more important than speed. I don't think anyone would choose to use a software synthesizer, if they can get better quality out of their old hardware synthesizers. If you think differently, let me know. :D
Last edited by karmafx on 20 Mar 2008 19:59, edited 1 time in total.

Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth » 20 Mar 2008 00:25

Very nice post, makes me feel good I own KarmaFX.

Yes, in terms of looking at certain specific setups for optimization, I think some of the patches I have created can "reveal" features that should be implemented in KarmaFX. A real-world example:

I need velocity to have a greater effect on volume than the amp module can do on its own, therefor I connect 3 amp modules and set velocity control 100% before I get the desired effect. If you increased the range of one amp module it would help a lot.

Another example:

I usually find the distortion to be a bit weak. Slapping on 3 compressors and turning up the gain really gets things powerful! If the distortion unit instead had a pre-gain with a big range, that would help in that situation.

Here's an optimization example:

To get the desired tone of the osc, I need the distortion effect to be before the NotePitch module so that playing two notes doesn't create dishormonic screams. Not sure if this could be optimized, but it takes my whole core at 6 polyphony.

Other examples:

When a note isn't being played, there's still a lot of CPU usage because somehow the modules are still oscillating. Turning the NotePitch polyphony down helps, but I'm wondering why the CPU is being used during silence. It's possible you could look at this and optimize it.

Edit: I would have showed you these very presets but I'm waiting for the contest!!!! :twisted: :twisted: :twisted:

J3RK
Posts: 11
Joined: 26 Feb 2008 04:51

Post by J3RK » 20 Mar 2008 17:49

I'm all for any optimization that doesn't decrease quality (unless it's an option.) I don't use KFX in poly mode, but I've never had it use too much CPU. (I also run my host at 24/96 with several other things going.) I understand the value of decreasing CPU use, but for me, the high quality of this synth is one of it's major strong points. Not everyone uses it the same way though, and on a laptop or something like this, I could see the need for the highest efficiency. Just my .0212 :)

Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth » 20 Mar 2008 21:31

I definitely don't want to lose quality either. I purchased KarmaFX to be my "precision synth" which I use as a sound design tool as well as creating the synth in my head.

Eventually I would want to be able to type in values as well as turning knobs and be able to tell the keytracking how much each semi-note step value is so I can easily create self-oscillating tuned filters in KarmaFX. Right now, no setting seems to be able to get it perfectly in tune.

dj.tuBIG/MaliceX
Posts: 61
Joined: 02 Oct 2007 08:18

Re: Any possibilty of CPU decrease?

Post by dj.tuBIG/MaliceX » 02 Nov 2008 16:34

Big bump..but I had to say something.

Considering the CPU usage yes is indeed massive even on a fairly moderate-end PC/laptop, I have to say though that despite the really high quality output of KarmaFX Synth, have you considered adding (not as default, but as an optional setting) an "Eco" setting to compensate speed in sacrifice of such quality?

It's understandable to the intentions of the design of the synth, however I still feel at 16 poly with the NotePitch module, the CPU usage is excessive and makes it slightly difficult to work with, without fearing the computer will hang. (Course it doesn't matter too much with monosynth lead patches, though that Rudess Lead one I've made a while back IS pushing it for 1 poly.)

Just me 2 cents. Regards.

Post Reply