Stuck with a SynthEdit project?

Month: February 2025 (Page 1 of 2)

V1.5 FAQ’s

Requirements

Windows.
V1.5 Requires Windows 8.1 or better. 64 Bit Windows 10 is recommended. V1.5 may well not run on anything older than Windows 10, and any Windows OS must be 64 Bit.
MAC OS.
macOS plugins require macOS 10.9 or better.
Linux/Unix.
Sorry, no some people have tried WINE and Linux with varying success.

(False) Virus Alerts.

Unfortunately all Anti-Virus software is getting more aggressive and is registering harmless modules that haven’t been code signed as a Virus. Chances are if it’s a SynthEdit module it’s going to be a false positive, and you can safely ignore it.
I had the issue with Elena Novaretti’s Spectral Synthesis trial modules installing OK, getting a random virus alert, and then the modules would all disappear into some kind of Windows “Limbo”. She’s now fixed this issue but it’s something to be aware of. It’s not something Jeff can fix, so please don’t report it as a bug!
For example the Chrome browser even goes through spells of refusing to download perfectly safe PDF files etc., and tells me perfectly safe websites are out to steal my personal data…

New Features

MIDI 2.0/MPE: MIDI2 and MIDI Polyphonic Expression (MPE) support. Both are hardware dependent, and MPE needs some setting up in the DAW.
MIDI output in plugins (depends on DAW support)
ARM: Apple Silicon (ARM) support.
VST3 Format: VST3 plugins are supported on both Windows and macOS.
SFZ: SFZ (Sample Playback) is now supported.
Zoomable windows: Windows in the editor are now ‘zoomable’ by holding down the <CTRL> key and using the mouse-wheel to zoom in and out.
Finding Modules: Searchable module browser.
Oversampling: New oversampling mode for control-signals (add * to pin name)
New Plug-in formats: ‘Export as JUCE’ supports additional plugin formats in some cases (AAX, CLAP, Standalone)
Faster loading of projects.
New XML-based project format (human readable)’
The ‘Ignore Program Change’ feature returns.
VST3 bypass parameter support (add a Bool PatchMem called “BYPASS”) 

Known Issues

Reaper: Universal VST3 plugins might fail to scan in Reaper. A workaround is to delete the ‘MacOS’ folder inside the VST3 plugin. Davidson has also produced a utility to remove all traces of MAC or Windows from your VST (depends which OS you want to use). The utility is on his website.
MIDI out: MIDI output from VST3 plugins depends on DAW support. Some DAWs, like Cubase, do not support this.
macOS: Partially transparent images may render too dark on macOS.
Windows HDR: On Windows, HDR screens will switch SynthEdit to a slightly lower-quality rendering mode (8-bit).
Parameter Limits: Parameter limits (i.e. high-value and low-value) are not enforced in the SynthEdit editor but are enforced by the DAW in plugins. This behavior is needed to support older projects.
False virus positives. Some anti-virus software might report SynthEdit modules as having a virus. These are usually fake positives (not viruses). If you are a professional developer you can alleviate this by code-signing your plugins.
Ableton BUG: Knob movements can ‘jitter’ in Ableton Live. This appears to be a bug in Ableton Live 12, this is not a Bug in SynthEdit..
GUI Module behaviour: GUI modules (the blue ones) are reset when you change their inputs by typing in the properties panel (window at far right). This might make them act surprisingly.
Intel Graphics issues: SynthEdit may have graphical bugs on low-spec graphics hardware (e.g. Intel Integrated Graphics). You can alleviate (sometimes) this by “Disabling Hardware Graphics” on the General Preferences screen, and restarting SynthEdit. I have personally known this to cause V1.5 to crash during it’s start up before even opening a Window.

Reporting Bugs

Please do report bugs you are helping everyone by doing this, but do not report them at the SynthEdit.IO group but on GITHUB, see SynthEdit Bug Reporting at GitHub. If the bug occurs under certain specific conditions be as full and precise in your description of the bug as possible, screenshots of error messages etc. are very helpful, as are details of your operating system, and if you can upload a zipped copy of the project file for Jeff to analyze this will help him tremendously.

Upgrading from older versions

