SynthMaker

Great Lfo with S&H and other extra mod-things

Archive · 2010 13 old posts

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

NekroDisko ·

Hello! I´ve just completed THE most comprehensive (and CPU-friendly) LFO that I can make (currently), and it is quite useful (I think). It has a bunch of waveforms (16 + Sample and Hold) and also has knobs controlling Phaze and Pwm (with visual display) and a switch for Free-running mode. You will also find a Delay-knob, a Fade-in knob and a knob which controls the mod-wheel amount for the depth knob. I have chosen to make a Mono-synth (with Sub-osc and glide and some effects) for you all to try and to see what the LFO can accomplish in its current design (only OSM download currently). (Please observe):The LFO only affects the Cut-off value of the filter in this synth-design...

If you have any questions or suggestions to enhance it, feel free to do so, otherwise: Enjoy!!!

OSM Download link: http://www.box.net/shared/7rg0juqznt

infuzion ·

NekroDisko wrote: If you have any questions or suggestions to enhance it, feel free to do so, otherwise: Enjoy!!

Thanks for your works! Quick tips: Sample & Hold is better than Text for holding array info. Pre-Delay better is part of the envelope system; eg Hold before Attack. Better to avoid Selectors if you can when handling Stream data.

NekroDisko ·

Please elaborate on your critisicm (I am not quite comfortable with some technical terms yet). What needs to be refined or re-designed here?

As this is my first ever attempt at the Sample and Hold techniqe, I am very curious to learn more about it... Greets!!!

BTW: In some languages "criticism" has a bad connotation while in others it is seen as a more benevolent thing. My view of "criticism" is of the benevolent kind. I want to learn as much as I can, and if my own efforts leave more to be wanted, I´m a person wo want to learn more 🙂. Glad you like my efforts so far:) I guess there are some things here that might be greatly optimized and looked through by you wizards here at the forum, but still I would like to spread these things I have worked with, as there has been questions as to how to accomplish them (like Sample &Hold) so I tried to make my own effort into the work in question...

RunBeerRun2 ·

Thanks, I'll check it out later on today. Look forward to your new synth too!

infuzion ·

NekroDisko wrote: Please elaborate on your critisicm (I am not quite comfortable with some technical terms yet). What needs to be refined or re-designed here? As this is my first ever attempt at the Sample and Hold techniqe, I am very curious to learn more about it... Greets!!!

Ooops sorry SM's terms can be confusing: To use WaveTables; best to store in Float Sample & Hold, not Text.

stw ·

infuzion wrote: To use WaveTables; best to store in Float Sample & Hold, not Text.

What is the difference?

datsound ·

i am trying to figure it out at the moment and it is AMAZING work. I had a look at all the modules and i couldnt see any sine functons and asm code... where is it? where are the waveforms being generated?

is it polyphonic? i dont know how to adjust SM voices yet i guess it is, just that the synth is in monophonic. a

very interesting construction. i would take ages to figure that out. do you have a comparison for the CPU levels. thankyou.

infuzion ·

datsound wrote: i am trying to figure it out at the moment and it is AMAZING work. I had a look at all the modules and i couldnt see any sine functons and asm code... where is it? where are the waveforms being generated? is it polyphonic?

NecroDisco is using "Wave Tables"; you can study the Wave Draw OSC in the toolbox. It is polyphonic since it is using white stream.

NekroDisko ·

Thanx for trying it out. Yes, as Infuzion says, I use wavetables to generate the waveforms (which is great to use if you want to be able to have many various waveforms in one oscillator).BTW, the oscillator-section of the LFO may also be used as an ordinary oscillator, using the elements and modules inside (except perhaps from the S/H-function). I dont know, is this usable for any audio-oscillator work? I guess it could work for an extreme Sub-oscillator at the least, but otherwise...

I have noticed some lag when changing speed in this one. Anyone got some suggestions?

Acrobat ·

stw wrote: infuzion wrote: To use WaveTables; best to store in Float Sample & Hold, not Text.

What is the difference?

I guess Infuzion refers to ARRAY sample and hold for the wavetable, that's the way I use it too - the difference could be the text box is degradable, i.e. if you accidentaly click with the mouse pointer changing the values of the wave...

oddson ·

stw wrote: infuzion wrote: To use WaveTables; best to store in Float Sample & Hold, not Text.

What is the difference?

S&H will store the data in float form without having to convert from text. And is should store more efficiently too.

oddson ·

You're also normalizing the data in the stream but you could do it within the wave data itself (if you also set the preserve DC input in the wave table to TRUE).

It's only one stream add and multiply... if you were making it so the [0,1] and [-1,1] were options then you'd pretty much have to do it this way but if you only want [0,1] you could store all the waves in that form.

I'm really not sure what the right-hand selector is doing for you here:

If it's just to allow you to select the Sample and Hold generator you could just use the left-hand selector with the sample hold stream added and this little bit of selector logic: But you'd have to remember to edit the equals comparison if you add/remove waves or find a way for your wave storage to let it know how many there are. (Note the TRUE input should have 2 not 3 as it's an index -- and I wasn't thinking clearly -- but it turns out it will work anyway.)

Further to the wave-data storage; you could consider storing all the wave data in a single array and extracting the relevant portion with a Float Array Section primitive. I don't know how much benefit there would be but it should store smaller. (Note the ArrayArray modules in my example in the linked thread is more complex than you would need as each section would be the same size.)

Finally... you can get by with one bypass selector if you use a Boolean And connected to the 'on' switch and the greater than comparison from the speed setting.

oddson ·

Another observation: the delay control is strange.

I would expect it to control when the envelope of the LFO starts not an audio delay of the LFO signal.

I think it and the 'fade in' could be merged into a singled coded envelope control that could be very CPU light (with a good size hop since it's for an LFO).

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.