Arduino library for generating CV

Hi all,

I’m working on a system using Arduino-based controllers to generate CV signals (for eurorack). As always, I’d like to not reinvent the wheel if I don’t have to - but can’t seem to find an Arduino library implementing the basic CV functionality you would expect - lots of synths and bespoke instruments but not anything similar to what I’d like to use.

So I thought I’d see if anyone knows of anything similar which would work for me. Here is what I am thinking of (comments/suggestions welcome):

  • super minimal library to be used as building blocks for larger systems
  • decoupled from a DAC - you would have to pull the current CV from the library and send it to your DAC
  • CV only, low resolution timing
  • keep it simple - use Millis() for timing, no interrupts
  • simple objects for generating signals, envelopes, sequencers, LFOs, etc.

Here is the GitHub repo I am working - suggestions for similar work, design comments, etc. welcome!

12 Likes

Interesting, any examples/demo video?

Still in the early stages - but I just added a bunch of examples (available in the /examples folder on GitHub)

  • demo of trigger and S&H quantized CV
  • demo of CV smoothing / slew limiting
  • demo of basic sequencer module

Since the library is DAC agnostic the examples use the Arduino Serial Plotter as output. I’ll make a video with my modular at some point in the next few days.

4 Likes

I finished the basic implementation for the library - I don’t have any immediate plans to expand it as I’d like to keep it minimal. I’ll keep adding examples as I go - if anyone wants to contribute examples that would be great!

I changed the name of the library to ‘controlVoltage’ - main repo is here:

And I’ve added fairly complete documentation and API on the GitHub wiki:

Examples are provided in the library for monitoring in Arduino serial plotter without a DAC, or with using an MCP4728.

Video tutorial / demo forthcoming. . .

And basic demo videos are online. All of these use the ESP32 built-in dac, and the code for them is in the examples folder in the library.

1 Like