IMFMSynth

Release notes

Improvements and fixes in each IMFMSynth release.


v1.1.6

Latest

New features

  • Operator roles shown in color (requested on KVR Audio)
    • The routing decides each operator's role automatically: operators you hear are amber, operators that only modulate other operators (modulators) are magenta, and operators connected to nothing are gray. There is nothing to set by hand.
    • The color appears on the "Op" label of each operator row and on the nodes of the routing graph. A modulator's row also takes magenta tones for its knobs and waveform.
    • An operator you hear that also modulates other operators is shown in the color of the operators you hear (amber).
  • Wires unrelated to the operator you are looking at are dimmed (requested on KVR Audio)
    • Hover an operator row or a node in the graph, and the wires that do not touch that operator fade.
    • Press the "◎" at the right end of the operator row's waveform to keep that view. Press it again or press Esc to release it.
  • Solo per operator (requested on KVR Audio)
    • In the routing on the main screen, press the "S" just before an operator's output to hear that operator alone. Several operators can be soloed at once.
    • A soloed operator receives the same modulation as it does inside the patch. Modulators can be soloed too, so you can hear the sound that is doing the modulating.
    • While soloed, the sound skips the filters but still goes through the output envelope and the effects, so you can compare it with the full patch at the same level and in the same space.
    • The solo state is saved in the project. While anything is soloed, "SOLO" is shown next to UNDO / REDO; press it to clear every solo. Loading a preset clears the solo.
    • The solo state is not saved in presets and is not a target for DAW automation. The in-app WAV export always renders the whole patch, whatever is soloed.
    • A project saved while soloed plays without the solo in v1.1.5 and earlier.
  • "RATIO 1·2·3", which sets the ratio of every operator at once (requested on KVR Audio)
    • Choose "1, 2, 3, 4…", "1, 3, 5, 7…" or "All 1" from the menu above "Auto-fit width" in the routing.
    • Operators you hear take the first value (1), and the remaining operators take the second and following values in operator order. In a sound whose audible operators are at ratio 1, the pitch stays the same and only the spacing of the harmonics changes.
    • Operators in FIXED mode are left as they are. One UNDO puts everything back.

Improvements

  • Start phase and per-connection phase (PHASE) are easier to find (from feedback on KVR Audio)
    • An operator's start phase can now also be changed from its row on the main screen, in addition to the waveform editor.
    • The PHASE knob is now always shown in the ROUTE panel of the routing. It works when an FM wire (a connection from one operator to another) is selected.
    • Both take effect while Osc Key Sync is on. While it is off, the knobs are shown as disabled.

Fixes

  • Fixed the VST3 version leaving the DAW showing the previous parameter values after UNDO / REDO in the plug-in window or after loading a preset
    • The sound and the plug-in window changed correctly, but the DAW's knobs and automation lanes kept the previous values. The DAW's values are now updated without writing automation.
  • Fixed UNDO / REDO buttons becoming unusable in the macOS version after closing and reopening the plug-in window
    • The undo history was still there, and the buttons came back as soon as you changed anything.
    • Also fixed the check for a new version (when turned on in Settings) sometimes not running when the window was reopened.
  • Fixed the AU version not changing the window size when UI size was changed in Settings
  • A failure partway through saving a user preset, the settings or the license file no longer damages the original file
    • Also fixed a preset that failed to save still being shown as the current preset.

v1.1.5

