SynthMaker

Saw LFO skipping

Archive · 2012 8 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

Warmonger ·

In my second project you can see Continuous Blend controlled by LFO. However, I noticed that this LFO, using stock component, is skipping when approaching peak value. Anybody has an idea for this? Maybe it can be somehow caused by weird circuitry of Continous Blend itself.

Is this effect a known issue and can it happen at higher frequencies?

cyto ·

It looks as though the saw oscillator is going out of the -1 to 1 range. Strange I haven't ever noticed this before.

I think a better solution might be to use the "ramp" primitive instead of the saw. This goes from 0-1 so there is no need to scale it with the (*.5)+.5 math. Try that and see if it works. The blend should be okay with an 0-1 input, thought I'm not sure what the "knee limiter" thing in there is (I don't remember putting that in my original design - but it looks vaguely similar to something that lesobrod posted awhile back). If the ramp doesn't work, I can revisit the blend control. I may even be able to write a "stream" version that may work better in this situation (there are a lot of triggers generated by the blend).

-cyto

martinvicanek ·

I think that the sawtooth generator is band limited, so it has overshoots where it jumps. Good for sound oscillators, but less so for LFOs. Here is a code snipplet for a ramp LFO:

streamin freq; streamout ramp; ramp = ramp + freq; ramp = ramp - 1&(ramp>1);

Warmonger ·

Well, I really don't need band limited saw, especially for my other supersaw synth 😉 How about quick code for that?

Another question: how to retrigger LFO on key press?

I'm not sure what the "knee limiter" thing in there is

Me neither, it was used in some automated knob I merged.

cyto ·

Warmonger wrote: Well, I really don't need band limited saw, especially for my other supersaw synth 😉 How about quick code for that?

Martin's code will be fine for ramp/saw oscillators. But to be nit-picky, the ramp should be this...

streamin freq; streamout ramp; ramp = ramp + (freq*.5); ramp = ramp - 1&(ramp>1);

notice if you use normalized frequency, you have to half the freq. The saw would be this...

streamin freq; streamout ramp; ramp = ramp + freq; ramp = ramp - 2&(ramp>1);

Those should be fine (but I'm going on very little sleep here 😉 ) -cyto

martinvicanek ·

Thanks for the correct remark, Cyto. Here is a ramp LFO which will retrigger on key press.

Warmonger ·

You guys are awesome 😀

It took me a moment to find out what you actually did here. I meant of course key press on musical keyboard, ie. when playing note 😉

martinvicanek ·

Oh, you mean the white and black keys like on a piano? Yes, that makes sense. 🙂 Well in that case you'll probably want to work in poly (white connections), where an LFO instance is created for each voice. So whenever you press a key, the LFO for the corresponding voice will be "triggered" automatically.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.