/eurorack-blocks

Software to Hardware Prototyping for Eurorack

Primary LanguagePythonCreative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

eurorack-blocks

License: CC BY-SA 4.0 GitHub Actions status | ohmtech-rdi/eurorack-blocks GitHub Actions status | ohmtech-rdi/eurorack-blocks Documentation Status

The eurorack-blocks project allows to develop your own custom Eurorack module for either prototyping or fun in the comfort of your day-to-day IDE and debugging in a virtual Eurorack environment, and when ready, to auto-magically generate all the needed files to manufacture the eurorack module for you to use in a real Eurorack modular system.

eurorack-blocks is using Daisy Patch Submodule, a DSP platform for Eurorack synthesizer modules. It features a lightning fast STM32 processor, high fidelity stereo audio codec, and enough RAM for 10 minute long buffers — all with standard signal levels and conditioning for the Eurorack ecosystem.

The documentation as well as the Getting Started guide can be found on Read the Docs.

The full project's manifest can be read here.

// Bypass.h

#include "artifacts/BypassUi.h"

struct Bypass {
   BypassUi ui;

   void process () {
      ui.audio_out = ui.audio_in;
   }
};

// Bypass.erbui

module Bypass {
   width 8hp
   material aluminum black
   header { label "BYPASS" }

   control audio_in AudioIn {
      position 4hp, 40mm
      style thonk.pj398sm.knurled
      label "IN"
   }

   control audio_out AudioOut {
      position 4hp, 80mm
      style thonk.pj398sm.knurled
      label "OUT"
   }
}
raf:bypass$ erbb configure 👈 Generate IDE project and hardware files
raf:bypass$ ls artifacts/
...
drwxr-xr-x  4 raf  staff    128 Apr 23 18:14 project_vcvrack.xcodeproj 👈 Xcode Project
...
raf:bypass$ erbb build 👈 Build the firmware
ninja: Entering directory `.../eurorack-blocks/samples/bypass/artifacts/out/Release'
[185/185] LINK bypass-daisy
OBJCOPY bypass-daisy
raf:bypass$ erbb install dfu 👈 Upload the firmware
Enter the system bootloader by holding the BOOT button down,
and then pressing, and releasing the RESET button.
Press Enter to continue...
...
raf:bypass$

Sample Projects

Before reading sample code, make sure to grasp the concepts in the documentation. Sample projects are a good place to continue learning:

  • bypass is the example used above,
  • drop shows the usage of almost every blocks,
  • reverb illustrates how to utilize all the platform memory,
  • kick illustrates how to use factory samples and make big programs.

Setting up

Setting up the development environment is described in the documentation.

Structure

eurorack-blocks/
   blocks/
   boards/
   build-system/
   include/
   src/
   submodules/
  • blocks contains all the atomic blocks hardware for design validation and software tests,
  • boards contains all the boards hardware to design with,
  • build-system contains the build system used to build and deploy the tests and samples,
  • include contains the software implementation of the blocks,
  • src contains the software implementation of the blocks,
  • submodules contains the software dependencies as submodules.

License

All files in this repository, excluding submodules/, are provided with the CC BY-SA 4.0 license, except: