C++ on Linux with CLI only

Requirements

Note

Ubuntu Focal (20.04) or later is recommended.

Before we can setup Eurorack-blocks, we will need to have on your system:

If you are a developer, there is a chance that most of them are installed already.

Experienced developers might already have one (or multiple!) versions of Python installed. For Eurorack-blocks, please use at least Python 3.7.

Note

Please use the copy button on the top right corner of the following code blocks to copy/paste the commands in your terminal.

Typically on Ubuntu, you would use apt to install git and python3.

Make sure everything is up-to-date:

MyPC:~ $ sudo apt-get update

To install Git, run the following command:

MyPC:~ $ sudo apt-get install git-all

To install Python 3, run the following command:

MyPC:~ $ sudo apt-get install python3

You can check your installation by trying the following commands, and checking it doesn’t return an error or something else than it version. Versions are shown here for a concrete example, they might be different on your computer.

MyPC:~ $ git --version
git version 2.25.1
MyPC:~ $ python3 --version
Python 3.8.2

Cloning

Clone the repository. This will create a eurorack-blocks directory into the current working directory, with all dependencies.

MyPC:~ $ git clone --recurse-submodules https://github.com/ohmtech-rdi/eurorack-blocks.git

Will typically output:

Cloning into 'eurorack-blocks'...
remote: Enumerating objects: 14327, done.
...
Submodule path 'submodules/libDaisy/tests/googletest': checked out 'f5e592d8ee5ffb1d9af5be7f715ce3576b8bf9c4'
Submodule path 'submodules/vcv-rack-sdk': checked out '91fd742827c04d36ba9b0e5e179571e393682326'

Setting up

First change the current directory to eurorack-blocks:

MyPC:~ $ cd eurorack-blocks

Then install by running the script below:

MyPC:~/eurorack-blocks $ ./build-system/install.py

This will add the erbb script to your PATH, but the PATH will be set only for new terminals. You can either close your current terminal and open a new one, or source the erbb environment explicitly into your current shell session:

MyPC:~/eurorack-blocks $ source ./build-system/init.sh

Then:

MyPC:~/eurorack-blocks $ erbb setup --with-apt

This will take a bit of time depending on your Internet connection.

erbb setup by itself is installing dependencies internally without modifying anything on your system. If you delete the eurorack-blocks folder, boom, everything is gone.

The additional options, usually starting with --with do change your system. For example here we install the needed toolchain using apt.

You might have a different package manager (for example dnf on Fedora), that is not supported natively in Eurorack-blocks, or you just want to make sure that Eurorack-blocks doesn’t install programs without you knowing exactly what is installed.

If you want to see exactly what it does, navigate to build-system/scripts/erbb, and look at the Linux section in the setup function.

You can now start to use eurorack-blocks 🎉

Testing a Sample

Let’s test a sample. We’ll use the Drop sample.

MyPC:~/eurorack-blocks $ cd samples/drop
MyPC:~/eurorack-blocks/samples/drop $ erbb configure

You can build and install the simulator module by running:

MyPC:~/eurorack-blocks/samples/drop $ erbb build simulator
mkdir Release
ACTION UI
ACTION VCV Rack
COPY include/erb/vcvrack/resource/rogan.6ps.svg
...
LINK plugin.dylib
PACKAGE Release Drop
INSTALL /Users/raf/Documents/Rack2/plugins-lin-x64/Drop/

You can then run VCV Rack and play with your module.

Modules are built with gcc and will require gdb. You can build a debug version of the simulator by running:

MyPC:~/eurorack-blocks/samples/drop $ erbb build simulator --configuration debug
mkdir Debug
ACTION UI
ACTION VCV Rack
COPY include/erb/vcvrack/resource/rogan.6ps.svg
...
LINK plugin.dylib
PACKAGE Debug Drop
INSTALL /Users/raf/Documents/Rack2/plugins-lin-x64/Drop/

You can build the firmware by running:

MyPC:~/eurorack-blocks/samples/drop $ erbb build firmware
BUILD libDaisy
mkdir Release
ACTION UI
ACTION Daisy
...
LINK Release/Drop.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:       81928 B       128 KB     62.51%
         DTCMRAM:          0 GB       128 KB      0.00%
            SRAM:      519696 B       512 KB     99.12%
          RAM_D2:       16968 B       288 KB      5.75%
          RAM_D3:          0 GB        64 KB      0.00%
         ITCMRAM:          0 GB        64 KB      0.00%
           SDRAM:          0 GB        64 MB      0.00%
       QSPIFLASH:          0 GB         8 MB      0.00%
OBJCOPY Release/Drop.bin
OBJCOPY Release/Drop.hex

And so on. Please run erbb ... --help to navigate all different options. For example erbb build simulator --help lists all options to build the simulator.

Testing in VCV Rack

In VCV Rack the Drop module will appear in the library when right-clicking in the rack empty space.

../_images/vcvrack-drop.png

Important

Before starting to play with it, make sure to setup your audio device, and set the sample rate to 48kHz! This requirement will be explained later in the tutorial.

../_images/macos-vcvrack-audio.png

Testing in your Eurorack System

If you bougth the Eurorack-blocks Starter Kit, it comes with the Drop module, and you should have already assembled it by now.

To install the firmware, that we previously built in the section above:

  • Connect the same USB cable that you used for installing the Frohmager firmware,

  • Run the following command and follow the on-screen instructions:

MyPC:~/eurorack-blocks/samples/drop $ erbb install firmware
Enter the system bootloader by holding the BOOT button down,
and then pressing, and releasing the RESET button.
Press Enter to continue...
...
../_images/stlink-v3-mini.png

Note that if you bought a STLink V3 Mini for example from Electro-smith, you can use it to program the Daisy Patch Submodule. It has the advantage to be more convenient, as:

  • It is typically faster than using the USB port on the Daisy Patch Submodule,

  • You don’t need to remove your module from your base to press those BOOT and RESET button.

The install command will automatically select the STLink V3 Mini to install the firmware if it is plugged on your computer.

Have fun!

Maybe now is a good time to head over to Your First Module with C++ to learn more about the Eurorack-blocks’ C++ framework.