New features

  • Mono mode (from a bug report and requests sent by email)
    • Switch it with the POLY / MONO button under Portamento. In MONO, playing a new key while still holding the previous one moves the pitch without restarting the note (legato). Releasing the new key returns to the key you are still holding.
    • The screen and help used to say that Portamento above 0 ms makes the synth mono, but it actually stayed polyphonic. The text now matches what the synth does. Portamento works in both POLY and MONO.
    • Existing presets and projects stay in POLY and sound the same as before.
  • Start phase per operator
    • In the operator's waveform editor, Phase (-180 to +180°), under the waveform selector, sets the phase each note starts from. Turning the knob past one end continues from the other. It works with every waveform, wavetables included.
    • It has no effect on voices imported from the DX7 that keep their oscillators running (OSC KEY SYNC off).
  • Attack and Release of every envelope can be set to 0 ms
    • This covers the operator, output and modulation ADSRs.
    • In POINTS (PEN) envelopes, a segment drawn as 0 ms now switches instantly. Until now it took 1.5 ms to prevent clicks, even when drawn as 0 ms. Segments entered partway through the drawn shape, such as a release that starts when you let go of a note mid-envelope, still join smoothly as before.
    • Presets and projects saved before this version sound the same as before (0 ms switches instantly in envelopes drawn and saved in v1.1.5 or later).
    • In projects that automate Attack / Release from the DAW, the same automation now reads as slightly shorter times (about 1 to 2 ms shorter at the short end, nearly the same at the long end). Values saved in presets and projects do not change.

Fixes

  • Fixed operators wired in a loop (for example Op 7 → Op 8 and Op 8 → Op 7) going silent
    • Returns that pass through a filter work as before.
  • Fixed an operator's self-feedback acting as phase modulation even when routed to the wavetable position
  • Fixed tempo-synced modulation running in the same phase on every voice during playback
    • With Key Sync on (the default), tempo-synced modulation now starts from the beginning of each note, per voice. Turn Key Sync off to lock it to the song position.
    • Projects that use tempo sync with Key Sync on will move differently during playback.
  • Fixed a FIXED-mode frequency sometimes showing a slightly different value after saving and reloading, such as 20 Hz coming back as 19.997 Hz
    • Hz is now shown and set in steps of 0.001 Hz, and shows the same value after saving and reloading.
  • Fixed the output envelope's Attack / Decay / Release display not matching the times actually played
    • The sound does not change. The display is now correct.
  • Fixed buttons whose labels were too long and overflowed in German, Spanish and Italian. Fixed Traditional Chinese characters that had slipped into the Simplified Chinese help.

v1.1.4

Improvements

  • Select several user presets and delete them at once (from buyer survey and KVR feedback)
    • In USER in the preset browser, Shift+click selects a range, Ctrl+click (Cmd on Mac) adds or removes one preset, and dragging across presets sweeps a selection. Press "Delete selected" and confirm once to delete them together. Clearing out the presets a DX7 bank import added no longer takes one click per preset.
    • A plain click still loads the preset, as before.
  • Faster DX7 .syx bank import
    • Importing every voice of a bank at once, and loading a single voice, are both lighter now. A 32-voice bank that took about 7 seconds to import all at once takes under a second on a 16-thread CPU. With fewer cores the gain is smaller. Loading a single voice is about twice as fast.
    • Import uses several cores while it runs.
    • The automatic level adjustment applied on import gives the same result as before in everything we checked.

v1.1.3

Improvements

  • AUTO FIT: the routing graph widens itself so wires are not squeezed
    • When a preset is loaded or the routing changes, the graph's width is adjusted so crowded wiring stays readable. Toggle it with the button above FM AMOUNT (on by default).
  • The plugin now tells you in the app when an update is available
    • If a newer version has been released, a notice appears in a corner of the editor and points you to the account page, where the installers are. It checks about once a day by reading this site's public release information (the latest version number and its changes); it does not send your account, license or the version you run. The privacy policy has been updated to describe this.
  • A Settings screen
    • The gear button "Settings" now holds the language and the UI size. The automatic update check can be turned off there, and "Check now" checks by hand.

v1.1.2

Improvements

  • The UI size setting is easier to find (from a buyer survey)
    • A buyer asked for a scalable UI for a better overview on big screens. The UI size can be set from 75 to 150 % since v1.1, but the wheel only read "M 100" or "95%", which did not say what it was for. Every step now reads like "UI 100%". It sits under the language setting at the top right.

