Curve adjustment for MIDI CC inside Dubler

Midi CC has only 128 possible values and this causes problems/artifacts when doing curve adjustments in DAW.

Here is an example (a bit extreme to better illustrate the issue): if I want to map Dubler range 30-40 into 0-127 in my DAW, then I only have 11 available values, that is, my DAW will have only data like 0,12, 24… etc… This is definitely not sufficient and causes audible artifacts.

A solution would be to do the range conversion inside Dubler, where the accuracy is far greater than what is available after the data passes through MIDI.

1 Like

Hi there!

Thanks for the suggestion! :slightly_smiling_face:
That sounds like a really interesting idea and I’d like to explore it. Do you know of a piece of hardware that does something similar so we can investigate implementing such behaviour.

We’ve discussed CC range limiting in Dubler before as a team internally, but shied away from it to keep the first release as simple to use as possible - and stable. But perhaps we could explore range limiting remapped into the full range as you suggest. The challenge is to keep the app simple for the majority of users.

Cheers,
-Daven

Hardware, as in, if it is simple enough that even hardware can have it, then it’s simple enough nobody will have problems understanding it?

I’m not sure if that’s what are you asking about, but frequently digital keyboards allow you to pick how heavy-weight you want it to be (light, normal, heavy, etc.). Some have a number of very specific velocity curves to pick from, other allow for more sophisticated manipulation, e.g., https://www.yamahasynth.com/montage-category/montage-understanding-velocity-sensitivity.

If you want more analogue devices, then ADSR control is something very similar, a parametric curve with 4 parameters. In cases of some modules one can even change the curvature:

ZHcksN3f87m

All kinds of dynamic processors (gates, compressors, expanders) are exactly volume curve adjustment. For example standard VCA compressors have a curve that is adjusted via threshold, ratio and make-up gain (and, in a way, wet/dry mix too), see https://www.soundonsound.com/techniques/parallel-compression for some graphs.

However, the most well-known curves of these type are brightness and contrast of your screen :slight_smile: (and gamma probably too), which appear on all kinds of monitors and projectors. Still, these are not really strictly hardware devices (would you call your laptop or smartphone a hardware?). So let me include a few software examples.

The most familiar is probably the one from Photoshop, in fact this is what I get when I google “adjustment curve” in Google. Here is a screen from Photoshop and two other graphics programs:
OJCDh9A9MQP Aq0NXr3nRBY

But even within music software, there are tons of examples (https://www.google.com/search?q=custom+velocity+curve+midi&tbm=isch), including

  • midi generation tools like AddictiveTrigger (similar to triggering part in Dubler),
  • midi filtering solutions in DAWs, like in Cantabile,
  • virtual instuments like Pianoteq,
  • effect plugins like MCompressor.

SpWWz6A0Opu

Please note that in AddictiveTrigger, which is a bit similar to Dubler, the creators thought the curve adjustment is important enough to include on the first page of the plugin, not bury somewhere deep in the options. If I were to pick one, the graph in Pianoteq is simple and very useful, it has only straight lines, but that’s ok because you can add multiple points. However, if that is hard, for example because of moving points, even something like in Cantabile (two ranges + curvature) would be awesome.

2 Likes

Great thanks for the write up, I’ll take a good read asap.

Yeah the reason I’m interested in these other cases, is on how to get the UI right should we implement a feature like this. We want Dubler to be as intuitive as possible.

Thanks again for this!