Rez Synth

Rez Synth allows you to "play" band-pass resonant filter banks that are applied to the input audio. The center frequency of the base filter in any bank is controlled by MIDI notes. The rest of the filters in each bank (if any) have center frequencies that ascend from the base frequency according to linear or octaval increments.


The bandwidth parameter controls the bandwidth of each resonant filter, in Hertz or Q (depending on the "bandwidth mode").

bandwidth mode:

The bandwidth mode defines how the "bandwidth" parameter operates. The options are "Hz" or "Q". Hz (Hertz) defines absolute bandwidth and therefore perceptually the filters sound wider at lower frequencies and narrow at higher frequencies. Q defines relative bandwidth and therefore perceptually the filters sound the same width across all frequencies.

resonance algorithm:

You can choose between a few different algorithms for the resonant filters: second-order (with no zeroes), second-order with zeroes at ± the square root of the pole radius, and second-order with zeroes at ±1. Those are the mathematical descriptions, which are of limited usefulness. They each sound slightly different and some might sound better on certain audio material than other, and it's probably worth trying each.

bands per note:

This is how many bands there will be in each filter bank. Each MIDI note that you play creates a new filter bank on top of any other banks that are already playing.

band separation:

This controls the separation width between each band in a filter bank. The way that it operates depends in which band separation mode you are working. If you are working in "octaval" separation mode, then band separation controls the separation width in semitones. If you are in "linear" mode, then it controls the separation as a multiplier of the base frequency.

separation mode:

The band separation mode defines how the "band separation" parameter operates. Separation mode can be set to "linear" (multiple) or "octaval" (logarithmic) spacing. You can sort of think of it like this: "linear" makes the other bands spread like harmonics (or inharmonics, in the case of fractional values) and "octaval" makes the other bands spread like notes in a chord.


Because you are playing banks of resonant filters that ascend in center frequencies, it is possible to get filters in your bank that have center frequencies above what your digital audio sampling resolution can represent. When this happens, frequencies "fold over" the maximum possible frequency and your filters start sounding rather odd. I personally like that, so I have left the option up to the user whether or not to "allow" or "resist" these impossible bands.

attack, decay, sustain, release:

These adjust the values for each note's ADSR-style amplitude envelopes. Attack sets the duration for the initial volume fade-in period. Decay sets the duration of the partial fade-down period that immediately follows the attack. Sustain sets the portion of full note volume that is used for the note after the decay period. Therefore a sustain value of 100% effectively means no decay, and a sustain value of 0% effectively stops a note after the decay, regardless of how long you hold the note. Release sets the duration of the final fade-out period (beginning after the note play is released).

envelope fades:

This selects whether the attack, decay, and release segments of note envelopes are linear fades, exponential curves, or are achieved through a low-pass filter. Exponential usually sounds smoother than linear, and low-pass can be the most natural sounding. Exponential curves use a little more processing power than linear, and the low-pass filter uses even more.

pitch bend range:

This lets you adjust your MIDI pitch bend control's range in semitones.

velocity curve:

This lets you adjust the key velocity response curve of your MIDI keyboard.

velocity influence:

This controls how much of an influence key velocity will have on the volume of each note. A value of 0% means that key velocity is completely ignored and a value 100% means that key velocity tracks the full volume range.

filter response scaling mode:

This parameter allows you to scale the response factor of the resonant filters. It can be scaled to bring the RMS of the resonant filter response to unity volume level, or to bring the peak of the resonant filter response to unity, or you can disable scaling.


The volume of the output of these resonant band-pass filters is pretty erratic (sometimes even with scaling). With careful mode enabled, Rez Synth tries to keep a handle on this and keep your output within a narrow range. Whether you use this mode or not, you may still want to follow Rez Synth with a dynamic limiter, and perhaps also a compressor before that.

filtered output gain:

This allows you to control the level of the filtered output audio after all of its processing has taken place.

between gain:

This controls the volume of the unprocessed input audio when no notes are sounding.

dry/wet mix:

This lets you adjust the balance of the (unprocessed) input audio and the (processed) output audio. 100% is all processed.

dry/wet mix mode:

This allows you to adjust the way that the dry/wet mix combines the dry and wet audio. You can choose linear mixing or equal power mixing.


Turning this on puts Rez Synth into legato mode (i.e. no polyphony and no gap between notes). The first note played after enabling legato mode will remain in the sustain phase of the note's envelope, even if you release the note, and subsequent notes will alter the pitch but still only sound in the sustain phase. The note envelope's release finally occurs upon exiting legato mode.

parameter adjustment tricks:   You can make fine adjustments by holding the shift key while adjusting a parameter with your mouse. You can also reset a parameter to its default value by holding the command ⌘ key (control on Windows) when clicking on it.