Stuck with a SynthEdit project?

Month: November 2023 (Page 1 of 2)

Synthedit Sub Controls: up/down float value stepper.

This Float value stepper uses the Elena Designs ESD Step Increment Float Module to step up and down in GUI and DSP Floating point values, which are also converted to DSP Voltage for controlling DSP Modules. There is no built in Wrap function on this module, so when you reach the upper limit it counts no further.
There are four settings taken to an IO Mod: Minimum – sets the lowest float value, Maximum sets the highest float value, Step sets the amount by which the stepper increments/decrements, Display Decimals– sets the number of decimal points in the displayed value.

The GUI-DSP Bool Switch: This is just a slider control changed to Small Button in the properties list, with its DSP output voltage converted to GUI bools, then containerised.

SynthEdit sub-controls: Up/down Integer stepper

This Pre-Fab steps up and down through a user pre-set range of integers, with the option to wrap or non-wrap the count. Wrapping means that when you reach the maximum or minimum points the count doesn’t stop. At the maximum it starts decrementing, and at the minimum it starts incrementing.
In non-wrapping mode the count halts at maximum or minimum.
The integer stepping range is set in the Pre-Fab’s properties using the range 0,n Text input plug. The first number does not need to be zero .
Note: The first digit in the count must be lower in value than the second Integer, the prefab will not function with the values reversed or with negative values, and this plug will only update the number of steps set in properties when the audio engine is running.
The Wrap function is a Boolean input, or can be set in the Prefab properties via the Wrap plug.
Note: this plug will only update the Wrap mode when the audio engine is running.
The Increment 3 Module does just that, it steps backwards or forwards through the range specified on the Item List plug the format is:
range minInt, maxInt, for example range 2,22 will step through the range of Integers starting at 2 and ending at 22.
The Patch Memory Text Out and Patch Memory Bool Out modules are required for the Prefab to receive, use, and remember the values set on the range 0,n and Wrap plugs. Without these modules these plugs will not function. There are two Integer outputs, DSP and GUI.

Clickable text labels.
The Image2 modules can be replaced with any GUI module that sends/receives a Mouse Down event. So the layout below will work just the same, but with the added feature that clicking on the Up/Down text labels will also step through the count.

Expanding on the functionality:
By Adding a few more modules we can add more outputs: GUI/DSP Float and DSP Volts.
Note: Even though Float and Volts have decimal places, because our Increment module outputs Integers you will never get decimal places.

Renaming a Knob control in SynthEdit.

This seems to be something that confuses most newcomers to the world of SynthEdit plug-in design. Once you know how it’s done its easy, if a little repetitive in large projects. The usual mistake that’s made is to change the Name in the properties panel, then wonder why the control is still labelled “Knob” in the panel view.
The first thing to realise is that the Knob control is not so much a module as a prefab, which you can open up and customise.

How to rename the Synthedit Knob control.

Put a knob control into a structure window. Double click on the blue bar at the top, and it will open a new structure window.

Once this is open all you need to do is select the Text Entry4 module, then in the Properties panel change the entry in the Text box from “Knob” to a suitable title for the control. press the return (enter) key and close the window. Your knob is now renamed.

Renamed knob control


Hint:
If you find yourself doing this lots of times and using the same titles, why not set up some prefabs knobs of your own with useful titles such as: Cut-off, Q, Frequency, Attack, Decay & so on. You can even set up your own sub-folder in the Prefabs folder called Knobs to keep your selection in. You’ll usually find the Prefabs folder by using Windows File Explorer in one of the sections under Users: see below…

Saving a new Prefab.
Just right click on your renamed Knob control, and select Selection to Prefab from the popup menu and save in your folder of choice. You’ll then be able to see your new prefab control in the Modules menu.

Saving a prefab

The NaĂ¯ve Oscillator in SynthEdit.

So what is this NaĂ¯ve Oscillator? I’m guessing you don’t know the term
(I didn’t know what it was for some time). Well it’s all to do with Aliasing, and the frequency limitations that apply to digital audio.
A “normal” oscillator in Synthedit is what is called “bandlimited” to prevent it producing frequencies above the Nyquist limit. The NaĂ¯ve oscillator is not bandlimited and thus will produce aliasing (and lots of it!).
Note: The naive oscillator is also not very well optimised, so it’s a bit higher on CPU usage than the normal Oscillator module.

