Husserl2 Windows10 +ReWire Polyphonic Synth with 5D Analog Filter and Waveset Oscillators
The Windows10 (64 bit) version with MME, DirectSound, ASIO, and ReWire driver support is now available for download.
Introducing Husserl 2
Originally in Reaktor 2.3, and 20 years in the making, Husserl2 is the first in a series of instruments planned this year. This is an analog emulation synthesizer that makes no compromises in quality, yet 32 voices still require only 65% of a 2.6GHz i5 at 48kHz and 5ms latency. There's 2 oscillators with 46 waveforms, RM, FM, and soft sync. They mix into my custom 5D filter, redesigned for greater bandwidth and improved saturation. There's also 3 envelopes, 3 LFOs, sample & hold, an XY controller, and a dynamic velocity shaper feeding an internal 25x25 modulation matrix. The output VCA includes both polyphonic and monophonic limiters and compressors. MIDI Notes, programs, and all panel controls are sent and received. Named programs may optionally recall any active notes at the time you save a preset. A bank manager allows archiving and sharing of program data. The synth also includes the 44 most popular microtuning tables from SCALA. Comprehensive online help includes interactive panels displaying all available wavesets, filter spectogram, and more.
Here's a demo of it playing a MIDI file with it's built-in player on one preset. There are 60 demo presets in the current distribution varying from standard to fantastic. This one just adds a little stardust on sustained chords. Check it out :)
Does it Really Sound Analog?
Can do, Here's a quick runthrough of some presets, I let the first one play a bit so you can hear a full filter sweep.
Installation and setup
Download requires registration with email verification, but you are not asked for Paypal or credit/debit card information for free downloads. There’sno installer. You just unzip to any directory where the app has read/write permissions, open it, and set it up, which is all described later on this page.
Is there a VST/AU/M4L Version?
When I started , my logic was this. VST hosts don't support multiprocessing internally, and it's impossible to make a 32-voice synth of this quality on one cpu core. To run as a VST, it needs an external app installed which communicates with the VST behind the scenes, and runs on other processor cores as invisible ghost processors. I was building in Cycling74, which has a ReWire client, and all major DAWs now support reWite. reWire is easy to use, so there seemed little point making plugins too.
With the Gatekeeper problems that have emerged since, it no longer seems so easy for anyone. Even the vendor currently supporting the audio drivers, Cycling74, is having problems too. So I am looking at a native JUCE C++ version, for which reWire is less simple to code. So I might end up making plugin clients after all.
But what about the Synth?
First off, a little about the main pane. All the sound controls are visible in the main pane, there's nothing hidden in sub panels. If you’re pressed for screen space, the panel zoom is adjustable from the toolbar. Controls are carefully chosen to provide the maximum flexibility, with a toolbar
The two main oscillators both include EPTR-antialiased pulse/square and saw/triangle waveforms, plus 45 wavesets, each with 128 wavetables. The wavesets include sine harmonics, filter sweeps, formants, and randomized samples. With the filter sweeps and 5D filter, it’s like having a dual SVF, but it’s much easier to play. With the harmonic oscillators, it’s like having extra oscillators, and there’s two oscillators already. The formants and randomized oscillators provide unique sounds. Technically, the wavesets implement wrapped, binary-optimized Catmulli-Rom spline interpolation within each 256-sample wavetable, plus interpolation across wavetables, which together with EPTR antialiasing, provide the best possible performance and modulation quality (see the end of this note for links on details). The interactive help lets you preview all 47 waveforms across their entire modulation range:
Also in Husserl2’s oscillators, there's pitch control, fine tuning, FM, soft sync, phase control, ring modulation, double waveform modulation, and variable oscillator mix to the filter (which also can mix filter output with the direct oscillator sound). Soft sync includes automatic DC offset correction for proper SVF and limiter/compressor operation. FM depth is set by pitch offset (which is much easier than ratios, for example, a FM pitch offset of -12 is the same as a carrier:modulator ratio of 1:2. Hence, a fifth offset is simply 5 ~ no weird fractions to figure out). In planned future versions, the two LFOs will also have an audio-rate option, for up to 4-oscillator FM on one or two carriers, and for FM modulation of filter parameters.
The SVF filter improves on Yofiel’s earlier 5D filters with better frequency range, lower CPU, more precise saturation, and ‘frequency-multiplication’ overdrive. It includes dry/2-pole/4-pole mixing, dual cutoff modulation, variable shaped resonance with unity-gain self modulation, Lp/Bp/Hp mixing, and overdrive ~ Variable clean/soft/hard saturation extends into frequency multiplication at higher settings. The soft saturation is variable-knee waveshaping via a fourth-order polynomial approximation of tanh, with 4x upsampling that totally eliminates saturation aliasing, for pure tube emulation; and at higher overdrive settings, frequency multiplication adds up-tones, in the manner of pitch-shift sustains of Santana, Zappa, Hendrix, and Clapton. This unique filter also has very simple control across all five dimensions, and all five dimensions can be modulated too (most synths have two only filter dimensions, and don’t even let you modulate the resonance). This photo of the interactive help shows how the panel lets you see input and output for different filter settings interactively, on both a scope and spectogram.
Microtuning includes the most popular 47 SCALA tunings across the entire MIDI range, selectable from one menu next to the keyboard. Classical tunings provide beautiful tonal variations on even thin chords, whereas Eastern and modern tunings transform the whole keyboard range into an entirely different instrument. The tunings are not only applied to MIDI note input, but also to semitone pitch offset, FM depth, and filter cutoff offset, a capability not available anywhere else. The interactive help page provides preview of all the tuning tables.
The 3 ADSR Envelopes feature a unique X+Y velocity shaping control. The first envelope governs amplitude, and all three are available as modulation sources. Breakpoint and curve of velocity shaping can be changed in real time across all voices, so for example, you can make quieter notes more prominent, or reduce the overall gain by moving the XY control points. This interactive help page show how it works.
- 2 polyphonic LFOs with multiple waveforms, frequency modulation, wave modulation, amp modulation, and gate sync ~ Plus a third monophonic LFO for performance play. Frequency may be set directly with a dial, or as a musical measure of BPM. Panel BPM or MIDI clock changes all pertinent modulations synchronously.
- Sample & Hold has settable up/down/up+down trigger levels from any source. Clock triggers are planned in a future release.
- The XY PAD creates 10 compound modulation sources for any number of differently scaled destinations, with 1D, 2D, mixing, and multiplying matrix values ~ For example, horizontal cursor movements can shift each oscillator's waveform and SVF cutoff by MIDI pitch and voice number to a different extent, while simultaneously, vertical movement can change the amount of synchronized, monophonic pitch warble across all voices at different levels dependent on one of their envelopes.
- More Control Sources include mod-wheel control of monophonic LFO as separate control source. The pitch bend controller can modulate any number of controls. Velocity, MIDI note pitch, and voice number are also available as modulation sources.
The Output VCA includes a monophonic or polyphonic limiter or compressor. In most polyphonic synths, these parameters are chosen for you, but in Husserl you have control of the attack, release, threshold, ratio, and type of gain compensation. ADSR voice takeover of an active voice for a new note, as well as VCA switches, are all properly declicked. The VCA amplitude envelope may be modulated polyphonically, then limited or compressed either polyphonically or monophonically. Precise attack, release, threshold, ratio and gain controls provide undistorted output with limited or compressed amplitude regardless the number of playing voices, with as much attack punch-through or low-volume-filter boost as desired. Also shown on this help page is the toolbar and keyboard panels, which provide the most handy performance and management features in a single click.
Program and Bank Management
Named programs may be recalled with a double click, and also overwritten, inserted, and deleted from a list in the main panel. Selecting a program, editing its name and pressing enter changes its name immediately. A special feature of Husserl is note storage and optional recall in programs. When you add, insert, or replace any program, Husserl stores any playing notes too. If Restore Notes is on, it turns off any playing notes and recalls those stored with the program. As a result, you may play your favorite chords just by recalling programs. By turning ‘Restore Notes’ off, you can recall program sounds without changing the playing notes, as normal. The program list is not cluttered with empty slots. If saving a preset with the same name, the synth appends an asterisk, but only if the patch has been dirtied. On startup, the synth automatically restores to the same state as when last played. The bank manager also allows archiving and recall of program data files. Extra care has been taken to assure your sessions are properly saved and recalled, with 16 various dialog prompts for confirmation of requested file overwrites, for example, or for reporting reasons for any file-access failures. See the online help for a complete description of program and bank management.
MIDI notes, controllers, program recall, and clock may be sent and received on any MIDI port and channel. 'All notes off' puts playing notes into graceful release phase. Support for more MIDI standard controllers, such as portamento, pedals, omni mode, and multi modes is planned in a future release. The current version features compiled 2-way scaling of all parameters so MIDI values exactly match those displayed on the panel. There's two decades of experience behind the choice of the most useful controllers and ranges. Incoming MIDI data is not echoed to output, so you will not get infinite loops if input and output channels are the same; but, if they are the same, your changes on the Husserl panel may loop through your other software and play twice, depending on your other setup.
- The Internal 24x25 Modulation Matrix sums results at modulation destinations, appropriately clipping or folding, and smoothing when necessary. On the panel, matrix points are neatly lined up, directly under their destinations, for easy and hassle-free play. If a modulation destination is set to 0, or source set off, then the matrix automatically bypasses unnecessary scaling and clipping calculations. Note, with wavesets +5D filter modulation, even a full, evolving sound rarely needs more than a handful of modulations. I’ve made bigger modulation matrices, but the experience is, generally, they make it more confusing what’s happening and more difficult to set up. And the matrix could be smaller, but all the sources and destinations are useful in different styles of play. So this is kind of a ‘midsize’ modulation matrix that’s efficient, easy to use, and highly flexible.
- The custom Voice Allocator implements a modified LRU voice assignment that optimally reuses active voices, dependent on their release phase, if no inactive voices are available. The compiled voice-allocator code creates minimal cpu peak on simultaneous chord-note starts. Setting sustain to zero causes the voice to switch itself off at the end of the release phase. Reducing the number of voices pushes playing notes into envelope release phase, without interrupting the sound. The maximum number of voices is a global setting, so it can be reduced to limit CPU usage on slower machines.
- Real-Rime Display of filter curve, LFO waveforms and level, XY pad output, envelope levels of all voices, and output scope; all synth controls on single panel interface; resizable panel; display calculations are compiled and run on a low-priority thread, so GUI operations never interrupt audio.
- Quality Performance is assured by compiling both the event path and the entire audio path at 64-bit quality. Code is carefully optimized with 119 control parameters, all processed at audio rate, feeding 34 custom functions across ~1,000 expressions. Fast, 25-ms linear smoothing of all audio mixers preserves low-frequency harmonics and remains consistent regardless of sampler rate (surprisingly, linear smoothing is quite rare. Most synths use an integrating HP filter for smoothing, which is easier to program, but requires a longer settling time.)
- On the User-Friendly Panel specific numbers can be entered for all knobs and number boxes, or they can be clicked and dragged up/down for quick changes. Double-clicking any control sets it to default value. When any control is selected, up/down keys on the computer keyboard nudge the value one notch.
Native Audio and ReWire Drivers
The audio drivers support MacOS 10.9+ and Windows 10 native drivers, including Core Audio, Soundflower, MME. DirectSound, ASIO, and ReWire servers. Different drivers and options will show up in the driver setup depending on your system. Ableton Live, Cubase, Cakewalk, FruityLoops, and other major DAW vendors all now support ReWire. For the reWire client drivers to show up in the setup panel, start your DAW first. Then Rewire driver will show up in the top list of the setup panel. A ReWire server is in development for the multiphonic and metasequencer versions, planned in the next year.
With all 32 voices at highest possible load, Husserl2 uses only 62% of a 2.6GHz i5 @48kHz audio rate and 256-sample latency. Currently I am using Cycling 74’s own driver control panel to quell any fears it might not work, adding only a help page to suggest the best settings.
If you/re interested in learning more about the oscillator technology, there’s a blog on my EPTR antialiasing at Antialiased Oscillators ~ It's worth mentioning, it's the most popular blog on my server and still gets thousands of hits a year. There's also a new blog in dev on my optimized spline interpolation on Facebook, Optimal Resampling: when Average is Better. If you're interested in making your own synth, my SynthCore audio DSP library of >100 functions for audio applications is $20.
Husserl2 is part of the MetaMusic family of products from Yofiel. After registering on the Yofiel server, you will receive periodic emails informing you of new downloads as they become available. Thank you for your interest in the Husserl2 polyphonic ‘analog’ synthesizer. I hope you enjoy it for a long time.
- Ernest Meyer