The Unified Modulation System

In sound synthesis, modulation is the idea that one component can influence another in a controlled way. For a simple musical example, think of vibrato (the subtle bending of pitch back and forth). To achieve this with synthesis, we often connect the output of a low-frequency oscillator (LFO) to a pitch input of an oscillator. The frequency of the LFO determines the rate of the vibrato, and the level of the LFO's signal determines the depth of the modulation.

Modulation can lead to elements that automatically change over time, based on assigned parameters and preexisting control sources. Some would say that modulation leads to more interesting and efficient results in sound programming. These are both good points.

In the days of modular hardware synthesizers, each modulation was highly visible as it was achieved by a patch cord properly connecting two modules. But in our era of computer-based music production, we see knobs on screen far more often than patch cords, and assigning (or even showing) modulations has become a real challenge. Many different interface models have been attempted, but no standard has been found.

Bitwig Studio has its own unique, program-wide method for dealing with modulations. This Unified Modulation System allows you to easily assign and edit modulations (so you don't get stuck with fixed modulation routings). It also preserves parameter control as often as possible (so the modulated parameter's knob can still be used, allowing you to easily shift the modulation range). Even the current value of a modulated parameter is visible with this Unified Modulation System.

In this section, we will explore the Unified Modulation System by learning to work with Bitwig Studio's unique modulator devices. We will then see the same principles used to assign modulations within an instrument.

Modulator Devices

While most systems require us to work around a fixed number of modulation sources — say, two LFOs, three envelope generators, perhaps some control over keytracking, and maybe a sidechain source for using external audio or note messages — these choices tend to be arbitrary and formulaic from the user perspective. Some sounds require no LFOs, and some require ten. In Bitwig Studio, these options are left completely open for the user.

Modulator devices are special-purpose modules that are made to be loaded into any device. Their purpose is to allow a particular method of control over device parameters. Types of modulators include:

  • Mappable interface controls, such as Button, Buttons, Macro-4, and Macro.

  • Standard sources of modulation signals, such as 4-Stage, ADSR, AHDSR, Beat LFO, Classic LFO, LFO, and Steps.

  • Methods for using incoming MIDI and note messages, such as Keytrack, MIDI, and Note Sidechain.

  • Use of external signals for modulation, such as Audio Sidechain, Envelope Follower, and HW CV In.

  • Options for using one signal to be split across multiple destinations, such as Select-4, Vector-4, Vector-8, and XY.

  • Interesting ways of blending control signals to create a signal modulation source, such as Mix (for crossfading two levels or signals) and Math (for creating more complex relationships).

  • A little bit of chaos, with Random.

[Note]Note

For descriptions of the modulator devices, see Modulators.

If you click the modulators button, the Modulators pane is toggled to be visible.

An empty modulator pane loads with three available modulator slots. If all modulator devices are loaded into all three slots, another three slots will appear, and they will keep appearing as often as you run out.

In the center of each modulator slot is an Add Modulator button. Clicking this button calls up a special version of the Pop-up Browser.

As we discussed before, the Pop-up Browser is context-sensitive, providing the most relevant options for the place we have invoked it. Calling it up from the modulator pane provides only modulator devices. Otherwise, the Pop-up Browser is working as we would expect it to, providing categories for the available devices and previewing any selected device in the Device Panel. And again, clicking Ok places the selected device onto the track.

To cut, copy, paste, duplicate, or delete a modulator: right-click the background of the modulator slot, such as the modulator's name.

Also note that the option to toggle modulators as Active or not is also present in this context menu. This is a good way to "bypass" a modulator for a moment.

In this example, we have selected the Buttons modulator. This device provides two controls which can be toggled to manipulate any assigned parameters. As each button is separately assignable, this device has two modulation routing buttons.

The modulation routing button resembles an output port with a patch cord coming out of it, awaiting connection. Clicking a modulation routing button switches to a mode where you can select as many destinations as you like, each with its own modulation amount. When enabled, the button itself begins flashing, all currently assigned destinations become brightly colored, and all potential destinations are shaded.

[Note]Note

When a modulator device possesses multiple modulation routing buttons, each button is sometimes represented by only the initial circle of the icon. An example of this is the Vector-8 device, which has eight modulation routing buttons spread along the sides and corners of a square.

