4-part multi-timbral FM synthesizer with 6 operators, 39 algorithms, 65 waveform variations, 40 voices, deep modulation, effects (overdrive, chorus, delay, and reverb), and performance features. A whopping 602 parameters per part.
High performance, 100% original C++ and assembly code with meticulously optimized execution paths for processors supporting SSE2, AVX, or AVX2+FMA instruction set extensions.
Single-screen, everything-visible, non-skeuomorphic UI with controls designed for efficient mouse interaction and visual feedback; no hidden parameters, tabs, menu-diving, etc.
Unique variable 2x3 or 3x2 algorithm-dependant operator layout elevates clarity and usability beyond other FM synthesizers.
DPI-aware and custom scaling from 50-200%.
ODDSound's MTS-ESP microtuning support.
Not a DX7 emulation! Aurora FM translates Yamaha DX7/21/27/100/11 & TX81Z patches but is a superior, semi-modular, highly-usable modern instrument for musicians and synthesists.
Inspired by modulation monsters like the Alesis Ion and Waldorf Q.
The link below is for a download of the full version. Aurora FM will run in Demo Mode* until a license is purchased. Purchasing a license entitles you to a guarantee of resolutions to any bugs or compatibility issues you may encounter and a lifetime of updates for as long as I'm able to keep adding features and making improvements.
The license is a perpetual license file to run Aurora FM on any computer you own.
(Obvious) Download the demo and ensure that it works for you on the computer that you intend to use it on.
Pay via PayPal, and include a note informing me of your full name and the email you want me to use to communicate with you if it's different than what's shown on the payment notification email I get from PayPal.
I will reply with your License File as quickly as possible (no more than 8 hours).
Just a tiny sample of all the nice things some lovely people have said about Aurora FM:
"I really enjoy the synth. It tickles part of the FS1R itch for me." - P.K.
"Great synth by the way, I love how it sounds. I get the most glorious pads from this thing." - P.B.
"it deserves to be up there in everyone's mind with the best FM synths" - D.W.
"this is love at first sight, i have tried a load of software FM Synths and this one (To me) is the pack leader!" - R.T.
"I really think Aurora is the best sounding fm softsynth I have heard, no dull mids or harsh highs" - F.B.
"Aurora has become one of my favorite VST instruments" - E.F.
v.1.4.1 32-bit only fix: potential crash when toggling between Poly and P.Retrig voice modes with voices in-flight.
v.1.4.0 - 2022-04-11
Two new dark themes, "Winter Solstice" and "Blood Aurora".
Poly Retrigger voice mode ("P.Retrig") - repeated notes retrigger on the same voice (by request).
Added "LED" level meters to the operator envelopes (which display the envelope levels of the newest voice) (by request).
Envelope stage change for all operators simultaneously with +Alt modifier (multi-stage level change switched from +Alt to +Shift+Alt).
Replaced the fixed S&H operator mod source with a third variable mod source.
Split the single underlying operator Frequency parameter into two parameters, Coarse and Fine, in order to be much more conducive to external control surface setups.
Fixed the reported "integer" properties for operators' Wave and FB In Op parameters to enable correct functionality with external control setups that rely on accurately reported quantization step properties.
Tweaks/improvements to all existing visual themes.
Greatly improved the Bit Depth Reduction to make it much more useful; moved it from an output effect up to the operators' signal generation stages, where it can have a greater effect by cascading through FM.
Removed unintended ability to change the Part via scrollwheeling over a non-active part's Part Selector, which had led to a potential crash.
Potential crash when setting the Patch via the host's UI.
Incorrect rendering of operator's on/off state on multi-Part Patches (introduced in v.1.3.1).
Reduced the file size by ~2MB (!). This was due to tons of unused MFC .objs getting unnecessarily linked in because of a single MFC class I was using, thanks to some MS ridiculousness. I figured out how to get the functionality I needed without needing the MFC class that would require the huge cascade of unavoidably linked waste.
Fix for a race condition introduced in v.1.3.0 that could lead to a crash.
Re-evaluated the changed LFO/S&H rate granularity, lowered to 0.01 increments instead of 0.05; now it's 0.1 step size default, 0.01 step size with CTL modifier (drag or mousewheel).
Made the operator GUI dimming for disabled operators more comprehensive; now all the controls are dimmed and the contrast isn't weirdly high.
v.1.3.0 - 2022-02-12
Each operator can simultaneously be fed-back by itself or by any of its descendant modulated operators.
There's a new modulation target for each operator's feedback amount (FB <#>).
The redundant algorithms (those whose only difference was the location of the single feedback operator) are thus eliminated.
And while the apparent number of algorithms is reduced, the reality is that in comparison the number of algorithms has VASTLY expanded. The new architecture is equivalent to having tens of thousands of DX algorithms.
In addition, there are 7 totally new algorithms.
And the algorithms have been reordered with consistent carrier and modulator assignment order. This improves operator compatibility between algorithms, encourages and facilitates sonic exploration, and improves the outcome of randomization.
Addition of 2 CC input mod sources assignable everywhere (CTL1/CTL2).
New Unison Rank mod source (Uni #).
Minimum LFO/S&H rate lowered from 0.1 to 0, step size halved from 0.1 to 0.05.
New 2nd Overdrive algorithm, less extreme and with more even harmonics than odd.
Delay now has 4 variations - stereo, mono, stereo ping-pong, and mono ping-pong (2Ch, M, P-P 2, P-P M).
Tempo-sync mode added to Chorus rate.
Pan control added to Part slot window.
Operator On/Off toggling from Algorithm diagram.
Ability to change the level of multiple simultaneous envelope points with ALT modifier.
Fixed drag-and-drop not working under some hosts.
Bug fixes, crash fixes, and fixes for some inconsistent behaviour in some edge cases involving envelopes, looping, and mod source timings.
v.1.2.2 - 2021-12-01
Fixed new potential crash introduced in the previous version (ugh...) - my apologies!
v.1.2.1 - 2021-11-28
Fixed: Race condition that could lead to a variety of bad things depending on the host, like incorrect host state restoration or a crash.
Changed: Added wraparound to the Osc Base Waveform selector when changed via scrollwheel.
Several facets of Osc Freq numeric entry:
Fixed: Issue where you couldn't edit the same frequency again after cancelling it.
Fixed: Decimal places in the value not showing even though they'd actually been correctly set.
Improved: Automatic cancellation of the edit if you do any click operation on the control.
New: Added DC offset removal to the plugin's output.
v.1.2.0 - 2021-11-18
New: Channel and polyphonic aftertouch mod sources (AT C, AT P).
New: Numeric entry for osc freq.
New: Middle-click (MMB) to Randomize, for individual parameters, parameter sections (ex: Osc, Env), or related parameter groups (with Alt modifier).
Flexible Osc mod routing architecture - now 3 fixed (LFO1, LFO2, S&H) and 2 variable (Env, MW, AT C, AT P, ? On, ? Off, ?).
Mod source Variable Source->Amp scaling replaces fixed Velocity->Amp scaling.
Minor performance improvements.
All selection controls with more than 3 items are now pop-lists.
Visual distinction between pop-list selectors and click-/scroll-to-cycle selectors.
Pop-lists can be navigated with click-and-dragging in addition to scrollwheel as before.
Better fine-grained value stepping for sliders, now a relative change instead of absolute.
Envelope and Key-Scale points can now be locked individually as opposed to all-or-nothing as before.
Groups of related parameters can now be locked, reset, and randomized together using Alt modifier (Controls: Mod sources, Osc mod section, Env slopes, Effects, Mod Matrix).
User patch directory scanning is now asynchronously threaded and doesn't affect plugin launch time.
Patch Manager window totally overhauled and improved. The active patch can be changed from here, making auditioning your patch library a breeze.
Minor randomization improvements.
Slightly quicker GUI launch time and GUI refresh on Algorithm change.
Workaround for common DX7 sysex invalid format issue.
v.1.1.0 - 2021-06-13
New: MTS-ESP support (select "MTS-ESP" from the Scale selector).
Changed: New anti-aliased drawing routines to replace MS GDI+. Fixes ugly rendering under Wine which doesn't implement the GDI+ AA stuff.
Changed: Tweaked aesthetics with more consistent iconography.
Fixed: Previous version introduced an issue that caused some controls to not update when automated.
v.1.0.0 RC4 - 2021-05-05
Fixed: a couple of different crashes - one involving a race condition in the GUI compositing, and a couple dependant upon a host's threading and timing
Fixed: rendering issues when running multiple instances and the theme or scaling are changed
Fixed: Cubase's plugin parent window not resizing when Aurora FM window resized
Fixed: Wine (Linux) issues
Crash when opening GUI (regression introduced in v.1.0)
Rendering issues due to Wine not implementing Windows' WS_EX_COMPOSITED
Envelopes drawn with erroneous line; compatible workaround implemented
v.1.0.0 RC3 - 2021-04-10
Changed licensing from machine-tied to standard perpetual license file
Fixed state restoration in Ableton
Fixed Mod Matrix (scrollwheel selection worked, pop-list selection didn't)
v.1.0.0 RC2 - 2021-03-18
Fixed FL Studio crash on space key
Fixed crash for 32-bit version on old Core 2 CPU's
v.1.0.0 RC1 - 2021-03-17
It's finally here!
4-part multi-timbral, with per-part channel, key range, voice count, level (moddable), and mute.
1x-4x oversampling (per-part).
65 different operator waveforms (13 base waveforms x 5 variants, plus polarity) (up from previous 8 total waveforms), with operator waveform depth control (controls interpolation between sin at 0 depth and the selected waveform at 100 and everything in between). Depth is moddable.
42 algorithms (up from 32), now sorted logically by ascending number of carriers.
9 envelope slopes, up from 3.
Totally new bank/patch/part management integrating patch banks (new), patches, parts, and Yamaha SysEx, with concurrent state for all in-flight edits, and drag and drop bank/patch management. Now you can easily arrange your patches into subdirectories or bank files, for better organization or convenient sharing.
Mod destinations (Operator 1-6 Waveform Depth, Part Level, Reverb Send Amount), mod sources (Note On/Off/On-Off Random, Key Exp, Vel On/Off/On-Off), and 3 modulation polarities.
Massive performance improvements, with new AVX and AVX2+FMA operating modes, in addition to the original SSE2-only support, and other meticulous performance improvements throughout.
Increase to 40 voices, up from 30.
Increase to 4 unison voices, up from 3.
Changes to the mod matrix to support the new mod destinations. There are 11 mod routing slots for any destination, and you can stack multiple sources to the same destination.
Reverb effect has been slightly improved and is now patch-based and independently fed by the Parts (per-part reverb send level, pre/post fader, moddable).
Ping-pong mode added to delay.
More flexible portamento, with option of Rate (time per octave), fixed Time, or tempo-Sync time.
Greatly improved the ability to select an envelope point if several points are overlapping or close together.
Improved appearances and a new "Winter Ions" theme with a different, "frostier" color palette.
More functional and consistent use of modifier keys for controls.
Slightly improved Yamaha sysex translation.
Better resiliency to corrupted / invalid sysex and patches.
Elimination of ticks from discontinuities in several lingering places, like envelope loops and voice-stealing notes.
Fixed totally-broken touch automation.
State restoration failure in Bitwig.
v.0.26.2 - 2020-07-31
Fixed: Crash in Akai MPC Software when opening GUI
v.0.26.1 - 2020-07-19
Fixed: Regression introduced in 0.26.0 where setting operators' frequencies to 0 would kill output until the plugin was re-instantiated
v.0.26.0 - 2020-07-02
Improved: Patch randomization got a whole lot better! There's now a 2-axis control for performing a randomize operation, and where you click on the control determines:
x-axis: the number of parameters that are randomized
y-axis: the depth of the randomization, usually the range of deviation from the current parameter value, but also with lower depths favouring probabilities of more musically useful values and higher depths increasing the probability of crazier values.
Left-click on the control to randomize, or Right-click to perform a reset + randomize -- super handy for quick randomization!
Improved: Also improved the performance of GUI updates after randomizing or changing patches
Changed: Swapped the locations of operators 5 and 6 for algorithms 14 and 15
Fixed: Some issues with parameter locking
v.0.25.0 - 2020-06-17
New: Selectable start phase for LFO1/2 -- each of the 4 quadrants (0°, 90°, 180°, 270°)
New: Additional source inputs for the S&H -- LFO1+2, LFO1+Env, LFO1+Rand, LFO2+Env, LFO2+Rand, Env+Rand
Changed: Changed the operator sync phase control to make it consistent with the iconography for the new LFO start phase control, and the waveform selector to make it more consistent with those.
v.0.24.1 - 2020-06-09
Fix: Two problems pertaining to loading of Yamaha 4-op SysExes that were introduced in previous two versions -- nasty click when loading a patch, and mono/poly voice mode not set correctly.
v.0.24.0 - 2020-06-02
New: By request, added a level control to the Chorus (actually a dry:wet Mix control). While I was at it, I added 3 slightly different selectable algorithms to the Chorus (1-4, the previously existing algorithm being #2), and also made the new Mix control moddable.
Note: Over the course of these last few updates, I've been taking the opportunity to refactor and streamline some under-the-hood code that was subpar (or just plain crappy) or that I wasn't happy with. When doing this kind of work I'm as careful as I can be to not create any new problems and to test rigorously, but since a lot of important code has changed it's always a possibility that I've created a new problem somewhere... As per usual, please let me know immediately if you experience any issues!
v.0.23.0 - 2020-05-24
New: Mono Legato mode!(Voices: M.Legato) In this mode, when a new note is played legato (while the current one is still held), the envelopes don't restart. When not playing legato, this mode is no different than Mono, ie. the envelopes do restart, just from the amplitudes where the current note left off.
Fix: In mono mode, there could be audible ticks from discontinuities if the amplitude scaling differed enough between the notes.
v.0.22.0 - 2019-12-12
Fix: Issue with Ableton Live 10 where the DX Patch Bank window was getting hidden in the Z-order and couldn't be brought back without minimizing windows to reveal it, closing it, and then reopening it. Yuck.
Improved: Chorus effect smoothly toggles on/off without clicks.
Improved: Can override locked parameters when Resetting or Randomizing by SHIFT+clicking.
v.0.21.1 - 2019-05-13
Small change needed to fix licensing for Linux/Wine support. Other than that, Aurora FM was confirmed to work perfectly under Linux/Wine - nice!
v.0.21.0 - 2019-04-11
Improved: Unison now works in monophonic mode.
New: Ability to lock parameters against changes when switching patches or randomizing. Can be quite handy. CTL+SHIFT+LMB on a parameter to toggle on/off.
New: Option to have voices stop or continue when changing patches/randomizing.
v.0.20.0 - 2019-01-20
New: Alternate scales and microtuning, including: 12-EDO, Just Intonation 5-limit symmetric 1/2/asymmetric, Just Intonation 7-limit, Harmonic, 15-/17-/19-/22-/24-/31-EDO, and Bohlen-Pierce.
Improved: Extended drag-and-drop copying to include Envelope+Scaling and Full Operator, in addition to existing Envelope.
New: Randomizing! The 1-10 slider controls the amount of parameters to be randomized and in some cases the extent of the possible randomization, and the Rand button does the randomizing.
v.0.19.0 - 2018-12-11
Changed the Algorithm control to draw dynamically instead of just display an image. It now reflects when operators are turned off, highlights the operator under the cursor, and is much more readable when scaled to a factor other than 100%.
Removed unnecessary processing when the host sends redundant parameter changes for values that aren't actually changing.
Yet more improvements to the GUI response when changing patches/algorithms.
v.0.18.1 - 2018-12-03
Fixed issue introduced in 0.18.0 where ModEnv wasn't displaying accurate state.
v.0.18.0 - 2018-12-02
Improved custom GUI scaling. Now there's a handle in the bottom-right corner for on-the-fly continuous resizing as opposed to the old method which destroyed and recreated the GUI at each new size. The new method is much quicker at resizing. You can still use CTL/SHIFT + mousewheel on the main window to change the size in 5% increments, plus you can double-click on the main window to reset the size to unity.
Improvements to the envelope / key scale controls:
Increased the size of the cursor hitbox for the point handles by a couple of pixels.
You can now distinguish when the cursor's over a point. The point handle is highlighted more when the cursor's over it as opposed to when it's the currently displaying point.
A 2nd theme to placate users who don't like the gradients. It doesn't have any gradients and has slightly higher-contrast text in a few places.
Minor graphical tweaks.
v.0.17.0 - 2018-10-21
Yamaha 4-Op FM synth patch translation (DX21/27/100, TX81Z/DX11)
Translation (partial) of DX7 mk.II additional parameters (DX7IIxx/DX7s)
New, more advanced reverb algorithm - more spacious and hall-like, not as overtly thick and up-front, less unintended amplitude flutter, less audible modulation
Improved GUI response when changing patches/algorithms
v.0.16.0 - 2018-09-24
TX81Z/DX11 Waveforms!! Holy shit! :-D
Fixed: Algorithms 12 and 13 were swapped - oops. The feedback operator was swapped between these two. These are in the correct order now. Any patches you've made that use either of these algorithms will need to be switched to the other algorithm. My apologies!
Some changes to the output meter that include performance improvements and a slightly changed display scale
v.0.15.1 - 2018-08-28
Support for Sustain CC
Tamed the background colour of the Settings and DX Patch Bank dialogs, by request
v.0.15.0 - 2018-08-04
Significant performance improvement
ModWheel smoothing. No more potential for clicks/ticks from high rates of ModWheel change
Improved the log envelope slope. The calculation was previously a less-than-stellar approximation. Now it's an ideal curve with a much more useful response. You may need to tweak some patches to accommodate the change, and I apologize for that, but this change is ultimately an improvement for the best and I think you'll agree
Fixed the dither. It previously had DC offset
Identified and fixed a disastrous problem that would have been preventing parameter change automation recording from working in sessions with more than one instance of Aurora FM. Obviously either nobody's recording live parameter changes or else nobody's using more than one instance, otherwise this bug would've been reported a long time ago. I'm just happy I caught it before anyone complained.
v.0.14.0 - 2018-07-12
Proper patch management! Aurora FM now maintains its own list of patches and isn't dependent on the host's facilities. Specify a directory for your Aurora FM patches (Settings dialog ), and patches there will be loaded into the patch list drop-down. When you save a patch, it will automatically show up in the refreshed list.
Envelope copying via drag-and-drop! Just click an envelope and drag it to another one to copy it.
Changed the Algorithm selection control to a slider.
Fixed the damage I did to the DX patch translation in the previous version :-S.
v.0.13.1 - 2018-06-29
Fixed potential divide-by-0 crash in ModEnv when envelope stage with a time of 0 was set to cross from one pole to the other.
v.0.13.0 - 2018-06-28
Fixed the problem with Cubase 8 failing to restore state with the project. This required a change to my patch indexing as far as the host is concerned. There's now an "edit" slot at index 0, with the Init and factory patches following. I'm reasonably sure that this change won't break other hosts' ability to restore the state saved in previous versions. (For what it's worth, and if you haven't heard me say this before, the VST API is a mess. It's scary how Steinberg does things differently than how most other hosts do, and everyone has a different, incompatible interpretation of how the VST API is supposed to work. Ugh, NOT a good API.)
Found and fixed the envelope distortion artifacts. There was (low-level) distortion in the envelopes due to a boneheaded calculation error. It was clearly visible on an analyzer, and more prominent and audible at high envelope rates of change. My sincere apologies for letting this escape resolution for as long as it did!
Identified and resolved more potential threading issues that could lead to hangs or sluggish UI. Cubase 8, possibly other hosts.
Added an "Off" option for the reverb to save performance when you're not using it. Previously the reverb was always running even if the level was at -inf, since you really want to maintain a current reverb buffer state in case someone turns it up. Not having an "Off" option was a very poor choice on my part. Note that this change is unfortunately a minor patch compatibility break. If you had the reverb on before in a saved project or patch, now the state will be restored with the reverb off, and you'll need to enable it.
Found a couple of places to make some very slight performance gains.
Found and fixed a small memory leak introduced with the 0.12.0 scaling feature.
Added a warning dialog to the Settings screen if your plugin directory isn't writable. This one's long overdue too. Sorry about that.
v.0.12.1 - 2018-06-21
Identified and fixed the Cubase 8 problem (and maybe some other hosts). Cubase 8 users were experiencing huge startup delays and flakiness/crashing. I was able to find a trial of Cubase Elements 8 and sleuth out the problem. It was a threading issue, totally my bad.
v.0.12.0 - 2018-06-21
Some significant changes:
DPI-aware! Aurora FM now renders dynamically-sized and incorporates DPI-aware scaling. It will no longer be tiny for those with high-DPI displays.
In addition, there is now variable custom scaling! CTL + SHIFT + mousewheel with the cursor over the window (and not over a control) to increase/decrease the scaling factor in 5% increments from 50% to 150%. I know several people were asking for this, so here it is.
Removed "multiple of 4 samples" buffer size constraint. This was potentially leading to confusion and frustration and wasn't a fair constraint to place, so I had to solve it. Nothing's ever simple...
Identified and fixed potential crash or hang for Cubase users. I'm surprised that it took this long to reveal this, and I apologize. In my defense, I don't own every host and it's very hard to know about every host compatibility issue. There's only so much one guy can do without the assistance of others.
v.0.11.2 - 2018-06-11
Fixed erroneous portamento rate calculation. Yeesh, sorry about that! I don't know how I never noticed that it was way wrong before. It now has the intended constant rate behaviour.
Fixed yet more phase discontinuity clicks in monophonic mode. Good grief, I hope that's all of them...
Discovered that the reverb mix/wet parameter wasn't exposed in the parameter list and wasn't getting reset with an "init". Ugh. Added.
Made a few marginal improvements to the reverb.
Lowered the gain on the output of the chorus effect so there isn't a pronounced volume jump.
v.0.11.1 - 2018-06-01
Fixed portamento: in the case where a voice ends before the portamento hits the target pitch, that voice now resumes from the pitch where it left off
Fixed more phase discontinuity clicks in portamento and in monophonic mode
v.0.11.0 - 2018-05-25
Increased max polyphony to 30 voices, and correspondingly improved efficiency of voice allocation routines
Increased demo mode polyphony to 6 voices
Added mod targets for chorus parameters, tweaked graphics in Mod section
v.0.10.0 - 2018-05-22
Fixed distorted output with non-standard buffer sizes.
v.0.9.10 - 2018-05-19
Fixed crash introduced in v.0.9.9
Finished fixing spectral issues of operator Feedback at high values before onset of noise in Algorithms 4 and 6
v.0.9.9 - 2018-05-18
Increased maximum Chorus rate to 5 Hz
Fixed spectral issues of operator Feedback at high values before onset of noise ("hunting")
v.0.9.8 - 2018-05-17
New Chorus effect, change in layout to accommodate
Identification and fix of issue that may have created an instant crash for a small percentage of users
Removed one instance of SSE4 code that would've prevented users with older CPU's from using Aurora FM. Now only SSE2 is required
v.0.9.7 - 2018-05-13
Workaround fix for defect in Akai VIP where Windows Button classes don't work properly. Whee!
v.0.9.6 - 2018-05-11
More improvements to operator mod source label and value display readability. Should be a done deal now.
New envelope multi-stage time edit mode: Shift + LMB to scale time of all subsequent stages simultaneously
v.0.9.5 - 2018-05-09
32-bit version now available
Fixed font sizing issues with custom Windows display scaling settings
Improvements to monophonic mode:
A held key will be returned to after a stealing key is released
When a stealing key is played (stealing = the previously played key is still held, ie. legato), the oscillator sync phase parameter is ignored and the oscillator's phase continues from where it left off at - this gets rid of clicks from phase discontinuities
v.0.9.4 - 2018-05-07
Partial fix for rendering problems when running with custom Windows display scaling. Layout issues fixed, still need to handle font sizing issues.
Lessened contrast extremes of operator window colour gradients
Improved contrast of operator window parameter display text and improved readability
v.0.9.3 - 2018-05-05
Fix for init patch override looking for patch with old file extension
Loosened Registration Name validation rules
Fixed patches that didn't get tweaked after I modified the range of the S&H Smoothing parameter
v.0.9.2 - 2018-05-04
Fix for Reaper plug-in scanning failure when "Do not scan VST names/types" option is unchecked