Please ensure you have the absolute latest version of SynthEdit 1.4 installed, and that way your existing projects will have the fewest problems with being opened in SynthEdit 1.5.
SynthEdit 1.5 will quietly use SynthEdit 1.4 in the background to upgrade projects that are otherwise too old to be compatible with 1.5
Module compatibility. Can I use the new Modules in V1.5 with V1.4 by copying them into the V1.4 modules folder? The official advice from Jeff is no do not do this. It will most likely be very “buggy” and unpredictable.
Any modules from V1.4 that are not compatible with V1.5 will have been upgraded automatically.
Old 32 Bit modules will probably not even appear in the module browser.

Universal VST3 plugins

A universal plugin can run on either macOS or Windows. SynthEdit now produces universal VST3 plugins. This means you can offer the same download to macOS and Windows users. It will ‘just work’. SynthEdit universal VST3s support both Intel Mac computers and ‘Apple Silicon’ (ARM) based ones such as the M1, M2, and later. As a result of being universal, VST3 plugins now take a little more disk space and contain more files than with previous versions of SynthEdit.

MIDI 2.0

SynthEdit 1.5 uses MIDI 2.0. This should work automatically in most cases. However, if you are using 3rd-party MIDI plugins you will need to use a MIDI Converter module to convert their incoming MIDI to version 1.0. You don’t need any converter on the output, SE will convert it back to MIDI 2.0 as required. 

Creating VST 2 plug-ins.

SynthEdit 1.5 (and later versions) does not directly support the saving of VST2 plugins (only VST3). However, some projects can also be loaded in the older version (SynthEdit 1.4) and exported as VST2 plugins from there.
To save some hassle SE 1.5 export has a tick-box option ‘Create a VST2 using SE 1.4’. All this does is automatically launch SynthEdit Version 1.4 (if it’s installed) and export the same project from there.

limitations:
1) The project file must be compatible with SE 1.4, this means the projects save format must be *.se1 not *.synthedit
2) The project must rely only on modules that are SE 1.4 compatible
3) You must have the latest SE 1.4 installed Build 695  or later. Earlier versions will fail to work properly if at all.

64 Bit Synthedit FAQ

Modules and compatibility.

The 64-bit version of Synthedit requires 64-bit modules. A lot of your older modules are likely to 32-bit.
The 64-bit version of SynthEdit will load projects created in the 32-bit version, but some modules will be inactive (greyed out) if you don’t have a 64 bit version of them. With older modules it’s also quite likely that there is no 64 Bit version available.

Can I create my own modules.

Yes as long as you are familiar with C++ programming, and are prepared for a steep learning curve with DSP concepts, and programming in general.
You need to have either the Codeblocks or Visual Studio C++ programming software installed.

VST pre-sets.

FXP Presets.
With the VST preset format (*.fxp) the presets that have been saved from saved from 32-bit plugins are generally not interchangeable with 64-bit plugins.
The exception is that the Preset Browser module can load *.fxp presets from 32-bit plugins. However .fxp presets saved from 64-bit SynthEdit will be compatible with 64-bit plugins but not with 32-bit plugins (and vice-versa).
XML Presets.
The .xmlpreset format presets are compatible across all of the Synthedit VST plug in formats.
64 Bit API/GUI
64-bit SynthEdit plugins use a new drawing API. 64-bit GUIs (Control panels) do not support all controls, some controls will look different in a VST3 plugin.
64-bit plugins support only images less than 16384 x 16384 pixels in size or for Windows 7 8192 x 8192 pixels. Fonts may render slightly differently, and text is sometimes wider or narrower or smoothed differently.
VST2 and VST3
64-bit SynthEdit will export both VST2 and VST Version 3 Plugins.
32-bit SynthEdit will export only VST Version 2 plugins.
64-bit Plugins have reduced support for MIDI. Only Note, Controller and SYSEX messages can be received by a plugin, plugins do not currently send any MIDI.
Synthedit 1.5 and VST2.
If you are using V1.5 you can still export VST2, but you must have V1.4 installed. V1.5 will call V1.4 to load the project, then create it as a VST2. V1.5 cannot directly create VST2. You must also save your project in the .SE1 format, as V1.4 cannot load the new .synthedit file format
MIDI Channels.
At present Plugins only receive MIDI on channel 1.
We (SynthEdit) will look at increasing the number of supported channels in a future version of SynthEdit.
MAC Export.
Mac export: Some modules are not available for Mac yet.
Module compatibility with VST3.
Some modules from the older version of SynthEdit are incompatible with VST3: e.g. Float-Scaler (please replace with Float-Scaler2). Always use the latest versions of modules for VST3!
Support for loading VSTs into SE.
64-bit SynthEdit does not support loading VST Plugins into SynthEdit, however the old 32-bit V1.4 does.

