MIDI control resolution

MIDI control resolution
« on: July 31, 2018, 05:29:52 AM »
It has been brought to the attention that the REV2 uses only 7 bits for MIDI control. Even when using NRPM it only supports mostly 7 bits values.

So now that I have received the Moog Sub Phatty I must say I'm very impressed with the MIDI implementation. I made a screenshot of a part of the manual.


Re: MIDI control resolution
« Reply #1 on: July 31, 2018, 06:13:56 AM »
I agree, that's a weak resolution.

Re: MIDI control resolution
« Reply #2 on: July 31, 2018, 06:23:30 AM »
I agree, that's a weak resolution.

REV2 yes, Moog perfect.

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: MIDI control resolution
« Reply #3 on: August 01, 2018, 03:23:18 AM »
This is because the NRPNs were not meant to do live tweaks... it was made to edit the parameters, and most parameters do not have more than 7bits of resolution... a few have more or less... this is the case with many synths actually... why would anyone want a bigger resolution when setting the cutoff initial value!? it makes no sense really. The stored parameter's initial values is not needed in a greater resolution... modulation of them do though... and they are of higher resolution...

You can actually test this yourself rather easily... set the frequency parameter of an oscillator to say; C4... if you add one value to that (C#4) you increase the parameter by one semitone... a rather abrupt increase in pitch... this is because of the 7bit resolution... now set LFO1 destination to osc1 frequency, and set the amount to 1... when you listen to this now, you do NOT get a modulation if the pitch than jumps in semitones, you get smooth vibrato because the internal modulation has a much larger resolution than 7bits... this goes for the cutoff parameter as well, or any other parameter that is modulated by en LFO, Envelope or even the Pedal, ModWheel or Pitch wheel and Aftertouch...

You have to understand the difference between initial parameter values (those that are actually stored in the program data (and in the SysEx dumps), and the modulation sources....

MIDI CCs though are only 7bit, so there you WILL experience low resolution... this is a limitation of MIDI itself... the reason the MOOG has 14bit values is because they take advantage of sending two CCs in tandem, to form a 14bit MIDI CC resolution... DSI does not use this feature though, and it would be nice to se an option for this in the future, but in essence it's really overkill, as NRPNs are used for editing initial values as I stated before... not for realtime physical modulation stuff.

This is most noticable if you route the ModWheel to a destination parameter directly in the modmatrix... if you have Local On, then this routing would route the ModWheel directly to the destination with full resolution... but if you use Locel Off, and use the synth wth your DAWs MIDI Echo function, then the REV2 will be limited to MIDI's 7bit resolution of CCs, and send the ModWheels high resolution out of the REV2 as a truncated 7bit CC... and when you DAW return it so that your REV2 should play the changes you made to the ModWheel, then it will recieve a 7bit truncated ModWheel CC... now you will get stepping in the filter cutoff, unless the REV2 has some kinf of internal interpolation algorithm to smooth out the 7bit resolution... but DSI said that REV2 does not use any interpolation of incoming MIDI CC values...

So in short: if you want big resolution with your REV2... don't use Local Off in tandam with your DAW's MIDI Echo function... use REV2 on it's own with Local set to ON! .. .then you will take advantage of the REV2's full resolution of it's physical controls...

note though, that some of the controls do have larger resolution as per the MIDI standard... Pitch Bend for example has full 14bit resolusion.
« Last Edit: August 01, 2018, 03:26:23 AM by Razmo »
If you need me, follow the shadows...

Re: MIDI control resolution
« Reply #4 on: August 01, 2018, 04:37:01 AM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.


Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: MIDI control resolution
« Reply #5 on: August 01, 2018, 05:37:47 AM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.

Sure it would be nice to control a parameter via a 14bit NRPN... but if you think of it, if the stored data for the cutoff is a value from 0-127 (7bit), and you edited this stored value with a 14bit NRPN, then the NRPN value would have to be truncated to 7 bits before being stored in the program data.. if the recieved NRPN's big 14 bit resolution was then directly stored to the filter internally with a greater resolution, then later when you dial in that preset, it still only has a 7bit stored value for the cutoff... if 14bit NRPNs are to be of any real advantage, then the stored value should also be a 14 bit wide value... this is NOT the case with DSI synths... most stored values are from 1-7bit, a few is 8 bits... changing this to 14bit would require a major OS upgrade, and all current editors that rely on the SysEx dump structure would have to be fixed for the new dump format.

I've made editors for several MOOG synths... and they actually DO have program data stored in 14bits... all parameters can have values from 0-16383... therefore, making NRPNs that control in that resolution makes good sense... it just does not with DSI's synths really...
If you need me, follow the shadows...

Re: MIDI control resolution
« Reply #6 on: August 01, 2018, 05:58:51 AM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.

Sure it would be nice to control a parameter via a 14bit NRPN... but if you think of it, if the stored data for the cutoff is a value from 0-127 (7bit), and you edited this stored value with a 14bit NRPN, then the NRPN value would have to be truncated to 7 bits before being stored in the program data.. if the recieved NRPN's big 14 bit resolution was then directly stored to the filter internally with a greater resolution, then later when you dial in that preset, it still only has a 7bit stored value for the cutoff... if 14bit NRPNs are to be of any real advantage, then the stored value should also be a 14 bit wide value... this is NOT the case with DSI synths... most stored values are from 1-7bit, a few is 8 bits... changing this to 14bit would require a major OS upgrade, and all current editors that rely on the SysEx dump structure would have to be fixed for the new dump format.

I've made editors for several MOOG synths... and they actually DO have program data stored in 14bits... all parameters can have values from 0-16383... therefore, making NRPNs that control in that resolution makes good sense... it just does not with DSI's synths really...

I agree that if the stored value is in 7bits only it makes no sense to send 14bits.

maxter

  • ***
  • 419
Re: MIDI control resolution
« Reply #7 on: August 02, 2018, 10:11:37 AM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.

Yes, that's exactly why some parameters would benefit from 14 bit resolution via MIDI CC... For live tweaking, and/or EXTERNAL modulation... Someone might want to use more than the onboard 4 LFO's, for example, to modulate parameters... I don't think the point is what resolution the program values are stored with, 7 bit is fine for that, it could just store the greater/main value, whichever it is. But for external modulation, 7 bit is not that great, if there indeed is no internal interpolation. That really IS a greatly limiting use-factor for the REV2, imho.
The Way the Truth and the Life

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: MIDI control resolution
« Reply #8 on: August 02, 2018, 10:41:36 AM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.

Yes, that's exactly why some parameters would benefit from 14 bit resolution via MIDI CC... For live tweaking, and/or EXTERNAL modulation... Someone might want to use more than the onboard 4 LFO's, for example, to modulate parameters... I don't think the point is what resolution the program values are stored with, 7 bit is fine for that, it could just store the greater/main value, whichever it is. But for external modulation, 7 bit is not that great, if there indeed is no internal interpolation. That really IS a greatly limiting use-factor for the REV2, imho.

If that was the way it was done, then what would you store in the program data, if the 14bit resolution value landed somewhere in between the equivalent of two adjacent 7bit values? ... if the 14bit value is actually right in between say; 64 and 65, then the sound you hear will be between the two values, but when you recall it again it will not... it would have been quantized.... this means that what you HEAR before you save the program will in many cases not be the same you hear when you later recall that program... it's not really a wise idear unless the stored values reflect the exact same value in NRPN.

You could instead create a 14bit control mode that users who want 14bit NRPN resolution could choose to use, but it should certainly be possible to switch this off... two 7bit values right next to each other can sound very different... anyone who want 14bit resoultion should know this, since this is the main reason why they wanted 14bit resolution in the first place ;)

Another solution would be to create new NRPNs in addition to the ones allready there, that gave you 14bit resolution... then the change would be invisible to the user and external editors, and you would not have to worry about any modes to switch...

But then again... it would require a lot of work to implement this, and with DSI's legacy of adding and fixing MIDI features and bugs, I belive it's wisest to forget about this :D
« Last Edit: August 02, 2018, 10:49:50 AM by Razmo »
If you need me, follow the shadows...

maxter

  • ***
  • 419
Re: MIDI control resolution
« Reply #9 on: August 02, 2018, 11:12:28 AM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.

Yes, that's exactly why some parameters would benefit from 14 bit resolution via MIDI CC... For live tweaking, and/or EXTERNAL modulation... Someone might want to use more than the onboard 4 LFO's, for example, to modulate parameters... I don't think the point is what resolution the program values are stored with, 7 bit is fine for that, it could just store the greater/main value, whichever it is. But for external modulation, 7 bit is not that great, if there indeed is no internal interpolation. That really IS a greatly limiting use-factor for the REV2, imho.

If that was the way it was done, then what would you store in the program data, if the 14bit resolution value landed somewhere in between the equivalent of two adjacent 7bit values? ... if the 14bit value is actually right in between say; 64 and 65, then the sound you hear will be between the two values, but when you recall it again it will not... it would have been quantized.... this means that what you HEAR before you save the program will in many cases not be the same you hear when you later recall that program... it's not really a wise idear unless the stored values reflect the exact same value in NRPN.

You could instead create a 14bit control mode that users who want 14bit NRPN resolution could choose to use, but it should certainly be possible to switch this off... two 7bit values right next to each other can sound very different... anyone who want 14bit resoultion should know this, since this is the main reason why they wanted 14bit values in the first place ;)

