A monolithic audio engine for live coding ported from C to Rust by BuboBubo. The initial project is called Dough, designed by Felix Roos and al. Doux can run in a web browser via WebAssembly, or natively using an an OSC server and/or a REPL. Doux is an opinionated, fixed path, semi-modular synth that is remote-controlled via messages. It was designed to be used with Strudel and TidalCycles. This fork is a bit special: it adapts and specialize the engine for integration with Sova, a live coding environment built in Rust.

Important note: this project is AGPL 3.0 licensed. We encourage you to support the development of the original version through the TidalCycles Open Collective. See the license page for more information.

License & Support

Getting Started

Click anywhere on the page to start the audio context. Then click inside a code block and press Ctrl+Enter to run it, or Escape to stop. The easiest way to start is just to specify a sound to use:

You can set the pitch with the /note parameter (MIDI note numbers):

Or use frequency directly with /freq:

Omitting parameters

It is possible to omit a large number of parameters or to under-specify a voice. Doux has preconfigured defaults for most of the core parameters.

The default voice is always a tri with sensible envelope defaults.

Sound Sources

There are multiple sound sources you can use, detailed in the reference. You can also import your own audio samples or use a live input as a source.

Turn on your microphone (and beware of feedback!):

Envelopes

The amplitude envelope controls how the sound fades in and out. It uses the classic ADSR model: attack, decay, sustain, release.

/attack is the time (in seconds) to reach full volume.
/decay is the time to fall to the sustain level.
/sustain is the level held while the note is on (0-1).
/release is the time to fade to silence after note off.

Try changing each parameter to hear how it affects the sound.

Filters

Most of the default sources are producing very rich timbres, full of harmonics. You are likely to play a lot with filters to remove some components of the spectrum. Doux has all the basic filters needed:

All the basic filters come with a control over resonance /..q:

Effects

Doux includes several effects. Here's a sound with reverb:

And now another sound with a delay:

If you stack up effects, it can become quite crazy:

Note that the order in which the effects is applied is fixed by default!