User Interface Guide

This guide explains how to use the user interface. For details about each module, see the Modules Guide.


Project

Project

A project file stores all preset and sound data. Opening a project file restores all of that data. Project files use the .2020 extension.

Keyboard Interactions

ModifierEventDescription
CommandNStart a new project.
CommandSSave the project file.
Command + ShiftSSave the project file under a different name.
CommandOOpen a project file.

Context Menu

Context Menu

The Context Menu lets you control the module or UI element you right-click.


Preset Selector

Preset selector with 80 slots Preset selector with 10 slots

Some modules include a preset feature that lets you save and restore the state of all parameters in that module. These modules provide either 10 or 80 preset slots, which you can access using the keys shown in the UI. The Q W E R T Y U I O P keys are used for song presets, while the A S D F G H J K keys are used for pattern presets.

Mouse and Keyboard Interactions

ModifierEventDescription
-Q W E R T Y U I O PRestore the preset at the beginning of the next bar.
ControlQ W E R T Y U I O PRestore the preset immediately.
ShiftQ W E R T Y U I O PSave the preset.
-A S D F G H J KRestore the preset at the beginning of the next bar.
ControlA S D F G H J KRestore the preset immediately.
ShiftA S D F G H J KSave the preset.

Disabling Preset Recall

Disabling Preset Recall

To disable preset recall, right-click and select “Disable Preset Recall.” This is useful when you do not want a module to respond to preset changes.


Snapshots

Snapshots

The Snapshots feature lets you save frequently used sounds and sequences for later reuse. You can save snapshots for the entire app or for individual modules that have a preset UI. Snapshots are saved from the context menu to ~/Music/2020/Snapshots.


Basic UI Components

Basic UI components

These basic UI components let you adjust parameter values and toggle switches on and off. Knobs in modules that can receive trigger events also include a randomize function. On randomizable knobs, the red line shows probability and the yellow line shows range.

Mouse and Keyboard Interactions

ModifierEventDescription
-Double-click a componentResets the value to its default.
-Click a toggle componentToggles the value on or off.
-Drag a Knob or Number BoxChanges the value.
ShiftDrag a Knob or Number BoxChanges the value more quickly.
-Drag a SliderChanges the value.
AltDrag a Randomizable KnobChanges the randomization range.
CommandDrag a Randomizable KnobChanges the randomization probability.

Sound File Menu

Sound File Menu

The Sound File Menu lets you browse and load sound files. Use the User Library menu to browse sound files and folders in ~/Music/2020/Sounds. You can also open sound files and folders by dragging and dropping them.


Transport Control

Transport Control

Use the transport controls to adjust BPM and swing, and to start or stop playback. Clicking the play button while playback is already running rewinds to the beginning of the bar. Clicking the stop button while already stopped cuts all audio. When syncing manually with other music, the tap tempo and BPM adjustment buttons are especially useful.

Keyboard interactions

ModifierEventDescription
-SPACEBARToggle play/stop.
-LEFT ARROWTemporarily decrease BPM.
-RIGHT ARROWTemporarily increase BPM.

Dejavu

Dejavu

Dejavu turns parameter randomizers into generative sequencers. It stores up to 32 generations of random values for all parameter randomizers, then recalls earlier values based on the selected probability and length.

For example, if you set the probability to 100% and the length to 8, the randomizer behaves like an 8-step sequencer that repeats values generated 8 steps earlier. At 0% probability, the sequence remains fully random. Values between 1% and 99% create a sequence that changes gradually over time. What makes this especially interesting is that the recalled steps advance independently of the BPM clock or bar length. Instead, they are triggered by the instrument itself. That means even with a length of 8, the number of beats in each loop depends on how often the module is triggered. As you adjust the Dejavu parameters, you can discover new ways to create build-ups and transitions in your music.

Adjust the DJV and LEN parameters on the right side of the clock module to control the global Dejavu settings. You can also set them per module via OSC or MIDI using an address such as /group1/dejavu/prob.


Grid Sequencer

Grid Sequencer

The Grid Sequencer lets you create and play trigger sequences. You can set the resolution for each beat and edit the sequence using the buttons in the upper-right corner.

Mouse Interactions

ModifierEventDescription
-Click or drag over cellsToggles triggers.
CommandClick or drag over cellsToggles accents.
ShiftDrag over cellsChanges the volume sequence.
AltDrag and dropCopies the sequence one beat at a time.
-Execute Duplicate Sequence from the context menuDuplicates the current sequence to the selected end position.
-Execute Double Tempo from the context menuRearranges the grid to play the current sequence at double speed.
-Execute Halve Tempo from the context menuRearranges the grid to play the current sequence at half speed.

Envelope

Envelope

You can edit the envelope to shape parameters such as volume, pitch, and granular settings over time. If you are using an FM synthesizer or granular sampler, you can select and edit individual envelopes from multiple available envelopes using the algorithm selector or tabs. You can also randomize the positions of the envelope points.

