Version 1.3 / 1.4 FAQ

This is the main version of SynthEdit. Please back up your older SynthEdit projects before using this version.

Requirements

New Features (64-bit version)

  • Export 64-bit VST3 and Mac Audio Unit plugins.
  • Latency compensation.
  • Improved oversampling.
  • Improved DPI awareness (looks better on Ultra-HD and Retina displays).
  • More modules.

Notes:

1 - Since SynthEdit 1.2 modules (SEMs) are stored in two locations:

64-bit SynthEdit:

  • C:\Program Files\SynthEdit 1.4\modules - Modules shipped with SynthEdit only.
  • C:\Program Files\Common Files\SynthEdit\Modules - 3rd-party add-on modules from other vendors. Please copy your 3rd-party modules here.

32-bit SynthEdit:

  • C:\Program Files (x86)\SynthEdit 1.4\modules - Modules shipped with SynthEdit only.
  • C:\Program Files (x86)\Common Files\SynthEdit\Modules - 3rd-party add-on modules from other vendors. Please copy your 3rd-party modules here.

Don't copy SynthEdit's own SEMs to the common folder (the ones already in C:\Program Files (x86)\SynthEdit 1.2\modules). If you are using SynthEdit 1.1 alongside Version 1.2, leave your existing module folder as-is. Version 1.2 will not access these.

2 - If you experience crashes at start-up this may be caused by a problematic module. Temporarily move your modules folder elsewhere. Then try starting SynthEdit again.

Know Issues:

  • Playing the 'Keyboard' module doesn't work from PC keyboard.

  • To avoid overloading your graphics card, SynthEdit will open only 5 windows at a time.

Known Issues (64-bit)

  • The 64-bit version requires 64-bit modules. Most of your older modules are probably 32-bit.  The 64-bit version will load projects created in the 32-bit version, but some modules will be inactive if you don't have a 64-version of them.
  • 64-bit SynthEdit plugins use a new drawing API. 64-bit GUIs (Control panels) do not support all controls, some types of controls will not show, some controls will look different in a VST3 plugin. 64-bit plugins support only images less than 16384 x 16384 pixels in size ( 8192 x 8192 on Windows 7). Fonts may render slightly differently, text is sometimes wider or narrower or smoothed differently.
  • 64-bit SynthEdit will export both VST2 and VST Version 3 Plugins (VST3 is the newest type of VST plugin). 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. This is due to a limitation of the VST3 Plugin format.
  • The "Embedded files" feature works differently in SE 1.2 (and later), these files are merely copied alongside the exported plugin's other files. The reason for this is Microsoft Windows increased security which prevents files being extracted from a VST at runtime. This feature has been renamed "Copy Additional Files" to better explain what it does.
  • Mac export: Some modules are not available for Mac yet.
  • Some modules from the older version of SynthEdit are not compatible with VST3: e.g. Float-Scaler (please replace with Float-Scaler2).
  • Oversampling a synthesizer will not work unless the oversampled container contains a Patch-Automator module.
  • 64-bit SynthEdit does not support loading VST Plugins into SynthEdit (32-bit does).

Presets

The VST3 plugin format has a new approach to presets. Presets are now stored individually on disk. i.e. They are not stored privately inside each plugin.  This new approach does not mesh well with how SynthEdit has managed presets in the past. For example, the "Ignore Program Change" feature does not work at all in 64-bit plugins.

When distributing your VST3 plugin, you also need to distribute the presets. These can be found in your 'VST3 Presets' folder in 'Documents' e.g. C:\Users\jef\Documents\VST3 Presets\Jeff McClintock\Poly Synth2\Strings.vstpreset

Also, with VST3 it's normally the "host" (DAW) that has the responsibility of choosing and loading presets. A plugin itself is not required to show any list of presets, nor required to provide any kind of preset browser. It is for compatibility with VST3 DAWs that SynthEdit exports your plugins presets as individual files (*.vstpreset). You usually ship these with your plugin to the end-user.

Despite VST3 plugins not needing to manage presets themselves, we have had many requests for a preset-browser that works in VST plugins.  To help with these issues, SynthEdit 1.4 has a new module, "Preset Browser", that can browse VST presets on disk. This module also allows you to categorize presets into groups of similar presets. It can also load and save presets in several formats.

Using the Patch Browser

The simplest way to use the patch browser is to connect a Popup Menu module, this will not only list the available presets, but also group them into categories (if you are using that feature).

Patch BrowserAlternately you can create a patch browser using List Box modules. The Menu-to-Listboxes module can be used to separate the categories and presets into two lists.

Patch Browser B

Setting categories

Each preset can be tagged with a category. To set the categories on presets, hook up a Text Entry sub-control to the Preset Browser as below. In the Text-Entry3, type in a category.

Patch Browser C

Loading and Saving presets

To give the end-user control over the loading and saving of presets from disk, hook up a Popup Menu module like so...

Patch Browser D

Sharing presets between different plugin formats