Yes, that's true, but it wouldn't be any more limiting compared to using 7 bits, as we get a value of 64 or 65 anyway in that case, so yes the value/sound would be quantized, but as is it is so anyway in that regard, so there would be nothing to lose. But I get your point. Anyway I came to think of the modulation matrix, and the pre-routed external CC slots, 1 2 4 (optionally 11 in the matrix) and aftertouch, there has to be interpolation depending on the mod amount values there anyway?

Anyhow, there's the "Brightness: Added to filter cutoff frequency", don't know the CC straight up, but at least that one could be 14 bit perhaps, bi-polar? Probably the most valued parameter for external modulation for most folks, that's the ONE. I'm happy that pitch bend is 14 bit, 'cause pitch stepping is really horrible, but with high resonance filter stepping is pretty painful aswell. Personally I don't mind every programmable parameter being 7 bit, but a few live tweak-parameters are different to me.

As with the modulation wheel, what if I record notes and mod-wheel motions into a daw or midi sequencer, for a little editing, and then play it back, it won't sound the same, as it's then 7 bits... instead of whatever resolution the REV2 used internally when I recorded it... Not optimal.
The Way the Truth and the Life

maxter

  • ***
  • 419
Re: MIDI control resolution
« Reply #10 on: August 02, 2018, 11:14:58 AM »
Could be a reason why Moog opted for 14-bit...

