I have once again come up with a module idea

I’m active in the Intellijel forum again, and that means it’s only a matter of time before I came up with another complicated-to-explain module that I need to have made with love by robots in Canada. This idea is still pretty fresh in my head, so don’t be surprised if it makes no sense at all. I will add in a panel mock-up later. Edit: No, no I will not. The concept I came up with has been already done, much more elegantly expressed by the Xaoc Drezno

The idea I had was a digital sampler that can make a sequence from a single sampled voltage. It samples an analogue in, converts that to a signed n-bit float, and then can rotate through the bits to output new voltages. Here’s an example: in binary, the number 11 is 001011 (1+2+8). If we were to rotate that number to the right by one bit, we would get 100101 (1+4+32), resulting in 37. If we were to rotate the number 11 to the left, instead, we would get 010110 (2+4+16) resulting in 22.

So that’s bit rotation. Now let’s talk about signed floats. Digital numbers are often represented as decimals, where 01 is 1, 0.1 is 1/2. Signed floats would take the first bit of the number to check if it was positive or negative (thus, 0.01 would be .25, but 1.01 would be -.25).

Let’s talk about the n-bit thing I said earlier next. The number 11 could be represented as 1011, but you’ll notice that in my example I wrote 001011. This is similar to saying 011 instead of 11. The module I am imagining would sample the voltage as a signed 64-bit decimal float, but you could select how many bits are output. This would cause the output voltages to become more and more quantized, or bitcrushed if the module featured a track and hold instead of just a sample and hold. In the most extreme case, the float would be a 1-bit integer. This could either be a gate out if the module was processing unsigned data (on/off), or a square wave (positive or negative 5 volts).

Ok. Are any of you still with me? Let’s get onto the actual module design now.

First off, it would require an input jack to sample the voltage. It would require a knob or encoder to select how many bits to use (1 to 64). I’d love to have a polarity switch, setting the module to either +/- 5v or 0-10v. It would also be nice to have an attenuv— you know what, let’s just put a triplatt on the output. Saves words. Two trigger/gate inputs, either for a clock/reset or a shift left/shift right. And of course some LEDs to visualize the whole thing.

Ok. I’m done rambling now. Does any of this make sense?

1 Like

Not to rain on anybody’s parade, or stop fine Canadian Robots from making anything with love… but as I read this, I immediately started thinking about The Leibniz Binary Subsystem… a series of modules created by Xaoc Devices - some similar concepts, but 8-bit.

2 Likes

Yep, came here to say the same as studiooutpia.

Xaoc Devices are my other favourite module makers and this sounds exactly what Drezno does.
It converts analog to digital, allows you to flip the bits, and then spits back out as analog.
They have a couple of modules that pair with it at the moment, but currently it seems a lot of people just use it as an expensive bitcrusher. Although I’d love to be proven wrong.

Nitpick: what you’re describing is fixed point with a sign bit; floating point would have the decimal part along with a separate exponent.

Thinking about how this would sound (imagine “full scale” == 10V):

  • values shifted into the least-significant bit are not going to be noticeable and are not mentioned further

  • for bipolar signals with a peak less than +/-5V, “rotate left” is a full-wave rectifier (absolute value) that scales 2x

  • larger bipolar signals into “rotate left” are going to get a waveshaping-like effect where inputs below -5V and above +5V become negative outputs while smaller values are positive

  • “rotate right” is likely going to be noisy, as the least-significant bit of the input gets rotated into the sign bit.

I’d have a toggleable option to keep the sign but the same and rotate all the others. There would be a modulo type operation so that the least significant bit and the most significant bit swap each time, which should be enough for most values to create a new voltage level