web synth docs

modulation

Modulation is the process of changing some parameter over time. It is also referred to as "automation" in other [daw]s and software. Web synth has wide support for modulation of its various [module]s and components.

Modulation can be performed either within individual components such as the [synth-designer] or across multiple components by connecting nodes in the [graph-editor].

modulation via graph editor

Modulation in the graph editor works much like a modular synth. Nodes which produce control signals are connected to inputs on other nodes which control the values of different parameters.

Some common nodes that can be used for modulation include:

example

Here's an example of a simple patch which uses modulation:

A screenshot of a small web synth patch showing a synth designer with its filter cutoff being modulated by a LFO which is passed through a scale-and-shift node

You can check out this patch for yourself here as well: http://synth.ameo.dev/composition/153

Here, the cutoff frequency of the [synth-designer]'s filter is modulated by an [lfo-node]. LFOs output values in the range of [-1, 1], so a [scale-and-shift] node is needed to map them into a range appropriate for the filter (100 to 20,000 hertz).

More complicated modulation schemes can be built up using nodes like Add, Subtract, and Multiply to convert and map signals into their needed range.

modulation using envelope generators

This technique is most applicable within the [synth-designer]. Most of the synth's parameters can be controlled dynamically via multiple methods including [envelope-generator]s. By default, these parameters are set to "constant" which means their value is controlled by the slider in the UI. To switch that parameter to be controlled by an envelope generator, select "adsr" from the "type" menu on the parameter in question:

A screenshot of the synth designer UI showing "adsr" selected in the "type" menu for a parameter

playback-sync'd modulation via the MIDI editor

This method is most similar to automation which is found in other [daw]s. In the [midi-editor], click the "AO" button to add a new CV output:

A screenshot of the MIDI editor UI with the "AO" button used to add a CV output to the editor labeled with a red arrow

This will add a new panel where a curve can be defined and an associated output port on the MIDI editor node. When playback is started using the global start playback button on the right side of the screen, that port will output values according to the curve and the range defined for that CV output (configurable by clicking the gear icon to the left of the CV output's title):

A screenshot of the gear icon used to configure the output range of the CV output, labeled with a yellow arrow

modulation matrix

The [modulation-matrix] is a similar concept, but works in a different way. It's used to support [fm-synthesis] in the [synth-designer]. The FM in FM synthesis stands for Frequency Modulation after all, but this modulation happens internally within the synthesizer and at audio rate.

modulation