Containers as ‘Link modules’

Sometimes Plug In designers feel the need to have a linkage module using a container with IO modules and an internal link from Input to Output.

Something like the structure above, so you can combine and split some data connections and “hide the messy wiring” away to neaten the structure.
This is a perfectly legitimate use of a container, and does not use up any system resources as Synthedit just considers this to be a normal connection between modules So far so good.

However there are some things to be aware of.

GUI data connections. This is not going to work. The data connection through the container will be broken. This is because for the container to pass GUI data it MUST have a visible, and open control panel. Do not pass GUI data through a container.
Polyphony. If you insert a container into a control voltage line this can cause issues with polyphony further down the signal chain. This is because Containers are part of the SynthEdit Polyphony system. Beware!
MIDI to CV 2 connections. Any container that is connected to any plug on a MIDI to CV2 will automatically be considered as Polyphonic.
Note. If a module has an output that can only have one module connected to it, and you connect it to a “splitter” input, you can only connect one of the “split” outputs to a module, because Synthedit treats these connections inside the container as direct connections between modules it will still not allow multiple connections (anyway limiting a module’s plug to a single connection is usually done for a very specific programming reason and should not be circumvented with “hacks”.

Noise Generator.

Noise and why we need it in a synthesizer.

This sounds odd on first hearing that we would actually want to introduce noise into an audio signal, after all most designers of amplifiers and effects pedals spend their time trying to reduce it as much as possible. If you have ever listened to an old short wave radio, a worn vinyl LP, or an FM radio with a weak signal that hissing you heard is noise.
Noise in an electronic circuit is created by random voltages, or variations in voltage introduced to a greater or lesser extent by all electronic components. It’s even present in digital audio systems to some degree.
But consider trying to synthesize certain sounds such as a snare drum, a cymbal, or the sound of wind and rain. All of these sounds and instruments are based around noise of one sort or another. It can also be used to introduce randomly changing control voltages.

More about noise.

There are various types of noise, referred to by colour to describe the frequency spectrum. The two we are concerned with are:
White Noise: This has an even distribution of “energy” or signal level over the entire audible frequency range.
Pink noise: This has a greater concentration of energy, or signal level in the lower audible frequency range.

Creating Noise.

All we need is the Oscillator module set to White or Pink noise, it needs no other settings or controls.

Third Party noise module.

Elena Novaretti has also produce her own bespoke module the ED Noise Gen 2, which saves using an Oscillator to generate noise. It can also be conveniently turned off via the Power plug when not required.

Elena’s Help file supplied with the module is shown below:

ED NOISE GEN (1 and 2)

Simple lightweight white/pink noise generator to be used in place of the stock SE oscillator, when only a noise source is needed.
Please note that the noise sequences generated for a given seed are always identical (i.e. the module does not rely on any external parameter other than the seed you can supply, e.g. from system time and so on)

PIN DESCRIPTION
Type (List) – noise type:
a) White (flat spectrum) or
b) Pink (richer in the low spectrum end)
On/Off (Bool)- the module can be completely switched off when not in use
Retrig (Bool v2 only) – resets the pseudorandom sequence corresponding to a given Seed integer.
Seed (Integer) – a long integer used as the random seed
Output (Audio-Volts) – output audio signal

Important note about polyphony
The fact this module may or may not be cloned, in polyphonic usage may have audible implications, depending on the specific usage.
As with any generator or oscillator, when this module is placed inside a polyphonic circuit it will NOT be cloned, unless any MIDI-CV 2 plugs are connected to its inputs.
With Noise Gen V1: there are really no input plugs which one may want to connect either directly or indirectly to the MIDI-CV 2.
With Noise Gen V2: users may want to drive the Retrig pin with the Gate line from the MID CV 2, to generate identical noise sequences at every key press: in this case the module WILL be cloned, even if the Gate line were interrupted with a switch (this trick can be used to have the module always cloned even when no retriggering is required).

Parallel Filtering

