SynthMaker

Morphing Waveform LFO

Archive · 2006 15 old posts

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

Keenan ·

I was actually hoping you folks could tell me if there's a more efficient way to go about this module? Here it is. I couldn't figure out sync, so the synced waveforms are just copies of the first two but with the same input connections. Could someone explain how to sync oscillators? I read a little about it on the forums, but from what I understand everything in each synced module has to be the same?

This LFO has two waveforms that morph (like in the Korg MS-20), and adjusts between 0.1 and 25 Hz. The triangle wave morphs saw-triangle-ramp and you can vary the pulse width of the rectangle. I made some nice vibrato out of this LFO. A word of thanks to Stefan for helping with the triangle. 🙂

Keenan

rl ·

I think there is a small error in the rectangle LFO. Try this: Multiply the output of the 2nd Saw with -1 and *add* this to the output of the 1st saw. Sync: Here is an example: [old link]

Hope this helps,

Rudolf

stefan ·

If you could live with having the duty cycle as float data instead of stream you could move the divisions used in the triangle code I gave you outside of the code component using green float maths.

Calculate 1 / dutyCycle and 1 / (1 - dutyCycle) directly on the green data you get from the knob, then feed these values to the code module and multiply with them instead of doing it by division internally as it is done now.

OTOH, if you want to modulate the duty cycle with streams (audio signals) you need to keep the divisions inside the code component.

If all this is greek to you and you need more help, just say so 🙂

angstrom ·

if anyone comes up with a useable way of doing sync at audio rates please let me know. Obviously the ways posted are great for LFOs, but I've never managed to get a synced oscillator to work (without aliasing). 🙁

stefan ·

angstrom wrote: if anyone comes up with a useable way of doing sync at audio rates please let me know. Obviously the ways posted are great for LFOs, but I've never managed to get a synced oscillator to work (without aliasing). 🙁

Not doable without _lots_ of oversampling or BLIT / BLEP.

angstrom ·

yes, we've been here before I believe.

A shame, it is so easy in SE, yet I can't bring myself to open the damn thing.

stefan ·

angstrom wrote: yes, we've been here before I believe.

A shame, it is so easy in SE, yet I can't bring myself to open the damn thing.

There are standard BLIT / BLEP oscillators in SE, or are the default ones oversampled or something?

rl ·

There MUST be an easier way, eg. using lagrange or spline interpolators. Will delve into this sooner or later. Days are to short...

angstrom ·

stefan wrote: angstrom wrote: yes, we've been here before I believe.

A shame, it is so easy in SE, yet I can't bring myself to open the damn thing.

There are standard BLIT / BLEP oscillators in SE, or are the default ones oversampled or something?

heh, think simpler

the main oscilators in SE are wavetables (same as SM) - but in SE the wavetables have an input to restart the dutycycle (called the 'sync' input same as any modular). Any rising slope past 0 will trigger a restart I think. Obviously with the nature of the wavetable oscilator it is already bandlimited

For some reason I thought you used to use SE Stefan?

sambean ·

The problem with using the primitive osc's is if you wan't to phase reset, you have to drive the osc's with the phase, which means you're always running the wave with with most harmonics..

Here's a custom osc I was working on that has a HS input..

http://magalov.myweb.hinet.net/osc/HSosc.osm

Still get some aliasing but less than you would using the primitive oscs.. Not sure how it compares to SE, I'd be interested how they managed it..

The wavetables were created with my attempt at blit integeration and hence may be a bit ropey.. They are are the same format at the primitive wavedraw I think, ie 128*256 but there are 4 osc's so the memory is 4*128*256 if anyone is interested in making their own tables (integer inputs into the wave select offset the wave pointer by WaveNumber*128*256)..

I'd really like to be able to do this with the standard SM wave player ie have more than 1 wavetable input and have the option of different SSE channels with different waves.. hinthint

Let me know if it's suitable, it's not that well documented I'm afraid but feel free to ask..

Sam

angstrom ·

thanks sam, it sounds pretty good. Like you say - still a few rogue harmonics - but pretty useful. I think most of it is self-explanatory. The bit with the two reads is the flux-capacitance integrator right? or is it interpolation , something like that.

thanks anyway 🙂

stefan ·

angstrom wrote: stefan wrote: angstrom wrote: yes, we've been here before I believe.

A shame, it is so easy in SE, yet I can't bring myself to open the damn thing.

There are standard BLIT / BLEP oscillators in SE, or are the default ones oversampled or something?

heh, think simpler

the main oscilators in SE are wavetables (same as SM) - but in SE the wavetables have an input to restart the dutycycle (called the 'sync' input same as any modular). Any rising slope past 0 will trigger a restart I think. Obviously with the nature of the wavetable oscilator it is already bandlimited

For some reason I thought you used to use SE Stefan?

That can't be it. Even if they use band-limited wavetables you can't just restart them and expect there to be no aliasing. There will be "full" aliasing if you do so. They must be doing something else if they've reduced the aliasing..

No, never been a SE user. Sorry 🙂

angstrom ·

the se oscillators make use of a checkbox labelled "Gibbs Effect", also a little checkbox marked "Anti-alias (X fade) for sync"

I just opened SE to check it out with a simple test and of course there are aliased harmonics. Comparing side by side with Sam's oscillator I am very happy with how well Sam's works. Pretty much the same aliasing. I think this is my new favourite oscillator 🙂

stefan ·

angstrom wrote: the se oscillators make use of a checkbox labelled "Gibbs Effect", also a little checkbox marked "Anti-alias (X fade) for sync"

I just opened SE to check it out with a simple test and of course there are aliased harmonics. Comparing side by side with Sam's oscillator I am very happy with how well Sam's works. Pretty much the same aliasing. I think this is my new favourite oscillator 🙂

x-fade? they must be doing a windowed overlap then. weird but somewhat cool solution, but I guess it works to an extent 🙂

platinumears ·

The hard sync was always my least favorite aspect of the SE osc to be honest.. I always thought it was pretty decent otherwise though. 😉

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.