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.
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.
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
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.
Don’t know… It was my conclusion because they have 128 steps in one turn and feel smooth… also got the M32 recently 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.
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.
So you get stable readings with more than 10 bit resolution? (I don’t believe you 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.
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
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…
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.