Mouse Interactions

ModifierEventDescription
-Drag a pointMoves the envelope point.
-Drag a line between points up or downChanges the curve of the envelope.
AltDrag a pointChanges the range of randomization.
CommandMouse overSwitches to the pitch envelope.

Audio Bus

Audio Bus

The output of an instrument module can be sent to any bus. For example, if you want to send it directly to the mixer, enable BUS1. If you want to process it with an FX module, enable FX2.


FX Patcher

FX Patcher

You can freely connect modules represented as nodes. The circular arc shown on each node indicates the range within which it can connect to another node.

Mouse Interactions

ModifierEventDescription
-Drag a nodeMoves the node.
AltDrag a nodeChanges the connection range of the node.

Trigger Events (CV)

Trigger Events (CV)

When you enable and trigger an FX bus (FX1, FX2, or FX3), you can control the connected FX module in the FX patcher with a CV signal. In the FX module, if the CV signal exceeds the threshold, parameter randomization is triggered and the LFO is reset. If the CV signal falls below the threshold, it is not passed on to the next module. CV signals are also summed together. CV signals are intended for internal use only and cannot be used to drive hardware synthesizers.


Mute

Mute Mute

When MUTE GRP is enabled, instruments in the same group that use the same buses will mute one another when triggered.


FM Algorithm

FM algorithm

You can switch algorithms and choose which of operators 1 to 3 are shown in the editor.

Mouse Interactions

ModifierEventDescription
-Click an operatorDisplays the clicked operator in the editor.
-Click outside of operatorsSwitches algorithms.

Equalizer

Equalizer EQ Point

You can adjust EQ points by moving them in any direction. Dragging left or right changes the frequency, while dragging up or down changes the gain. Changing the Q value adjusts the sharpness of the EQ curve.

Mouse Interactions

ModifierEventDescription
-Drag a pointMoves the EQ point.
AltDrag a pointChanges the Q value of the EQ point.
-Right-click on a point and select a filter type from the context menuSelects the EQ type.

Learn Mode

LEARN Mode

In Learn mode, you can assign MIDI controllers or keys to the selected parameter. However, keys that are already assigned globally, such as those used for presets or instruments, cannot be reassigned here.

To remove a mapping, press the Delete key while Learn mode is active.

Keyboard Interactions

ModifierEventDescription
CommandLToggle Learn mode.

Audio Settings

Audio Settings

Audio Device

  • DRIVER: Selects the active audio driver type provided by the operating system or audio interface.
  • INPUT: Selects the hardware input device used by 2020.
  • OUTPUT: Selects the audio output device.
  • SAMPLE RATE: Selects the sample rate supported by the current device.
  • BUFFER SIZE: Selects the audio buffer size supported by the current device.

Changing the output device also reloads the routing saved for that specific device. Routing is stored separately for each output device.

Input Channel

  • CHANNEL: Selects which stereo input pair from the chosen hardware input device is used as 2020’s input.

Input device selection and input channel selection are both hardware-input settings. Link Audio input selection is configured separately in the Ableton Link preferences.

Bus Output

The bus router assigns the main mix and internal buses to physical output pairs on the current audio interface.

  • DELAY: Adds output delay in milliseconds. Range: 0 to 100 ms.
  • LEVEL: Sets the bus output gain. Available values: 6 dB, 0 dB, -6 dB, -12 dB, -24 dB.
  • CLIP: Selects the clipping mode. Available values: SOFT 6dB, SOFT 0dB, CLIP 0dB.
  • OUTPUT: Assigns the bus to a physical stereo output pair on the selected audio device, or NONE.

Trigger Output

The trigger router sends clock and trigger pulses to individual physical output channels.

  • DELAY: Adds trigger delay in milliseconds. Range: 0 to 100 ms.
  • OUTPUT: Assigns the trigger source to a physical output channel on the selected audio device, or NONE.

MIDI Settings

MIDI

MIDI Input

  • IN: Enables or disables MIDI input from that device.

MIDI Output

  • SYNC: Sends MIDI clock sync to that device.
  • OUT: Sends parameter/output data to that device.
  • MIDI CLOCK DELAY: Adds delay to outgoing MIDI clock timing. Range: 0 to 100 ms.

Sync with Ableton Link Integration Ableton Link provides tight clock synchronization between devices on the same network. You can enable or disable Ableton Link from the Preferences window or from the Options menu.

  • ABLETON LINK: Enables or disables Link clock synchronization.
  • START STOP SYNC: Enables or disables Link start/stop synchronization.
  • SYNC DELAY: Offsets Link timing in milliseconds. Range: -300 to 300 ms.
  • LINK AUDIO: Enables or disables Link Audio send and receive.
  • PEER NAME: Sets the name shown to other Link Audio peers.
  • SEND LEVEL: Sets the send level for Link Audio.
  • MUTE 2020: Mutes 2020’s local audio-bus output while Link Audio send remains enabled.
  • RECEIVE CHANNEL: Selects a Link Audio peer and channel to receive from.
  • OVERRIDE INPUT: Replaces the hardware input with the selected Link Audio input when LINK AUDIO is enabled and the selected receive channel is currently available.
  • LATENCY: Sets the Link Audio receive latency in milliseconds.