The difference between the Naive and normal stock oscillators.

Using the stock Frequency Analyser gives a good demonstration of the difference between the two oscillators.
The top oscillator is bandlimited, so has anti-aliasing built in.
Both Oscillators are generating a sawtooth at just over 1kHz. There is a noticeable amount of distortion and extra non-harmonically related frequencies generated at this frequency.
Notice all the extra frequencies below the 1kHz fundamental coming out of the NaĂ¯ve Oscillator. What is happening here is that lots of high frequencies are being created by the sawtooth, but due to the limitations of the audio in Synthedit these higher frequencies are actually being folded back on themselves above the maximum audio frequency and appearing as spurious lower frequencies which are not harmonically related to the fundamental frequency.
You can see where the Bandlimiting starts to take affect; the level of the harmonics starts to dip, then suddenly cuts off, compare this with the NaĂ¯ve Oscillator where the harmonics just keep on going…

Increase the Oscillator frequency to 8kHz and things will get even worse:

This diagram makes things a little clearer, the red dashed line shows the harmonics that have been “folded back” into lower frequencies, being above the maximum our digital audio can handle they aren’t ignored, but instead turned into an ugly sounding inharmonic mess.

Aliasing  and "folding back"

If you want to find out more try these articles:
https://www.metafunction.co.uk/post/all-about-digital-oscillators-part-1-aliasing-foldover
https://www.metafunction.co.uk/post/all-about-digital-oscillators-part-2-blits-bleps

Creating a SynthEdit Bode Frequency shifter.

This project is loosely based on the original 1630 Bode Modulator designed for the Moog Modular Synthesizers.

How the original Bode Modulator worked.

In the Bode frequency shifter the audio is mixed in a balanced modulator with an ultra-sonic carrier of, for instance, 20 kHz. Thus two sidebands are generated around a suppressed carrier of 20 kHz. The carrier is that central “spike” between the two sidebands in the Amplitude Modulation. The modulation process should remove most, if not all of the carrier. Filtering is needed to remove the unwanted sideband.


One of these sidebands, usually the upper, is then passed through a filter with a very steep attenuation at the carrier frequency to remove this upper sideband (down to the closest possible frequency to the carrier).
This sideband signal is then mixed in a second balanced modulator with a second ultrasonic frequency of around 20 kHz, and thus reconverted back into the normal audio range.
Through this process of modulating and single-sideband filtering, the audio spectrum is shifted by an amount equal to the difference between the two ultrasonic frequencies. For instance, when using a carrier frequency of 20 kHz , an upper sideband filter, and a second ultrasonic frequency of 19.9 kHz,
the re-constituted audio components appears to shifted up by the difference of the two ultrasonic frequencies (in this case 100 Hz).
The quality this frequency shifter depends mainly upon the quality of the single-side band filter. The upper audio limit frequency of shifters built with most types of single-sideband filters lies at 10 kHz. The lower frequency limit for no interference by the suppressed sideband is around 200 Hz, this is of course dependent on the efficiency, and steepness of the cut-off of the filters.

Our SynthEdit Frequency shifter.

Important Note: For this Prefab to function correctly you must have the Sample Rate in SynthEdit set to 192k, otherwise the oscillators and audio will not work correctly. Please set the Sample Rate in the preferences as show below.


