Powered By Faust
The following sections provide an overview of the various ways Faust is employed in diverse projects around the world:
-
Musical Pieces and Artistic Projects: Faust is widely used in the creation of musical pieces and artistic projects. Musicians and artists leverage Faust to develop new audio effects and real-time sound synthesis. The language’s flexibility makes it an efficient tool for composing and performing live electronic music.
-
Plugins and Standalone Applications: Faust's code can be compiled into various plugin formats (VST, JUCE, LV2, etc.) and standalone applications. This capability allows developers to create custom audio processing tools that can be integrated into digital audio workstations (DAWs) or used as independent software for audio manipulation and production.
-
Integration in Audio Programming Environments: Faust seamlessly integrates with several audio programming environments like Pure Data, Max/MSP, SuperCollider, the Web platform and others. This integration enables users to incorporate Faust-generated algorithms into larger multimedia projects, enhancing the scope and quality of audio processing and synthesis.
-
Research Projects: Faust is an powerfull resource in academic and industrial research projects. It is used to explore new DSP techniques, develop prototypes, and implement advanced audio algorithms.
-
Development Tools: Developers use Faust to create innovative development tools that assist in the generation, manipulation, and visualization of audio signals. These tools are essential for both educational purposes and advanced research in DSP.
-
Commercial Applications: Several commercial applications incorporate Faust for high-performance audio processing. These applications range from music production software to audio analysis tools, showcasing Faust’s versatility in meeting professional audio requirements.
Project World Map
To illustrate the global impact of Faust, a world map showcases all the projects using the language. This map highlights the geographical distribution and diversity of applications, reflecting the widespread adoption and influence of Faust in the audio processing community.
Commercial applications
The following sections provide a detailed list of commercial applications utilizing Faust.
fourtrack.fm
fourtrack.fm is the newest web-based DAW on the block, focusing on lyrics-driven songwriting and arrangement. at its heart is a four track looper with support for mic, line in, virtual synth, and virtual drum machines, plus a handful of effects.
Faust was instrumental in prototyping the virtual instruments and effects, including the 8 voice polysynth, the 8 voice FM drum machine, the tape delay, chorus, and amp sim.
Faust IDE generated WASM audio worklets which were integrated into the React frontend. Here is our intro video.
OneTrick CHONK
A physically modeled electric bass monosynth that produces a classic sound perfect for a wide variety of musical genres. It's powered by digital waveguide synthesis to simulate the vibrations of a string. Different play styles like muting, fingering, picking, or slap can be achieved with articulations.
The project is using Rust and the Faust to Rust backend, and the source code is available.
OneTrick B-BOI
Feel the funky fresh flow of a dope drum machine straight outta the '90s. Inspired by the "World's 1st Rap Keyboard", get down with some phat record scratches, orchestra hits, vocal chops and vocoder stabs that make you wanna jump! It's even got a fly voice changer to help you rap along to the beat.
The project is using Rust and the Faust to Rust backend, and the source code is available.
OneTrick KEYS
A physically modeled piano synth with a chill lo-fi sound. It uses a vintage algorithm developed at Stanford in 1995 called "Commuted Piano Synthesis", and runs that through studio reverb, vinyl or tape noise, flutter, bitcrushing, and saturation.
The project is using Rust and the Faust to Rust backend, and the source code is available.
OneTrick URCHIN
A hybrid drum synth that models the gritty lo-fi sound of beats from vintage records without sampling. It takes spectral and physically modeled drums, running them through simulated studio reverb, a vinyl or tape player, and finally a digital sampler. The result is a fat and saturated drum machine that creates a vibe of sampling with the control of a synthesizer.
The project is using Rust and the Faust to Rust backend, and the source code is available.
OneTrick CRYPTID
Whispers of a dreaded drum machine with the cold clanging heart of a DX7 in the fearsome frame of a TR-808 echo in dusty backrooms of backstreet recording studios. A contraption conjured under cover of darkness in the heinous pursuit of chart topping tracks, known only as the DX-808.
It's time to bring the beast out of the shadows! Allow us to present the world's most accurate recreation of an FM drum synth skeptics say never actually existed. Using a DX7 emulator of our own design, we forged each facet of the CRYPTID, reconstructing its wretched inner-workings. From the "Log Drum" Toms to the "Wood Block" Cowbell. Blow that Samba Whistle and hit the Gong! Do you want to believe?
The project is using Rust and the Faust to Rust backend, and the source code is available.
OneTrick SIMIAN
Crash into the 80s with an open source drum synth inspired by hexagonal classics like the Simmons SDS-V. Thumping kicks, punchy snares, and sizzling cymbals coalesce with its clacky claves and crunchy claps. Bring saccharine synthwave sauce to your sublime soundscapes or drop indelable pewww pewww tom toms into your new nu-disco. Get the source code containing Faust DSP, using the Dlang backend.
Stratus
The compact, all-in-one pedal by Chaos Audio. Run multiple effects at once, swap between presets, and loop for up to 5 minutes. Stratus® features a 5-minute looper, hands-free preset switching, and a wide range of effects options. You can save and load presets, chain up to seven effects, and access new effects through Tone Shop™. Beginners can experiment and learn without breaking the bank. Seasoned performers save space, time, and benefit from advanced options like MIDI control. The pedal can be programmed with Faust, see also the faust-stratus project.
Noisy2
Noisy 2 merges acoustic and analog resonators into lively sounds. Built for MPE and expression, this synth makes sound design more fun. Modal synthesis comes to Noisy 2 with four new acoustic resonators. The Noise block has also evolved, offering new, meticulously crafted noise types for broader acoustic horizons. The DSP is written in Faust.
MOD Audio
The compact and powerful standalone guitar effects ecosystem to express your creativity at home, in the studio and on stage, which can be programmed with Faust.
LICH
Technology OWL platform that allows you to use Pure Data, Max Gen or Faust code into your module!. Lich is a Befaco Rebel collaboration that brings back Owl’s platform with this new hardware iteration. It has stereo in and out, four pot controls summed to cv inputs (like the classic Owl module) And as addition, CV and Gate outputs, patch selection with display and USB MIDI host and device connections.
Joué Music Instruments
A new way to make music: the Joué Play is a system that combines an expressive multi-instrument, an intuitive app & interactive content, with a range of musical instruments that use touch-sensitive technology to create a unique playing experience. These instruments are designed to be highly expressive, allowing musicians to play with greater nuance and emotion. Part of the audio effects are coded in Faust.
HISE
HISE is an open source framework for building sample based virtual instruments combining a highly performant Disk-Streaming Engine, a flexible DSP-Audio Module system and a handy Interface Designer. The implementation of the Faust integration was the result of a Google Summer of Code project done by Roman Sommer with the help of Christoph Hart as mentor.
Genius Eurorack Module
The Genius is the next evolutionary step for the OWL platform, and the first product released based on a Cortex M7 microcontroller. It runs the OWL firmware and so can be programmed with Faust. A demo running bells from thee physical library can be listened to here.
drumbox
drumbox is a fun and powerful drum synthesizer for your Android device. Start from a preset and tweak the sounds and appearance to make it your own. Freestyle on the drum pads, record a sequence or both...it's up to you!
Daisy based audio boards
Daisy is an embedded platform for music. It features everything you need for creating high fidelity audio hardware devices. Just plug in a USB cable and start making sound! No soldering required. It can be programed with Faust using the faust2daisy tool.
Elk Audio OS
Elk is an Audio Operating System developed from the ground up to deliver real time audio performances in embedded systems and remote networks. It can run on several hardware. Faust can be used to generate VST2 plugins to run on the plaform.
Motion Vox
A mobile music creation and performance workstation with a built-in motion-based controller, sequencer and synthesis engine. The controller unites XY pad, accelerometer and gyroscope events with complex data filtering engine. Performance process consists of touching the active area on the screen with the index finger and moving the cursor while moving the device in space. Smartphone position in space and finger movement on a screen affect various parameters of sound or generate realtime MIDI output. The app was inspired by the SmartFaust project of GRAME. The audio engine of the app is made with Faust.
PICO DSP
PICO DSP is an open-source, Arduino-compatible ESP32 development board for audio and digital signal processing (DSP) applications. It offers an expansive audio-processing feature set on a small-format, breadboard-friendly device that provides audio inputs, audio outputs, a low-noise microphone array, an integrated test-speaker option, additional memory, battery-charge management, and ESD protection all on one tiny PCB. The board can be programmed using Faust.
FASELUNARE Microcosmos
Microcosmos is a small open-source electronic board, developed by Faselunare (Italy), aimed at prototyping electronic musical instruments and learning electronics, microcontroller programming and audio DSP, and programmable with Faust. A demo video of the project can be seen here. The project has been presented at ADC21.
BELA
Bela is a maker platform for creating beautifully responsive audio and interactive applications. Designed for artists, musicians, researchers and makers, Bela brings the power of ultra-low latency interactive audio and sensors to your digital projects. It can be programmed with Faust.
moForte GeoShred
An electric guitar app using physical modeling. Faust was used to implement its sound synthesis/processing engine.
Other projects
ExternalChugins
Chugins, short for "ChucK plugins," are plugins for the ChucK programming language. ChucK is an audio programming language that allows for real-time synthesis, composition, and performance of music. Chugins extend the functionality of ChucK by providing additional classes, objects, and modules that can be used to create more complex and intricate music and sound designs. ExternalChugins are a set of chugins exported from Faust.
Faust DSP Testbench
As a fork of the DSP-Testbench project, Faust DSP Testbench is designed to help developers using the JUCE framework to analyse their Faust DSP by providing a test harness for code inheriting from juce::dsp::ProcessorBase
. The harness provides signal sources, routing, analysis and monitoring functions.
SHCdyna
SHCdyna is a dynamic and interactive application for musical performance. It allows compiling and executing code in the Faust programming language dynamically, interacting with motion sensors, and creating custom tactile user interfaces. The application uses the Interp backend to be deployed on iOS, where JIT compilation is forbidden by Apple. All SmartFaust applications are available in the application, and new ones can be developed in Faust IDE (for instance) and then installed in the application.
formuls
formuls is an experimental electronic musical instrument for synthesising and sculpting sound live!
Using an intuitive, novel touchscreen-based interface, formuls can sculpt primary sounds into kaleidoscopic meshes of finely tuned timbres and pulsating rhythms. Harnessing the power of simple gestural interactions typically used to operate smartphones and tablets, complex sound synthesis techniques are easy to access, control and explore, reducing the required instrumental technique to finger taps, drags and swipes. formuls aims to make synthesis easy for the beginner, while opening up a plethora of creative sonic possibilities to the seasoned sound designer.
This software uses libpd, Faust, Open Stage Control and Python.
FaustVST
FaustVst is a VST3 plugin that allows you to dynamically load/compile/edit Faust effects from source dsp files. It is lets you do quick iteration (make a change and reload it nearly instantly), all while running integrated in your DAW. FaustVst uses the faust compiler to create C# code, which is then dynamically compiled into an assembly and run in the plugin.
Accessible musical web applications for individuals with disabilities
Series of accessible musical web applications aimed to individuals with intellectual disability and cognitive impairments. The applications are designed for an educational program, based on writing and performing a musical composition evoking a natural soundscape. Their responsive interfaces automatically adapt to all screen sizes; in this way they can be used on all kind of devices (smartphone, laptop, etc.). On mobile devices, some sound parameters of the applications can be controlled by the device movement (through accelerometer mapping). Some applications are also MIDI controllable.
The applications are developed in JavaScript, using the Web Audio Api, and some DSP are written in Faust and compiled to Web Audio nodes.
The project, developed by Matteo Olivo, was presented at SMC 2022 and SMC 2024.
elysiera
(VST3/CLAP) A shimmer reverb plugin. Made with nih-plug, egui and Faust.
MeshEditor
Real-time mesh viewer and editor, using Vulkan and ImGui, and in-progress rigid body audio model, using Faust to render an object audio model to an audio graph.
FlowGrid
FlowGrid is an immediate-mode interface for Faust (functional audio language) programs. The full project state is backed by a persistent (as in persistent data structures) store supporting constant-time navigation to any point in project history.
Faust in Cables.gl
Explore the dynamic integration of the Faust audio library within Cables in this video. This segment delves into the intricacies of generating rich audio experiences on the web, leveraging Faust's advanced capabilities for real-time audio synthesis with synthesizers and oscillators. Discover how to seamlessly compile, modify, and visualize audio within Cables, enhancing your projects with intricate audio-visual synchronization and interactive controls, inviting viewers to contribute and experiment with this powerful tool.
polyBLEP HOLE
A Faust collection of externals for Pure Data stuck together on the Organelle. The polyBLEPs are the work of Jacek Wieczorek. v1.1 triples the oscillators as sounded a bit thin. The greyhold reverb is immense.
nih-faust-jit
A plugin to load Faust dsp files and JIT-compile them with LLVM. A simple GUI is provided to select which script to load and where to look for the Faust libraries that this script may import. The selected DSP script is saved as part of the plugin state and therefore is saved with your DAW project.
ambient.garden
ambient.garden is a musical landscape in a website, developed using Teasynth with these Faust codes. All the music in ambient.garden is generated from code. The music is then laid out in a landscape which can be explored, either interactively, or automatically when the autopilot is left on.
Teasynth
Teasynth is a tool to make music with code in Javascript, Faust and Sporth. There are two main ways of using it:
- The web editor runs in the browser and provides an instant composition environment.
- The command line interface can render music to audio files, serve the editor locally, and bundle music code.
lamb
A lookahead compressor/limiter that's soft as a lamb, written in Faust and Rust. Lamb was made with these goals in mind:
- Be as clean as possible
- Give the user full control over the character with the minimum amount of knobs.
FaustSynth
Welcome to FaustSynth, a AU/VST monophonic synthesizer built with the Faust programming language. This is the project deliverable for PAT 481: Independent Study in Fall 2023.
EnvelopForLive
The nonprofit mission of Envelop is to connect and inspire community through immersive listening. Our listening spaces envelop the audience in pristine 3D sound, amplifying the power of music and nurturing our ability to listen together. Some Max/MSP externals are written in Faust.
RCVerb ("ReaClassical Verb")
A reverb suitable for classical music based on zita-rev1. Available as LV2 and CLAP by default (with optional VST3, VST2 and LADSPA). This plugin is part of the ReaClassical project along with RCComp ("ReaClassical Compressor") and Enover (RCVerb's big sister) additionals plugins, also written in Faust.
Wam-Studio
Wam-Studio’s is an online tool for creating audio projects that you can imagine as multi-track music. Each track corresponds to a different "layer" of audio content that can be recorded, edited, or just integrated (using audio files for example). Some track can be used to control virtual instruments: in that case we record the sound that is generated internally by these virtual instruments (and played using a MIDI piano keyboard, for example).
Tracks can be added or removed, played isolated or with other tracks. They can also be "armed" for recording, and when the recording starts, all other tracks will play along, while the armed track will record new content.
Wam-Studio can host WAM plugins and in particular Faust ones, which can be built following this tutorial.
SNES Echo Simulator
SNES Echo is an cross-platform audio processing plugin, written in Faust. It simulates the SNES SPC700 DSP reverb/echo effect. This plugin does not strive for bit-accuracy and overflow handling, but instead being audibly indistinguishable for "normal" SPCs.
Syfala project
Automatic compilation of Faust audio DSP programs for AMD-Xilinx FPGAs, developed by the Emeraude team, and funded by the FAST ANR project. Supported board models are:
- Digilent Zybo Z7-10 - Zynq-7000 ARM/FPGA SoC Development Board
- Digilent Zybo Z7-20 - Zynq-7000 ARM/FPGA SoC Development Board
- Digilent Genesys ZU-3EG - Zynq UltraScale+ MPSoC Development Board
Interactive Granular Texture Synthesiser
An interactive granular texture synthesiser built in TouchDesigner, utilising real time signal processing of the domain-specific language Faust (functional audiostream), and the corresponding TD_Faust operator.
Reflex-in
Reflex-in is a sound installation that uses brain-wave streams to create music composition within the Web environment in real time. The work incorporates various state-of-the-art Web technologies, including Web Audio, WebSocket, WebAssembly, and WebGL. The music generated from the algorithm - mapping brain wave signal to musical events - aims to produce a form of furniture music that is relaxing and meditative, possibly therapeutic. The synthesizer part is created from Faust DSP and the installation can be tested here.
FaustCGP
Generate new audio synthesizers and filters in FAUST with Recurrent Cartesian Genetic Programming. Given a target sound or impulse response as input, the RCGP will return a FAUST synthesizer or filter, respectively, that best approximates the given signal or impulse response. Samples for an early version of the software can be found here.
KBVerb
A Faust reverb, based on the Midiverb architecture by Keith Barr.
pasfa - Paste Faust code!
A paste service for Faust code, to be tested here.
FAUSTmapper
FAUSTmapper is a tool for binding popular Digital Musical Intrument (DMI) mapping tools to the FAUST ecosystem. The default action for the FAUSTmapper project is establishing a binding to the libmapper project. When the script is run, the entire parameter space of an active FAUST project (with HTTP control enabled) will be discovered. Once discovered, a libmapper signal will be created for each of the parameters identified, including appropriate meta data such as min, max & default values.
The following poster was presented at the 4th Annual International Symposium on the Internet of Sounds and was awarded the Best Poster Award.
phausto
Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one). Phausto allows to use Faust inside Pharo.
Cantor Digitalis
The Cantor Digitalis is a singing voice synthesiser controlled in real time by chironomy, i.e. by manual gesture, using interfaces such as a stylus or the fingers on a graphics tablet. More generally, it can be controlled using any MIDI interface. The synthesiser has been reimplemented in Faust by Grégoire Locqueville during his PhD thesis.
Karya
Karya is a score language editor with support for scales, instrumental techniques, and ornaments, with special support for Balinese, Javanese, and Carnatic music. It has backends for MIDI, supercollider OSC, lilypond, and an incremental audio renderer that uses Faust or samples. You can write instruments in Faust and integrate them into a score along with samples and MIDI instruments. Due to incremental rendering, even computationally expensive instruments are not a problem.
Body Brain Digital Musical Instrument (BBDMI)
BBDMI project aims at making music from electrical signals of the muscle and the brain using EMG and EEG technologies. Producing instrumental prototypes in an open way (open software and open hardware) and to document them in the framework of open science (FAIR). The modular system is built with Max/MSP and interfaced with Faust for the purpose of analyzing, processing and mapping electrophysiological signals to sound. The paper An Interactive Modular System for Electrophysiological DMIs received a best paper award at Audio mostly 2023.
The Spatbox
The Spatbox is an interface to intuitively generate 3D trajectories and to spatialize them in real-time on a loudspeaker array with Ambisonics, developed by Pierre Lecomte. Each trajectory is described by a parametric curve, where each of the coordinates varies according to a configurable LFO. Depending on the LFO parameters, many trajectories can be generated. The implementation is done in Faust and the project has been presented at PAW 2022.
MUSS3640 Vocal Synthesiser
The MUSS3640 Vocal Synthesiser is a standalone application/VST3 plugin developed to allow exploratory synthesis of the singing voice. It implements a combination of formant-wave-function and bandpass synthesis techniques. The DSP is written in Faust.
RITI: Room Is The Instrument
RITI: Room Is The Instrument by Luca Spanedda, is a piece based on a complex system capable of manifesting emergent and chaotic behaviors, where the acoustic personality of an environment (digital or physical) becomes a case of study for the performance and is reflected in terms of variation in the behavior of the system itself. The DSP code is written in Faust. See a video of a "studio" performance of the system.
EQUIS
EQUIS is a 4 Channel DJ Mixer built on top of JACK. It's EQ is inspired by the Playdifferently Model1 and offers per channel a highpass, lowpass and sculpt eq. The code is developed in Rust and the DSP is written in Faust. See the video presentation at Sonoj convention.
ESP32 Wrover E/IE audio dev board
A board to play with FAUST sound synthesis language.
Kuroscillators
Max/MSP objects for audio and rhythmic synthesis using coupled oscillator networks. Coupled Oscillators networks are dynamical systems that describe how ensembles of interacting elements are able to self-organize and synchronize over time. In terms of sensory perception, they have been examined in a wide range of fields including those related to rhythmic entrainment, biomusicology, psychoacoustics, signal processing, and generative music. The DSP is written in Faust.
mesh2audio
Generate axisymmetric 3D models, or import existing 3D models, and transform them into real-time playable physical audio models!
Supports fast DSP generation of physical audio models that sound decently realistic, as well as blazing fast 2D axisymmetric model generation, at the expense of some fidelity. It is an improvement of the mesh2faust tool.
The generated audio model can be played in real-time by "striking" (clicking) on mesh vertices in the 3D mesh viewer.
Bespoke Anywhere
This paper reports on the Audio Anywhere project, a framework for working with audio plugins that are compiled once and run anywhere. At the heart of Audio Anywhere is an audio engine whose Digital Signal Processing components are written in Faust and deployed with WebAssembly, by Benedict Gaster and Ryan Challinor, presented at Nime 2021.
A Technical Framework for Musical Biofeedback in Stroke Rehabilitation
We here present work a generalized low-level technical framework aimed to provide musical biofeedback in post-stroke balance and gait rehabilitation, built by an iterative user-centered process. The framework comprises wireless wearable inertial sensors and a software interface developed using inexpensive and open-source tools. The interface enables layered and adjustable music synthesis, real-time control over biofeedback parameters in several training modes, and extensive supplementary functionality. JUCE and FAUST are used to create a versatile architecture for layered, yet computationally efficient real-time music synthesis.
ForceHost
ForceHost: an open-source toolchain for generating firmware embedding the authoring and rendering of audio and force-feedback haptics, by Christian Frisson, Mathias Kirkegaard, Thomas Pietrzak, and Marcelo M. Wanderley presented at Nime 2022. The Faust compiler has been modified to support haptics.
Sentinelle
Sentinelle is a sound and robotic art installation made by Jérôme Abel. A robot-probe is placed in a dark place, a cellar. It scans its surroundings with two lasers. The reliefs of the old walls, their imperfections, mold, appear thanks to the perfectly straight lines of the lasers. Its movements are synchronized with a sound program. From these very simple visual and sound choreographies are born an imaginary on its functioning and the origin of its presence. The spectator observes in a mirror a robot which observes and testifies. Does it communicate with other systems? Does it send information? Its energy is precious, like a heartbeat or a breath, it works in a segmented way with periods of silence. Likewise, his movements are slow and relentless.
Faust objects from https://github.com/grame-cncm/faust/tree/master-dev/examples included with pd-faustgen:
- examples/gameaudio/bubble
- examples/delayEcho/echo
- examples/gameaudio/rain
- examples/generator/sawtoothLab
lang.faust~ and ui.faust~
CEAMMC PureData distribution 2023.02. General purpose Pd distribution and library used for work and education purposes in Centre of electroacoustic music of Moscow Conservatory (CEAMMC) and ZIL-electro studio. This repository is an assembly of Puredata that includes the CEAMMC library.
It includes the lang.faust~ and ui.faust~ externals and a lot of Faust DSP.
arco4 - sound synthesis engine and framework
Arco is a sound synthesis engine that offers dynamic patching of of unit generators. It is designed to operate as a small embedded server, running either in its own process or within an application. In the spirit of "smaller is better," Arco DSP is mainly delegated to FAUST, leveraging a wide range of existing algorithms. Arco control is delegated to external languages connecting through O2, which supports running Arco within the same application, in a separate process or even on a remote networked host. Arco should be a nice alternative to libpd as an embedded sound engine. The author is mainly using Arco in tandem with Serpent, a real-time Python-like scripting language, but other language bindings are possible.
Synthesizer-synthesizer
This is a dual-course project for CS378 NLP and CS393P. The goal is to use language model guided program synthesis to synthesize Faust DSP code to ... automatically program synthesizers. Not guaranteed to work. In the slightest.
Ambisonics in KMH studios and Lilla salen
The general idea behind using ambisonics for diffusing sounds in a space is to, in the first stage, encode an audio signal to a representation of a sound field - a B-format signal. This B-format signal is independent of whatever speaker array the signal will later be diffused on. In the second stage the B-format signal is decoded to the layout of a particular speaker array. In between these two stages a number of transformations may be applied, but the sound source specification may conveniently be specified in the encoder. The decoders are written in Faust.
Sardine
Sardine is a free/open-source software for Python 3.10+. It turns Python into a musical instrument. You can play it alone or with your friends. With Sardine you can:
- Play synthesizers and audio samples using SuperCollider.
- Control synthesizers through MIDI/OSC messages.
- Interconnect audio/video softwares and/or sound engines.
- Play collaboratively with your friends.
- Extend your musical environment using any Python package.
Faust written DSP can be used in Sardine.
KandiskyScore
KandiskyScore is a graphical editor for the analysis and creation of electroacoustic/acousmatic music. It is an html/javascript application. It works perfectly with Firefox, Chrome and Opera and therefore on all Windows, OSX, Linux and other PCs.
It uses the WebAudio API for sound generation and the Faust language of the GRAME for plugins. It also allows you to export a graphic score in SVG format that you can eventually modify with a vector graphics software like Inkscape or LibreOffice-draw.
fildesoi1_2_3
Software (including Faust code, Max and PureData patches) to perform Fil de Soi 1 and Fil de Soi 2, mixed music pieces by Alain Bonardi for acoustic guitar and electronics.
enecho
Faust code for En Echo piece by Manoury for soprano and live electronics.
Zen Flute
The Guthman Musical Instrument Competition is one of the only competitions of its kind - an event dedicated to identifying the newest and greatest ideas in music. Every year, we invite musical inventors from around the world to share their creations and ideas about the future of music.
This year first price is Keith Bexter with the Zen Flute, which sound is produced by a physical model of flute written in Faust, and running on a Teensy audio board.
souffle
An electro track made with Faust. You can listen to a recording here.
GHG (Gruppenhorchgerät)
The project is a demonstration of a technique called delay-sum beamforming with the aim to replicate the sound heard by operators of passive sonar devices used in the second world war. Listen to the video here. The simulation code is written in Faust.
Satuverb
Satuverb is a flexible reverb that has many creative and natural sounding uses, produced by request for FBPM. It has a saturator and EQ controls inside the reverberator, which apply every time the signal is fed back. This causes the effects to grow more extreme as the reverb tail trails off. Satuverb's reverberator is based on Jon Dattorro's 1997 design and written in Faust.
faustilogue
Convert Faust DSP files to KORG logue custom oscillators, using the logue SDK.
Blippoo for Wingie
Blippoo for Wingie is an alternative firmware for Wingie2. The new firmware is inspired by Blippoo Box, a genius instrument created by Rob Hordijk (1958-2022), who contributed a lot to synthesizer design. May his spirit lives on in his instrument designs, thoughts, and influences.
The new firmware could turn your Wingie2 into a self-contained instrument capable of producing a variety of sounds and patterns. As a great companion, it will help you in your music-making practice especially when you want to applicate controlled chaos in your music. The DSP is written in Faust.
6171_reverb
A vintage reverb based on designs from 1961 and 1971, written in Faust.
teensy-wfs
Distributed Wave Field Synthesis (WFS) implementation for networked Teensies. There is a WFS Controller JUCE app in wfs-controller. This uses JACK's C API to set up ports and connect to any Teensy JackTrip clients. It notifies the clients of their positions in the WFS array, plus the positions of virtual sound sources, via OSC over UDP multicast. The WFS algorithm is written in Faust.
pd-remote
This is a simplified and unified version of the Pd remote control helpers that I've been distributing with various Pd externals such as pd-faust and pd-lua over the years. The present implementation will work with any of these and replaces the more specialized versions. It takes the form of a Pd abstraction pd-remote.pd and an accompanying pd-remote.el elisp file for Emacs.
Crossroad2Effects
Crossroad2Effects, the functional successor to @jatinchowdhury's CrossroadsEffects, is a genetic algorithm infrastructure for filter exploration. Provided with dry and wet sound file, Crossroad2Effect determines the filter that tampered the dry file and presents it as a Faust program. This allows users to have granular access to analog or VST filters through a programming interface. This project constructs its genetic algorithm search on top of pedalboard, Spotify's new plugin API.
flatten
What is an envelope flattener? It's similar to an automatic gain control, compressor, or maximizer in that it acts by modifying the gain of the signal according to a control signal. Like these, the control signal is derived from the envelope of the input signal. The DSP is written in Faust.
drumvoice
Drumvoice is a percussion instrument LV2 plugin. Drumvoice can also make lots of other percussion sounds, like kick drums, toms, single hand claps, and all kinds of smaps and blinks. The DSP is written in Faust.
Verber
Verber is a simple audio plugin tool with a Sweet, Lushy reverb processor. It is a portolio project built in JUCE and HISE, with the DSP in Faust.
REACH
Extraterrestrial Reverb for Electronic Music. REACH is modern creative Reverb that is made for synthetic sound sources. There are four effects included to transform the Signal. It features modular routing, pre and post filters and over 40 Presets. Part of the DSP code is written in Faust.
Stray_virtual-synth
A typical wavetable synthesizer will have a table of predetermined amplitude values which are read through at the appropriate speed relative to the frequency of the current note, resulting in an audible signal. Stray functions similarly, reading through a table of values, but the amplitude values are not predefined. Instead, these values are modulated with one of four LFO shapes. The DSP code is written in Faust.
Drty Drums
A 4 voices drum machine based on FM synthesis [WIP]. The sound engine is made in Faust.
201 Musical Synthesizer
We’re Critter & Guitari and we’re happy to announce our newest synthesizer: the 201! If you’re familiar with our other musical instruments such as the Pocket Piano, Organelle, Bolsa Bass, or Kaleidoloop, we hope you’ll see that the 201 fits right in with them: the 201 is fun, portable, and packed with a medley of musical magic!
Inside, the 201 uses a combination of Pure Data and Faust musical programming environments. Users are invited to modify or create new sound engines!
CollisionDrive.lv2
CollisionDrive is modeled after the Horizon Devices Precision Drive, a modern overdrive pedal with a built-in noise gate, with DSP written in Faust.
MetalTone.lv2
Distortion Pedal simulation. MetalTone is modeled after the renowned BOSS MT-2 Metal Zone, a high gain distortion pedal with an advanced EQ section, with DSP written in Faust.
tamgamp.lv2
Tamgamp (Rhymes with: "Damage Amp") is a LV2 guitar amp simulator that provides two plugins, with DSP code developed with Faust:
- Tamgamp - a plugin based on Guitarix DK Builder simulated chains.
- TamgampGX - a plugin based on tuned Guitarix internal amplifiers implementation.
ReverbZen
A Reverb written with Faust and JUCE, based on SchroederReverberators. This reverb effect uses different stages. It splits input signal in parallel and uses different types of delaylines. Different filters are provided to get rid of unwanted resonances. Check out reverb.dsp file to get more detailed insight.
Wingie2
Wingie2 is a handheld stereo resonator that you can use as a development platform, and can be programmed with Faust.
Slowmo.lv2
A multiband slow gate with delay/echo. The C++ files for the effect are generated from Faust DSP files: Bandsplit.cc, Delay.cc and Volume.cc.
Vocoder App
Vocoder mobile app for Android made with Faust and its Smartkeyboard interface. This app was developed in the context of a project for the the Real Time Interaction and Performance exam (Sound and Music Computing MSc, Aalborg University, Copenhagen, 2020).
The paper A Faust-built Mobile Vocoder Instrument, included in the repo, provides more information on the algorithm, as well as the description of a case prototype.
Echoplex Ep-3 Simulator
This archive contains a virtual model of the Echoplex Ep-3 tape delay. The effect has been developed using Faust in the context of a project for the Sound Processing exam (Sound and Music Computing MSc, Aalborg University, Copenhagen, 2019).
The paper Faust Model of the Echoplex Tape Delay, included in the repo, provides more information on the algorithm.
faust2smartphone
faust2smartphone is a tool to generate interactive musical mobile application embedded Faust API.
DPF-Fadeli
An experiment with Faust Demo Library content as DPF plugins. Basically glueing a few different projects together, to compile Faust DSP programs in several plugins format: LADSPA, LV2, VST2, VST3, CLAP:
TR8CK
TR8CK is an experimental DAW/tracker with Faust live coding via faust2webaudio and UI powered by SolidJS.
GuitarD
It's a basic multi effects processor which follows a node based approach. Components are developed with Faust.
MBStereophony
This is a simple implementation of a Regalia-Mitra filter bank using 3rd order Cauer low-pass filters as the base designs. There are four filter bank programs available which are described below. MBStereophony itself is a demo effect that down-mixes a stereo signal separately per frequency band.
Audiolab
A docker based DSP learning/Experimentation environment including:
- Jupyter lab
- FAUST
- python 3.7 (at the moment. Depends on miniconda3 docker image)
- FAUSTpy to run FAUST code inside jupyter
- faustWidgets (to interactively control FAUST code )
- librosa (for MIR and feature extraction)
- scipy, pandas, numpy for general data science
- sox (encoding, batch processing etc)
- ffmpeg (encoding batch processing etc)
- seaborn (more beautiful plots)
- latex TODO (for exporting jupyter notebooks)
LR_Delay
A stereo delay plugin which emphasizes free (non beat-synced) controls for the individual channels. Built with Faust and JUCE.
Leslie speaker simulator
This archive presents a virtual simulation of the Leslie Speaker commonly found in Hammond electric organs. The digital effect has been developed using the FAUST programming language, and then ported into a VST-compatible format using the JUCE C++ framework.
cookiecutter-dpf-faust
A cookiecutter project template for DISTRHO Plugin Framework (DPF) audio effect plugins using FAUST for the implementation of the DSP pipeline. Look at the demo video.
DF Zita Rev1
A feedback-delay-network reverb plugin built with DPF and based on a FAUST library demo. Several other projects are developed using the same DPF/FAUST methothodolgy:
- FAUST filters, a collection of virtual-analog filters from the FAUST standard library packaged as multi-format plugins via the DPF
- SendMixer, a stereo channel strip plugin with one master gain and two pre/post-fader sends
- Stereo Cross Delay, a stereo delay plugin with feedback and cross-mixing.
- DF JPverb, a lush algorithmic reverb designed to sound great with synthetic sound sources, built with DPF and based on re.jpverb from the FAUST standard library.
Theremotion
Theremotion is a virtual instrument inspired by the Theremin. Just like a Theremin, the position of your hand in the air controls the pitch and volume of the sound. However, you can also control much more dimensions of the sound with specific motions. With specific hand positions, you can control a low pass filter, a supersaw sound, a guitar sound and more. You can even make the instrument "stick" to a scale, making it much easier to control than a Theremin.
The hand tracking is provided by Ultraleap's Leap Motion Controller. The sound generation is created with Grame's Faust. The program is built with Rust.
Hypercurve
Hypercurve is a library allowing you to combine several curve algorithms into a single 2D envelope. It is designed to be used in audio applications, for people who know how to enjoy a finely shaped curve. As shown above, you can perfectly combine gaussian curve with diocles cissoid curve, and plenty of other curve algorithms. The library can be used in C++, Lua, Csound and Faust.
faust-mcp
This package provides a Pd abstraction mcp.pd (along with some helper abstractions and externals) which lets you control your Faust instruments and effects more conveniently with control surfaces utilizing the Mackie Control Protocol (MCP).
Faust.quark
This SuperCollider package makes it possible to create SuperCollider packages (Quarks) containing plugins written in Faust code. With this, you can distribute plugins written in Faust and make it easy for others to install, compile or uninstall them. It also contains some simple interfaces for the faust
and faust2sc.py
commands used behind the scenes.
Komet
Komet is a computer music / sound system by Mads Kjeldgaard written in SuperCollider and Faust.
Komet is a computer music system that makes advanced synthesis operations and composition easier. It auto generates thousands of synthesizer variations from simple recipes and offers a range of DAW-like features such as effect chains (like on channel strips) and other conveniences. It can work natively in stereo, multichannel or high order ambisonics mode with the flick of a switch, allowing the same compositions to be used in different sound systems.
Faug
A Minimoog Model D emulation with the DSP portion written in Faust and using JUCE framework. Moog + Faust = Faug.
Striso Studio
A virtual Web version of the Striso board, using the Faust WebAssembly compiled sythesizer code.
XUiDesigner
A WYSIWYG LV2 X11UI GUI creator tool. Provide a easy to use GUI generator tool to create X11 UI's for LV2 plugins. Currently only libxputty is supported, but the generated GUI C file could be used probably with other widget tool-kits as well, just a wrapper file is needed to translate the generated file to the needs of a toolkit.
XUiDesigner could now parse faust (.dsp) files and generate a full LV2 Bundle for them. A faust (.dsp) file could be given by the command-line parameter -f or simply by drag it on the Designer window. It will create all control widgets which you could then rework to your needs before you save your Bundle.
eurorack-blocks
The eurorack-blocks project allows to develop your own custom Eurorack module for either prototyping or fun in the comfort of your day-to-day IDE with the C++ or Faust language, or using the Cycling '74 Max environment, testing and debugging in a virtual Eurorack environment, and when ready, to auto-magically generate all the needed files to manufacture the eurorack module for you to use in a real Eurorack modular system.
AmStramGrame
An arts and sciences educational project (STEAM), bringing together services and resources for the educational community. It aims at making abstract scientific concepts more tangible and concrete through musical creation and computer programming.
The Gramophone is an audio device/musical instrument specifically designed for the AmStramGrame project. Its various sensors and controllers (e.g., accelerometer, gyroscope, light sensor, etc.) make it react to the user's gestures. Its rechargeable battery offering approximately five hours of autonomy and its powerful speaker make it independent from any computer, bringing it closer to traditional acoustic musical instruments.
DSP programs are coded in Faust. Additional examples can be found in GramoCollection.
GameLAN
GameLAN is a set of musical applications designed by Grame, National Center of Musical Creation. They are based on Faust technology and have been designed to be played using only the movements of the smartphone. No musical prerequisite, only your gestures will make you a musician!
Screamer
Version 1.0 is the accurate Faust reproduction of a VST plug-in written in 2003. In later versions, the parameter ranges is modified and some new functionality are added.
This signal mangler features a weird kind of overdrive (see source code for exact formula), a hard-clip distortion, LFO-modulated bit reduction and the possibility of calculating the modulo of a signal.
Typebeat
Typebeat is a virtual groovebox that’s entirely keyboard-operated. Typebeat draws inspiration from two computing environments. Effects are developped in Faust then generated as Rust modules.
AFDN-reverb
(High-Order) Ambisonics Feedback Delay Network Reverb. Code is developed in Faust and Max.
Karpsichord
A virtual harpsichord based on Karplus-Strong string synthesis, implemented in Faust and running in the Web.
Arduino Audio Tools
Some basic header-only C++ classes that can be used for Audio Processing provided as Arduino Library. A simple Interface class to use Faust with Arduino Audio Tools is provided. Code can be written using Faust.
Organelle
The Organelle makes it easy to explore new sounds and experiment with new ways of making music. It combines playful and intuitive controls with a powerful and flexible sound engine. The result is an instrument that is limitless in musical possibility and a joy to play.
At the heart of the Organelle's sound engine is a robust computer that runs patches. A patch allows the instrument to take on different forms. Onboard hardware for sound input and output and mappable knobs, keys and buttons enable patches to synthesize, sample, effect, and anything in between!
The Organelle can be programed with Faust as explained here and with this PD external using Faust.
Zrythm
Zrythm is a digital audio workstation designed to be featureful and easy to use. It offers streamlined editing workflows with flexible tools, limitless automation capabilities, powerful mixing features, chord assistance and support for various plugin and file formats. A set of Faust effects are compiled as LV2 plugins and included in the application.
Patches for the OWL Pedal/Eurorack Module
This is a collection of patches written or ported specifically for the OWL. Most of them were written using Faust and if you want to modify them you'll need to have a working FAUST installation. C++ source code (the .hpp files) for the OWL can be generated by running the "updateFaustPatches.py" python script. Then you will need to rebuild the OWL firmware and upload it to the device.
Kiwi
Kiwi is a graphical programming environment dedicated to music and sound creation, such as Max or Pure Data softwares, but offering a real-time collaborative approach: Kiwi allows several distant users to work simultaneously on the same patch hosted online.
Kiwi is part of the French ANR-funded MUSICOLL project that unites the CICM and OhmForce. The main goal of this project is to study how collaboration can enhance the way digital audio music composition is taught and more generally how it can renew music creation practices and improve its workflow.
Faust DSP programs can be dynamically compiled as objects included in the patch. An extended presentation of the system can be found in this IFC 2020 paper.
Brainwave Virtual Instrument
The Brainwave Virtual Instrument (BVI) is an open-source software synthesizer built in the programming language Faust. Its purpose is to facilitate the exploration of electroencephalogram (EEG) and other brain data through sonification. Pre-recorded data is translated as parameter controls of the instrument in the form of Open Source Control (OSC) messages that are generated and streamed by a small python program.
The instrument can easily be distributed and compiled to different targets thanks to Faust’s flexibility. Frequency Modulation synthesis provides a comprehensive approach to textural parameters of sounds, so that musical composition and improvisation based on a creative use of brain data become feasible. This is exemplified by the Brainwave Etudes (BE), a series of compositions inspired by measurements of brain activity during different states of mind.
The BVI was created for two major purposes: on the one hand, to find musical structures that relate to each other in order to present an aesthetic proposal, and on the other, to create a tool that familiarizes scientists and researchers in the field of neuroscience with sonification techniques, and the exploration of brain activity through sound. An extended presentation of the system can be found in this IFC 2020 paper.
Mephisto
Mephisto is a transpiler for converting sound patches designed using the graphical computer music environment Pure Data to the functional DSP programming language Faust. Faust itself compiles into highly-optimized C++ code. The aim of the transpiler is to enable creating highly optimized C++ code embeddable in games or other interactive media for sound designers, musicians and sound engineers.
weather_organ
Weather Organ is a Faust instrument for manipulating sparse noise to imitate slowly-changing natural sound sources such as rain, wind, surf, fire, Geiger counters and volcanic activity, and to create interesting new textures of sound. It is the product of various discoveries made while using Faust to explore the definition, synthesis and experience of acoustic noise while, simultaneously using the exploration of noise as as focus for learning Faust.
Dataflow Based FPGA Program Synthesis
A Yale-NUS BSc. (Hons) in Mathematical, Computational, and Statistical Sciences Capstone: an FPGA Program Generator written in Python that takes dsp-sig XML Dataflow Graphs created using Faust to produce FPGA programs in VHDL.
DSPedal
DSPedal is a custom hardware platform for real-time sound effects. It is operated by few knobs, external expression pedal, couple of buttons and a small graphical LCD.
Processing effect is written in Faust programming language and compiled into C code. So far the Cortex M4 core clocked at 204 MHz has proven to be capable of executing relatively complex effects like wah, but effect-chaining quickly reaches the limits of processing power.
Tambura
Waveguide physical model of an Indian Tambura/Tanpura. This is a Faust patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre.
The model uses a few tricks to produce a Tambura-like sound, and should probably be referred to as a "pseudo" physical model, because it does not attempt to accurately recreate the physics of the string-bridge interaction. It includes a range of parameters selected to allow control of the qualities of the excitation/pluck, string behavior and sympathetic resonance. It can produce some beautiful evolving drones, which can vary from very synthetic to quite natural. The model can be tested here.
Granola
Granola is a monophonic granular live feed processor. The grain processor is inspired by the Mutable Instruments Beads. The grain window shape control is inspired by the GR-1 Granular synthesizer from Tasty Chips Electronics. The DSP code is written in Faust.
fverb
A stereo variant of the reverberator by Jon Dattorro coded in Faust.
Sonification
This study has been developed as a proof-of-concept for data pattern sonification. We've implemented data pattern sonification using FM synthesis coded in Faust. Air pollution data, which is temporal, is retrieved from the server and is done pattern mining. Then pattern data sonification is done.
GULA Plugins
A collection of guitar effect LV2 plugins (The Vibey, The Splits, The Fades, SSaP Tone, Sweabed, Pequed, Peak audio to CV, LFO CV) with MOD Devices user interfaces.
limiterStereo
Yet another look-ahead limiter code in Faust. The novel aspect of this limiter is that it uses N cascaded one-pole filters for amplitude profiling, which improves smoothness in the first to N-1 order derivatives and reduces total harmonic distortion. This design uses four cascaded one-pole lowpass filters, following the cut-off correction formula (8.9) found in [Zavalishin 2012].
Web Audio Modules
Web Audio Modules are an open source framework facilitating the development of high-performance Web Audio plugins (instruments, realtime audio effects and MIDI processors). They can be developed using JavaScript and Web standards or compiled from C, C++ code, and domain-specific languages such as Faust or Csound. The Faust Web IDE contains an integrated GUI builder, read a tutorial here.
Kapitonov Plugins Pack
Set of 7 plugins for guitar sound processing, compiled in LADSPA and LV2 formats. Compatible with hosts such as Ardour, Qtractor, Carla, guitarix, jack-rack. The DSP of all of them is written in Faust.
tubeAmp Designer
Standalone software guitar processor, editor of *.tapf profile files for tubeAmp (KPP) and guitar amp profiler.
BioSignals
BioSignals is a data aquisition and processing device for EMG, ECG and EEG signals. Since it is using the OpenWare firmware, it can be programmed with Faust.
Scale it
Scale it is an open source program (written in graphical programming language Pure data and in Faust) that allows sonification of a signal distribution in real time. There are two different possibilities of sonification of the signal. One of the objects, tone, generates changes in pitch of a monophonic tone. The other object, chord, expresses the input value in width of polyphony.
Scale it is being developed primarily for neurofeedback purposes. To allow straightforward and customizable instruments to carry sonic feedback about EEG activity in specific regions of the neocortex.
JackTrip
JackTrip is a Linux, macOS, or Windows multi-machine audio system used for network music performance over the Internet. It supports any number of channels (as many as the computer/network can handle) of bidirectional, high quality, uncompressed audio signal streaming. Several DSP effects (compressor, freeverb, zitarev, limiter) are written in Faust, compiled as C++ code, and included in project sources.
Level Rider
This is an audio plugin written in Faust that automates gain level adjustments, based on a target gain level, a time window over which overall loudness is calculated via RMS, and a maximum adjustment threshold.
This plugin is comparable to Waves Vocal Rider or Waves Bass Rider in its functionality, but is free and open-source.
Whetstone Transient Shaper
A free, open source transient shaping audio plugin that operates on a specified frequency band. Whetstone will extract a certain frequency band based on a low cutoff and high cutoff that you choose, apply transient shaping to it, and then reintegrate the shaped band back into the original signal.
This plugin is meant to be comparable to the excellent Spiff plugin in its core functionality, but lacks many of the nice features and polished UI. The DSP is coded in Faust.
Reverb Trickery
A free, open source audio plugin implementing various creative reverb effects, including octave-shifted, distorted, hi-pass/low-passed, gated, and narrowing reverb, coded in Faust.
b259wf
This is a model of the "tibre" circuit of the Buchla 259 Complex Wave Generator, made in Faust. The model follows the circuit modelling as seen on the paper Virtual Analog Buchkla 259 wavefolder, using 5 folds.
The proposed 2-point BLAMP antialiasing method has been attempted for arbitrary sources as shown here, but it is not sufficient for high frequencies and/or more complex signals. Instead, filtering and light cubic nonlinearity distiorion has been used to round corners and for clipping.
The user interface consists of the controls fold for the folding amount, offset for offseting the signal before folding, and lowpass as a final stage one-pole filtering to control the character (too much folding might introduce unwanted higher harmonics for certain signals). The final output is dc-blocked.
string-machine
This is a virtual-analog string ensemble synthesizer. The implementation is based on a digital model designed by Peter Whiting. The improvement of the model adds various abilities, in particular a virtual-analog emulation of the bucket brigade delay circuit. Most of the DSP code is developed using Faust. Three VST or LV2 are generated: string-machine, string-machine-chorus and string-machine-chorus-stereo.
metaFx
The metaFx is a control surface for continuous sound transformations in real time, just like the metaSurface64.
Like metaSurface64, it has both its own loop generator and a multi-effects FX engine, but its operation is different, especially for the management of plugin chains and pads.
Each mixer on this surface can directly control the gain and the attached plug-ins. It is also possible to control the tracks of an external sequencer (Ardour or Reaper). To do this, the application uses OSC controllable modules that come from the Faust language library that is embedded in the application. Its interest lies in the construction of a parallel sound processing chain in the form of a graph.
Kymatica.com
Jonatan Liljedahl at Kymatica AB makes iOS music apps, electronic music, and a little bit of audio hardware. The following iOS applications have DSP code developed using Faust:
-
AU3FX:Push: AUv3 dynamics processor with noise gate, compressor/expander with external side-chain input, brick-wall look-ahead limiter and hard/soft clipper.
-
AU3FX:Space: High quality tweakable AUv3 reverb with resonant filters. For everything between small rooms, resonators, and infinitely large spaces.
-
AU3FX:Dub: Stereo AUv3 delay effect for everything from clean digital delays to filthy dub echoes, ping-pong flangers, and broken cassette tapes.
-
AUFX:PeakQ: A versatile 4-band parametric stereo equalizer for everything between subtle frequency enhancements and agressive boosting/cutting or special resonator effects.
Nemesis
Nemesis is multichannel dsp platform for eurorack. It can be programmed with Faust.
Sonobus
SonoBus is an easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network. Several DSP effects (Compressor, Expander, Limiter, ParametricEQ, Reverb) have been written in Faust, compiled as C++ code, and included in the JUCE project.
XPlugs.lv2
This repository contain the LV2 plugins developed using libxputty/XUidesigner. The included makfile allows the build of all plugins against a single checkout of libxputty. Each plugin exists as its own submodule under this repository. Some of the DSP code has been written with Faust.
Bass Preamp Drive
The goal of this project is to digitally reproduce the behavior of a well-known electric bass preamp: Ampeg SVT3 Pro. This preamp has been copied by several manufacturers. So we have an almost perfect copy with the Bugera BVP5500 which has four preamplifier tubes. An analog copy is also available as a pedal, the Tech 21 BDDI. The project is based on advances in the simulation of analog circuits made available by the Guitarix project and the excellent Faust from Grame cncm.
Drum Module
This project aims at integrating a digital drum synthesizer using Faust and Miosix real time OS on an STM32F407VG Discovery Board. To do this, a user interface by means of buttons, sliders, encoders, and an LCD has been implemented to control the synthesizer. Moreover, a serial MIDI input port has been added in order to control the synthesizer externally by using an external sequencer or controller.
ER-301 Sound Computer
The ER-301 is a voltage-controllable canvas for digital signal processing algorithms. It can be programed with Faust using the faust2er301 tool and some units are developed here. Note that it is still a WIP, read the discussion here.
Zynthian platform
Zynthian is a new class of musical device. A powerful multitimbral synthesizer and audio processor, capable of managing up to 16 audio chains simultaneously. Also, it's a MIDI processor and router, equipped with standard MIDI ports, USB, WIFI & wired networks. Zynthian is a community-driven project and it's 100% open source. The Zynthian platform can be programmed with Faust with some DSP examples here.
GxPlugins.lv2
GxPlugins.lv2 is a set of more than 40 extra standalone lv2 plugins designed to compliment the Guitarix project. Each plugin exists as its own submodule under this repository. The DSP code has been written with Faust.
Stone phaser
A classic analog phaser effect. This is an analog phaser with similarity to the Small Stone. It has a color switch, which makes the phasing stronger when on, and adds some feedback controls. A stereo variant of the phaser is included. This effect is supported on MOD devices. The DSP code is developed in Faust.
sfizz
sfizz is a sample-based musical synthesizer. It features the well-established SFZ instrument format at its core, which permits to use existing instrument libraries, or create personal instruments with ease. Not only is sfizz ready-to-use as an instrument plugin of its own, the library allows developers to create instruments of their own, taking advantage of the abilities of SFZ.
The sfizz project uses the SFZ parser and synth C++ library, providing AU/LV2/VST3 plugins and JACK standalone client. Some effects are developed in Faust are well as several filters.
Antescofo
Antescofo is a coupling of a real-time listening machine with a reactive and timed synchronous language developed at IRCAM. The language is used for authoring of music pieces involving live musicians and computer processes, and the real-time system assures its correct performance and synchronization despite listening or performance errors. Antescofo audio DSP processes can be described with Faust, using libfaust dynamic version of the Faust compiler.
INScore
INScore is an open source framework for the design of interactive, augmented, live music scores. Augmented music scores are graphic spaces providing representation, composition and manipulation of heterogeneous and arbitrary music objects (music scores but also images, text, signals...), both in the graphic and time domains. Audio DSP processes and effects can be described using Faust. The environment runs as a native application but also in the Web. Faust programs are only supported by the online version.
Virtual Rhizome
By Vincent Carinola. Virtual Rhizome responds to a proposal by Christophe Lebreton and Jean Geoffroy to compose a work for the original Smart Hand Computer system, developed at the GRAME-CNCM using the Faust language and allowing to play smartphones as an instrument.
The work takes the form of a labyrinth, a kind of virtual architecture that could be compared to Borges' "garden of branching paths", within which the musician evolves by adapting his gestures to the constraints of different types of situations. Each situation is characterized by an autonomous functioning of the system, that the musician must apprehend in order to find the key allowing him to modify it and to move towards another situation. But in order to orientate himself well, he must create a mental representation of the structure of the work. The performer then becomes an explorer of a world that he unveils, but isn't that what he has always been?
Virtual rhizome owes much to the availability and enthusiasm of Jean Geoffroy and Christophe Lebreton. It is amicably dedicated to them.
SmartFaust
SmartFaust is a concept of musical applications for smartphones. These applications have the particularity of only using the user's gestures and not by tapping on the device's screen. Made for iOS and Android, they can also use the motion sensors of these devices to make them real musical instruments.
Smartfaust applications are based on the Faust (Functional Audio Stream) programming language developed by Grame over the last 15 years and recognized as a standard in the field of real-time signal processing for audio.
The SmartFaust applications were first used for the creation of the pieces Mephisto (for drums and cell phone ensemble), Belzebuth (participative piece for public equipped with Smartphones), Iblis (for clarinet and cell phone ensemble) and Bélial (for harp and cell phone ensemble) written by the composer Xavier Garcia.
From this same technology were later created the applications "Geek Bagatelles" (2016) and "GameLan" (2019).
Trombone Simulator
This simulator is a physical model of a trombone. Physical models of the lips, mouthpiece, slide, and bell are digitally simulated. The controls are listed at the top. The main controls are to move the cursor (or your finger on a touch device) left and right on the picture to adjust the embouchure, and up and down to extend and retract the slide. The diagonal colored lines are a guide to where the resonances are: playing over a resonance means that the embouchure and slide length are matched. Playing over white space means that one is between resonances and the note quality won't be as good. The big gray wedge on the upper right indicates that the resonances are very close together there. The vertical dashed lines indicate the rough locations of B-flat (thick lines) and F (thin lines). Other notes are unmarked, and likewise the slide positions. (Just like on a real trombone!) The off-key resonances (7th, 11th, 13th, and 14th) are marked in red. The g and f keys can be used to growl and flutter-tongue, respectively.
The audio simulation is written in Faust, which conveniently compiles to WebAssembly and a Web Audio API wrapper. The overall approach used was a digital waveguide model, as described in J. O. Smith III's Digital Waveguide Theory. The lips and bell are adapted from F. Scott's masters thesis.
Integrating 1-DoF force feedback interactions in self-contained DMIs
By Mathias Kirkegaard. This thesis presents a system for designers of Digital Musical Instruments (DMIs) to explore the integration of 1 degree of freedom (DoF) force feedback interactions in new self-contained instruments. The system developed consists of an open-source graphical tool and a rotary force-feedback device made from commercially available components to facilitate the authoring of audio-haptic applications. Implementing an early prototype is used to inform the development of the graphical editing tool and its integration in an embedded audio-haptic environment using the functional programming language Faust for real-time signal processing.
Beyond Key Velocity: Continuous Sensing for Expressive Control on the Hammond Organ and Digital Keyboards
By Giulio Moro. In this thesis we seek to explore the potential for continuous key position to be used as an expressive control in keyboard musical instruments, and how pre- existing skills can be adapted to leverage this additional control. The nonlinear waveguide physical model of a flute has been developed in Faust.
Guide de la synthèse sonore
By Sebastien Clara. In this guide, I try to demystify how sound synthesis works. To do so, I present the fundamental principles of sound synthesis. I accompany these explanations with small sound applications that you can manipulate in your web browser and thus, you will be able to notice the impact of a parameter on the sound.
Most of the sound examples are written in Faust and run in the web pages. This guide is currently only in french.
Soundjack
The Soundjack realtime communication application is extended by a server cloud to handle up to 60 musicians of an orchestra, developed with the Faust programming language. Each musician is connected to a Soundjack UDP client. An individual stereo mix of the multiple audio streams originating from the multiple Soundjack clients has to be provided to each listening musician. An extended presentation of the system can be found in this IFC 2018 paper.
studiox-switcher
Studiox-switcher is an input switcher and silence detector for JACK. It can switch between 3 stereo inputs, a fallback channel is activated if the active input is below a volume threshold for some amount of seconds, and channels may be switched via OSC and HTTP. The core DSP engine is done via Faust for switching, silence detection and level metering.
SynthSpace
Synthspace is the ultimate virtual synthesizer. It combines the familiarity of real instruments with the possibilities of virtual worlds. Nodes for Synthspace can be developed in Faust.
Bass21
This VST3 is a virtual-analog simulation of the famous Bass Driver DI Version 1 preamp pedal from Tech21. The discretization, while far from being exact, is moderately close to the original. The potentiometers are identical to these physically present on the BDDI pedal, apart from the pregain which is specific to this digital version. The DSP code is written in Faust.
EchoMatrix
The EchoMatrix was designed to provide some of the functionality of the Yamaha UD Stomp pedal as used be Alan Holdsworth. This project will be submitted to the KVR Developer Challenge 2021 contest to highlight the power of the Faust DSP development environment and the JUCE framework to create a non-trivial effect VST3 using a managable amount of Faust DSP code.
The Striso board
The Striso board is a very expressive music instrument which combines multidimensionally sensitive keys with an innovative note layout that helps understand the structures in music. The keys capture each subtle finger movement, which allows for levels of musical expression previously only known to acoustic instruments. Additionally, accents and sound effects can be added by shaking and moving the instrument as a whole.
The internal sound is written in Faust, and is controlled directly by the signals from the keys and motion sensor. External synthesizers can be controlled using MPE MIDI, or using OSC which is easier to set up for Faust synthesizers. The firmware source code is released as open source.
Live concatenative granular processing
This algorithm addresses signal discontinuity and concatenation artefacts in real-time granular processing with rectangular windowing. By combining zero-crossing synchronicity, first-order derivative analysis, and Lagrange polynomials, we can generate streams of uncorrelated and non-overlapping sonic fragments with minimal low-order derivatives discontinuities.
The resulting open-source algorithm, implemented in the Faust language, provides a versatile real-time software for dynamical looping, wavetable oscillation, and granulation with reduced artefacts due to rectangular windowing and no artefacts from overlap-add-to-one techniques commonly deployed in granular processing.
fb_suppression
ALS - Automatic Larsen Suppression algorithms implementing adaptive filtering through spectral centroid calculation, and adaptive frequency shifting through RMS calculation.
ossia score
Ossia score is a sequencer for audio-visual artists, designed to enable the creation of interactive shows, museum installations, intermedia digital artworks, interactive music and more in an intuitive user interface. Faust can be used to create advanced audio processes. A demo video of the Faust integration can be seen here.
Audio Anywhere
The goal of Audio Anywhere is to explore the idea of compile once, run anywhere for audio DSP code. Audio Anywhere combines Faust, for audio DSP code, and HTML5 to enable development of modern audio synthesis and effects tools. There are currently three main repos for this work:
The KeyWi
An Expressive and Accessible Electronic Wind Instrument, where the sound is synthesized with Faust running on the Bela Mini processing board.
React Web Audio Guitar Studio
React Web Audio Guitar Studio is an online real-time Web Audio based all-in-one guitar studio, using native plugins written on Faust, compiled on-demand, and ran in a browser.
JSPatcher
JSPatcher is a Visual Programming Language (VPL) in Max/PureData style on the web with following features:
- Patch WebAudio native AudioNodes
- Play with JavaScript Web APIs
- Import and patch external JavaScript modules
- Customize AudioWorklet DSPs with Faust
A presentation video can be seen here.
Gwion
Gwion is a programming language aimed at making music. It is strongly inspired by ChucK and can use a set of plugins for Gwion. One allows to use the libfaust library to JIT compile and run DSP code on the fly. The faust2gw tool allows to produce statically compiled modules.
sonejostudios
A set of tools written using Faust.
Panoramix
Stereo Panorama/Balance and Volume Automation Tool.
Mixer4x
A simple 4-channel stereo mixer. The main goal is to use it as a submixer on a 4 channel track, but you can use it everywhere you need a small 4 channel stereo mixer.
faustdrumseq
A very simple drum sequencer written with Faust, using the new soundfile object.
MidiClockClick
A simple metronom driven by MidiClock.
SuperBeatRepeater
Beat Repeater with Sidechain Beat Recognation and Midi-Clock Sync. Very useful i.e to add musical diversity by looping short parts of the stream (i.e drums).
SuperCutSequencer
Cut "On/Off" Sequencer (8 steps with smooth) synced to Midi-Clock Beats and Midi-Clock Start/Stop. Very useful i.e to add musical diversity in looped tracks (very nice with i.e bass lines).
DeLooper
Sample-accurate Looper/Delay with free mode and midi-clock sync mode.
XYMatrix
XY Surround Matrix for one Source (Mono Input) with 4 Outputs (Left, Right, Surround Left, Surround Right) and Position Lock.
stm32-faust-synth
STM32 synthesizer video is a short presentation of a polyphonic synthesizer based on STM32F405 µC. Faust is used for signal processing and a TLV320AIC23B stereo codec serves as DAC. Another more recent video is here.
faustgen2~
The faustgen2~ object is a Faust external for Pd a.k.a. Pure Data, Miller Puckette's interactive multimedia programming environment.
Amati
Amati is a VST plugin for live-coding effects in the Faust programming language. As of now it only provides basic functionality.
PureTones
PureTones PureTones is a family of software tools for Indian Classical music. They are built based on an in-depth study and exploration of Indian Classical music to understand the role of harmonics, microtones and consonance in Indian Ragas and musical scales:
- PureTones Drone (using first tab), is a digital Tanpura with controls for fine tuning the strings and adjusting their harmonic envelope.
- PureTones Musical Scale (using second tab) is a digital 12 note keyboard with controls for fine tuning each key to be consonant with an accompanying drone track.
- PureTones Sequencer (using third tab) is a sequencer which enables composition of melodies and musical works in Indian Classical music using notes from a fine tuned musical scale.
The Ragatronics project combines Ragas from Indian Classical music with elements from Rock, Jazz and Electronic music.
All applications have been developed using Faust and WebAudio tools.
Making Sound Machines
Making Sound Machines are a duo of makers from Düsseldorf, Germany. We build kits, modules and DIY projects, and use the projects we’ve built to make music. Faust is used in several projects.
master_me
Automatic audio mastering plugin for live-streaming, podcasting and internet radio stations.
With the first Covid-19 related lock-downs in 2020, many real-life concerts, conferences and festivals were forced into the digital domain - and sounded pretty crappy. Having worked for almost 20 years in audio mastering, Berlin based engineer Klaus Scheuermann started to develop master_me - a word fusion of automatic mastering and mini-me - in order to make open source streaming sound better. After a few weeks of learning and development, master_me was first used at the 'Quarantine Sessions' - a weekly distributed electro-acoustic improvised concert, hosted at Stanford's CCRMA Institute.
master_me was developed further to be an easy-to-use tool for all live streaming applications. In 2022 it was funded by the Prototype Fund, an open source software funding initiative by the german ministry of education and research. A stable release is available since September 2022.
metaSurface64
metaSurface64 is a real-time continuous sound transformation control surface that features both its own loop generator for up to 64 voices and a multi-effects FX engine. The application embeds the libfaust dynamic version of the Faust compiler.
Fragment Audio Server and Fragment
Fragment Audio Server (FAS) is a high performance pixels-based graphical audio synthesizer implemented as a WebSocket server with the C language (C11). Faust, is embedded (when compiled with WITH_FAUST
) and allow to dynamically extend FAS bank generators and effects with custom one written with the Faust DSP specification language. FAS is the audio engine used in Fragment , the Collaborative Graphical Audio Synthesizer. Follow the demo here.
Swanky Amp
Swanky Amp is a tube amplifier simulation DSP plugin which aims to capture the details in the dynamics of tube amplifiers. The DSP is primarily written in Faust, whereas the UI is written in C++ using the JUCE. Follow the demo here. A commercial version is available here.
Web Synth
This is a web-based DAW (Digital Audio Workstation) written in Rust/WebAssembly and TypeScript with extensive Faust language integration with dynamic remote code compilation and executing via WebAssembly. Follow the demo here.
DawDreamer
DawDreamer is an audio-processing Python framework supporting core DAW features such as audio playback, VST MIDI instruments, VST effects, Faust, and parameter automation. DawDreamer is written with JUCE, with a user-friendly Python interface thanks to pybind11. DawDreamer draws from an earlier VSTi audio "renderer", RenderMan.
TD-Faust
TD-Faust enables Faust code to run inside TouchDesigner. Follow the demo here.
Mephisto LV2
Mephisto LV2 a Just-in-Time Faust compiler embedded in an LV2 plugin. Write LV2 audio/cv instruments/filters directly in your host in Faust DSP language without any need to restart/reload host or plugin upon code changes.
iPlug2
iPlug 2 is a simple-to-use C++ framework for developing cross platform audio plug-ins/apps and targeting multiple plug-in APIs with the same minimalistic code, support for the Faust programming language, and the libfaust JIT compiler.
pMix
pMix (short for preset mixer) is a sound design, composition and performance tool that facilitates the control of multiple parameters using an intuitive graphical interface. It includes a graphical patcher for creating a network of audio synthesis or processing nodes. A node could be a VST2, VST3, AU or LADSPA plug-in or it could a JIT compiled Faust script. Faust is a first class citizen in pMix and an integrated code editor and SVG display makes it a nice environment for Faust development.
Temper JUCE plugin
Temper is a digital distortion audio plugin targeting VST, VST3, and AU for OS X and Windows. It builds upon traditional waveshaping techniques using modulated filter coefficients to produce a unique phase distortion. The primary signal processing loop is written with Faust, and compiled with JUCE for the various build targets.
Faust Mass-Interaction
mi_faust implements 1D mass-interaction models in the Faust programming language. Starting from a scripted model description (see MIMS), mi_faust compiles a physical model into Faust code. It handles this by generating routing functions between all the masses and all the interactions in the model.
Head over to the FAUST community page to see examples of a series of instruments created in mi_faust, and available as web-apps !
Dynamic PedalBoard
Dynamic PedalBoard allows users to plug different stompboxes together in a web browser.
SHARC DSP Board
The ADI SHARC DSP board fully supports Faust.
Nuance
Nuance is a pressure sensitive music controller that uses Faust for sound synthesis and processing.
The PlateAxe
The PlateAxe is a percussion instrument physical model controller using Faust for sound synthesis and processing.
The BladeAxe
The BladeAxe is an electric guitar physical model controller using Faust for sound synthesis and processing.
Bart Brouns' Projects
A collection of projects by Bart Brouns and based on Faust.
EarTone Toolbox
The Ear Tone Toolbox is a collection of unit generators for the production of auditory distortion product synthesis.
AudioKit
AudioKit allows developers to quickly add professional audio functionality to iOS, macOS, and Apple Watch apps.
Radium
Radium is a music editor with a new type of interface. It includes a Faust audio DSP development environment.
- Compared to the normal sequencer interface editing is quicker and more musical data fits on the screen.
- Compared to trackers, note positions and effects are edited graphically, which should be quicker, provide more vertical space and give a better musically overview. (Everything can also be edited by text, like in a normal tracker)
- Radium can also be used as a normal multitracker to mix and record audio.
HOA Library
HOA Library allows musicians and composers to synthesize, transform and render sound fields in a creative and artistic way. This library facilitates the understanding and the appropriation of key concepts of ambisonics. Thanks to original graphical interfaces a lot of new signal processings are allowed like diffuse sound field synthesis, perspective distorsion or spatial filtering. HOA library is open-source and free and offers a set of C++ and FAUST classes and implementation for Max, PureData and Unity.
s
Ambitools
Ambitools is a collection of plug-ins and tools for 3D sound field synthesis using Higher Order Ambisonics (HOA). The plugins are written in the Faust language, which allows them to be compiled for a multitude of architectures and platforms (Windows, Mac, Linux, WebAudio, embedded systems, etc.)
Moreover, the code is written in a scalable way: there is no limit to the maximum Ambisonic order! Other tools are also available, such as a 3D Visualizer written in the Processing language.
Ambisonic Decoder Toolbox
The Ambisonic Decoder Toolbox is a collection of MATLAB and GNU Octave functions for creating Ambisonic Decoders. Currently, it implements: (1) the AllRAD design technique, (2) inversion or mode-matching, (3) truncated mode-matching, constant energy, (4) linear combinations of 2 and 3, and (5) Slepian function basis (EPAD). The DSP code is written in MATLAB and Faust.
Ambisonic.xyz
A set of tools around Ambisonics.
FaustPy
FaustPy is a Python wrapper for Faust. It is implemented using the CFFI and hence creates the wrapper dynamically at run-time.
Rebel Technology
The OWL Pedal is an open source, programmable stage effects pedal, made for guitarists, musicians, hackers and programmers. Users can program their own effects, or download ready-made patches from our growing online patch library.
faust-vst
This project provides a VST plugin architecture for the Faust programming language. The package contains the Faust architecture, faustvst.cpp, the faust2faustvst helper script which provides a quick way to compile a plugin, a collection of sample plugins written in Faust, and a generic GNU Makefile for compiling and installing the plugins.
faust-lv2
This project provides an LV2 plugin architecture for the Faust programming language. The package contains the Faust architecture and templates for the needed LV2 manifest (ttl) files, a collection of sample plugins written in Faust, and a generic GNU Makefile as well as a shell script to compile plugins using the architecture.
RDK
Reverb Design is about creating a spacial impression aimed at sweetening the listening experience for a given context. The ambiguity of auditory and visual cues in reproduced sound makes it necessary to create an auditory illusion: To make this illusion work, I propose an aesthetic concept of simplicity and intelligibility based on psychoacoustic facts and recording practice as professional producer.
Foo YC20
The Foo YC20 is an open source implementation of the Yamaha YC-20 combo organ from 1969. Processing for the organ is based on original schematics and measurements from a working specimen. This instrument simulates the circutry as a whole to realisticly reproduce the features and flaws of the real deal.
FaucK
FaucK is a Chugin allowing to combine the powerful, succinct Functional AUdio STream (Faust) language with the strongly-timed ChucK audio programming language. FaucK allows programmers to on-the-fly evaluate Faust code directly from ChucK code and control Faust signal processors using ChucK's sample-precise timing and concurrency mechanisms. The goal is to create an amalgam that plays to the strengths of each language, giving rise to new possibilities for rapid prototyping, interaction design and controller mapping, pedagogy, and new ways of working with both Faust and ChucK.
Snd-RT
Snd-RT is the realtime extension for the sound editor SND and consists of two parts:
- the RT Engine - An engine for doing realtime signal processing.
- the RT Compiler - A compiler for a scheme-like programming language to generate realtime-safe code understood by the RT Engine.
Pure Language
Pure is a modern-style functional programming language based on term rewriting. It offers equational definitions with pattern matching, full symbolic rewriting capabilities, dynamic typing, eager and lazy evaluation, lexical closures, built-in list and matrix support and an easy-to-use C interface. The interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native code. It has been created by Albert Gräf.
pd-faust is a collection of Pd objects written using pd-pure which lets you run Faust programs inside Pd. It combines the functionality of pure-faust and faust2pd in a single package, and also features dynamic reloading of Faust plugins, automatic generation of controller GUIs and MIDI/OSC controller mappings, as well as OSC-based controller automation. It thus provides a complete solution for interactively developing Faust dsps in Pd.
Guitarix
An audio plug-in for guitar effects whose sound processing engine is written in Faust.
moForte PowerStomp
An app implementing various guitar effects to be used on stage.
moForte Guitar
An app that can be used as an electric guitar and whose sound synthesis engine is implemented in Faust.
FaustWorks
FaustWorks is an IDE (Integrated Development Environment) for the Faust dsp programming language. You must have Faust installed to be able to use FaustWorks. Platforms supported are Linux and OSX.
FaustLive
FaustLive is an advanced self-contained prototyping environment for the Faust programming language with an ultra-short edit-compile-run cycle. Thanks to its fully embedded compilation chain, FaustLive is simple to install and doesn't require any external compiler, development toolchain or SDK to run.
FaustLive is the ideal tool for fast prototyping. Faust programs can be compiled and run on the fly by simple drag and drop. They can even be edited and recompiled while running, without sound interruption. It supports also native applications generation using the Faust online compiler.
FaustLive is based on the Faust library and on LLVM.