VCV Rack plugin for monome Eurorack modules
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github
.vscode
firmware
lib
res
src
.gitattributes
.gitignore
.gitmodules
Makefile
README.md

README.md

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 git and make, you might want to consider waiting for the first official binary release.

monome modules and virtual grid in VCVRack

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

Instructions:

  • Read the VCVRack build instructions for your platform and follow them carefully. Build the v0.5 branch. 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 plugins folder under VCVRack.
    $ cd plugins
    $ git clone https://github.com/Dewb/monome-rack
  • Change into the monome-rack folder 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-rack folder in Visual Studio Code and select Tasks > Run Build Task.
    $ make

Now that you've built the plugin, let's get to patching:

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.

Michael Dewberry (@dewb) wrote the virtual grid module, the hardware simulation layer, and the VCV module wrapper for white whale, meadowphysics, and earthsea.

Additional community contributions and feedback are very welcome! Discuss either in an issue here or in the lines thread.

What's next?

See the release plan.

License

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/.