To create a modulation routing: enable the modulation source's modulation routing button. Then click the target parameter and drag its value to set the point of maximum modulation.

[Note]Note

Because the modulation range is set relatively, the range displayed is also relative and does not directly correspond to the parameter's values. So you can twist the modulation range past the parameter's normal range, and this is correct. See the example below, targeting the Filter device's Resonance parameter with an LFO modulator.

You can assign additional parameters in the same fashion.

So in this EQ-2 example, we have a high-pass filter set around 80 Hz and a bell filter bringing level down about 3 dB around 3.6 kHz. While button A of our Buttons modulator is off, those default values remain in place.

But when button A is switched on, its modulations kick in. This shifts the high-pass filter up, putting its cutoff frequency around 2 kHz. The bell filter has its cutoff lowered a bit, its gain increased a great deal, and its Q increased slightly. The parameters and the frequency graphic all indicate these adjustments with cyan markers showing the current state of things. (In an auditory sense, these parameter adjustments narrow and focus the frequencies being passed thru.)

Buttons is a relatively simple modulator, offering a binary transition from one set of parameter values to another. Two points worth noting.

First, unlike the discrete behavior of Buttons, many modulators work in a continuous way, either transitioning smoothly between states or responding proportionately.

Second, many modulator devices have additional controls that don't fit within their allotted modulator slot. These modulators have a right-facing triangle on the middle of their right edge. When this button is clicked, a pane of additional modulator parameters is exposed.

It is also worth noting that all modulator parameters — both those present atop the modulator slot and those within the additional parameters pane — can themselves be targets of modulations.

Once modulation mappings are present, they can be manipulated and duplicated in myriad ways, either from the Inspector Panel (see The Modulation Sources Tab, Modulation Transfer Functions, and Modulation Scaling) or from the Device Panel.

To clear a modulation routing from the modulation source: right-click the source's modulation routing button, and then click the x icon to the left of the desired parameter.

To clear all modulation routings from a modulation source: right-click the source's modulation routing button, and then select Delete.

[Note]Note

The cut, copy, and paste options from the context menu above also apply to all modulation routings, allowing you to move all listed modulation routings between different modulators. Additional options for dragging and copying modulation routings are available from the Inspector Panel (see The Modulation Sources Tab, Modulation Transfer Functions, and Modulation Scaling).

Modulation routings can also be removed from the parameter being targeted.

To clear a modulation routing from the parameter under control: right-click the parameter. Under the MODULATION ROUTINGS section of the context menu, find the desired modulation source and click the x icon at the far right.

The Curve Editor & Pop-out Editors

Some modulators contain editable playback data. And this data can be as important as your automation, notes, or audio. For this case, certain modulators (and some modules) have their own resizeable Pop-out Editor.

A special case is the Curve Editor for the various curve-based devices that read and write BWCURVE files. All manner of drawing and editing is supported here.

Clicking any curve display opens the Curve Editor in a resizeable window.

[Note]Note

Key commands mentioned in this section reflect Bitwig's Default keyboard mappings. If you are working with your own key commands, most functions can be found and mapped as you like (see Shortcuts Settings).

Seven tools are available:

  • Pointer1 - For selecting and adjusting points and their curvature, etc.

  • Pencil2 - For freehand drawing of shapes.

  • Step3 - A shape for creating flat lines within each grid step.

  • Half Step4 - A shape for creating flat lines that spend the first 50% of each step at the level set (the second 50% at 0 [zero]).

  • Saw Up5 - A shape for creating a ramp within each step from 0 (zero) to the level set.

  • Saw Down6 - A shape for creating a ramp within each step from the level set to 0 (zero).

  • Triangle7 - A shape for creating a ramp within each step from 0 (zero) to the level set, and back to 0 (zero).

  • The numbers shown above represent the key command for switching to that tool while the Curve Editor is open.