The design relies on two oscillators each with two outputs;-the second output being identical in frequency-but with a 90° phase difference
The first Oscillator is fixed at 20kHz, the second has a variable frequency with two outputs with the same 90° phase difference.
The audio input has a 12 Pole Butterworth Low pass filter with a cut-off of
18 kHz feeding a Hilbert filter (The Hilbert Filter is the SynthEdit equivalent of the Dome filter used in the original Moog design Bode Modulator). The input is filtered to prevent any signals close to the carrier frequencies entering the circuit and causing undesirable cross-modulation. The two outputs from the Hilbert Filter module have a constant 90 degree phase difference between them at all audio frequencies, other than this the module has little or no effect on the audio which is passed through it.
Each output feeds a separate Ring Modulator, which is in turn passed through a Butterworth Low pass filter with a cut-off of 18 kHz. These then feed into another pair of Ring Modulators with a carrier input from the 19 to 20 kHz Oscillator (again with a 90° phase difference between each oscillator).
The difference between the Fixed 20kHz Oscillator and the Variable Frequency Oscillator (VFO) gives the us the frequency shift effect.
This design doesn’t actually shift the pitch of the input (It’s not a Pitch Shifter or harmoniser as such), but what it does is shifts the harmonic spectrum up or down according to the difference in frequency between the fixed oscillator and the variable frequency oscillator.
What is happening is the two Ring Modulators on the input are producing an amplitude modulated 20 kHz signal with the 20 kHz carrier removed in the modulation stage, and any residue of the carrier signal is filtered out by the two low pass filters. The signal is then fed through two more ring modulators with a variable frequency carrier, which is again removed at the output of the ring modulators- one thing we don’t want to hear is a continuous sine wave “whistle”. The difference between the two modulator frequencies produces the frequency spectrum shifting effect.
There is a final low pass filter with a steep cut-off placed after the output VCA to remove any last residue of the two carrier signals.

The main structure of the Bode modulator

Bode modulator structure

The frequency readout.
This is achieved by converting the voltage from the VFO’s control knob to a floating point value, then converting to a to text string and sending the result to a DAM Text module for the display.
The Subtract, Multiply, QTN Volt2GUIFloat, and the Float To Text modules convert the voltage from the Frequency control knob for the 19-21 kHz VFO a text string to use as the frequency read-out ready for the DAM Text module to display (Knob Readout).
Subtract Module:
This module is used to subtract -20 from the control voltage for the VFO, this is because a VFO frequency of 20kHz gives a 0Hz shift, so by doing this we remove the 20kHz offset. So we set Input 2 of the Subtract module to -20.
Multiply Module:
To get the correct frequency shift readout we need to multiply the VFO control voltage by 1000 as we are using a frequency scale off 1V/kHz for the oscillator.
Hence Input 2 of the Multiply module is set to 1000.
QTN Volts to GUI Float Module:
There are no settings to change on the QTN_Volt2GUIFloat module, and the Float To Text is set to 0 decimal places. This module is just to allow the preceding DSP modules to “talk” to the GUI display modules.
Float to Text:
This converts the Floating point value to a Text string for the DAM Text Enter module. You can set the number of decimal places to be used with the Decimal Places plug via the properties panel (The default is no decimal places)
The Text Display for the frequency shift display:
There are some properties settings to change on the DAM Text Enter module:
Change the Text Displayed to “Append”, In the Text Static box enter “Hz Shift”.
If you want a text colour other than black change the Font ARGB to the relevant value, and if you want a transparent background for the text change the A setting from ff to 00 for both BG Top ARGB and BG Bottom ARGB.

Filter Settings:
All the Butterworth Low Pass filters are set to a steep 12 Pole roll-off, and set to 18 kHz cut-off frequency- this should not be variable, and should be left at our design frequency of 18kHz.
Level control slider settings:
The Input and Output VCAs both have their Slider controls set at a maximum of 20 Volts to compensate for the inherent lower audio output levels from the Ring Modulators.

Dual phase 20kHz oscillator.
Both Oscillators are set to sine wave outputs. The cosine oscillator has it’s Phase Mod plug set to 2.5 Volts, which ensures the 90 degree phase difference.
The oscillators have their Frequency Scale set to kHz/Volts.

Dual phase 20 kHz oscillator

Dual Phase Variable Frequency Oscillator.
Both Oscillators are set to sine wave outputs. The cosine oscillator has it’s Phase Mod plug set to 2.5 Volts, which ensures the 90 degree phase difference. The only addition is that both Oscillator Pitch plugs are connected to the IO Mod.
The oscillators have their Frequency Scale set to kHz/Volts. This allows us to convert the frequency shift to a text readout more easily.

Dual phase VFO 19 to 21 kHz

Using the SynthEdit Sample/Hold module.

