Sending CV from SC to hardware synth

This is quite a general question, but what are the options for sending CV signals from SuperCollider to a hardware synth?

I’d like to send triggers to a Moog DFAM so I can sync it to some patterns. The DFAM input I want to use expects a “0V to +5V Clock Signal (+10V tolerant)” signal. My audio interface does have a couple of DC Coupled outputs.

I’m already doing similar in Ableton Live, with Max for Live CVTools, but I would like to be able to do the same in SuperCollider.

I’ve never done anything like this in SC, so I’m pretty clueless about how to send the correct voltages, and which Ugens I could use. There may be other things I don’t know about. Any tips or guidance will be much appreciated. Thanks. :smiley:

Jim

I use and like the Expert Sleepers ES-3 module. It takes in an ADAT cable and then outputs 8 channels of CV from the 8 channels of the ADAT. In SuperCollider I just send out “audio” normally between -1 and 1 and the ES-3 converts it to -10 to +10 V.

Thanks tedmoore, that sounds like a really good setup. I don’t use Eurorack, but the ES-3 module looks really useful in that setup. Luckily, my audio interface (Arturia Audiofuse Studio) can send the CV, but I don’t think it does any conversion. I don’t need anything complicated though, just SC to send 5v signals to the chosen output.

Thinking aloud, maybe I could send a regular LFPulse.ar scaled by 5 (would that be 5 volts?). Maybe a bit silly, but I’m nervous of damaging my interface or synth. Like I said, I don’t know much about this stuff.

Whatever, thanks again for your reply. :grinning:

1 Like

I see. I don’t know the Arturia Audiofuse Studio, but my guess would be that you wouldn’t scale in SuperCollider. SuperCollider probably will just handle values between -1 and 1. I might hook up a multimeter to the output of the interface and start small–scaling up the values gradually and seeing what values in SC provide what values from the interface.

I’ve worked like this with a MOTU before, it’s not so hard to set up. Track down a PDF manual for your audio interface, it should list the voltages of each of your outputs - careful, iirc different outputs on my MOTU had different voltage ranges, so you may have to take that into account.

As far as code, I used a single Ndef routed to each output. Each Ndef had an input control, and controls for lag and scaling (e.g. min/max). The Ndef’s would scale my input value (in whatever meaningful units I chose, e.g. 0…100) to the range expected by whatever CV I was sending them to (adjusting for the voltage difference between my interface output and the voltage range of my CV input). Getting the math right for translating a frequency value / midi note to the usual 1 volt per octave was minorly tricky, and if I wanted perfect tuning I had to measure the output pitch if my synth - but it was straightforward (it’s useful to use two ControlSpec’s to map from input range → normalized and from normalized → CV voltage).

For cases where I was doing note triggering, I made one mono SynthDef that output all CV values (same scaling code etc) and sequence the values with a Pmono. You can use \trigger.tr controls and Trig UGens to generate CV gate signals for events from your Pmono. This was a really simple setup, and doing complex Pattern based sequencing of CV controlled syntha was a blast.

It’s also not SO hard to use incoming CV gate values from outboard modular hardware to cause a Pmono to advance in this setup, which let’s you effectively drive your SC patterns with a hardware clock or rally.any kind of CV pulse signal.

1 Like

have you looked at bela and its modular incarnations salt and pepper?

it’s a microboard with SuperCollider already on/in it.

another option is a midi-cv conversion?

Many thanks for the suggestions. Apologies for my (very) late reply.

@luka, thanks for that. The Bela looks amazing, but for this, really I’m trying to do everything in my existing studio without adding more widgets to figure out.

@scztt, Wicked. I think for me, that looks like a really good way to do it. I’ll have to spend some time experimenting, but thanks a lot for the ideas & direction. :smile:

I’ve written GitHub - capital-G/EuroCollider: SuperCollider extension for communcation with Eurorack modules which aims to be a SC clone of CV tools, maybe this helps you?
The docs also cover some ways of interacting with Eurorack territory using SC.

That looks incredibly useful, @dscheiba. I was actually looking for something like CV Tools. Thanks. :smile:I’ve installed it and will start playing soon…