The title says most of it really. We can take a single sound source and split it to feed two filters which are independent of each other (separate controls and modulation inputs). You can use this to provide a “pseudo stereo” effect where the left and right channels have different filtering. Low pass on the left, and high pass on the right. Different polarities and rates of modulation can create some interesting stereo swirling and rotation style effects. Of course there is no need to have both filters fed by the same sound source, if you want they can be two different sound sources. You can mix and match types of filter too. There’s no reason why you should not have a Moog low pass in the left, and a State Variable in the right channel.

VCF with multiple outputs

Using one of the StateVar Filter (Multi) can give us a very wide range of filtering options by mixing the outputs to combine their different characteristics in a number of ways.

Simple Low Pass filtering

Combining Low pass and Band Reject filtering.

Note how in this example we get both a notch and a strong resonant peak.

Combining High Pass and Band Reject filtering.

Note in the HP/BR example the peak has now moved higher than the notch frequency.

Combining Low, High and Band pass.

We now get a strong resonant peak giving a frequency boost, but not much in the way of any filtering out of frequencies.

A two mode alternative to the four mode filter.

This model uses the same filter, but we only use the Low and High pass outputs. The Low pass is fed directly to one input of the X-Mix module, whilst the High pass has the option of being fed through an inverter. The inverter affects the output frequency spectrum.
This is similar to those wonderful Oberheim Expander filters where you could cross mix the High and Low pass outputs. It won’t sound quite the same due to the chips that Oberheim filters used, but close to them.

High Pass in phase.

The frequency spectrum is fairly flat when HP and LP are in balance with no obvious resonant peak. Whereas below in the first example once the High Pass starts to predominate we get a notch with the resonant peak at a higher frequency.

And in this example where the Low Pass is starting to predominate we get a notch with the resonant peak at a lower frequency.

High pass out of phase.

By inverting the high pass output, we can create a strong resonant peak when both High and Low pass signals are in balance, whereas in the previous example where the High pass was not inverted the output is almost flat when the two signals are in balance.

A Mixer for multiple VCOs

The mixer is there purely to give some control over the level of each VCO. It doesn’t need any thing special such as tone controls, send and return channels etc. It’s just serving one basic purpose. You could use Level Adj modules, but I prefer the more natural control the VCA gives over the linear adjustment provided by the Level Adj. I have included the Peak Meter so that there’s a visual indication if we are getting close to clipping levels at the output. Quite important if we are mixing the signals from four VCOs, as when the signals are in phase the levels will add, and can get quite high.
You could add a master level control at the output using another VCA, but it seems a little superfluous to me (all down to a matter of personal preference).
The link “module” is just a container used with the input and outputs directly linked to allow connection of the Peak meter to all the VCA outputs

Inside the link Module/Container.

Master/Slave Oscillators

This is the master/slave setup used by Moog for their modular synthesizers (Moog called the Master Oscillator a Driver). The Idea is you have the one Master Oscillator, and you can sync the other three (Slave) Oscillators to the master. We can’t recreate this exactly, but can have a very close approximation to it.

The Master (Driver).

What we have in essence is the Master Oscillator (Shaded purple). Why the two oscillators running at the same pitch? One is the controller fixed to provide a pulse output, the second produces the audio (I found that changing the Audio waveform affected the sync operation), and the audio oscillator can have it’s output shape selected without affecting the sync.
Note: The Sync Oscillator should have its Pulse Width plug set to 0 for correct sync operation.

The Slaves.

These are set up just like normal VCOs’ would be, and the outputs of all four oscillators fed to the audio output. There’s no reason you couldn’t put switches into the Sync lines using a button and a Level Adj as a gate to allow you to sync/de-sync the slave oscillators.
There’s more you can do like using the PM Input, or PWM on the Pulse setting, but I have left these out to keep things simpler.
Note: If you select noise for a Slave oscillators’ waveform the sync won’t affect the noise at all. Why would it, after all noise is random anyway.
Note: Adding fine tune to each Slave will affect the Audio output, but all the time they are locked to the master you will not get a “detune chorus” effect. Once you “de-sync” an oscillator you’ll immediately hear things go out of tune.

This is my panel layout with controls added

Adding a VCF to a synth

Adding a VCF to a synthesizer introduces a whole range of new timbres. We can remove high or low frequencies, boost frequencies, add resonance and sweep the filter frequency to add dynamics to our sounds
For this project I have used the filter we are probably most familiar with, the Moog Low Pass ladder filter. The structure is fairly simple. We have two Level Adj modules for the following functions.