Sample-Hold is a really neat way of producing random or pseudo-random control voltages. It’s a good way of introducing an unpredictable filter cut-off frequency or audio level into a synthesizer “patch”.

How our sample-hold structure works.

The idea is to take a random (white noise) audio signal (no reason why you can’t use any other form of audio or CV though, but this won’t be really random), and to sample it at regular intervals by using a clock oscillator.
1) The sample/hold module has two inputs, Audio, which is the signal we are sampling, and Hold which is a pulse which tells the module when to sample the incoming audio signal, once the audio has been sampled this voltage will then be “held” until the next sample pulse is received.
2) There is a Many ->1 switch on the audio input which allows you to select from an external audio voltage, and an internal white noise generator.
You could use a standard oscillator set to white noise, or Elena’s ED Noise Gen for the noise source.
3) The Clock Source Switch allows you to select between an external trigger pulse, such as the keyboard, and the internal clock oscillator.
4) Adding the ED Glider module allows us to smooth out the output of the Sample Hold module to produce a glide effect on the resulting CV.
5) The Hold Clock uses a TD LFO B module preset to 25% pulse waveform to generate the regular train of sampling clock pulses- you could also use a standard oscillator set to pulse, with a narrow pulse width though.

Structure of a sample hold prefab

ADSR Envelope generators in SynthEdit.

Any Synthesizer is going to use some form of envelope generator to control the Voltage Controlled Amplifiers, and Voltage Controlled Filters. There is the stock ADSR2 module, and several other 64 bit third party modules available.
It’s known as ADSR from the four portions of the envelope:
Attack, Decay, Sustain and Release.

The ADSR envelope and its components

The controls for an ADSR module control:
Attack time, Decay time, Sustain Level, and release time.
Attack is initiated when the module receives a trigger pulse, once the envelope has reached it’s maximum (10V), the Decay is then started, which is controlled by the Decay time. Once the Decay portion of the envelope has reached the Sustain level this is then held until the gate voltage is removed.

The Stock Synthedit ADSR Module.

This module generates a basic ADSR envelope with a linear slope.
There’s nothing special to note as far as using it goes, except you must connect both the Gate and Trigger plugs for the ADSR to be properly functional.
All the default values for the controls are the standard 0V to 10V, however you can set the range of the Level slider control from -10V to +10V which allows you to have the facility for negative (inverted) envelopes, which can be useful when sweeping filter cut-off frequency.
Calculating envelope times versus voltage.
The scale for the Attack, decay, and release plugs is exponential.
The formulae for conversion are:

Calculation for voltage versus envelope times.

The time is specified in seconds. This means that the default 0 to 10 volts control range equals a range of 9.8 ms to 10.07 seconds.

Stock ADSR2 Module

Gate and Trigger plugs

