The following list contains gen and faust codes. Many, but not all, of the faust ones are adaptations and hacks from Romain Michon‘s code. They are work-in-progress, totally unfinished, but can still be useful for simple Max users. I can send on demand the Max patches, dsp codes and externals for both Windows 32, Windows 64 bits and MacOS.
For now, do not use these externals as if they were safe and permanent.
Faust (Functional Audio Stream) is a functional programming language for sound synthesis and audio processing with a strong focus on the design of synthesizers, musical instruments, audio effects, etc. Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards.
The core component of Faust is its compiler. It allows to “translate” any Faust digital signal processing (DSP) specification to a wide range of non-domain specific languages such as C++, C, JAVA, JavaScript, LLVM bit code, WebAssembly, etc. In this regard, Faust can be seen as an alternative to C++ but is much simpler and intuitive to learn.
Gen is an extension of the Max patching environment that converts what you build visually into efficient compiled code as you go. Not only does it extend the capabilities of Max, but Gen code can be used outside of Max, with Code Export. Gen includes the gen~ object for audio, and the jit.pix and jit.gen objects for matrix and texture processing. Use Gen if you want to make efficient audio and video processes at a very low level and get immediate feedback.
May 4th 2020 state:
– non-linear-karplus-strong —— gen~ —— NOT READY
– alembicPreamp —— Alembic preamp
– AntiAlias —— Anti-aliasing
– autoComp —— auto compressor
– autowah —— moog vcf auto wahwah
– bass_STK —— NOT READY
– BLIT_bp — unipolar BLIT-based band pass —— NOT READY
– BLIT_pulse_train —— BLIT-based variable width pulse train
– BLIT_saw —— BLIT-based saw
– BLIT_square —— BLIT-based square
– blowBottle —— STK Blown Bottle Instrument
– bowed_STK —— Nonlinear WaveGuide Bowed Instrument
– brass —— Simple brass instrument physical model with physical parameters
– brummerDistortion —— NOT READY
– cabinet —— based on a circuit diagram of the Ibanez TS-9 and a mathematical analysis published by Tamás Kenéz
– chaos_fm_feedbacked —— gen~ with cycle and triangle
– chaos_fm_sinh —— gen~ chaos fm sinh
– chaos_logistic —— gen~ chaos logistic map
– chimes —— chimes synth using a bank of resonz filters
– chuaOscillator —— gen~ Chua chaotic oscillator
– churchBell —— Generic church bell physical model
– clarinet —— Simple clarinet physical model with physical parameters
– clarinet_STK —— Nonlinear STK WaveGuide Clarinet
– compressor —— Compressor demo application
– crossDelay2 —— Stereo Delay with feedback and crossfeedback (L to R and R to L feedback). And pitch shifting on feedback. A pre-delay without feedback is added for a wider stereo effect.
– crybaby —— Digitized CryBaby wah pedal
– cubicnl_disto
– diodeLadder —— 4th order virtual analog diode ladder filter
– DjembeMIDI —— Simple MIDI-controllable djembe physical model
– duckDelaySt —— The delayed signal added to output dependent of input signal amplitude. If the input signal is high. The delayed signall turned off, and vise versa.
– The switching controlled by envelope follower
– DX7_brass —— DX7, Brass 3, algorithm 22
– DX7_brass_orchestra —— DX7, algorithm 2
– elecGuitarMIDI —— Simple electric guitar model without effect chain
– englishBell —— English church bell physical model
– fdnRev —— A feedback delay network reverb
– fdnRev_low —— A feedback delay network reverb
– flute_0 —— Simple flute physical model with physical parameters
– flute_1 —— A simple STK nonlinear waveGuide flute based on Smith algorithm
– flute_2_STK —— A simple flute physical model, as discussed by Karjalainen, Smith, Waryznyk, etc. The jet model uses a polynomial, a la Cook
– formantFilterBP —— NOT READY
– frenchBell —— French church bell physical model
– fuzzyTube —— Fuzzy_tube —— NOT READY
– germanBell —— German church bell physical model
– glassHarmonica_STK —— Nonlinear Banded Waveguide Modeled Glass Harmonica
– granulator1_2 —— Stereo channels granulator
– granulator1_4 —— 4-channel granulator SUPER cool
– granulator1_6 —— 6-channel granulator SUPER cool
– granulator1_8 —— 8-channel granulator SUPER cool
– granulator2 —— Mono granulator adapted from sfIter by Christophe Lebreton
– granulator3 —— Another stereo granulator
– guitarix_tone_amp —— Emulation of a 3-band guitar amplifier tone control, Low and high shelf filters, from Robert Bristow-Johnson’s “Audio EQ Cookbook”
– guitarMIDI —— Simple acoustic guitar model with steel strings
– guitarx_compressor —— Albert Graef tube compressor unit
– harmonicExciter —— Priyanka Shekar Psychoacoustic harmonic exciter
– harpe —— Basic harpe simulation with OSC control (based on Karplus-Strong)
– harpsi_STK —— Nonlinear WaveGuide Commuted Harpsichord —— NOT READY
– hyperbolic_saturator
– hyperbolic_tangent_saturator
– karplus —— Simple call of the Karplus-Strong model for the Faust physical modeling library
– karplus32 —— karplus-strong with 32 resonators in parallel —— NOT READY
– korg35HPF —— Virtual analog models of the Korg 35 high-pass filter found in the MS-10 and MS-20 synthesizers
– korg35LPF —— Virtual analog models of the Korg 35 high-pass filter found in the MS-10 and MS-20 synthesizers
– lorenz —— Lorenz attractor
– marimbaMIDI —— Simple MIDI-controllable marimba physical model
– ModularInterpInstrMidi —— String instrument with a modular body —— NOT READY
– moog_vcf —— Moog “Voltage Controlled Filter” (VCF) in “analog” form. Moog VCF implemented using the same logical block diagram as the classic analog circuit. As such, it neglects the one-sample delay associated with the feedback path around the four one-poles. This extra delay alters the response, especially at high frequencies (see reference [1] for details). See moog_vcf_2b below for a more accurate implementation.
– moog_vcf_2b —— Moog “Voltage Controlled Filter” (VCF) as two biquads. Implementation of the ideal Moog VCF transfer function factored into second-order sections. As a result, it is more accurate than `moog_vcf` above, but its coefficient formulas are more complex when one or both parameters are varied.
– moog_vcf_2bn —— Moog “Voltage Controlled Filter” (VCF) as two biquads. Implementation of the ideal Moog VCF transfer function factored into second-order sections. As a result, it is more accurate than `moog_vcf`, but its coefficient formulas are more complex when one or both parameters are varied. Here, res is the fourth root of that in `moog_vcf`, so, as the sampling rate approaches infinity, `moog_vcf(res,fr)` becomes equivalent to `moog_vcf_2b[n](res^4,fr)` (when res and fr are constant).
– `moog_vcf_2bn` uses two protected normalized-ladder biquads (`tf2np`).
– moogHalfLadder —— Virtual analog model of the 2nd-order Moog Half Ladder (simplified version of moogLadder). Several 1st-order filters are cascaded in series. Feedback is then used, in part, to control the cut-off frequency and the resonance.
– moogLadder —— Virtual analog model of the 4th-order Moog Ladder, which is arguably the most well-known ladder filter in analog synthesizers. Several 1st-order filters are cascaded in series. Feedback is then used, in part, to control the cut-off frequency and the resonance.
– NLFfm —— FM synthesizer implemented with a nonlinear passive allpass filter
– noiseGate
– noiseShaper
– non-linear-karplus-strong-mc —— gen~ —— NOT READY
– NylonGuitarMidi —— Simple acoustic guitar model with nylon strings
– oberheim —— The Oberheim filter is a state-variable filter with soft-clipping distortion within the circuit. In many VA filters, distortion is accomplished using the “tanh” function. For this Faust implementation, that distortion function was replaced with the (ef.)cubicnl function.
– oberheimBPF —— Band-Pass Oberheim filter is an implementation of the virtual analog model described in Section 7.2 of the Will Pirkle book, “Designing Software Synthesizer Plug-ins in C++. It is based on the block diagram in Figure 7.5. The Oberheim filter is a state-variable filter with soft-clipping distortion within the circuit. In many VA filters, distortion is accomplished using the “tanh” function. For this Faust implementation, that distortion function was replaced with the (ef.)cubicnl function.
– oberheimBSF —— Band-Stop Oberheim filter is an implementation of the virtual analog model described in Section 7.2 of the Will Pirkle book, “Designing Software Synthesizer Plug-ins in C++. It is based on the block diagram in Figure 7.5. The Oberheim filter is a state-variable filter with soft-clipping distortion within the circuit. In many VA filters, distortion is accomplished using the “tanh” function. For this Faust implementation, that distortion function was replaced with the (ef.)cubicnl function.
– oberheimHPF —— High-Pass Oberheim filter is an implementation of the virtual analog model described in Section 7.2 of the Will Pirkle book, “Designing Software Synthesizer Plug-ins in C++. It is based on the block diagram in Figure 7.5. The Oberheim filter is a state-variable filter with soft-clipping distortion within the circuit. In many VA filters, distortion is accomplished using the “tanh” function. For this Faust implementation, that distortion function was replaced with the (ef.)cubicnl function.
– oberheimLPF —— Low-Pass Oberheim filter is an implementation of the virtual analog model described in Section 7.2 of the Will Pirkle book, “Designing Software Synthesizer Plug-ins in C++. It is based on the block diagram in Figure 7.5. The Oberheim filter is a state-variable filter with soft-clipping distortion within the circuit. In many VA filters, distortion is accomplished using the “tanh” function. For this Faust implementation, that distortion function was replaced with the (ef.)cubicnl function.
– owlgazer_shimmer_reverb —— Xavier Godart Owlgazer Shimmer Reverb
– parabolic_saturator
– peak_dynamical_compression —— dynamical compression based on peak
– peak_dynamical_normalisation —— dynamical normalisation based on peak
– piano_dispersion_filter —— Piano dispersion allpass filter in closed form with 200 filters —— NOT really READY
– preAmp_T1_12AX7 —— T1_12AX7 tube Preamp Emulation with tube stage 1 – 2
– repeater —— Freeze and repeat a small part of input signal ‘n’ time’
– resoTube —— Resonant tube filter
– reverbDesigner —— T60-controlled frequency-bands feedback delay network
– reverse_echo_12 —— Multichannel 12 echo effect with reverse delays
– reverse_echo_3 —— Multichannel 3 echo effect with reverse delays
– reverse_echo_6 —— Multichannel 6 echo effect with reverse delays
– rms_dynamical_compression —— dynamical compression based on RMS
– rms_dynamical_normalisation —— dynamical normalisation based on RMS
– RussianChurchBell —— Russian church bell physical model
– sallenKey2ndOrder —— Sallen Key Filters filters were implemented based on VA models of synthesizer filters. The modeling approach is based on a Topology Preserving Transform (TPT) to resolve the delay-free feedback loop in the corresponding analog filters. The primary processing block used to build other filters (Moog, Korg, etc.) is based on a 1st-order Sallen-Key filter.
– sallenKey2ndOrderHPF —— Sallen Key Filters filters were implemented based on VA models of synthesizer filters. The modeling approach is based on a Topology Preserving Transform (TPT) to resolve the delay-free feedback loop in the corresponding analog filters. The primary processing block used to build other filters (Moog, Korg, etc.) is based on a 1st-order Sallen-Key filter.
– sallenKey2ndOrderLPF —— Sallen Key Filters filters were implemented based on VA models of synthesizer filters. The modeling approach is based on a Topology Preserving Transform (TPT) to resolve the delay-free feedback loop in the corresponding analog filters. The primary processing block used to build other filters (Moog, Korg, etc.) is based on a 1st-order Sallen-Key filter.
– sallenKeyOnePole —— The filters were implemented based on VA models of synthesizer filters. The modeling approach is based on a Topology Preserving Transform (TPT) to resolve the delay-free feedback loop in the corresponding analog filters. The primary processing block used to build other filters (Moog, Korg, etc.) is based on a 1st-order Sallen-Key filter. The filters included in this script are 1st-order LPF/HPF and 2nd-order state-variable filters capable of LPF, HPF, and BPF.
– sallenKeyOnePoleHPF —— The filters were implemented based on VA models of synthesizer filters. The modeling approach is based on a Topology Preserving Transform (TPT) to resolve the delay-free feedback loop in the corresponding analog filters. The primary processing block used to build other filters (Moog, Korg, etc.) is based on a 1st-order Sallen-Key filter.
– satrev+jcrev —— 2 and 4-channel satrev reverb
– saxophony_STK —— Nonlinear STK waveGuide saxophone
– sdelay —— s(mooth)delay: a mono delay that doesn’t click and doesn’t transpose when the delay time is changed.
– SFFormantModelBP —— Simple source-filter vocal synthesizer
– SFFormantModelBP_Midi —— Simple MIDI-controllable source-filter vocal synthesizer
– SFFormantModelFofSmooth —— Mike Olsen FOF vocal synthesizer
– SFFormantModelFofSmooth_Midi —— MIDI-controllable FOF vocal synthesizer
– sinatan_saturator —— Sin atan saturator
– sitar_STK —— WaveGuide STK sitar
– snareStein —— Port from SuperCollider to Faust of snare_stein in SynthDefPool by Dan Stowell, which in turn was based on a Sound-on-Sound ‘synth secrets’ tutorial
– SOShat —— Port from SuperCollider (SC) to Faust of SynthDef SOShat
– SOStom —— Port from SuperCollider to Faust of SOStom in DrumSynths, which in turn was based on a Sound-on-Sound ‘synth secrets’ tutorial
– speakerbp —— Dirt-simple speaker simulator (overall band-pass eq with observed roll-offs above and below the pass-band).
– spectralTilt —— Spectral Tilt effect on signals
– standardBell —— Standard church bell physical model
– stereo_wahwah —— Stereo wahwah pedal
– stereo_width —— Stereo width effect
– tambura —— Olive Larkin Pseudo physical model of an Indian Tambura/Tanpura
– tapeDelay —— USELESS
– tapeSim —— Tape compression/saturation and frequency response.
– tapiir_STK —— from Maarten de Boer’s Tapiir
– tibetanBowl_STK —— Banded STK waveguide model tibetan bowl
– toneStack —— Guitar tone stacks (based on the work from D.T. Yeh)
– transistorBuffer —— transistor buffer (does not seem to do much)
– tubeScreamer —— based on a circuit diagram of the Ibanez TS-9 and a mathematical analysis published by Tamás Kenéz
– tubeTremolo —— Model of a Vactrol Tremolo unit —— NOT READY
– tunedBar_STK —— Nonlinear STK banded waveguide models
– UniBar_STK —— Nonlinear STK banded waveguide model
– valve —— dsp algorithm from swh ladspa valve plugin (Steve Harrison)
– valveRect —— dsp algorithm from swh ladspa valve_rect plugin (Steve Harrison)
– velvet_noise —— Velvet noise generator
– violin —— Simple violin physical model controlled with continuous parameters
– violinMIDI —— Simple MIDI-controllable violin physical model
– vocoder —— NOT READY but SUPER cool
– wah4 —— 4th order Wah effect with Moog VCF
– waveshaping_disto —— Waveshaping distortion
– weird_phaser_old —— Oliver Larkin Stereo Phaser based on SSB Modulation —— NOT READY
– weirdPhaser —— Oliver Larkin Stereo Phaser based on SSB Modulation
– zita_rev1 —— Zita reverberation