Frequently Asked Questions
SynthEdit and Windows Vista
“I’m using SynthEdit on Vista and it works fine right up until the point where I save my synth as a VST”.
Vista doesn’t allow programs to create executable files (e.g. VST Plugins) in your “Program Files” folder ( or any sub-folder ). Try changing your SE preferences so that SE uses say ‘My Documents” as it’s VST folder (you can always copy the new VST later into your “Program Files/VSTPlugins” folder).
SynthEdit and Windows 10
“I’m using SynthEdit on 10 and it works fine right up until the point where I save my synth as a VST”.
In Windows you can escape this file system limitation by running Synthedit as the Administrator. Open up the start menu, navigate to SynthEdit 1.4/1.5, then right click on the icon and select “Run as Administrator” from the menu.
Synthedit is unable to save to the VST Plugin folder.
By default, Windows does not allow saving files to your VST Plug-ins folder. This prevents SynthEdit exporting VST plug-ins.
You can fix this by changing the folder’s Permissions:
1) Use Windows Explorer to browse to your VST Plug-ins folders. These are usually:
C:\Program Files\Common Files\VST3
C:\Program Files\VSTPlugins
2) If the folder does not exist, create it.
3) Right-click the folder – select ‘Properties’
4) Choose the ‘Security’ tab.
5) Click ‘EDIT’ (You may need to click through a UAC security prompt).
6) Select username “Users”.
7) Tick the options to Allow ‘Write’ and ‘Modify’.
8) To finish Select ‘OK’ to close the two dialogue boxes.
Will there be a Mac or Linux version of SynthEdit?
A Mac version of SynthEdit is not possible at present because SynthEdit’s author, Jeff, has a large backlog of work on the PC version. It won’t be happening in the next few years.
Linux presents a problem in that the VST standard is generally not compatible with Open Source Licenses like the GPL, also SynthEdit is not completely open source, and is not free, which presents an ideological barrier to many Linux users.
Most updates to SynthEdit, like the newest SDK, are written with portability in mind. This represents an ongoing gradual shift toward non-Windows systems.
Could SynthEdit compile Synths as stand alone (*.exe) applications?
In theory yes, but considering the work involved I feel it’s just as easy to use a lightweight VST host. For example SAVIHost can convert your VSTi into a stand alone application. Visit http://www.hermannseib.com/english/savihost.htm
Triggering the ADSR from a button.
I want to trigger a note from a button on my Synthesisers panel, but I can’t get it to work, why?
Connecting a button directly to your synthesisers ADSR won’t work as you expect. The reason is SynthEdit’s sleep mode. When a MIDI to CV module finishes playing a note, it powers-off any downstream modules this saves CPU. However this also prevents the ADSR from responding to the button.
There is a simple solution though, simply connect a Button to a Trigger to MIDI module.
Connect the Trigger to MIDI module’s MIDI output plug to the MIDI to CV modules MIDI input plug. Now when you push the button, a MIDI command is sent to the MIDI to CV, just like any other note-on. The MIDI to CV then wakes up all the modules and starts the note.
The velocity voltage is not right.
I Connected the Velocity out from the MIDI to CV module to a volt meter and got weird values. The voltage seems to go higher and higher instead of going low when you lift the key.
Is this a bug?
No, there is no bug.
The MIDI to CV is polyphonic, and although you only see one on-screen, in reality there are 6 “clones” of them, all connected to your voltmeter.
When you first push Play, all 6 modules have an output of zero (Voltmeter reads “0.00”).
You then play a note, and the voltmeter, reads “1.0” (for example), You play a 2nd note, the voltmeter reads “2.0”, you play a 3rd note, the voltmeter read “3.0”, etc, etc.
Why doesn’t the voltage return to zero when you release the note?
Because each note takes time to fade out, the MIDI to CV module continues to output the same voltages as when you first hit the note.
Imagine if the pitch went to zero the instant you released a note, instead of fading gracefully to silence, all the notes would thump into a loud low frequency buzz.
Imagine if the Velocity output went zero on note-off, if you were using it to control the note loudness, the note would click instantly to silence, like an organ sound. So, when you release your finger from a key, the MIDI CV continues to output the same pitch and velocity. (“Gate” does drop to zero instantly). In a polyphonic synthesiser, these voltages add up, higher and higher, until you reach the maximum polyphony.
There is no bug, except perhaps that the Voltmeter is not Polyphonic, so instead of showing you 6 readings (for 6 voices), it adds them all together, which I admit can be confusing.
Note: Debugging- go to Mono Mode.
If you need to take voltage readings to debug your synth, the easiest solution is to set your project to Mono mode. Voltage readings will make much more sense. (you can set your project back to Polyphonic once you’re done).
I get a loud buzzing noise at a low pitch, and the MIDI won’t change the oscillator pitch.
Chances are you are testing an idea and haven’t put a VCA in the output stage of the signal chain like so:
But the layout below with a VCA in the output, even with the Volume plug connected to the MIDI-CV2 module’s gate will work as expected.
How polyphony works in SynthEdit
When a MIDI to CV Module is added to a Container, all the modules downstream automatically become polyphonic. You can set the maximum number of voices from the container’s properties dialogue. The polyphony is confined to that container. If you bring connections out of the container via an IO Mod Module, the signal is merged back into a mono signal. This is one way to control which modules are polyphonic.
SynthEdit creates clones of the modules in a container as needed (you can’t see the clones, they are generated internally).
How do I stop notes from “sticking” in my SynthEdit synth?
There are several reasons why notes could be sticking, usually due to construction errors. If you are getting stuck notes, check for the following:
1) Ensure that your Envelope module’s Gate inputs are connected to a proper Gate signal. e.g. From the Gate output of a MIDI to CV Module.
2) Make sure that the Envelope module’s Gate inputs are not being controlled by a slider, or fixed value module.
3) Check your VCA module’s Volume input to make sure that it is not being directly controlled by a Slider, or Fixed Value module.
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 VST plug-ins. 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 VST plug-in ends up drawing slightly different than it did in the SynthEdit panel view.
SynthEdit 1.4 consolidates all drawing onto GMPI-GUI which will improve the performance of scrolling and animation in SynthEdit. SynthEdit 1.4 also enables new features like zooming in and out on your project.
SynthEdit V1.3:
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
SynthEdit 1.4 rectifies this issue. The Graphics in SynthEdit 1.4 will look exactly the same when exported as a VST plug-in.
More about Direct-2D
https://msdn.microsoft.com/en-us/library/windows/desktop/dd370987.aspx
https://www.youtube.com/watch?v=HGokM9AikzM
“Poly to Mono” module
This module converts a polyphonic signal to monophonic by splitting off only the most recent note played. The output will be similar to a monophonic instrument. This is useful when trying to modulate a monophonic object (e.g. an LFO) from a polyphonic signal (e.g. note-pitch), which is usually not possible in a meaningful way.
“Voice Combiner” module
This module mixes-down a polyphonic signal into a monophonic signal that includes all voices that are playing.
Plug-ins Reset In Certain Conditions
Plug-ins made with SynthEdit sometimes need to reset. This causes a short pause in the audio, it kills any sounding notes, and resets MIDI controllers to zero. The reasons a plug-in might need to reset are:
1) Changes to the plug-in oversampling settings
2) Changes to the plug-in latency settings
3) Adding or removing patch-cables
4) The polyphony has increased
5) A pre-set change has indirectly caused one of the above to change
6) Changes to the host DAW’s sample-rate
These are all events that cause modules to be added or removed from the signal chain, which in turn forces SynthEdit to recalculate the entire signal chain and this is not something that can be done in real-time.
Latency Compensation
Some types of signal processing introduce an unavoidable, but unwanted time-delay to an audio signal. This unwanted delay is called ‘latency’. Latency is not to be confused with deliberate time-delay e.g. reverb and echo plug-ins.
Examples:
Examples of processing that introduces latency include spectral effects, look-ahead limiters, oversampling, and sometimes filters. This latency is a side-effect of the processing, and we would prefer to experience the effect without any unwanted latency. ‘Latency Compensation‘ aka PDC (Plug-in Delay Compensation) is a method of hiding this unwanted latency.
How does Plug-in Delay Compensation work?
Plug-ins can report their unwanted latency to the host DAW. The DAW can then compensate for this by time-shifting the audio on the plug-in’s track. Shifting a track’s playback earlier in time can compensate for a plug-in that adds latency to the signal. The result is as if the plug-in added no latency. Note that latency compensation works only on pre-recorded material, it is not possible to time-shift live audio. For this reason, you will sometimes hear latency from your DAW when you are monitoring a track while recording it, but not hear latency later when you playback the track.
Modules that introduce latency:
SynthEdit modules that produce latency include the ‘Sinc Low-pass Filter’, the ‘Sinc High-pass Filter’, and the oversampling system. These modules report their latency to the SynthEdit plug-in runtime, and SynthEdit plug-ins in turn can report that latency to the DAW.
You can enable and disable this latency reporting when exporting your plug-in from SynthEdit. The options are:
1) ‘Off’,
2) ‘Full’ (On) and
3) ‘Constrained’. ‘Constrained’ means that the plug-in will compensate for latency up to a point (5ms), but not more. This prevents the user from experiencing too much latency when monitoring a live audio signal or instrument. Too much latency makes it difficult to play a software instrument with good timing. 5ms is enough compensation for most situations anyhow. ‘Full’ compensates latency up to 1000ms. ‘Off’ does not compensate for latency at all.