4-part multi-timbral FM synthesizer with 6 operators, 42 algorithms, 65 waveform variations, 40 voices, deep modulation, effects (overdrive, chorus, delay, and reverb), and performance features. A whopping 558 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.
DPI-aware and custom scaling from 50-200%.
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.
Polyphonic (40-voice), Mono, and Mono Legato voice modes
Unison with 2-4 voices and variable detune
Normal and Legato modes
Rate, Time, and Tempo Sync modes
Pitch bend range, +/- 24 semitone Transpose, variable A440 tuning (+/- 1 semitone in 0.1 Hz increments)
Numerous alternate temperaments and non-traditional scales
Chorus (Off/Alg1-4, Rate, Depth, Dry:Wet Mix)
Delay, tempo-syncable (Time, Feedback, Level)
Reverb (Time, Tone, Level)
Output bit-depth reduction, optional dithering
Aurora FM is $32 CAD.
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.
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