CV ranges for Wizard, Alchemist, Magus?

Hi RT! I had a few questions about CV ins and outs in your very exciting new products. (About to start playing with CV outs on my new Wizard, and I wanted to get oriented first).

I am very much on the software side of things, so please forgive any hardware-based misunderstandings in the below!

In a comment to Paul Pichon on your Kickstarter, Martin wrote:

CV levels: -10v to +10v! There will be options to select unipolar or bipolar function per connection from the patch. This means that the resolution of the converter is not wasted where it’s not needed, such as the negative half with unipolar envelopes.

Looking at your code, I am wondering if this applies only to the Magus, since it seems like it’s functionality associated with the MAX11300.

Moreover, I’m wondering if there is simultaneous -10 to 10 range, as the input and output options don’t seem fully comprehensive (based on the hardware docs and the constants defined in MAX11300.h, which are used in setPortMode [Owl.h] when calling MAX11300_setPortMode via updateMAX11300 in the loop()). In particular, output seems to get only 0 to 10, -5 to 5, and -10 to 0: so no unipolar 0-5 (meaning that it’s really an 11-bit DAC for some applications, and may need to be limited besides) and also no bipolar -10 to 10 (which is the full Eurorack range, right?) Input gets those options plus 0 to 2.5.

Right now, it looks like setPortMode only supports PORT_UNI_OUTPUT (== PCR_Range_DAC_0_P10, so 0-10) and PORT_UNI_INPUT (== PCR_Range_ADC_0_P10, so 0-10) but that is probably just preliminary–I appreciate that the Magus hasn’t even been released yet :slight_smile:

Is this right, or are you doing voltage manipulation post-MAX11300 to change up the options? It’s too bad there’s no 12-bit 0 to 5V option, which is a very common range for some hardware (almost all guitar pedals controllable by CV, for example). The loss of resolution is less concerning than the possibility of accidentally going out of range, which (especially in the negative) can do a number on non-Eurorack CV hardware…

As to the Wizard side, I’m more confused. As to the outputs, it looks as though the two CV DACs are just using the STM32F4 outputs, which I think only from 0 to V_REF (max 3.6V for that chip?) The gate looks like it uses GPIO, so I’m also not sure there. And I haven’t been able to find anything on the inputs, especially regarding whether they’re bipolar.

I know it’s early days for this hardware but any light you could shed on the above would be appreciated, as I’m trying to figure out if a Wizard or Wizard/Magus setup is going to meet my CV needs. Many, many thanks!

hi gc3!

On the Wizard, the outputs are 0-3.3V. The inputs are attenuated by the corresponding knob, so if you plug into CV A you can control the level with Knob A. The inputs are protected so you can safely send them anything from -10V to +10V.

Voltage Ranges (Wizard)
CV In: 0-10V with attenuation/gain 0x to 2x
CV Out: 0-3.3V
Trigger in: 0-10V, threshold 0.8V
Trigger out: 0V off, 3.3V on
Audio Out: 4.5VPP

Impedance (Wizard)
Audio In: 100k
Audio Out: 22 Ohm
CV In: 15k
CV Out: 1k
Trigger In: 100k
Trigger Out 1k

For the Magus you are correct that we haven’t finalised the firmware, or how the range is selected. And no, we don’t condition the output signal beyond a 1k current limiting resistor and RC filter, so the MAX11300 ranges apply.

The preliminary scheme will let the patch define either unipolar 0-10V or bipolar +/- 5V range. This covers all of the common Eurorack use cases, including audio, envelopes, LFO’s, triggers, clocks et c. Specialist situations might call for -10V to 0V, or 0-2.5V, so we’ll try to make those available too.

As I mentioned, this is still preliminary. I’d like to experiment with a different scheme, too, which would make the range selection automatic, and instantaneous, depending on the desired output voltage. So if the signal goes from +10V down to less than zero, it would automatically switch to a bipolar range at the right moment.

I say experiment, because we need to look at the impact of real-time switching on the signal quality. But it’d be pretty cool if we can get it to work smoothly.

Thanks a lot! This is extremely helpful.

It’s too bad that the Wizard output is limited-range but you’ve crammed a ton of functionality into a very small and very affordable box, so I can understand why.

Different scheme: neat; I was dimly wondering if that kind of treatment was a way to get -10 to 10 (watch for crossings and automatically call MAX11300_setPortMode). Will be very curious to see if the switching happens quickly enough in HW for that to work!

And one patch API suggestion for the Magus: you might consider a simple call that enforced clipping (or some other way of scaling) on a given output, no matter what the stated output was. Obviously, a patch could implement this on its own, but it would be simpler for patch authors (and less error-prone!) to have a final layer that enforced ranges. Something like clipCVOutTo(min, max) or scaleCVOutTo(low, high), setting values that would be checked before actually setting the voltage. So you could use the 0-10V HW setting, ensuring no negative voltages, but also clip to 5. Still only 11 effective bits, but safe.

(For context: I’m working in a CV-heavy but non-Eurorack context [mostly pedals], where 0-5V is the most common range, inputs are sometimes unprotected, and utility options for manipulating CV are pretty rare. I think these issues are less important for people with a proper modular setup).