The online Faust IDE can be used to edit, compile and run Faust code from any recent Web Browser with webassembly support. It works completely on the client side and it is therefore very convenient for situations with many simultaneous users (workshops, classrooms, etc.). It embeds the latest version of the Faust compiler with an efficient webassembly backend and offers polyphonic MIDI support.
The editor engine is based on Monaco Editor. It provides syntax highlighting, auto completion, code hinting and direct access to the online documentation. The documentation command (Ctrl-D) uses the function name at the cursor position to locate to the relevant information.
While the option is turning on, the diagram or the DSP UI will automatically be updated from the code. The editor will also try to tell if there is an error in your code.
MIDI Input is available for Chrome Browser, you can also use the computer keyboard to input MIDI notes. We are using key map as Ablelon Live: A-line and Q-line for keys, ZX to move octave, CV to change velocity.
You can choose your audio device or use an audio file to simulate the audio input of DSP. Drap and drop your file to the waveform below to substitute the file.
Both input and output have an audio analyzer. You can switch the visualization between oscilloscope and spectroscope, or change buffer size and channel. Three numbers showing at right side are current value, estimated frequency and RMS.
The recommended browsers are the latest versions of Chrome for AudioWorklet, MIDI, but it requires an https connection to use the audio inputs.
Clone a copy of the repo then change to the directory:
git clone https://github.com:grame-cncm/faustide.git cd faustide
Beware: on Windows, before cloning the repository, and for the libfaust-wasm.data file line ending to be correctly handled, you'll have to do:
git config --global core.autocrlf false
Install dev dependencies:
To build everything (using Webpack 4, Babel 7, TypeScript), this will produce
npm run build
To test, put the directory in a local server, then open page:
If you need to update the editor's version using
git pull, as the repository has other dependencies hosted on Github, you may run
npm update to make sure everything is up to date.
Launching the local editor
A local HTTP server has to be started with
python2 -m SimpleHTTPServer (or something similar), then use
http://127.0.0.1:8000/dist/ to launch the local editor.
You'll have to raise the package version number in
npm run build to properly work.
Deployment remains an operation that must take place under the user control. It must be made from the master branch. The procedure consists of:
- generating the site
- copying the contents of the
distdirectory into the
- checking the proper functioning of the site from the
For 1), see Building section above For 2), you can run:
npm run publish
If you run the copy manually, BE CAREFUL not to delete the files
For 3), you can launch a local web server from the
python -m http.server 8000 # python 3
python -m SimpleHTTPServer 8000 # python 2
WARNING: the following step is mandatory for the deployed site to properly work !
Once the site is validated add (using git add) and commit the entire contents of the
docs directory then push to git.