User Interface Guide
This document explains how to use the user interface. For more information about each module, refer to Modules Guide.
Project
![]()
A project file stores all preset and sound data. When you open a project file, all of that data is recalled. Project files use the .2020 extension.
Keyboard Interactions
| Modifier | Event | Description |
|---|---|---|
Command | N | Start a new project. |
Command | S | Save the project file. |
Command + Shift | S | Save the project file under a different name. |
Command | O | Open a project file. |
Context Menu

The Context Menu lets you control the module or GUI element you right-clicked.
Preset Selector

Some modules include a preset feature that lets you save and restore the state of all parameters within the module. These modules offer either 10 or 80 preset slots, which you can access from the keys shown in the GUI. 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
| Modifier | Event | Description |
|---|---|---|
| - | Q W E R T Y U I O P | Restore the preset at the beginning of the next bar. |
Control | Q W E R T Y U I O P | Restore the preset immediately. |
Shift | Q W E R T Y U I O P | Save the preset. |
| - | A S D F G H J K | Restore the preset at the beginning of the next bar. |
Control | A S D F G H J K | Restore the preset immediately. |
Shift | A S D F G H J K | Save the preset. |
Disabling Preset Recall

To disable preset recall, right-click and select “Disable Preset Recall”. This is useful if you do not want some modules to follow a preset.
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 with a preset GUI. Snapshots are saved from the context menu to ~/Music/2020/Snapshots.
Basic GUI components

These basic GUI 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. Randomizable knobs display the probability and range as red and yellow lines, respectively.
Mouse and Keyboard Interactions
| Modifier | Event | Description |
|---|---|---|
| - | Double Click a component | Resets value to default. |
| - | Click a Toggle component | Toggles value ON/OFF. |
| - | Drag a Knob or Number Box | Changes the value. |
Shift | Drag a Knob or Number Box | Changes the value faster. |
| - | Drag a Slider | Changes the value. |
Alt | Drag a Randomizable Knob | Changes the randomizing range. |
Command | Drag a Randomizable Knob | Changes the randomizing probability. |
Sound File Menu

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

You can control the BPM, swing, play, and stop. Clicking the play button again while playing will rewind to the beginning of the bar. Clicking the stop button while stopped will kill all audio. When manually syncing with other music, the tap tempo and BPM adjustment buttons are handy.
Keyboard interactions
| Modifier | Event | Description |
|---|---|---|
| - | SPACEBAR | Toggle play/stop. |
| - | LEFT ARROW | Temporarily decrease BPM. |
| - | RIGHT ARROW | Temporarily increase BPM. |
Dejavu

Dejavu turns parameter randomizers into generative sequencers. It stores up to 32 generations of random values for ALL parameter randomizers, then recalls past values based on the selected probability and length.
For instance, 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. Conversely, if you set the probability to 0%, the sequence will always be random. Setting the probability anywhere from 1% to 99% creates a gradually changing sequence. What makes this interesting is that the progression of the recalled steps is independent of the BPM clock or bar length; instead, it is triggered by the instrument itself. This means that even with a length of 8, the number of beats each module loops is determined by the triggering frequency. As you adjust the Dejavu parameters, you’ll uncover 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 with an address like /group1/dejavu/prob.
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
| Modifier | Event | Description |
|---|---|---|
| - | Click or Drag over cells | Toggle triggers. |
Command | Click or Drag over cells | Toggle accents. |
Shift | Drag over cells | Changes the volume sequence. |
Alt | Drag and drop | Copies sequences one beat at a time. |
| - | Execute Duplicate Sequence from the context menu | Duplicates the current sequence to the end position. |
| - | Execute Double Tempo from the context menu | Rearrange grids to play the current sequence at double the speed. |
| - | Execute Halve Tempo from the context menu | Rearrange grids to play the current sequence at half the speed. |
Envelope

The envelope can be edited to make changes to parameters such as volume, pitch, and granular parameters that correspond to the flow of time. If you’re using an FM synthesizer or granular sampler, you can select and edit specific envelopes from among multiple envelopes using the algorithm selector or tab. You can also randomize the coordinates of the envelope points.
Mouse Interactions
| Modifier | Event | Description |
|---|---|---|
| - | Drag a point | Moves the envelope point. |
| - | Drag a line between points up or down | Changes the curve of the envelope. |
Alt | Drag a point | Changes the range of randomization. |
Command | Mouse over | Switches to the pitch envelope. |
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

You can freely connect modules represented by nodes. The circular arc displayed on each node indicates the range for connecting it to another node.
Mouse Interactions
| Modifier | Event | Description |
|---|---|---|
| - | Drag a node | Moves the node. |
Alt | Drag a node | Changes the connection range of the node. |
Trigger Events (CV)

When you enable an FX bus (FX1, FX2, or FX3) and trigger it, 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 to the next module. CV signals are also summed together.
Note that CV signals are designed for internal use only and cannot drive hardware synthesizers.
Mute

When MUTE GRP is on, instruments within the same group that use the same buses will mute each other when triggered.
FM Algorithm

You can switch algorithms and toggle the display of operator editors from 1 to 3.
Mouse Interactions
| Modifier | Event | Description |
|---|---|---|
| - | Click an operator | Displays the clicked operator in the editor. |
| - | Click outside of operators | Switches algorithms. |
Equalizer

You can adjust the EQ points by moving them in any direction. Moving them left and right controls the frequency, while moving them up and down controls the volume. By changing the Q value, you can adjust the sharpness of the EQ.
Mouse Interactions
| Modifier | Event | Description |
|---|---|---|
| - | Drag a point | Moves the EQ point. |
Alt | Drag a point | Changes the Q value of the EQ point. |
| - | Right-click on a point and select a filter type from the context menu | Selects the EQ type. |
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 assigned.
To remove a mapping, press the Delete key while in Learn mode.
Keyboard Interactions
| Modifier | Event | Description |
|---|---|---|
Command | L | Toggle Learn mode. |
Recordings

Output Location
Recorded files are stored in ~/Music/2020/Recordings.
Recording settings can be configured in Preferences.
File Format
You can choose Wav or Aiff as the file format.
You can choose 16-bit, 24-bit, or 32-bit (Wav only) for BIT DEPTH.
Recording Channel Set
Choose from the following recording channel sets.
2 Ch Mix: OUT1 + OUT24 Ch Stem: MST1 / MST212 Ch Stem: BUS1 / BUS2 / BUS3 / BUS4 / BUS5 / BUS6
If you want to record stems and remix them completely in another DAW, try the Wav 32-bit format. It allows signals above 0 dB to be recorded correctly. Be careful not to damage your equipment or your ears.
Output File Name
Recording file names can be specified in NAME FORMAT using {project}, {bpm}, {year}, {month}, {day}, {hour}, {minute}, and {second} as placeholders.
Sync with Ableton Link Integration
Ableton Link integration provides tight clock synchronization between devices on the same network.
It can be enabled via the Preferences window or the Options menu.
If you want to sync with MIDI clocks, use another utility app as a bridge.
Options
| Option | Description |
|---|---|
START/STOP | sync start and stop commands across all connected apps that have Start Stop Sync enabled. |
DLY | Adjusts the sync delay time in milliseconds. Negative values can also be set. |
MIDI
You can configure MIDI input settings in Preferences. Enabling FEEDBACK will transmit parameter changes within the app to the MIDI device.
OSC

You can send and receive parameters using Open Sound Control (OSC). Only parameters in the checked categories among Clock, Parameter, Trigger, Sequence, and Preset are sent. Refer to the Parameter list for OSC addresses.
Color Themes

You can customize the GUI 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 come up with a great theme.
Configuring the Keyboard Layout
By default, 2020 is designed for a QWERTY keyboard.
If you are using a non-QWERTY keyboard layout, you can change the key mapping by editing the mappings.config file.
- Quit 2020.
- Choose
Go>Go to Folderfrom the Finder menu. - Type
~/Library/Containers/com.dubrussell.2020beatmachine/Data/Library/Application Support/com.dubrussell.2020beatmachine/and press Enter. - Edit
mappings.configwith any text editor. - 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 it to a different key.
To remove a key assignment, change it to key=“”.