Fixes

  • Fixed the display falling behind the sound on some systems
    • The plugin sent its data to the display wastefully, and on some systems the display could not keep up. Sorry for the trouble. The data now goes in batches, and less often when the display cannot keep up.
    • The time for the display to catch up after switching presets also went from 100-130 ms to 10-20 ms on Windows (Ryzen 7 5700X). Values changed by host automation take the same, lighter path.
    • Thank you to the buyer who reported this by email.
  • Fixed parameter values reaching the display rounded to six decimal places

v1.1.1

Improvements

  • Faster processing (12% less total processing time across 40 cases on a MacBook Neo, 25% on Windows with a Ryzen 7 5700X)
    • Compared with v1.1.0 over 40 cases, the shipped presets plus heavy test patches, playing a 4-note chord at 44.1 kHz. The largest reductions were 32% on the MacBook Neo and 37% on Windows. Patches that chain operators simply, such as organs and basses, gain the most.
    • Math functions are also more accurate. The sound differs by at most -82 dB, which is inaudible.
  • Moving an effect's Mix now changes the level smoothly
  • Meters and modulation displays now update at 62.5 Hz instead of 50 Hz

Fixes

  • Fixed the Gain default of the Peak filter differing from place to place
    • It is now +6 dB everywhere.
  • Fixed the installer allowing installation on Macs older than macOS 10.15
    • The installer now checks for macOS 10.15 or later.

v1.1.0

v1.1 is built on requests and reports from the KVR Audio and VI-Control threads and from email. Thank you. Existing presets and projects sound the same as before.

New features

  • Choose from the 32 six-operator algorithms (from a request on KVR Audio)
    • Pick one with the ALGO button in the FM AMOUNT box. The numbers match the DX7.
    • The POINTS envelope has a new field that builds points from R1-R4 / L1-L4 values.
  • Fixed frequency mode (requested on KVR Audio)
    • Switch with RATIO / FIXED on the frequency. In FIXED, the Hz value is edited as separate integer and fractional parts.
  • FM AMOUNT (requested on KVR Audio)
    • Scales the whole FM from 0 to 200 % at once. It can also be a modulation target.
  • Effect reordering and an expanded 8bit (requested on KVR Audio)
    • Drag the tabs to change the order. 8bit now takes a place in the chain too.
    • 8bit has Mix, bit depth and sample rate reduction, all of them modulation targets.
  • Output knob (final level, requested on KVR Audio)
  • UNDO / REDO buttons (requested on KVR Audio)
    • Hover to see the name of the step to undo.
  • Modulation from CLAP hosts (requested on KVR Audio)
    • Modulators in Bitwig and other hosts move the sound without rewriting the knob's value. Per-note modulation works too, and a line shows the modulated position.
  • Choose per connection whether it modulates phase or the wavetable position (requested by email)
    • Available on connections into a wavetable operator. The wavetable position can move at audio rate.
  • Hard sync and ring modulation per operator (requested by email)
    • The sync ratio can be a modulation target.
  • Modulator rate down to 0, and modulators modulating each other (requested by email)
  • Noise SEED (requested by email)
    • With the same SEED, every note-on plays the same noise.
  • Vertical grid snap for envelopes (1 / 5 / 10 %, requested by email)
  • Microtuning with MTS-ESP (requested on VI-Control)
  • WAV export (from a discussion on KVR Audio)
    • The WAV button on the output meter renders C4 on the current patch for 2048 × 256 samples, saved to Documents/IMFMSynth/Exports.
  • Language selection (requested on KVR Audio)
    • AUTO LANG follows the OS language. The setting is saved per computer and applies to every open editor.