I'm not complaining though, I'm really happy the way the REV2 is atm, and just the possibility of having this discussion is GREAT! I mean this analog synth with digital control, being updated and bettered, I really believe this will potentially be one of the best synths ever (if not already) if and when the "final" OS is completed. There doesn't seem to be many MAJOR shortcomings/bugs left to fix, to me.
« Last Edit: August 02, 2018, 11:24:55 AM by maxter »
The Way the Truth and the Life

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: MIDI control resolution
« Reply #11 on: August 02, 2018, 11:28:12 PM »
NRPN and RPN are really for live tweaking! A lot of VST plugins als use them for controlling (Arturia adopts CC and NRPN on all plugins) and that is really handy.

I do think that quite some parameters could benefit from 14bit resolution. Most prominent the VCF of course.

It is a bit curious that Moog decided to use the other way to get the 14 bits resolution.

Yes, that's exactly why some parameters would benefit from 14 bit resolution via MIDI CC... For live tweaking, and/or EXTERNAL modulation... Someone might want to use more than the onboard 4 LFO's, for example, to modulate parameters... I don't think the point is what resolution the program values are stored with, 7 bit is fine for that, it could just store the greater/main value, whichever it is. But for external modulation, 7 bit is not that great, if there indeed is no internal interpolation. That really IS a greatly limiting use-factor for the REV2, imho.

If that was the way it was done, then what would you store in the program data, if the 14bit resolution value landed somewhere in between the equivalent of two adjacent 7bit values? ... if the 14bit value is actually right in between say; 64 and 65, then the sound you hear will be between the two values, but when you recall it again it will not... it would have been quantized.... this means that what you HEAR before you save the program will in many cases not be the same you hear when you later recall that program... it's not really a wise idear unless the stored values reflect the exact same value in NRPN.

You could instead create a 14bit control mode that users who want 14bit NRPN resolution could choose to use, but it should certainly be possible to switch this off... two 7bit values right next to each other can sound very different... anyone who want 14bit resoultion should know this, since this is the main reason why they wanted 14bit values in the first place ;)

Yes, that's true, but it wouldn't be any more limiting compared to using 7 bits, as we get a value of 64 or 65 anyway in that case, so yes the value/sound would be quantized, but as is it is so anyway in that regard, so there would be nothing to lose. But I get your point. Anyway I came to think of the modulation matrix, and the pre-routed external CC slots, 1 2 4 (optionally 11 in the matrix) and aftertouch, there has to be interpolation depending on the mod amount values there anyway?

