Note: These knobs are not suitable for use in SynthEdit 1.4, although some have tried (with varying success) to use them in 1.4 it is really not recommended as you may well introduce “buggy” behaviour.
Vector Knob C
These control knobs have the advantage of being resizable. They can be used just as the old style “Image” knobs With a few conversion and Patch Memories we can add text labels and a value readout, with customizable text colour and background. The colours for the centre of the knob (Foreground) and the “skirt” of the knob (Background) can both be changed too. Once the values have been set, they will be retained by the Patch Memories
Using the Vector Pan knob – adding a centre return “spring”.
There’s only one catch to be aware of here, the operation of Spring3 is different from the old Spring module. You must use the right hand Mouse Down input plug for it to work, the left hand plug is just a “through” signal that outputs the Mouse Down signal that the module receives. All we need do is enter the Reset Value of 0.5 in the properties panel. There is the option to enable or disable the spring action by setting and unsetting the On/Off plug. I have added the ED Joystick image as a pan position indicator (which can also control the Pan knob too…)
Vector Bar as a list option selector.
This uses a List to animation module to scroll through a list of options. The options are automatically taken from the List plug of the module it’s connected to.
Free running Arpeggiator. (Note this module is V1.5 only)
This arpeggiator is free-running (not locked to the host DAW’s tempo) Note: Don’t be tempted to use the MIDI-CV2 module on the input of this structure as well as the output. You’ll get a feedback loop warning! Trigger: The trigger ‘input’ is used to reset the Arpeggiator so it always starts in the correct position. Gate: The gate ‘input’ is used to ensure that the clock signal is only received by the arpeggiator whilst one or more keys are held down. Mode: The Arpeggiator mode is a list of off, up, down, up/down and random. Octaves: Selects the number of octaves that the arpeggiator’s output will cover. ED DSP Timer: The timings are in mS so we will need to do some maths to convert this to a readout.
Just connect the MIDI-CV 2 module up to a Synth as normal. It should be a Monophonic synth.
BPM Syncing the Arpeggiator to the host DAW.
This is quite a simple modification, we just need to connect up the BPM Clock 4 module as shown. Again the output is simply connected to a Monophonic Synthesizer. Note: The tempo selection only works correctly when the structure is converted to a VST, and is running inside the host DAW, it will not operate inside SynthEdit.
This module flips negative voltages to positive, whilst leaving positive voltages unchanged. Behaves exactly as a “real world” bridge (full wave) rectifier.
Plugs. Left Hand Side: Signal in:- (Voltage) Input signal (AC)
Right Hand Side: Signal Out:- (Voltage) Output signal
Example below: (The fixed voltages are just used to provide offset for the scope “Beams” for clarity)
This is a “Full Wave” rectifier, which passes the positive cycle, and flips the negative half over to become positive, suppose we just want a half wave rectifier? That is one that passes the positive cycles, and blocks the negative?
To create a Half wave rectifier that can output either a positive or negative output we can use the structure below. The comparator only passes an output signal when the input signal is positive by using the comparator to “gate” the Level Adj module. Inverter 2 is added to “flip” the polarity from +ve output pulses to -ve output pulses.
Windowed-sinc filters are used to separate one band of frequencies from another. They are very stable, produce few surprises, and can be pushed to incredible performance levels. These exceptional frequency cutoff characteristics are obtained at the expense of poor performance in: a) the time domain (meaning they will always introduce latency), b) excessive ripple and c) overshoot in the step response. In the image below you can see how the signal pulse (Oscillator 280Hz) is delayed as the number of “Taps” at a filter frequency of 5 kHz increases, and the amount of “ringing” or ripple on the pulse waveform also increases.
Increasing TAPs increases the latency:
TAPs and latency.
The SINC Lowpass filter is a linear-phase FIR Filter. The number of “taps” specifies the number of coefficients, more TAPs means increased filter cut-off steepness as seen below however, increasing the number of TAPs introduces more latency. In SynthEdit however there is latency compensation. The module is watching for any change to the default value of the ‘Taps’ pin. The module then uses this value to calculate how much latency compensation it requires and passes that value to the host via the ‘SetLatency’ method. Latency is measured in sample frames. The module reports this latency to SynthEdit to enable PDC (Plugin Delay Compensation). PDC hides the effect of latency through the clever use of delay lines. You can literally think of all FIR/SINC filters as a multitap delay with no feedback, all the taps are spaced 1 sample apart, then gain is applied per tap and then all taps are added together. So for a 171 tap delay, you have 170 delays, 171 gains (like level adjust modules) and 170 adds. It’s already well optimised with SSE2, as it’s doing 4 calculations at a time.
Resonance/Q/Feedback.
SINC filters do not include a feedback path, so have no feedback, resonance, or “Q” control plug. The are intended to be used as a filter with a very steep low/high pass cutoff characteristic, rather than for colouration of sound.
Increasing the number of TAPs and the effect on frequency roll-off.
Note about 0 Hz filter cut-off:
Although this filter will allow you to set a cut-off frequency of 0 Hz, you cannot use a filter frequency of 0Hz, this is is an ‘illegal‘ value. You will get quite loud clicks and pops, along with “glitching”. Most SynthEdit filters are “clipped” internally so that end-users don’t input wrong values (this comes at a slight CPU cost of course), usually limited to just above 0Hz and just below the Nyquist frequency. Why 0Hz is illegal is easiest to explain with a simple 6dB/Octave lowpass. If we set the lowpass to 100Hz, then 200Hz (2nd octave) will be filtered by -6dB, 300Hz (3rd Octave) by -12dB, 400Hz(4th Octave) by -18dB and so on, hence the “6dB/Octave” name. Now try and do the same thing with 0Hz….what is an octave above 0? 0 multiplied by 0 is still 0. It’s the same as dividing by zero. To prevent loud pops, clicks and glitching you must limit the lowest cut-off frequency to 14 Hz. Just be sure to limit your patch memory values to prevent illegal values. Other than this the SINC filters are suitable for fast modulation of the cut-off frequency. Note that there is no resonance/feedback on these filters.
Changing TAP value.
One point to note with SINC filters is that when you change the TAP value the audio engine has to reset for the recalculation process.
TAP Value and filter cut-off slope.
Although we can vary the cutoff slope on SINC filters by altering the TAP number, this bears no relation to the more familiar dB/Octave slope, so unfortunately you cannot say that a certain TAP number is equivalent to a particular dB/Octave cutoff slope. This is due to the DSP structure, and the way these filters work, they are a using a different method of filtering which bears little or no mathematical resemblance to the more traditional analogue filter emulations.
The first complex CV generator uses a pair of Time Domain modules X-Mix modules to gradually morph between four Time Domain LFO modules. All the LFOs can be set to run at different rates, and have different wave-shapes making a very versatile CV generator. The morphing is likewise controlled by two more Time Domain LFOs. The Multiplier module has a value of 2 on it’s Input 2 plug to give the correct scale for a GUI Level Bar indicator. The Fixed Values (Volts) Module has an output of 5V, as the output from the TD X-Mix modules has a maximum of +/- 5 V, so we want to convert the minimum -5V to convert to 0V for the meter. The offset control is fed to input 2 of the second Level Adj module so as not to affect the readout of the level indicator.