Set the grid for drawing, with the 4 x 4 type control in the bottom left.

  • The first number controls the number of horizontal, x (↔︎) divisions on the grid.

  • The second number controls the number of vertical, y (↕︎) divisions on the grid.

  • The Larger Beat Grid command (default mapping: .) also applies to the curve editor with the nearest duplet values.

    • With a value of 8, this moves the beat grid to 16, then to 32, etc.

  • The Smaller Beat Grid command (default mapping: ,) also applies to the curve editor with the nearest duplet values.

    • With a value of 8, this moves the beat grid to 4, then to 2, etc.

  • The Next Beat Grid Subdivision command (default mapping: ALT+.) also applies to the curve editor with the nearest triplet values.

    • With a value of 8, this moves the beat grid to 12, then to 24, etc.

  • The Previous Beat Grid Subdivision command (default mapping: ALT+,) also applies to the curve editor with the nearest triplet values.

    • With a value of 8, this moves the beat grid to 6, then to 3, etc.

  • All of these key commands can be used even while the mouse is held down, adjusting the grid while drawing, for example.

SNAP toggle visually hides the grid lines and disables all snapping with the Pointer tool.

  • When SNAP is on, holding SHIFT temporarily disables it.

  • Even when SNAP is off, all shape drawing tools continue to use the horizontal division to determine their drawing size).

  • The Toggle Snap command (default mapping: S) also applies to the curve editor, and can be used even while the mouse is held.

Several interactions are available within the curve editor:

  • Selecting any point shows both that point's Value and its Curvature (to the next point) in the Inspector Panel.

  • To move a segment between two points: hold CTRL (CMD on Mac) and drag up or down on a segment.

  • To bend a segment: hold ALT and drag the area between two points up or down.

  • To draw inverse curves (like an S-curve) around a point: hold ALT and drag up or down on the point.

  • To draw identical curves around a point: hold ALT+SHIFT and drag up or down on the point.

  • To move a point as well as all points follow it: hold CTRL (CMD on Mac) and drag the point.

  • Right-clicking within the curve editor offers a menu of Transform options for adjusting the entire curve.

The folder icon at the top left of the window switches to the curve browser for loading other content. The save icon beside it allows saving your current curve by giving it a name, description, category, and any tags you care to use.

Aside from curve-based devices, some other data sequencer modules and modulators have their own custom Pop-out Editor, accessible by clicking the little "pop-out" icon in their panel. The Steps (Sequence) modulator is one of these.

Each custom Pop-out Editor offers a resizeable interface along with some editing functions, such as the nudge backward and forward buttons seen below the sequence data.

This is especially nice in the The Grid, giving a clearer distinction between patching mode and data editing mode, as seen here with the Pitches (Data) sequencer module popped out.

Track- and Project-level Modulations

Modulators can be used directly on any track, including group tracks and the master track itself. For each level you go up, the list of available destinations grows.

