Forums > Max For Live

Signal LFO VS non signal LFO perfomance

April 21, 2014 | 2:51 am

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


April 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.


April 21, 2014 | 4:08 am

non-signal lfo ? how ?


April 21, 2014 | 5:20 am

@WOYTEG
Even if i will use line objects?

@VICHUG
For example

http://cycling74.com/forums/topic/anyone-built-non-signal-lfos/


April 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.


April 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.


April 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.


April 22, 2014 | 6:24 am

Agree with WOYTEG: poly~


April 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.


April 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. –

`


April 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~)


April 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)