OSC Settings

OSC

Receive Port

  • RECEIVE OSC: Enables or disables incoming OSC messages.
  • ADDRESS: Shows the current local network address used for OSC reception. This is display-only.
  • PORT: Sets the UDP port number used to receive OSC.

Send Ports 1-3

Each send port has the same controls:

  • SEND OSC: Enables or disables OSC transmission for that port.
  • ADDRESS: Destination IP address or host.
  • PORT: Destination UDP port.

Each send port can also filter which message categories are transmitted:

  • CLOCK
  • PARAM
  • TRIG
  • SEQUENCER
  • PRESET

Enable only the categories you want to send to the destination assigned to that port.


Recording Settings

Recordings

Recording Input

  • CHANNELS: Selects the recording channel set.

Available channel sets:

  • 2 Ch Mix : OUT1 + OUT2: Records the main stereo output.
  • 4 Ch Stem : MST1 / MST2: Records two stereo master stems.
  • 12 Ch Stem : BUS1 / BUS2 / BUS3 / BUS4 / BUS5 / BUS6: Records six stereo bus stems.

Recording Format

  • FORMAT: Selects the file format. Available values: WAV, AIFF.
  • BIT DEPTH: Selects the bit depth supported by the selected format.

If you want to record stems and fully remix them in another DAW, try the WAV 32-bit format. It preserves signals above 0 dB correctly. Be careful not to damage your equipment or your hearing.

File Location

  • OPEN FOLDER: Opens the recordings folder in the OS file browser.
  • Storage path: ~/Music/2020/Recordings
  • AUTO REVEAL: Automatically reveals the saved recording after recording finishes.

File Naming Format

The file naming field controls the filename pattern used for generated recordings.

Default pattern:

{project}-{year}{month}{day}-{hour}{minute}{second}-bpm{bpm}

Available placeholders:

  • {project}: Project name
  • {bpm}: BPM value
  • {year}: Four-digit year
  • {month}: Two-digit month
  • {day}: Two-digit day
  • {hour}: Two-digit hour
  • {minute}: Two-digit minute
  • {second}: Two-digit second

Color Themes

Customizing Color Theme Theme Editor

You can customize the UI color scheme. There are 11 colors you can set: Background, Base, Text, Blue, Green, Orange, Pink, Purple, Red, Teal, and Yellow. You can also switch between dark mode and light mode. Feel free to experiment with your own color combinations and share them if you create a theme you like.


Configuring the Keyboard Layout

By default, 2020 is designed for a QWERTY keyboard. If you use a different keyboard layout, you can change the key mapping by editing the mappings.config file.

  1. Quit 2020.
  2. Choose Go > Go to Folder from the Finder menu.
  3. Type ~/Library/Containers/com.dubrussell.2020beatmachine/Data/Library/Application Support/com.dubrussell.2020beatmachine/ and press Enter.
  4. Edit mappings.config with any text editor.
  5. Open 2020 again after editing.

The default key mapping looks like this:

  <key key="q" parameter="/preset/q"/>
  <key key="w" parameter="/preset/w"/>
  <key key="e" parameter="/preset/e"/>
  <key key="r" parameter="/preset/r"/>
  <key key="t" parameter="/preset/t"/>
  <key key="y" parameter="/preset/y"/>
  <key key="u" parameter="/preset/u"/>
  <key key="i" parameter="/preset/i"/>
  <key key="o" parameter="/preset/o"/>
  <key key="p" parameter="/preset/p"/>
  <key key="a" parameter="/preset/a"/>
  <key key="s" parameter="/preset/s"/>
  <key key="d" parameter="/preset/d"/>
  <key key="f" parameter="/preset/f"/>
  <key key="g" parameter="/preset/g"/>
  <key key="h" parameter="/preset/h"/>
  <key key="j" parameter="/preset/j"/>
  <key key="k" parameter="/preset/k"/>
  <key key="z" parameter="/group1/1/enable"/>
  <key key="x" parameter="/group1/2/enable"/>
  <key key="x" parameter="/group1/3/enable"/>
  <key key="c" parameter="/group2/1/enable"/>
  <key key="c" parameter="/group2/2/enable"/>
  <key key="v" parameter="/group2/3/enable"/>
  <key key="b" parameter="/group3/enable"/>
  <key key="n" parameter="/group4/enable"/>
  <key key="m" parameter="/slicer/enable"/>
  <key key="spacebar" parameter="/clock/play"/>
  <key key="cursor left" parameter="/clock/bpm/slower"/>
  <key key="cursor right" parameter="/clock/bpm/faster"/>

You can change the key="q" part to assign the action to a different key. To remove a key assignment, change it to key="".