Keyboard Tracking.

The Keyboard Tracking which would be connected to the Pitch plug on our MIDI to CV Module. This is switched on and off with the KB Track button, this also applies an offset of -5 V when selected to avoid the filter pitch jumping to a higher frequency when tracking is turned on.

Modulating the Filter frequency.

Next we have a simple level control that takes a modulation input from a source such as a ADSR envelope or an LFO. This is simply to introduce a variation in the timbre of the filter’s audio output. By setting the Mod Level slider with a Minimum of -10 V, and a Maximum of 10 volts we can take the modulation from fully inverted through no modulation to full normal modulation.
Note: Don’t worry about the mode plug on the filter- it doesn’t do anything there is only one option -low pass. No I don’t understand why it’s there either!

Input levels.

If you’re connecting more than one audio input it’s a wise move to limit the audio input level to avoid over-driving the filter, as this will result in some quite harsh, un-musical distortion. Remember that each signal adds to other signals (dependent on phase), but generally with two inputs you need to drop the audio input by somewhere around 25-40% dependent on the audio signals.
The filter won’t just saturate and produce a softer distortion it will be a hard digital clipping.

Other types of VCF.

Once you have the basic structure set up you can adapt it easily for other types of filter (The multiple output filters need a mixer on the output)

A basic “Analogue” VCO prefab.

We basically need to add the controls to make our oscillator do what we want.
We have inputs from our MIDI control to control the oscillator pitch. This like an analogue synth is 1 octave pitch change per volt input.
Next comes selecting our output wave-shape so we can select different basic timbres.
After this we can have a signal modulate the phase of our oscillator to produce an interesting FM effect.
Beware: Although you could use the Pitch plug for FM it’s really not recommended as we want the modulation curve for FM to be linear, and the Pitch plug when the oscillator is used as an audio VCO is not a linear response curve.
Another useful input is Pulse Width Modulation which only affects the pulse output wave-shape. All other shapes are not affected by this voltage.
Some notes on VCO settings:
Note: You must leave the frequency scale at 1Octave/Volt! Do not change this when using the oscillator as an audio VCO.
Note: Leave the Smooth peaks option ticked unless you really want “spikey” audio.
Note: Leave the sync x-fade option checked.

Pitch control.

We want to be able to tune our oscillator(s) to a specific note or octave. For this we want the Detuner module which at a very early stage in my SynthEdit journey I modified to be a little more “musician friendly”. It’s quite a simple modification the prefab control’s structure is shown below. All that’s needed is to click on the “Tune” switch module, and then alter the choices in the properties panel on the right to read the same as I have in mine. You now have a note choice that reads C, C#, D…etc. instead of 1,2,3,4. Now you no longer need to remember that 4 = Eb.
The octave switch we can leave “as is”, likewise you don’t need to touch the values on the fine tune control.

Pulse width.

Before connecting anything to the Pulse Width plug change it’s default value to 0 in properties. Next connect the plug to the IO Mod, and connect a slider control to it with a minimum of -8 V and a Maximum of 8 V. This will give the widest useful range of pulse width, with 0 V corresponding to a square wave.

Phase Modulation

Leave the Phase Mod plug at the default value of 0V, and connect it to the IO Mod.
Change the PM depth from 5 V to 0V, and connect the IO Mod to the plug, and a slider control. You can leave this with its default Minimum and Maximum values.
We can use this to connect to the output of another VCO if required to create an FM effect on the waveform.

Sync.

This can be used to synchronize this oscillator to another oscillator, effectively locking the two together to produce further changes to the tone of the audio output. By Using Sync we could have a master oscillator, and synchronize say another three (slave) oscillators to the Master, enabling us to create a wider range of timbres by selecting differing octaves, and pitches for the oscillators (their pitches will be synchronized, but the resulting wave-shapes will be altered). This master/slave oscillator setup was used in Moog Modulars with great effect.

The finished oscillator.

Now you have an oscillator which will track the pitch(es) played on your midi keyboard, and can be modulated in some useful ways. It can be synchronized with or to other oscillators. We also have a choice of Sine wave, Sawtooth, Ramp, Triangle, Pulse, White noise and Pink noise audio outputs.

« Older posts