Forums > Max For Live

Signal LFO VS non signal LFO perfomance


Apr 21 2014 | 2:51 am

Could anyone say me please, what type of LFO will be more CPU hungry?

Apr 21 2014 | 3:05 am

To put a long story short: Signal. It’s more values per second if you don’t do anything against that.

Apr 21 2014 | 4:08 am

non-signal lfo ? how ?

Apr 21 2014 | 5:20 am
Apr 21 2014 | 6:30 pm

My preferred solution: downsample a signal rate LFO using poly~. (Via the "down" message/attribute)

It really depends on what you’re controlling but anything that needs accurate timing control is better done at signal rate, IMO.

Apr 22 2014 | 2:39 am

Thanks Peter.
I’am using it as multi control surface on every harmonic of my synthesizer, for frequncy, pan, amplitude and other stuff.
Also that question appeard in my head because standart M4L essentials LFO using jitter, that made me think that this type of LFO is to hungry.

Apr 22 2014 | 5:41 am

I agree with peter. A downsampled signal solution is best in many cases.

Even if i will use line objects?

It really depends what you are doing. [Line~] compared to [line]? Well, [line~] will consume more CPU and will have nearly the same timing accuracy since both will be triggered from the max domain(in comparison to timing completely from the signal domain).
Another problem with [line] is that you will maybe have to go to the signal domain in the end anyway(sounds like you plan that). I guess this will be done using [line~] :P

All in all it sounds like one should advise you to use poly~, downsample it, make your LFO inside.

Apr 22 2014 | 6:24 am

Agree with WOYTEG: poly~

Apr 22 2014 | 7:01 am

If you go with poly~, be sure to use the @resampling 0 attribute to turn off the resampling filters. You don’t usually want them in the case of an LFO, and they’ll chew up CPU.

You can get away with roughly 16x downsampling at 44.1k for amplitude changes (even more if they’re slower).

I also downsample mtof~ when building a synth unless I need to do exponential FM. It makes key-tracking and envelope control for filters much simpler.

Apr 23 2014 | 5:05 am

Sorry, but for now i do not understand you quite well, Peter. Isn’t poly~ resampling signal if i’m using a downsampling function of poly~?
Also as i know, @resampling 0 will make a pitch changes, and i will need to recalculate real frequency values.

Also appeared some new question about LFO perfomance.
For now my synth is eating 20% CPU only because of that part that i attached.

I really understand the problem but, do not know the best solution exept then just lowering a snapshot interval.

— Pasted Max Patch, click to expand. —

`

Apr 23 2014 | 8:10 am

It shouldn’t change the pitch of a signal, though it will reduce its quality. (e.g. don’t downsample main oscillators unless you want to make lo-fi sounds) The only circumstance where the pitch might change is if you downsample it so severely that there is aliasing. (probably not going to be an issue here)

Resampling 0 just turns off the resampling filters. These are used to reduce artifacts when over-sampling, which is not what you’re going for.

Not clear where the list is going here, and that’s actually kind of important. Can you clarify? Is it something that needs a list? (otherwise I’d load it into a buffer~ via listfunnel 0 -> peek~ and read with index~)

Apr 23 2014 | 12:31 pm

Here is a little bit explainable version.
Frequency offset is adjusting a frequency ratio in range of two neighboring harmonics. And every harmonic offset can be separately modulated by one LFO. But also every ratio modulation depth can be adjusted separately.
In simple words, this part of synth is making a frequency modulation of every harmonic.


-- Pasted Max Patch, click to expand. --

Viewing 12 posts - 1 through 12 (of 12 total)

Forums > Max For Live