NeoSynth

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

Screenshot 2026-02-26 at 6.44.09 PM.png
NeoSynth — Modular Polyphonic Synthesizer

What started as experiments in sound synthesis and audio processing gradually evolved into something much bigger. I’ve decided to share the results.

Features
  • Modular, extensible architecture — each module is an independent plugin; 58 modules included
  • Oscillators: Saw, Sine, RSaw, Triangle, Square (with PWM). Audio-rate FM and Hard Sync on every oscillator
  • 24 filters, including attempts at emulating classic analog circuits: Moog Ladder, TB-303, Korg MS-20, Roland Juno-106, Roland Jupiter-8, Sequential Prophet-5, SSM2040, CEM3320, Diode Ladder and others. Most support Filter FM
  • Spectral morphing — 4 algorithms (additive, McAulay-Quatieri, SMS sinusoidal+residual, STFT phase vocoder)
  • Vector mixer — 8-input XY crossfader inspired by Prophet VS and Korg Wavestation
  • Sampler with granular synthesis (grain size, spray, pitch spread, density, window shape)
  • Ring Modulator, Decimator/Bitcrusher, Panner
  • Chorus (Juno-60 BBD style emulation), Spring Reverb (2 variants)
  • 3 noise types (White, Pink, Brown) with S&H mode
  • Lag/Slew module for portamento and smoothing
  • ADSR, AHDSR, DADSR envelopes + Envelope Follower
  • LFO (5 waveforms including S&H)
  • Oscilloscope and Spectrum Analyzer
  • External audio processing (Audio In)
  • 16-voice polyphony
  • 100 modulation matrix slots
  • 48 presets included
Supported Platforms:
  • macOS
  • Windows
  • iOS/Android (planned)
Formats:
  • AU plugin
  • VST3 plugin
  • Standalone version
macOS (10 and above)
Windows (10 and above)

Technology

Written in C++ using the cross-platform iPlug2 framework (macOS + Windows).
Block-based audio pipeline processing with minimal latency within ASIO/CoreAudio buffer limits.

The architecture follows SOLID and data-driven principles — all components and parameters are dynamically discovered via a discovery API. Despite its relatively compact footprint (by modern standards), the system offers flexible synthesis capabilities and is open to further expansion with new modules. If there is sufficient interest, an SDK for third-party module development may be released.
The project is under active development — new modules, improved filters and oscillators are planned.
At this stage, I recommend caution when using extreme resonance settings on certain filters (loud peaks may occur).
That said — and admittedly with full bias — some filters sound more lively and engaging than those of the “analog emulation heavyweights,” such as U-he.

In short: feel free to use it. Free of charge.
Ideas, feedback, suggestions, criticism (even the non-constructive kind 🙂) are very welcome.

Download:
MacOS installation pkg - AU/VST3/Standalone (universal binary)
Windows setup binary - VST3/Standalone
You do not have the required permissions to view the files attached to this post.
Last edited by euggie on Sat Feb 28, 2026 4:32 pm, edited 2 times in total.

Post

Screenshot 2026-02-28 at 2.58.52 PM.png

The easiest way to get started is by following ready-made examples.
Modules can be added to the panel either via the context menu or from the top dropdown selector.

Let’s add, for example, MIDI, Oscillator, Filter, and Envelope — the most standard building blocks of a synthesizer.
In the modulation matrix, the dropdown lists automatically populate with the inputs and outputs of the modules currently present on the panel.

1. Pitch routing (CV)

In the modulation matrix, select a source on the left — for example midi.note (a pitch-type output).
On the right, only inputs compatible with that type will be shown — such as osc.pitch.
At this stage, this is still just control voltage (CV):
midi1.note -> osc1.pitch
The switch between output and input must be enabled.

2. Gate routing

We also need a gate signal (trigger), which is available in the MIDI module.
Add midi.gate as the source and route it to env.gate, since envelopes are typically triggered by gate signals.
midi1.gate -> env1.gate
Enable the switch as well.
At this point, sound should already be audible — you can start playing.

3. Audio routing to the filter

An oscillator is typically followed by a filter.
Select osc.audio on the left and filter.audio on the right:
osc1.audio -> filter1.audio
Set the slider value to 1.0 (this is the gain coefficient).
Now the sound can be filtered.

4. Envelope control of filter cutoff

To control the filter cutoff frequency with an envelope, add another row to the modulation matrix:
env1.level -> filter1.cutoff
Adjust the slider to the desired amount.
The slider automatically adapts its range based on metadata provided by the module (in this case, frequency units).

5. Envelope control of amplitude

To control amplitude, add another connection:
env1.level -> vca1.gain
Set the gain coefficient — start with 1.0.

6. Audio routing to VCA

The filter output should be routed into the VCA:
filter1.audio -> vca1.audio
This gives us the minimal functional synth architecture.

You can add a second envelope dedicated specifically to the filter.
Since the synth is modular, it allows for extremely complex patches. The interface is not yet particularly user-friendly — modularity comes with certain overhead.

At the beginning of the project, I considered implementing a conventional fixed synth architecture, but ultimately decided against it. The primary goal was sound experimentation — and true creative freedom is only possible in a modular environment.

Velocity control

If velocity control is needed, add a Multiplier module together with the envelope.
Logically, velocity should not simply be summed with the envelope value — it should scale (multiply) it.
An example can be found in the TwoOscFilter patch.
You can add as many oscillators as you like — even build additive synthesis structures similar to the Kawai K5000.There will be a quick reference soon posted.
You do not have the required permissions to view the files attached to this post.

Post

Nice
Had a quick play
How do you save a patch without overwriting an existing one or rename a patch

Post

Just two clicks on the patch name and it will become editable, you may save under the new name. It means there's no delete function available so far, unless you manually delete the patch folder.
The more convenient patch editor is on the road

Post

Thanks
What file type is the spectral morph expecting, Ive tried aiff and wav but the Process button stays greyed out

Post

A small hint: if a patch becomes too heavy (remember — up to 100 modulation matrix slots are available) and overloads the CPU, you can limit the number of active voices by clicking on the voice LEDs.

Clicking on currently active voices (green LEDs) will reset them.

Clicking on inactive voices will turn their LEDs gray and reduce the total number of available voices.

By lowering the voice count to an appropriate level, even CPU-intensive patches can run without overloading the processor — naturally at the cost of reduced polyphony.

The selected polyphony setting is saved with the patch.

Post

I couldnt get the Vector Mixer to record mouse movement of the joystick

Post

VariKusBrainZ wrote: Sat Feb 28, 2026 4:58 pm Thanks
What file type is the spectral morph expecting, Ive tried aiff and wav but the Process button stays greyed out
WAV must be ok as well as AIFF. Don't forget to press Process button after loading A and B samples. And then the keyboard will trigger the sound. Then the Morph slider comes into account

Post

VariKusBrainZ wrote: Sat Feb 28, 2026 5:03 pm I couldnt get the Vector Mixer to record mouse movement of the joystick
When you press the Record, it's only arming, the keyboard playing (chord or a single note) is the trigger. While you hold the notes on you may move the joystick, and the movements are recording and after you release the keys they are saved

Post Reply

Return to “Instruments”