gen~ DSP Library
>100 methods for audio software developers
5D Filter Workbench
|Created: Fall 2018|
|Modified: Oct 4, 2021|
This patch demonstrates the 5D filter in the Husserl2 Synthesizer, also on this site.
The filter is continuously variable between a million unique filter settings via five dials to set cutoff, resonance, 4-pole/2-pole/direct mix, lowpass/bandpass/highpass mix, and saturation. While there are some dead zones, the filter is always effective with cutoff above note pitch when mixing more low-pass filtering, or below note pitch with more high-pass filtering. So even with dead zones, the filter dials still provide at least half a million unique usable sounds, making this filter one of the most flexible available. When set to its default center position, the saturator keeps the output within unity gain. When set lower, transient peaks are louder, until there is no saturation at the minumum setting. When set higher, the input is boosted, and transient peaks are increasingly distorted by mirroring the signal to within the unity-gain range.
Internally, the filter is a dual two-pole Butterworth cascade, with the lowpass, bandpass, and hipass outputs mixed after each stage. The input is delayed to remove phase offset from the filter, then mixed appropriately with the two-pole and four-pole outputs. The mix is then passed to a oversampled saturator (a tanh-based waveshaper, with level continually adjusted between maximum levels sampled at 40Hz, and mirror-based distortion at higher saturation settings). Finally the saturator output is downsampled and returned. The benefit of mixing the input before the saturator stage is that the raw input can be oversaturated without filtering, and the quality of the resampling is visible on the workbench display.
Whereas Husserl2's filter is 4x-oversampled, the filter in this workbench is 2x oversampled. See the code listing on theHusserl2 page for the 4x-oversampled version. Also the workbench contains a simple limiter to protect your ears while editing.
|Created: Created: Fall 2021|
|Modified: Modified: Oct 2, 2021|
This is a download and listing of stereo, single-pass low, high, and peak shelving EQs. This code is not CPU-optimized to remove transcendental and division calculations, which has the commonly preferred benefit of not using any external buffer data, and thus the gen~ methods may be copied directly into your own patch without any further work to function.
|Created: Fall 2018|
|Modified: June 19, 2021|
|Dedicated to my brother,Jon Meyer|
This gen~ codebox DSP library for MAX/MSP 7.3.1+ is the largest codebox resource for gen~ programmers available. Most of the functions in it may simply be copied and pasted into a gen~ codebox. Some require the variables at the bottom, and some require MAX audio buffers with preloaded data. The following download contains a DEMO patch of all functions in the library, the buffer data, and a.genexpr file for INCLUDEs. There's a monophonic synth in it too, but the modulation matrix takes alot of CPU, and it may not work on your machine. There's a much better polyophonic synthon this page, which also includes gen codeboxes for voice allocation and MIDI I/O scaling.
The next library version will contain ~20 more functions for EQ filters, compressors, limiters, mixers, and resampling.