14-bit MIDI controllers

Started by Saga Musix, April 22, 2015, 14:54:03

Previous topic - Next topic

Saga Musix

I'd like to add support for 14-bit MIDI CC messages to OpenMPT's MIDI mapping feature, so that controllers with a 14-bit resolution can make even better use of PC events. Technically, 14-bit MIDI CCs are just two different CCs followed one after another, where the first CC number is in 0...31 and the second in 32...63.
I don't have any MIDI hardware that can produce 14-bit CCs, so I cannot really test the code I wrote. Does anyone here happen to have a MIDI controller which explicitely supports 14-bit CCs? I guess this feature got more popular in the last few years, older controllers are less likely to have it.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

LPChip

Not here either. Sorry...

But sounds cool though.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Saga Musix

In the meantime, 14-bit controller support has been added to the MIDI mapping feature. But of course it's still untested. Testers wanted!
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Harbinger

I was thinking about getting a MIDI controller keyboard soon, explicitly for use with ModPlug. I can ask about 14-bit MIDI when I go shopping around, but why 14-bit? Is this the new standard? The old standard (therefore the most tested)? Did you choose 14-bit because it best fit for ModPlug to work with?
Are most MIDI controllers 14-bit? Hopefully it won't affect the price when I buy....

Let me know what you're thinking, and I'll see if I can take that into account on my near-future spree! 8)

Saga Musix

#4
Most of your questions can be answered by my first post:
QuoteTechnically, 14-bit MIDI CCs are just two different CCs followed one after another, where the first CC number is in 0...31 and the second in 32...63.
A single CC value is 7-bit, hence combining two of them results in a 14-bit value.
This is, as far as I can see, a feature which is not supported by the majority of MIDI controllers. I would suspect that you will mostly find them in the more pricey range, i.e. your usual sub-100€ Korg nanoKontrol etc. won't support them, since obviously this also requries more expensive sensors in the hardware. Explicitely asking or researching for them when going to buy one can't hurt, though.
There must be some 14-bit MIDI controllers, but I've never seen one. It's not even a "new" standard if you consider that the General MIDI specs from 1991 already come with "coarse" and "fine" CCs for the first 64 CCs. You will, however, notice that most synthesizers from that time (and probably still today) only interpret the "coarse" value and ignore the "fine" setting.

Edit: I did some research:
https://www.gearslutz.com/board/music-computers/633603-14-bit-midi-controllers.html
Apparently the Novation SL MkII and Novation ZeRO SL MkII support 14-bit controllers.  The Roland A-800 Pro supposed does so as well.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Harbinger

Well, then that begs the question: why set up communication for 14-bit MIDI msgs when it's non-standard? I'm interested in your thinking on this....you're not using 14-bit 'coz it's EASIEST, are you? :P

Saga Musix

#6
It is a standard, inasmuch polyphonic aftertouch is a standard (which is also supported by OpenMPT) - both are well-defined by the MIDI Manufacturers Association and are generally not found on entry-class hardware, most likely for the very simple reason that they both require more (poly aftertouch) respectively more precise (14-bit controllers) A/D converters and other circuitry. The only difference is that 14-bit CCs are generally not found on older hardware and that polyphonic aftertouch is usually only found on even more expensive hardware.

Quoteyou're not using 14-bit 'coz it's EASIEST, are you?
I'm using it because there is no other, standardized alternative to get higher-precision controller data using MIDI? The only alternative would be something like the more modern OSC protocol, but you will see that being supported by even fewer and even more expensive hardware controllers.
Edit: To clarify it once more: A MIDI controller has only two way of transferring data with a higher resolution than 7 bits: Through proprietary SysEx messages or through the actually standardized 14-bit CCs. Obviously OpenMPT can only support the latter, and I rather implemented this than not having the feature at all, even if it only helps a small group of people.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Harbinger

Ok, I think I understand. So if I go looking for MIDI controller for ModPlug, I need to make sure it uses 14-bit controllers. But you think because it's relatively new, they may be kinda pricey? I need Poly Aftertouch anyway, so I expect to pay more. 8)

Saga Musix

Well, it's not really correlated to them being new (unless you factor in that buying a used device will cost less).
As said, both poly aftertouch and 14-bit controllers require more (possibly expensive) circuitry, which I suppose is the reason from them only appearing in the more pricey range. And in the case of 14-bit controllers, I guess there might have been other technical restrictions (memory limits and the like?) which prevented manufacturers from using them in the past. The need for 14-bit controllers mostly arose with the advent of plugins, I think, since using a 14-bit MIDI controller to program a hardware synth that only has 7-bit input anyway would be pointless - but with plugins, you have a practically unlimlited parameter resolution, so 14-bit controllers are becoming more common.
Just taking my Yamaha AN1x's controller knobs for example, it sometimes appears that they used cheap encoders with maybe even just 6 bits of resolution instead of 7 bits, since most of the time you'll see values jumping by a distance of 2 instead of 1 if you slowly turn the knob. In that case, it would of course be senseless to even think about sending these values as 14-bit CCs. If you're looking for a poly aftertouch controller anyway, changes are higher that it will also have 14-bit controllers if it's recent enough, I guess. The Novation SL MkII seems to have both on first glance.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Harbinger

#9
I'm finding that 14-bit controllers are about a bit out of my price range.

But I read somewhere that the current standard is 7-bit controller values. Does this mean that if you program for 14-bit precision, will Modplug still be able to transmit/receive 7-bit MIDI messages? Or is that like the difference between ASCII & Unicode - one or the other?

(I found an interesting article here which explains the what and why for us laymen.)

Saga Musix

Again: 14-bit precision is achieved by combining two regular CCs. The numbers of CCs that can be coupled are standardized. If you try sending both the coarse (CC0-CC31) and the fine CC (CC32-CC63), e.g. from OpenMPT to a hardware synth, the worst thing that can happen to you is the fine value being ignored, leaving you with the classic 7-bit precision of the coarse value. And when receiving data from an external MIDI device, the only way OpenMPT can make use of the increased precision is when using MIDI mapping to bind CCs to VST parameters, as obviously MIDI macros themselves cannot take advantage of increased precision (how would they? you would need to record two macros instead of one).
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Harbinger

Okay so it sounds like you're going to provide for 14-bit precision but if we only have an old 7-bit controller, we'll still be able to use MPT -- we just won't be able to take advantage of your new programming. And the only downside for you is that we can't test your new code... :-[

Saga Musix

#12
Late follow-up: Two years later I finally got a used MIDI controller that can do 14-bit CCs (Behringer BCR2000), and of course I instantly noticed that my implementation was wrong. Luckily it was so wrong that it was never executed, so the code that would take the lower 7 bits into account was never executed, just leaving the upper 7 bits exactly like before the (broken) implementation of this feature.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Saga Musix

#13
In case anyone is looking for more keyboards with 14-bit MIDI controllers, the Kurzweil K2500 / K2600 family has a giant ribbon controller that sends out 14-bit MIDI CCs. Still a great and expressive instrument if you have the space.
Funny that after all those years without 14-bit controllers, I now got two of them within less than two months...
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Fatarse

Bought myself some midi controllers , but yet to use them . Coz I'm too busy working my arse off to write music!!! I do own the mini axiom controller and mini launchkey controller. Been looking at using the ignite software to save out midi and make music that way for samples to transfer into other software to make music looks interesting! At present there is no version of ignite for winblows 10.