Anyhow, there's the "Brightness: Added to filter cutoff frequency", don't know the CC straight up, but at least that one could be 14 bit perhaps, bi-polar? Probably the most valued parameter for external modulation for most folks, that's the ONE. I'm happy that pitch bend is 14 bit, 'cause pitch stepping is really horrible, but with high resonance filter stepping is pretty painful aswell. Personally I don't mind every programmable parameter being 7 bit, but a few live tweak-parameters are different to me.

As with the modulation wheel, what if I record notes and mod-wheel motions into a daw or midi sequencer, for a little editing, and then play it back, it won't sound the same, as it's then 7 bits... instead of whatever resolution the REV2 used internally when I recorded it... Not optimal.

I asked DSI directly if there are any internal interpolation going on with incoming MIDI CCs, and the answer was no... so unfortunately, you're limited by the nature of the MIDI specification as soon as you use MIDI out/in of the REV2 when you use the ModWheel, Foot Pedal, Breath Control, Expression etc... The 14bit NRPN values are set to reflect the exact same values as in the internally stored parameter data... you have to realize that the NRPNs were intended to edit the parameters, not modulate them.

But I can certainly understand why some users would want to be able to modulate parameters via 14bits for some parameters... that is why i in my last post proposed some extra NRPNs that could remotely control any important parameters with 14bit precision... not all parameters would benefit from this, but stuff like Cutoff, Resonance, Frequency, ShapeMod, LFO Rates/Amounts and even ModMatrix Amounts would be beneficial for users wanting to automate stuff from their DAW.

Funnily enough, if you are turning the knobs on the front panel, they are allready sending out the value as an NRPN, so actually 14bit is allready supported both ways in that case... the REV2 just does not take advantage of this, because the values represent the stored data...

The physical controls like ModWheel is standard MIDI CC01... but the MIDI specification state that the first 32 CCs can have 14bits as well, if you just use a Most Significant Byte that is located at the same CC numer plus 32 (CC01 and CC33 in the ModWheels case)... but that feature of MIDI is very rarely used in any synth... only the MOOGs take advantage of this... Maybe this is what DSI ought to think about... making an option in the global parameters that would allow for these CC's to be used both in 7bit and 14bit mode... these CCs are not used in any way for editing stored program data, they are meant for direct modulation of parameters... to add this is possible without any changes to the NRPN stuff or the stored data, or making any editors obsolete... it's just a matter of making a switch in the global parameters for enabling 14bit CCs which would be applicable for ModWheel, Foot Pedal, Breath Control, and Expression... as far as I recall, the REV2 do not have support for any other CCs that reflect physical controlls that one would want to automate, and as long as these is 14bit, they could be routed to any parameter via the ModMatrix for full 14bit resolution in that case.

The reason most manufacturers do not use the 14bit resolution is probably that so few use it... many use only CC01 for ModWheel, and have other things controlled with CC33... so if the REV2 was sending out both CC01 and CC03 for a 14bit resolution, then other synths connected to the REV2 would act weird because of the added CC33 coming in... it would make the connection of other synths (modules) connected to the REV2 behave badly... this is probably also why it's an option in the MOOG synths. I'm not sure, but I think that REV2 already has other uses for some of the CCs in that range too (from CC33 to CC63).

One thing more to consider is that the REV2 does not have a physical control for Expression or Breath Controller, so these would only be sent out from the REV2, if the Pedal/ModWheel/PitchWheel/Aftertouch could be configured to send out these CCs instead... currently that is not possible, as they are hardwired to their respective CCs... so if Breath Control and Expression is going to be recieved at the REV2 in 14bit, then whatever is connected to the REV2 must also be able to send out 14bit CCs... I don't think any DAW is capable of this, and I do not believe that any hardware Breath Controller sends CCs 02 and 34 as well, so making 14bit resolusin available for these two CCs would not yield anything really... Aftertouch do not support 14bits, as it is not a CC...

Maybe you should post a request for something like this in the Feature Request topic... I'm seeing this resolution topic come up from time to time, and the more people who request it, the bigger the chance DSI will do something about it in the future... if not for the REV2, then at least for future instruments.

Luckily for me, I'm not using my DAW for MIDI anyway, so I do not need this... I record my tracks via audio instead, using MIDI only for editing the programs... therefore I have Local set to ON on my REV2 meaning that any tweaking of the ModWheel or my Foot Pedal will be at full internal resolution, and any routing of these two controls in the ModMatrix will thus also be at full internal resolution at the destination parameter to be modulated (whatever it's internal resolution is of course).
« Last Edit: August 03, 2018, 12:05:17 AM by Razmo »
If you need me, follow the shadows...

