# Testing the embedded dynamic Faust compiler

This page embeds the Faust compiler as a JavaScript library named libfaust.js (associated with the auxiliary WebAssembly library), including its WebAssembly generating backend, and compiled using Emscripten.

You can compile Faust .dsp files or URL by just dropping them on the drop zone. A WebAudio node will be created and connected to audio inputs/outputs and controlled with the displayed HTML/SVG based GUI.

Settings (buffer size, polyphonic mode and voices, audio rendering model, ftz mode) can be changed dynamically and the DSP will be recompiled on the fly.

Clicking on the yellow cross on the top right allows to access to the GRAME online compiler, to generate different targets (like for instance standalone applications, VST, Max/MSP plugins, iOS or JUCE ready projects...).

### Buffer size

You can change the buffer size (from 256 to 8192 frames in ScripProcessor mode, it will be fixed at 128 frames in AudioWorklet mode).

### Polyphonic instrument

Assuming your DSP code is polyphonic ready, you can activate the polyphonic mode, adjust the number of available voices, and test it with a MIDI device or application (usable with Chrome which implements the Web MIDI API).

### ScriptProcessor/AudioWorklet

ScriptProcessor: audio rendering is done using the old ScriptProcessor model

AudioWorklet: audio rendering is done using the new AudioWorklet model. This can only be tested with Chrome Canary for now, be sure to activate it

### Float denormals handling

0: means no denormal handling

1: uses fabs and a threshold to detect denormal values (slower)

2: uses a bitmask to detect denormal values (faster)

Save page and DSP control parameters state

Loading JavaScript/WebAssembly ressources...