Available modulation targets for tracks include:

  • All device parameters on that track.

  • All available mixer controls (Volume, Pan, Mute, FX send levels, and Crossfade Mode), which can all be mapped in the Mixer Panel (and mostly in the track's Inspector Panel as well).

Available modulation targets for group tracks include:

  • All device parameters on that track, and those within any child track.

  • All available mixer controls on that track, and those within any child track

Available modulation targets at the project level (via the master track) include:

  • All device parameters on any track.

  • All available mixer controls on any track.

  • All transport controls that are automatable on the master track (Tempo, global Crossfade, the Fill button, and all groove parameters [Groove on/off, Shuffle amount, Shuffle rate, Accent amount, Accent phase, Accent rate), which can either be mapped either in the Mixer Panel, inside the Play menu, or from the transport area.

The modulator panels for tracks are available in the Device Panel via the track headers there (see Track Headers in the Device Panel), with the destinations available in the various places listed above.

Modulations within a Device

Several devices have their own built-in modulation sources. Instrument devices are the best examples so let's look at Bitwig Studio's two-oscillator workhorse, Polysynth.

Two on-board control sources are available here, both representing control modules within Polysynth. FEG (filter envelope generator) is hardwired to the filter's cutoff frequency, just as AEG (amplitude envelope generator) controls the volume amplifier of the instrument.

The presence of a modulation routing button on each of these envelope generators suggests that they can also be used for other modulations. Clicking on one of these buttons enables a modulation routing mode, similar to how it worked with modulator devices.

In fact, all behaviors related to connecting, editing, and clearing modulations work exactly the same in all contexts. (This is the virtue of a unified system.)

One difference in the example above is that the modulation routing buttons (for FEG and AEG) as well as all available target parameters are tinted light green. In the previous section's modulator examples, everything was tinted blue. These subtle shadings do indicate a small but critical difference.

The blue color here indicates a monophonic modulation. In the context of modulation sources, a monophonic source generates only one control signal that is then applied to all targets identically (musically speaking, unison).

But a green color indicates a polyphonic modulation. Polyphonic sources produce multiple control signals, potentially providing a unique signal for each note event (musically speaking, divisi). This is the same idea we experienced with expressions before, where each note contained its own, concurrent curve.

[Note]Note

CLAP plug-ins can support polyphonic modulation. Of course individual plug-ins vary in what they support, so consult their manufacturer for specifics.

As with musical instruments, polyphony and monophony represent two distinct palettes. This is to say that there is no "winner" between the two; in different cases, each paradigm is preferable. And in Bitwig Studio, we sometimes get a choice between the two.

By adding an LFO modulator device to Polysynth, it and its potential destinations will appear in blue.

Because of Bitwig Studio's per-note modulation capabilities, modulators such as this LFO can be switched to a polyphonic mode.

To toggle a modulator between monophonic and polyphonic mode: right-click anywhere within an occupied modulator slot, and then toggle the Per-Voice option.

Once the Per-Voice option is enabled, this modulator will begin working in polyphonic mode.

Finally, while nested devices can be modulated from the top-level device, polyphonic modulation sources are usually made available as summed monophonic signals. An example can be seen here, with the FEG module monophonically targeting a nested De-Esser device.

Devices in the Inspector Panel

When a device is selected and the Inspector Panel is visible, modulation sources and active modulation routings are the primary parameters being displayed, but a few other parameters are uniquely available in the top of the Inspector Panel.

Displayed at the top are the device's name (and category) along with a short description. After these read-only entries are three standard parameters:

  • First is a text field for the name of the device. By default, the official name of the device is shown in italicized silver. This can be overridden by typing a name into the field. Deleting an entered name restores the device's official name.

  • The Active option toggles whether the device is currently active or deactivated.

    [Note]Note

    For more information on activating and deactivating project elements, see Deactivating Tracks.

  • The Enable toggle is a functional mirror of the device's device enable button.

Beyond these standard parameters, each device has its own parameters in the Inspector Panel. To make sense of the range of possibilities, we will look at various examples now, starting with voice parameters for Bitwig Studio instruments and MPE options for plug-ins. Then we will examine the two modulation-related tabs for general devices and a modulator device that has inspector parameters.

Voice Parameters for Instruments

Several of Bitwig Studio's instruments feature a variety of voice-related parameters in their inspectors, just below the standard device parameters.

The Voices setting determines the number of triggerable voices. When this is set to two or more, the instrument is capable of polyphony. This also engages voice management, which means that each voice is only active from the time a note-on signal triggers it until the voice is considered finished. So the Active Voices readout above is showing that zero out of twelve (0 / 12) potential voices are currently engaged, and it will remain so until a new note successfully triggers the instrument.

When Voices is set to one, the instrument is now in one of two monophonic modes, which the display is indicating by showing Mono.

True Mono mode acts similarly to a monophonic analog synthesizer, including the behavior of trigger-based envelopes and the fact that the voice in use is always on, reflected in the Active Voices of 1 / 1 in the image above.

On the other hand, Digi Mono mode acts like a modern monophonic recreation. All envelopes start from the beginning of the attack stage because two voices are actually alternated here to create a slightly overlapping version of mono. And since using two voices is technically polyphonic, voice management is engaged, just as the Active Voices of 0 / 1 in the image above indicates.

[Note]Note

Any of the three voice modes can work with Bitwig's Voice Stacking, which simply multiplies each engaged voice with additional voices (see Voice Stacking).

Additionally, either Mono mode offers Retrigger options for legato playing (either starting or releasing a note while another note is being held). These options dictate whether envelope generators will retrigger Never, only on Note on signals, or on both note-on and note-off signals (Always).

Finally, the Steal same key option allows each note played to kill any voice previously triggered by the same note over the set Steal fade time.

Plug-in Inspector Parameters

When a plug-in is selected, the Inspector Panel shows a few options.

The Suspend option sets how Bitwig Studio determines when the plug-in is not needed and can be safely suspended for the time being. (When this occurs, the plug-in's "power" button icon turns into a moon, indicating that it is resting and saving CPU cycles.) There are three options for this setting:

  • Never - The plug-in remains active perpetually.

  • When silent - Bitwig Studio determines when the plug-in isn't needed, based on whether audio is going into and out of the plug-in.

  • Trust plug-in (default) - Bitwig Studio uses background notifications from the plug-in to determine when it is not active.

When the plug-in is enabled to Use MPE (multidimensional polyphonic expression), the functional pitch-bend range (PB range) can be set in semitones. So the example above of ± 48 semitones represents a range of four octave up and down. For more information on plug-ins and MPE, see Plug-in Handling and Options.

The Modulation Sources Tab, Modulation Transfer Functions, and Modulation Scaling

The modulation sources tab is the first tab. Its icon suggests a parameter that is continuing onward in modulation.

Each modulation source of the selected device is listed here, along with a functional modulation routing button.

Beneath each modulation source entry is a list of all active modulations coming from that source. The amount of modulation is shown in orange at the far right and can be adjusted here. The silver x that precedes the parameter name on the far left can be clicked to terminate the modulation. (And shown before each modulation amount is a faint graph, which we will discuss at the end of this section.)

In addition, you can also deactivate modulations (like bypass) as well as move modulations from one source to another.

To toggle whether a modulation is active or bypassed:SHIFT-click on the text of any modulation routing listed in the Inspector Panel. (You can also right-click on the modulator routing button, and then SHIFT-click on a modulation listed in the context menu.)

To toggle the active/bypassed state of all modulations from one modulator source:SHIFT-click on title of the modulator source in the Inspector Panel.

To move a modulation routing from one modulation source to another: click on its silver name, then drag it onto a different modulation source and release.

In the image above, for example, you could drag the Gain entry listed under ADSR to Keytrack instead. Now incoming note pitches would be manipulating the Gain value.

To copy a modulation routing from one modulation source to another: clicking on its silver name, and then drag it onto a different modulation source and release while holding ALT.

And to move or copy all modulation routings from a particular source, click on the source's title in white (in the above example, ADSR would work) or its modulation routing button. Note that the available actions listed in the window footer (see Available Actions) provide helpful reminders of what drag actions are available. Similar actions are also available in the Device Panel when ALT-dragging either modulation routing buttons or target parameters themselves. Again, the available actions serve as a very helpful reference in that case as well.

Now back to those faint graphs, which are shown for each modulation and do become a bit brighter when hovered over.

This little graph is actually a drop-down menu of modulation transfer functions (or curve options) that can be set for each individual modulation connection.

Let's expand a little on each of these modes:

  • Linear (bipolar) - Flat response, applying each modulation directly as it is received from the source. As this has no effect, mappings set to Linear (the default) appear slightly dimmed in the Inspector Panel.

  • Positives (unipolar) - Proportional response to positive values. All positive incoming modulator values are sent out in the positive domain; all negative values coming in are zeroed out.

  • Negatives (unipolar) - Proportional response to negative values. All negative incoming modulator values are sent out in the positive domain; all positive values coming in are zeroed out.

  • Absolute (unipolar) - Magnitude-only response. All positive incoming modulator values are sent out in the positive domain; and all negative incoming values are also sent out in the positive domain.

  • Toward Zero (unipolar) - Increases on approach to zero, mapping both the extreme values (-1 and +1) to zero and incoming 0 values to +1.

  • Exponential (bipolar) - Increasing slope away from zero, creating a more gradual curve between zero and either extreme. This curves the signal to reach the positive and negative maximums less often.

  • Logarithmic (bipolar) - Decreasing slope away from zero, creating a quicker curve between zero and either extreme. This curves the signal to reach the positive and negative maximums more quickly.

Also note that when in a modulation routing mode, modulations coming from other source are shaded in the Inspector Panel, indicating that these can be modulated as well.

In the above image, the Vel(ocity) source of the note Expressions modulator is currently in mapping mode. Since the three modulations active in this Test Tone device (with the user name Carrier) are coming from other sources, they are all potential modulation targets. This modulation scaling feature allows one modulator source to scale the output of any individual modulation connection. So by clicking on the modulation of the Gain parameter from the ADSR modulator, each note velocity will now scale the depth of modulation.

The two new listing in the Inspector Panel indicate that a modulation scaling is taking place. And if the ADSR was then used to modulate a different parameter, that new connection would not be scaled by Vel(ocity) as these scalings can be done per-modulation.

[Note]Note

In case one modulation connection is using both a transfer function and modulation scaling, the transfer function is applied first, followed by the modulation scaling.

The Modulation Destinations Tab

The modulation destinations tab is the second tab. Its icon suggests a parameter that is being modulated.

Each parameter being actively modulated in the selected device is listed here.

Beneath each parameter is a list of all active modulations reaching that parameter. The amount of modulation is shown in orange at the far right and can be adjusted here. And the silver x that precedes the parameter name on the far left can be clicked to terminate the modulation.

Similar options are also available in this tab for moving or copying modulation routings from one destination to another (see The Modulation Sources Tab, Modulation Transfer Functions, and Modulation Scaling).

Modulator Inspector Example

Each modulator has its own Inspector Panel as well.

Each modulator shows its modulation sources and mappings, but Expressions happens to have a couple of parameters as well.

Voice Stacking

Before diving into Voice Stacking, a little context regarding polyphony is in order.

Synthesizers that can play more than one note at a time generally use one voice for each note being triggered. So the number of voices available to the synthesizer limits how many notes can be played at a time.

Unison is a classic synthesizer technique for creating thicker sounds. It works by layering multiple voices for each note played (and slightly adjusting some settings for each voice in an imperfect, analog fashion). So if a synthesizer has a two-voice unison mode, each note played will sound two detuned voices. This would help thicken the sound while also reducing the number of voices (or polyphony) available.

Bitwig's Voice Stacking starts from the same principle, allowing you to layer up to 16 voices for each note played (or, in the case of audio effects, for each channel activated). Each stack can then have any parameter varied per voice, either individually or in a distributed fashion.

[Note]Note

Devices that support Voice Stacking include Bitwig Studio's FM-4, Organ, Phase-4, Polysynth, and Sampler; all of The Grid devices (Poly Grid, the FX Grid audio effect, and the Note Grid note effect); and all Grid-powered devices (the Polymer synthesizer, as well as the Filter+ and Sweep audio effects). Additionally, CLAP plug-ins can support voice stacking; check with any plug-in manufacturer for details.

As multiple voices are being used for each single note played, voice stacking can steeply increase the load on your processor.

In the Inspector Panel of the selected device, Voice Stacking is right beneath the Voices setting. So if Voices is set to 5 and Voice Stacking is set to 8, then you can play up to five notes, and each will trigger eight unique voices sounding together. As the device shown above currently has no engaged voices, the Playing voices are listed as 0 / 40.

The first modulator available below in the Inspector is Voice Stack Spread ±. Assigning this modulation source to a parameter spreads each voice in the stack in an even, bipolar fashion across the modulation range. Let's take an example case.

In the image above, the built-in Voice Stack Spread ± modulator is targeting the pulse width of oscillator 2. The modulation amount is currently +0.10. So with Voice Stacking set to 8, the range of modulation is spread out so that voice 1 is modulated by -0.10, voice 8 is modulated at the full +0.10, and all the other voices are spaced equally in between. If the Voice Stacking count is changed, the full range of -0.10 to +0.10 will be maintained, and the spacing between the voices will uniformly fit that range.

[Note]Note

Modulators in the Voice Stacking category extend this functionality. Individual control of each voice in a stack comes via the Voice Control modulator, and 12 spread modes are available from the Stack Spread modulator (see Voice Stacking Category).

While programming sounds with Voice Stacking, it can be useful to temporarily solo one voice at a time. So when Voice Stacking setting is enabled, a solo-style S button appears beside it.

To solo an individual voice within an active voice stack: click the voice solo menu (S), and then select which voice to temporarily solo.

When a voice is being soloed, only audio for that individual voice will sound, and the voice solo menu will show yellow with the voice number that is currently heard.

To disable voice solo within an active voice stack: click the voice solo menu (S), and then select the Disable Solo option at the top of the list. All voices will immediately be heard again.

Was this helpful?

Please login to give your Feedback.
Login