Djinn

Re: MIDI control resolution
« Reply #12 on: August 03, 2018, 04:05:49 AM »
I know for me 14bit operation on filter cutoff, resonance and other suitable controls would be highly desirable for me
I like the switchable in global idea would be the best of both worlds and keep everyone happy.. Not sure if the curtis chip is even capable of this tho.. i will put a request in the request thread as well

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: MIDI control resolution
« Reply #13 on: August 03, 2018, 04:31:44 AM »
I know for me 14bit operation on filter cutoff, resonance and other suitable controls would be highly desirable for me
I like the switchable in global idea would be the best of both worlds and keep everyone happy.. Not sure if the curtis chip is even capable of this tho.. i will put a request in the request thread as well

Oh yes, the curtis chip is certainly capable... it's allready being controlled with much higher resolution than 7bits from the ModWheel internally... it's when MIDI is involved, that everything gets truncated... the Curtis chip is analog, and the different parameters of it are controlled via CV inputs on the chip's pins... so in theory, the resolution is infinite... these CV inputs is most likely controlled from the processor via a digital to analog converter, so the resolution is dependent on these DACs... how high those DACs are in resolution I do not know, but I'm certain they are more than 7bit... probably between 12 and 16 bits, but only DSI can answer that.

Maybe they do not even use DACs to convert the digital control signals, but use a simple resistor/capacitor combo with PWM to create the control signals... that would probably be a lot cheaper than using DACs...
« Last Edit: August 03, 2018, 04:37:20 AM by Razmo »
If you need me, follow the shadows...

Gomjab

  • **
  • 110
Re: MIDI control resolution
« Reply #14 on: August 03, 2018, 11:17:45 AM »
This is because the NRPNs were not meant to do live tweaks... it was made to edit the parameters, and most parameters do not have more than 7bits of resolution... a few have more or less... this is the case with many synths actually... why would anyone want a bigger resolution when setting the cutoff initial value!? it makes no sense really. The stored parameter's initial values is not needed in a greater resolution... modulation of them do though... and they are of higher resolution...

You can actually test this yourself rather easily... set the frequency parameter of an oscillator to say; C4... if you add one value to that (C#4) you increase the parameter by one semitone... a rather abrupt increase in pitch... this is because of the 7bit resolution... now set LFO1 destination to osc1 frequency, and set the amount to 1... when you listen to this now, you do NOT get a modulation if the pitch than jumps in semitones, you get smooth vibrato because the internal modulation has a much larger resolution than 7bits... this goes for the cutoff parameter as well, or any other parameter that is modulated by en LFO, Envelope or even the Pedal, ModWheel or Pitch wheel and Aftertouch...

You have to understand the difference between initial parameter values (those that are actually stored in the program data (and in the SysEx dumps), and the modulation sources....

MIDI CCs though are only 7bit, so there you WILL experience low resolution... this is a limitation of MIDI itself... the reason the MOOG has 14bit values is because they take advantage of sending two CCs in tandem, to form a 14bit MIDI CC resolution... DSI does not use this feature though, and it would be nice to se an option for this in the future, but in essence it's really overkill, as NRPNs are used for editing initial values as I stated before... not for realtime physical modulation stuff.

This is most noticable if you route the ModWheel to a destination parameter directly in the modmatrix... if you have Local On, then this routing would route the ModWheel directly to the destination with full resolution... but if you use Locel Off, and use the synth wth your DAWs MIDI Echo function, then the REV2 will be limited to MIDI's 7bit resolution of CCs, and send the ModWheels high resolution out of the REV2 as a truncated 7bit CC... and when you DAW return it so that your REV2 should play the changes you made to the ModWheel, then it will recieve a 7bit truncated ModWheel CC... now you will get stepping in the filter cutoff, unless the REV2 has some kinf of internal interpolation algorithm to smooth out the 7bit resolution... but DSI said that REV2 does not use any interpolation of incoming MIDI CC values...

So in short: if you want big resolution with your REV2... don't use Local Off in tandam with your DAW's MIDI Echo function... use REV2 on it's own with Local set to ON! .. .then you will take advantage of the REV2's full resolution of it's physical controls...

note though, that some of the controls do have larger resolution as per the MIDI standard... Pitch Bend for example has full 14bit resolusion.

DAWs like Bitwig are great modulation sources with envelopes and LFOs. It would be great to have 14 bit support to take advantage of MIDI modulation sources without the zipper effect.