Improvements

  • Drag to edit routing table cells, the fractional part of the ratio and the Manual boundary (requested on KVR Audio and in a customer's email)
    • In the tables, Alt edits phase, Shift gives fine steps and a double-click restores the default. The arrow keys and typed numbers work as well.
  • UI size selectable from 75 to 150 % in 5 % steps (from the same customer's email)
  • Wavetable import
    • The wavetable editor has a new "Import as wavetable" button.
    • Choose how to read the file: DIRECT (2048 samples per frame), automatic pitch detection, or a manual fundamental. When most frames read with DIRECT do not close into a cycle, pitch detection is suggested.
  • ADSR
    • The graph on the main screen shows each handle's value, larger while dragging.
    • Dragging past the edge of the graph keeps extending the time, and the color shows when you are past the edge.
  • Knobs and sliders that are modulation targets show their current modulated position in the slot's color
  • Wheel scrolling on a trackpad steps values the same way a mouse wheel does
  • Small text is larger, and the effect tab names are easier to read

Fixes

  • Fixed hidden sends that could remain in the routing
    • A customer reported it by email with data that reproduced it. Thank you.
  • Fixed fixed-frequency (FIXED) operators ignoring modulation of the main output's Freq
    • Transposing with the Freq value still leaves fixed frequencies where they are.
  • Fixed effects staying silent when turned ON with Mix at 0 %
    • Turning an effect ON with Mix at 0 % now sets Mix to 50 %. Reported on KVR Audio. Thank you.

v1.0.6

Fixes

  • Fixed values changed in the editor reverting to the old sound in VST3
    • In Cubase and other hosts, changing the routing, level, frequency ratio or waveform changed the sound only while you held the control, and it went back to the old sound when you let go. The sound now follows what the editor shows.
  • Fixed MPE not working in VST3
    • Per-note pitch bend now reaches the synth. In Cubase, set the track's MIDI channel to “Any” and the expression from an MPE controller comes through as played.
  • Fixed the algorithm view and the routing table disagreeing about which operators reach the output
  • Fixed the waveform selector jumping around the “Wavetable” entry
  • Fixed the whole open window scrolling when changing a value with the mouse wheel

v1.0.5

Improvements

  • Now includes 30 presets
  • Step to the previous or next preset
    • The ◀ ▶ arrows beside the preset name move to the previous or next sound. The left and right arrow keys and the mouse wheel work too.

v1.0.4

Fixes

  • Fixed activation failing in hosts that run plug-ins in isolation, such as Logic
    • Pressing “Activate” did nothing at all. The browser now opens, and where the reply cannot be received the plug-in explains where to place the license file.
    • Also fixed AU and VST3 / CLAP looking for the license in different places.

v1.0.3

Improvements

  • Envelope fade-out now matches the configured duration
    • Previously, Decay and Release became inaudible much sooner than the configured time. The sound now fades out over the full configured duration.
    • Existing presets and projects will have different sound tails. This change affects the sound, so please check your saved presets and projects.

Fixes

  • Fixed noise occurring when releasing a key while keyboard tracking was enabled for the filter cutoff
  • Fixed the operator waveform display not updating when the wavetable position was modulated
  • Fixed an issue where the wavetable was not initialized correctly

v1.0.2

Improvements

  • Optimization (up to 47% faster)
    • Made DSP processing faster while keeping the sound perceptually unchanged.
  • Added support for Windows ARM64 (not tested on physical hardware)

New features

  • Added modulation of filter intensity
    • This came out of a discussion during my interview with Sonicstate. Thank you!

Fixes

  • Corrected the translation of ENV in the modulation section
    • A sound designer pointed this out by email. Thank you!
  • Made ENV snapping more useful
    • Added zooming
    • Made snapping to the grid more precise
      • The same sound designer also pointed this out by email. Thank you!
  • Added the ability to manually disable clipping
    • This was brought up on KVR Audio. Thank you!
  • Fixed loading presets that contain wavetables
  • Added options for per-keyframe wavetable normalization
    • KEY / TABLE can now be selected for both PEAK and RMS
  • Fixed activation in Safari
    • A user reported this by email. Thank you!

v1.0.1

Improvements

  • Improved additive synthesis editing in the wavetable editor to address unexpected behavior.
  • Envelope settings:
    • Added support for both logarithmic and linear time scales.
  • Added support for Bitwig's micro-pitch bend.

Fixes

  • Fixed some effects not working correctly.
  • Fixed finished voices remaining active and consuming processing resources.