The Trigger and Gate plugs have related but different functions.
The Trigger is a short pulse when you first press a key down, it signals the start of the note and triggers the Attack segment of the envelope.
The gate also goes high but stays on till you release the key, this controls the length of the sustain portion of the envelope.
The difference comes in mono-mode when you’re holding one note and press a second. In this situation the keyboard sends a fresh trigger, but leaves the gate unchanged in the on-state. This slight difference from a clean note-on is what allows auto-glide, mono-note-priority and soft-steal modes to work to detect legato playing (one note smoothly gliding into the next).
This is crucial to emulating the playing feel of a classic monophonic synth. That’s why all the sample-playback VSTs cannot sound as accurate as SynthEdit. In the old system used by the ADSR Version 1, the gate served both functions, but it meant there was no way to differentiate between a clean note articulation and a number of legato notes, which a separate trigger pulse allows us to do.
This meant that once the gate was high, there was a need to turn it off then on again, causing a slight delay before the new note started. The new system eliminates this inherent delay giving true sample-accurate note timing.
Note: For correct operation of the ADSR module both Trigger and Gate voltages must be used, which means that the MIDI-CV 2 module should also be used (The older MIDI-CV can be used but the Gate and Trigger plugs on the ADSR must both be connected to the Gate plug on the MIDI-CV module.

Connecting up the ADSR module.

Connecting an ADSR to a VCA

The level control and inverted ADSR envelopes.
The Overall level plug give control over the maximum output level of the ADSR envelope. If a “negative” or inverted envelope option is required then you can specify a minimum of -10 V and a Maximum of +10 V for the level control slider.
The inverted envelope will begin at 0 volts as with the normal option, but will then drop to -10 V, instead of rising to +10 V. This inverted envelope can be very useful when applied to the cutoff frequency of a VCF module.
One point to note here is that the with the standard slider control finding the null (0 V) point between – and + 10 volts can be fiddly. There is a solution to this, but it’s not a standard SynthEdit module, we need to build our own “Center return slider” prefab for this.

The Community ADSR module.
The Community ADSR Module (often called the “curvy ADSR”) allows us to generate the usual ADSR envelope, but control the shape of the Attack, Decay, and Release segments of the envelope.
The voltage range for the Curve plugs is from -5 Volts to +5 Volts which gives us a variation from an exponential curve (-5V), through linear (0V) to a logarithmic curve (+5Volts).

Community "curvy" ADSR module

Logarithmic curve:

Log curve

Exponential Curve:

Exponential curve

Using an ADSR module to control a VCFs cutoff frequency.

This is pretty much as per using an ADSR with a VCA, except for the addition of the Cutoff and Resonance controls for the filter.

Connecting an ADSR to a VCF

The TD_ADBSR envelope Module

This is a constant rate ADBSR (Attack, Decay, Break, Sustain, Release) envelope generator module..
About Constant Rate: This basically means ‘speed at which envelope increases or decreases’, it does not mean time. This is how analogue envelopes and most vintage digital synths work. As soon as the envelope reaches its preset level, it switches, so say you put the both the Attack and Break levels at 10 Volts, then the Decay Rate will have no effect.
You may be used to ADSR envelopes where you set the attack and decay rates in time, however this envelope does work in this manner.
The “^2” on the levels is just there as a convenience while still being cheap to calculate, the level sliders on analogue synths do not use linear potentiometers because the human ear does not hear level in a linear fashion.

An example of an ADBSR envelope is shown below:

The ADBSR enevelope

Attack/Break/Sustain points.

The various "break points"

Shape = 0 Volts gives this shaped slope:

0 Volts shape is approximately exponential

Shape = 10 Volts gives an almost linear slope:

10 Volts shape is almost linear

When the Sustain Level voltage is higher than the Break Point voltage.

If the sustain level is higher than the break voltage

When the Sustain Level voltage is lower than the Break Point voltage.

If the sustain level is lower than the break voltage
The ADBSR module and its plugs

ADBSR Module plugs.

  • Trigger:- (Voltage) Trigger Input. This initiates the envelope. If no trigger pulse is available, use the gate signal.
  • Gate:- (Voltage) Gate input the length of this pulse sets the length of the sustain portion of the envelope..
  • Attack Rate:- (Voltage) Sets the rate at which envelope moves to the maximum Attack level.
  • Attack Shape:- (Voltage) Sets the shape of the attack curve.
    0V = Exponential, 10V = approximately linear.
  • Attack Level:- (Voltage) Maximum level of the attack/decay section shaped internally by x^2.
  • Decay Rate:- (Voltage) Rate at which envelope decays to the Break level voltage.
  • Decay Shape:- (Voltage) Sets the shape of the decay curve. 0 volts = Exponential, + 10 volts = approximately linear.
  • Break Level:- (Voltage) Sets the Break level voltage, the level is shaped internally by x^2.
  • Break Rate:- (Voltage) Rate at which envelope moves to the Sustain Level.
  • Break Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
  • Sustain Level:- (Voltage) The level of the sustain portion of the envelope is set internally by x^2. The sustain portion is as usual controlled by the length of the keyboard gate signal.
  • Release Rate:- (Voltage) Rate at which envelope moves to zero volts after the gate signal has returned to 0 volts.
  • Release Shape:- (Voltage) Sets the shape of the release curve.
    0V = Exponential, 10V = approximately linear.
  • Overall Level:- (Voltage) Linear control of the overall envelope voltage.
  • Output:- (Voltage) Control Voltage Envelope output

The TD_AHDSR envelope module.

This is very much like a standard ADSR module, except that when the Attack section reaches it’s peak voltage it is held for a time which is pre-set by the voltage on the Hold Time plug. The hold time is in no way controlled by the Gate voltage from the keyboard.

Typical envelope from an AHDSR envelope module.

Typical AHDSR enevlope
The ADHSR module and its plugs
  • Trigger:- (Voltage) Trigger Input.
  • Gate:- (Voltage) Gate Input.
  • Attack Rate:- (Voltage) Rate at which envelope moves to 10 Volts.
  • Attack Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
  • Hold Time:- (Voltage) 10V = 10 seconds.
  • Decay Rate:- (Voltage) Rate at which envelope moves to Sustain Level.
  • Decay Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
  • Sustain Level:- (Voltage) Level shaped internally by x^2.
  • Release Rate:- (Voltage) Rate at which envelope moves to zero volts.
  • Release Shape:- (Voltage) 0V = Exponential, 10V = approximately linear.
  • Overall Level:- (Voltage) Linear control over the overall envelope voltage.
  • Output:- (Voltage) Envelope output.

Creating a Delayed LFO in SynthEdit

Another handy module we may want to create is a “Delayed LFO”. This is an LFO where the output level starts out at zero, and the LFO output gradually increases over a period of time. Again this is quite easy to replicate with a few more modules added into the LFO structure.

Delayed LFO with linear fade in.

Here I have used the TD_LFO_B. Essentially all we need to do for the slow fade in of the LFO level is to use an ADSR module triggered from the Keyboard. The Attack portion of the envelope, and the overall output level are the only ADSR parameters we need to control, so for the others a Fixed Values (Volts) module can be used with the following voltages set; Decay = 0V, Sustain = 10V, and finally Release = 4V the latter being to give a fade out rather than an abrupt end to the LFO output.
As the LFO doesn’t need to be Polyphonic we put the two voice combiners into the Trigger and Gate lines to force the modules into Mono mode.
Note: For the ADSR2 to work correctly both Trigger and Gate plugs must be connected to the MIDI interface module in use. This structure however, only gives us a linear fade-in.

Simple Delayed LFO

Delayed LFO with a non-linear fade in.

In the structure below we have changed the ADSR module to give us a range of different fade-in curves, it’s now the Community ADSR (Download from https://www.synthedit.com/modules/), which allows you to specify the curve of the envelope by changing the voltage on the Attack Curve, Decay Curve, or Release curve. In our case we only want to change the Attack Curve. The range for this plug is from -5 Volts to +5 Volts which gives us a variation from an exponential curve (-5V), through linear (0V) to a logarithmic curve

Delayed LFO with non-linear fade in

Logarithmic curve.

Logarithmic curve

Exponential curve

Exponential curve

TD_LFO Modules for Synthedit.

These are some third party Low Frequency Oscillator Modules specifically designed and optimised for use as an LFO in SynthEdit.
These LFO modules can be downloaded from https://tdmodules.wordpress.com/ as a (free) module pack. The LFO modules in the pack are shown below.
One useful thing about them is the “Off” selection in the waveform list that puts the module to “sleep” thus saving CPU when you don’t need an LFO running.

The four varieties of LFO

TD LFO A:

LFO A waveforms

LFOA is the more basic LFO module. The screenshot above shows the LFO modules LFO Type (shape) settings available, and the Plugs.
The plugs are fairly self explanatory:
Rate Hz: controls the tempo of the LFO with a scale of 1V/Hz (Maximum of 500Hz).
Phase: shifts the phase of the LFO. 2.5 volts = 0 degrees phase shift.
Modify: Changes the shape of the waveform. In the case of CRnd it’s a randomly fluctuating smoothed voltage . The best description however is a picture… (worth 1000 words)
Hold: Holds the output voltage at the LFO output value present when the Hold plug voltage is taken above 0 Volts.
Sync: Used to synchronize two oscillators, which can introduce variations into the waveform if the two oscillators are running at different rates.
Note:- The Phase and modify voltages are internally limited to the range -5 to +5 volts exceeding this value won’t cause any problems, it just has no further effect.

Variations on the SinPin shape
Variations on the TriSaw shape
Variations on the TrapBias shape
Variations on the TriFin shape
Variations on the CRnd "shape"

The screenshot below shows the effect of using Sync on a sine waveform:

Effect of Sync on a SinPin shape

Creating an LFO with the TD_LFO_A module.

There’s nothing too unusual here, the only thing you need to be aware of is the limits on some of the Plug inputs, you can’t “crash” the module, it just won’t respond to excess voltages.

Basic LFO

TD LFO_A_ST Synthedit Module

This is just a “doubled up” version of the TD_LFO_A module. The extra plugs are fairly self explanatory. You have a Left and a Right oscillator, hence a Left Phase, Right Phase etc.

LFO A ST

Modify Flip does just what you would expect when set to “True”, it just “flips” or inverts the LFO Out R waveform Note: Except for CRnd.

Effect of Modify Flip on the waveshape

TD_LFO_B LFO Synthedit Module.

TD LFO B

The main difference between the A and B LFO’s is extra waveforms:
Off, Sine Saw, Ramp, SawP2, RampP2, Triangle, Trap, Spike, Square, TriSquare, Pulse 25, Fin, FinInv, DblFin, Blip, SineOff, Sine Fold, Dip, Hump, BounceA, BounceB, BounceC, BounceD, Splice2, Splice4, SineUp, SineDown, StepSeq, MultiSeq, CRnd, CRnd Hold.
The best option is to explore these waveforms, some I find are more useful waveshapes than others.
There is also no Modify, or Modify Flip Plug (not needed with so many options)
The TD_LFO_B_ST is essentially like the LFO_A, it’s just a doubled up version with Left and Right outputs.

TD LFO B ST

Adding a Low Frequency Oscillator in SynthEdit.

A LFO in a synthesizer design is a fairly essential option. We can create variations in timbre by modulating the VCFs cutoff frequency, or vibrato effects by modulating the VCOs frequency slightly.
There are two choices, we can either us the stock oscillator (after all an LFO is just an Oscillator running at a frequency below the audible range which they do quite nicely), or we can use a third party LFO module. I’ll cover both options Stock oscillator in this article, and the third party LFO in the next post.

Using the stock Oscillator as an LFO.

The basic structure is quite simple, it’s just the oscillator with a slider control connected to the pitch plug, a list entry selector to select the waveform, followed by a level adjuster module so we can control the LFO’s output level.
The main changes to make are;
1) Set the Frequency scale to 1V/kHz in the properties panel (this is to make working out the LFO frequency easier).
2) Set the slider connected to the pitch plug so it has a minimum value of 0.0005V (=0.5Hz), and a maximum of 0.005V (=5Hz)- we are using 1V/kHz so divide by 1000 to get the frequency in Hz.
3) The level control can stay at the default of 0V to 10V to give us a useful LFO output range.

