Some questions about volts and bits

I’m quite new to VCV Rack, so pleasw forgive my noob questions. I have quite a good understanding of digital and audio signals. Let’s say bits in the digital world, voltages for the analog counterpart. What I can’t grasp is the concept of voltages in a digital audio tool, and in particular in a sw like VCV Rack.

What is the relationship between “Volts” and the bits of an audio sample? Are we saying that, for example, a CV 0/-10V (or - 5/+5) corresponds to the full bits scale? If, let’s say, a 0 dbFS signal coming out of my DAW and redirected to a VCV Rack CV input would be “tranlated” to a 10V gate signal? And how a - 20dbFS signal would be translated to volts?

I know there’s so much to say, and my questions are so basilars, but even a simple answer can be helpful to fill some gaps…

1 Like

https://vcvrack.com/manual/VoltageStandards

2 Likes

And welcome to the community :slight_smile:

Yes, welcome!

The standards page that @PaulPiko linked is definitely the best place to start, but one quick point that may be clarifying is that VCV represents voltages as floating-point numbers, so the concept of a “bit scale” (as we’re used to thinking about from an audio recording perspective) doesn’t really apply. Interfaces to integer-based representations can decide how they’ll represent them. As the docs point out, the convention is to think about audio as +/- 5V (10Vpp) but of you were passing a signal that you wanted to be unipolar in 0…10V (also 10Vpp) you could just shift it up 5V. NYSTHI has a module that gives numerical readouts of voltages which can be helpful as you’re getting used to VCV and the floating point representation.

Have fun! Rack is among the best audio software ever written and the community around it is terrific, with truly astonishing modules getting added all the time.

2 Likes

Yes, as above. The very short version: “1 volt” is the number one represented as a 32 bit floating point number. and, yes, a D/A module will (usually?) treat +10V as full scale (I think).

Thanks everyone for the answers! After reaading the answer from @PaulPiko I thought “I’ve already read those page…”, and right after “oh, a sample value is the floating point of that voltage!”. So simple :slight_smile:

So, what CV tools for gate signals do in Ableton, Bitwig, is sending audio signals with levels that will be correctly converted to the internal CV representation in VCV (or external hw racks). Right? By the way, I should be able to craft a CV signal directly from an audio signal even without a dedicated CV tools, isn’t it?

VCV defines 0 dbFS as 10Vpp, or 5V amplitude. A 20Vpp (10V amplitude) signal is 20\log_{10}(V/5) = 6.02\ldots \text{dbFS}, which is the maximum amplitude generated by the VCV Audio modules.

The VCV Rack engine uses 32-bit IEEE-754 floats. Given any range of values such as [-10,10], the set of 24-bit integers can nearly be injectively mapped into that range. Because floating point numbers get increasingly more precise the closer they are to 0, a decrease in amplitude does not lose headroom. So you can truthfully say that “32-bit float audio is more precise than 24-bit integers.”

1 Like

Thans @Vortico for the additional info.

So, if I generate a square wave, with 0 dbFS peak, from my DAW and I directly route the audio signal to a CV input would it work as a (10Vpp) gate signal?

Nothing fancy, and probably not the right solutions for the task, but things start to make sense :slight_smile: Ableton CV signal (wichh actually peaks at 0dbFS) lopped back to VCV Rack through Asio Sync Pro. Of course timing / delay probelms appear here, but it was a proof of concept to understand the thing.

Video

and back in my day we had to do dsp with 32 bit integer assembly language (shakes fist at floating point kids on his lawn)!

1 Like

btw if you want to reduce delay issues using Asio link pro you can watch this - https://youtu.be/kvMUz58kvj0