14 bit midi in 1.0?

Will Rack be able to send 14-bit MIDI as well as receive it? That would be great for use with MIDI-CV converters that support it, like Expert Sleepers FH-2. Here’s what the FH-2 manual says about their implementation:

A convention exists for sending 14 bit values via MIDI CCs, using two CCs (of 7 bits each).7 The high 7 bits are sent on a CC in the range 0-31, and the low 7 bits are sent on the CC numbered 32 higher (which is therefore in the range 32-63). The low 7 bits are sent first. The FH-2 configures this automatically, if – one of the three 14 bit quantities is mapped to CC in the range 0-31, and – the corresponding low bits CC is not mapped to anything else. For example, say the direct level on output 5 is mapped to CC 4 on MIDI channel 1 (as it is in the default configuration). Then CC 36 (36 being 4 + 32) on MIDI channel 1 is automatically mapped as the low 7 bits, unless that CC has been explicitly mapped to control something else. Note that this doesn’t mean you have to control these quantities with 14 bit controllers. Sending a single CC to control the mapped value will control it perfectly well, just at a coarser resolution.

No, I have not added 14-bit MIDI to VCV CV-CC. Post a feature request.

Thanks, I will.

For anyone interested in 14-bit MIDI CC:
I’ve implemented it in my MIDI-CAT module. It is not fully tested yet but feel free to check out the latest development build.

11 Likes

Very cool!

Is anyone succesfully using 14-bit MIDI?

I have to admit that my adventures in building my own MIDI-controllers were not very successfull… Arduino is too sensitive to fluctuations… I was almost able to get 10-bit (max resolution on Arduino), but quite slow, because a lot of smoothing was needed. Then I tried the Teensy (theoretically able of reading with 12-bit (they say “up to 13-bit”)), which was even worse because it’s even more sensitive… Arduino operates with 5V, Teensy with 3V… I think it might be good to have something with higher voltages so the fluctuations become negligible…

I’m no expert in electronics but I have some experience with Arduinos myself.
I guess you are reading some analog values from the microcontroller‘s analog input pins but I don’t think this is a good way to go. I think using a digital pot, a sort of encoder, and generating 14-bit values internally on controller-side would be a more suitable use-case for 14-bit MIDI.
But as I said I’m no way near an expert at this topic :slight_smile:

The dream was to have lots of knobs that feel like they’re analogue, encoders often aren’t much fun because of their low resolution and are also quite expensive.

The coolest thing would be endless analogue knobs, read out cleverly to be used like high resolution encoders - which is what I think NI did with their KOMPLETE KONTROL series.

I have a M32 and I’m sure these knobs are digital. Does something like a „endless analog knob“ even exist? I’m curious how that would work…

Don’t know… It was my conclusion because they have 128 steps in one turn and feel smooth… also got the M32 recently :slight_smile: Maybe they just have a very high resolution…

I thought it must be a potentiometer with the ends close together to have a 360 movement and clever firmware to calculate the output.

It seems they are 360 potentiometers indeed, as well as on the NI Kore and Akai MPD 218.

Apparently they work with two or three overlapping regions.

something like this https://www.mouser.de/ProductDetail/Alpha-Taiwan/RV112FF-40-25A-0B10K?qs=XeJtXLiO41R65P9QvUgmCw==

Damn… I want a MIDI controller with 64 of those… wonder why there still are no products like that…

Just stopping by to report that I have successfully tested 14-bit MIDI CC with MIDI-CAT building the v1-dev branch – it worked flawlessly, thank you very much @stoermelder! Also very excited that 14-bit MIDI will be part of Rack v2.

Perhaps of interest for those building their own MIDI controllers: Here is a great blog post that outlines how to use 14-bit MIDI with Teensy. The 3.2/3.5/and 3.6 versions of the board support 13-bit ADC readings and the associated code upscales to 14-bit. Apart from that, it uses the ResponsiveAnalogRead library which significantly reduces noise/jitter. My breadboard experiments with this worked out great so far.

2 Likes

That sounds very good.

So you get stable readings with more than 10 bit resolution? (I don’t believe you :smiley: please show some proof on a youtube video and tell how you did it)

The ADCs on the Teensys are actually even 16 bit… but since you can never get that stable because of the noisefloor they advertise it as “up to 13 bit” - which is probably under laboratory conditions.

If I could have 12 bit I would be completely happy, as this marks the threshold where it’s no longer possible to move a knob to an exact value. But for me, I got 10 bit at best, and it was more stable on an Arduino, which has only 10bit ADCs to begin with.

Yeah, when I was looking at it all the arduinos looked too crude. The expert sleepers Disting is accurate to 16 bits, so I used that. my (old) stuff is here: GitHub - squinkylabs/thisthing: Alternate firmware for disting

You mean it’s interesting to look at for a MIDI controller? :confused:

well. don’t know. If a very good eurorack module, but it would not be a good thing to build into a controller. It’s basically a 32-bit PIC with a few channels of 16 bit A/D and D/A.

I’m not going to make a YT video. While it is possible to get successive readings moving in steps of 2 on [0, 2^14-1] that is super fiddly and doesn’t work out in a stable fashion. So yes, the effective resolution currently is lower. Perhaps this is because I’m not able to manage turning the pot (Song Huei RK1114N) in small enough movements (a bigger knob might help?) but probably also because everything is just on a breadboard atm.

One thing that is for sure: It’s much more pleasant controlling e.g. the frequency of a VCO with this setup. Changing the frequency of a VCO feels smooth rather than jumpy :slight_smile:

Yeah when it works it’s super smoothe… 10 bit are actually quite nice already… but even then I had to do a lot of smoothing and it might jump a bit sometimes just from moving my hand near a cable or from the (very cool) rgb leds I installed changing color…

I wish there was a solution with higher voltages, I imagine if the Teensy ran the ADC on 12V the fluctuations should be much smaller in comparison… I still wonder why no hardware manufacturer has come up with something really smooth, but seems it’s really not easy or too expensive.

As long as it’s just a few knobs 10bit should be no problem though, but I wanted a lot of knobs and then it got more and more unstable…

Dirty USB-Voltage is another big problem… so if you use a really stable DC-supply everything might get a lot better…

Did this get pushed out to the current release? I don’t see it in my menu. Or maybe the encoders on my device do not support 14-bit resolution …

If not, the slew limiting is an OK compromise.

1 Like

It is included in the current development build, it is not available in the version in the VCV Library yet.

1 Like

Quick writeup of using MIDI-CAT v1-dev with 14-bit hardware over here, to be supplemented in a new thread when I have a little more time to experiment. The upshot is that it works extremely well and is easy to set up.

2 Likes