A basic LFO

Reducing CPU load and adding sync.

So the LFO above is OK as a basic one, but there are two ways we can improve on it a bit.
1) One thing we may want it to do is synchronize with the keyboard, so pressing a key triggers the waveform at the 0 volts “starting point” every time, or it can be synced to another LFO, or a clock oscillator.
2) Efficiency: With the basic LFO it can still clone itself when you press more than one key on your keyboard – it’s a polyphonic oscillator after all. So this is un-necessary, we don’t need it to be polyphonic, and its wasteful of CPU resources (each note means a clone, which means more CPU time used).
How can these options be added to our basic LFO?
Quite simply:
The first thing we need to do is add another IO module into the container, connect the pitch plug of the Oscillator to one of the IO Plugs via a Voice Combiner module (Found in the “Special” folder) this module effectively forces the Oscillator to always be monophonic whatever the settings are in you synthesizer, and however many notes you play on the keyboard.
To add sync we take a connection from the Oscillators Sync plug, via a Switch (Many->1) to the IO Mod.
Adding a Fixed Values (Volts) with a 0 volts output allows us to have a Plug labelled “Sync Off”, along with a “Sync On” plug.
This means our List Entry module will have the options Sync On , and Sync Off available- otherwise you list will just contain “Spare Value” as every option! So now you can have the LFO as free running, or to be synchronised with a key-press, or another LFO.
The improved structure is shown below.

Reducing CPU load and adding sync.
« Older posts