monome-rack — VCVRack plugin for monome hardware
What is this?
This is a PRERELEASE plugin for the VCVRack open-source virtual modular synthesizer that implements (some of) the Eurorack modules and control hardware manufactured by monome. This is an unofficial community-driven port, and no support guarantees, warranty, or affiliation is implied from any organization mentioned in this document.
This plugin is still in development. The release roadmap is here. If you're not using the source version of VCV Rack, and you're not comfortable with
make, you might want to consider waiting for the first official binary release.
This plugin currently includes:
- Virtual versions of the venerable monome grid 64 and 128, a series of open, interactive grid instruments, in 8x8 and 16x8 versions.
- The white whale grid-enabled probabilistic step sequencer
- A 16-step sequencer with a focus on live-manipulation and controlled variations
- 4 trigger outs, 2 CV outs
- Controlled by internal or external clock
- The meadowphysics grid-enabled rhizomatic cascading counter
- An event sequencer for polyrhythms and rule-based evolving patterns
- 8 trigger outs
- Controlled by internal or external clock
- The earthsea grid-enabled shape-memory pattern instrument
- A live keyboard that can sequence melodies and recall CV with gestures
- 1 trigger out, 4 CV outs
All three of the modules can connect to either a virtual grid or a real hardware grid controller. (Serialosc is required to use real hardware, but no drivers are required for the virtual grids.)
Through the virtual grid, all features of each module are accessible, but some features are awkward to use without multiple fingers on a real grid. Control-clicking (Linux/Windows) or Command-clicking (Mac OS) will allow you to "hold" keys to perform multi-press gestures.
How do I use this?
For now, this is a source-only plugin, no binary package is provided. You must also build VCVRack from source before you can compile plugins -- this will not work with the downloadable version of VCVRack.
This plugin has been built and tested on the following platforms, though bugs and issues still exist.
- Mac OS X 10.12.6
- Windows 10 (with Msys2)
- Ubuntu 16.04
- Read the VCVRack build instructions for your platform and follow them carefully. Build the
v0.5branch. Run and test Rack to make sure it works as expected.
$ git clone -b v0.5 https://github.com/VCVRack/Rack $ cd Rack $ git submodule update --init --recursive $ make dep $ make $ make run
- Clone this repo into the
pluginsfolder under VCVRack.
$ cd plugins $ git clone https://github.com/Dewb/monome-rack
- Change into the
monome-rackfolder and clone the plugin's submodules with
git submodule update --init --recursive
$ cd monome-rack $ git submodule update --init --recursive
- Build with
make, or open the
monome-rackfolder in Visual Studio Code and select
Tasks > Run Build Task.
Now that you've built the plugin, let's get to patching:
- Start VCVRack. Add a
grid 128module to your patch.
- Right-click the
white whalemodule and select your virtual grid from the list of devices. It should light up.
- Read the manuals for the modules:
- Watch these videos:
- Read the manuals again, watch the videos again, repeat.
Why is this?
In order of importance, the initial goals of this project were/are:
- Provide an easier environment for developing, debugging, and testing new and improved firmware features for the monome Eurorack modules
- Allow existing hardware users to practice, experiment, and/or record while traveling light
- Expose new users to the monome hardware/software ecosystem
- Accelerate development of completely new grid applications
- "Because it was there"
How does this work?
The firmware for the monome modules are written in C for the AVR32 platform. (More details here.) In this project, these firmware repos are built into separate C shared libraries, together with stub I/O implementations for parts of the AVR32 API. The Rack plugin will load a new copy of this firmware library into memory for each module that you load, so statics and globals work as expected within each module instance.
Who did this?
Original hardware and firmware code in linked submodules is by monome with contributions from the community at lines. The VCVRack-specific code in this repository is a separate effort, and again, no support or warranty is implied.
See the release plan.
The original monome firmware is licensed under the GPL version 2.
The new code in this repository is also licensed under the GPL version 2.
The base64, oscpack, and serialosc libraries are licensed from their authors via GPL-compatible licenses according to the LICENSE file in each subfolder under lib/.