To convert presets between the various different preset formats like *.vstpreset and *.aupreset, SynthEdit offers two generic formats, the 'XML Preset" (*.xmlpreset) and the "XML Bank" (*.xmlbank) which can be used to move presets between SynthEdit, Audio Unit plugins, and VST plugins. This format is also a plain-text format, so it provides the opportunity for power-users to tweak the presets manually if you wish.

Note: When exporting banks, SynthEdit will avoid exporting blank presets by exporting only up to the last named preset. Presets with blank names after that will not be exported. To blank out preset's names in bulk, use the "Copy Preset" feature to copy a blank preset.

Note: When importing banks to VST3 plugins, the presets will be written to disk as individual files (one per preset). The has the side-effect that when the plugin scans the presets, the presets will end up displayed in alphabetical order (not the order they were saved in). Despite this, you can use preset categories to group related presets.

Presets in VST2 Plugins

  The VST2 plugin standard requires plugins to hold presets internally and provide the list of presets to the DAW.  To aid this, when saving 64-bit VST2 plugins SynthEdit stores all presets from your project as "Factory Presets" inside the plugin.
   In VST2 plugins the  "Patch Browser" module behaves differently: It presents a list of the internal (factory) presets, but in addition adds any external preset files (in the *.vstpreset format). This allows the user to choose from both factory-presets and user-saved presets. If the same preset name exists in the factory list and on disk, only the disk-based preset is shown. This prevents double-ups from appearing on the list.

Upgrading older projects

Newer versions of SynthEdit will generally open projects made with an older version. However, if you encounter problems loading files from Versions earlier than 1.1 please try loading and saving it into SynthEdit Version 1.1 first. SynthEdit 1.1 is better at upgrading very old project files. Once the project is upgraded to 1.1, it should upgrade further OK.

Registration System for your Plugins

The "Registration Check" module allows you to provide a basic system to register users of your plugins. The basic idea is you issue each user with a serial number. The serial is linked to the user's name (or email).

Use two "User Setting - Text" modules, one to save the user's name, and a second to store their serial. This data will be stored on disk and recalled any time the user loads the plugin. Each User-Setting-Text module needs a "key" which identifies what the setting is called. On the first User-Setting module, set key to "Registration Name" or similar, and set the second modules key to "Serial" or similar. (Ref to the diagram below).

Registration Setting will be saved to folder:

C:\Users\UserName\AppData\Local\ProductName\Preferences.xml (Windows)

~Library/Preferences/ProductName/Preferences.xml (MacOS)

In the below example a LED is used to indicate if the user's serial is correct or not. In practice, you might choose to use this signal to restrict the features of your instrument, or to add periodic noise bursts etc.

To generate serials, use the " Registration Serial Generator" module (don't share this module with your end-users). Ensure you enter the same "random seed" into both the Registration Serial Generator and the Registration Checker. The seed should be different for each of your plugins (else the same serials will activate all of them).

Ensure you enter a unique product-name into the User-Setting-Text module otherwise the system will mix up serials from different products. The "Default" setting is not important, it can be left blank.
Registration Modules

New Graphics Code

Older versions of SynthEdit were tied tightly to the Windows Platform. With the introduction of Mac support, SynthEdit needed a new graphics layer that worked on both Windows and Mac OSX. SynthEdit 1.2 introduced this new API called "GMPI-GUI". The new API is "virtualized", that is module developers need to write graphics code only once, and this code is portable to any operating system.

This new API takes advantage of improvements in graphics technology by building on top of Microsoft DirectX. Graphics are now smooth (anti-aliased), fast (hardware accelerated) and resolution-independent (looks good on "retina" and "ultra-HD" displays). To ease the learning curve, and to reduce the overheads of virtualization GMPI-GUI's API is very similar to Microsoft Direct-2D. On Mac OSX, GMPI-GUI translates Direct-2D commands into the Mac graphics API (Core Graphics).

Currently, GMPI-GUI is enabled only in 64-bit plugins. Working in SynthEdit you will still see the old graphics rendering. This provides excellent compatibility with your existing projects but can be confusing when your 64-bit plugin ends up drawing slightly different than it did in SynthEdit.

SynthEdit 1.4 consolidates all drawing onto GMPI-GUI which will improve the performance of scrolling and animation in SynthEdit. It will also enable new features like zooming in and out on your project.

SE Version 1.3 Does not understand "ultra-HD" monitors (aka "retina" displays). These are displays with more pixels than standard HD (high density). Also known as High DPI monitors. The result is the GUI within SynthEdit 1.3 will look half the size that it does in a DAW like Cubase.
  SynthEdit 1.4 rectifies this issue. The Graphics in SynthEdit 1.4 will look exactly the same when exported as a VST plugin.

More about Direct-2D

https://msdn.microsoft.com/en-us/library/windows/desktop/dd370987.aspx

https://www.youtube.com/watch?v=HGokM9AikzM

 Future Development

Future versions of SynthEdit (e.g. Version 1.5) will drop support for 32-bit Operating Systems. This is in line with industry trends.

There are currently no plans for VST support on MacOs (only Audio Unit plugins). This is due to SynthEdit being a small company, we don't have the resources to support every plugin format on every operating system.