Building Rack Distribution Modules

The Rack distribution modules are currently in the packages Audible Instruments, Befaco, E-Series and Fundamental.

To build these modules you have to build a version of Rack from source. You will not be able to use a binary version of Rack.

There are three main variations depending on whether you want to build the latest (development) version, a release version, or a specific 'commit'.

All these commands must be run from the Rack/plugins directory. If you have just built Rack then you can:

cd plugins
to enter the directory. If you are not sure what directory you are in then you can:
pwd
to check where you are in your filesystem.

WARNING: Running these commands within an existing Rack installation will wipe out a previous installation of the modules. Use at your own risk and backup anything you want to keep.

Building the Development Versions

Changes to Rack distribution modules are not normally back ported to the latest release version so if you want to see and use the latest and greatest, at the risk of potential instability, then you need to build the latest version of the modules.

The process is basically the same for each module, with the exception of Audible Instruments, which additionally downloads the source code of the Mutable Instruments modules:

rm -rf AudibleInstruments/                                      # Remove previous module installation (if exists)
git clone https://github.com/VCVRack/AudibleInstruments.git     # Clone the Rack GitHub repository
cd AudibleInstruments                                           # Change to the module directory	
git submodule update --init --recursive                         # Retrieve submodule repositories
make                                                            # Build the module
cd ..                                                           # Return to the plugins directory

rm -rf Fundamental/                                             # Remove previous module installation (if exists)
git clone https://github.com/VCVRack/Fundamental.git            # Clone the Rack GitHub repository
cd Fundamental                                                  # Change to the module directory
make                                                            # Build the module
cd ..                                                           # Return to the plugins directory

rm -rf Eseries/                                                 # Remove previous module installation (if exists)
git clone https://github.com/VCVRack/ESeries.git                # Clone the Rack GitHub repository
cd ESeries                                                      # Change to the module directory
make                                                            # Build the module
cd ..                                                           # Return to the plugins directory

rm -rf Befaco/                                                  # Remove previous module installation (if exists)
git clone https://github.com/VCVRack/Befaco.git                 # Clone the Rack GitHub repository
cd Befaco                                                       # Change to the module directory
make                                                            # Build the module
cd ..                                                           # Return to the plugins directory

Building a Release Version

When a binary version of Rack is released the source that builds that version is tagged with a release version signifier, for example, v0.4.0. The contemporaneous versions of the Rack distribution modules are also tagged in the same way and it is these versions that you need to build.

As with Rack, to build a release version you still clone the main repository but then 'checkout' the specific version you want from the repository's history:

rm -rf AudibleInstruments/                                      # Remove previous module installation (if exists)
git clone https://github.com/VCVRack/AudibleInstruments.git     # Clone the Rack GitHub repository
cd AudibleInstruments                                           # Change to the module directory	
git checkout v0.4.0                                             # Checkout specific commit
git submodule update --init --recursive                         # Retrieve submodule repositories
make                                                            # Build the module
cd ..                                                           # Return to the plugins directory

rm -rf Fundamental/                                             # Remove previous module installation (if exists)
git clone https://github.com/VCVRack/Fundamental.git            # Clone the Rack GitHub repository
cd Fundamental                                                  # Change to the module directory
git checkout v0.4.0                                             # Checkout specific commit
make                                                            # Build the module
cd ..                                                           # Return to the plugins directory

As with Rack you will be informed that you are in a "detached HEAD state". Again, ignore it and carry on.

You can repeat the pattern of the Fundamental example here for the Befaco and E-Series modules.

Building a Specific Commit

As with Rack itself, you may find that when you build the latest development version that something is unstable. On a module's GitHub page you will find a list of commits. After finding what you think might be the historical point you wish to return to you can, as previously illustrated, click the clipboard icon to copy the identifying string ('hash') and use this as the checkout reference in place of the specific version number in the preceding example.

Multi Core (Parallel) Builds

Parallelising builds across multiple processor cores follows the same procedure as explained for Rack itself. It is possibly less necessary for modules as building them is generally very quick.

Scripted Installation

On the Scripts page you will find scripts that build Rack and the Rack distribution modules for release and development versions.




VCVRack Resources     |     Build Monitors     |      Scripts     |     Building VCVRack