An efficient method for scaling note event expressions and automation data in a relative manner. For instance, this would allow selecting a group of notes and then increase or decrease their velocity maintaining the relative distances between their values, instead of simply raising or lowering all values by a static amount.
To extend this idea a bit further, relative scaling of a data range ramping up or down becomes especially useful for changing existing data into buildups or fades, while still maintaining previous dynamic performance aspects. For example, imagine you’ve already performed or programed in a dynamic snare roll with strong beats and weak beats, but now you want to use that roll in a buildup. By doing a relative tilt/ramp of the velocity values for that snare roll, you can still maintain that musical performance into the edit of the buildup, instead of having to re-program and/or re-perform the same thing except now in a crescendo.
The video below in the links section (from 8:40 ro 11:00) shows how this is done in Cubase, which is my most missed feature in that DAW. Not shown in that video is that the same scaling handles are also automatically applied to any piano-roll Midi CC parameter as well as any automation data in the arranger.
Note that as far as implementing into Bitwig, I don’t think they would need to necessarily copy-cat Cubase’s (rather good) implementation, but could be modified to fit Bitwig’s existing aesthetic and workflow concepts. In particular, it might be cool to have a data scaling curve that could be not only a straight line or tilt to scale with, but could also shaped up or down much like the automation curves between data points. I think this would actually one-up what Cubase has done.
What is this feature about?
Fast and efficient editing of midi velocity/expression as well as automation data.
What problem(s) would this feature resolve?
Midi and automation data editing is possible, but inefficient, as it relies on either editing ranges of data by a static value, or by editing individual points or curves between points.
How does this feature fit in Bitwig as a product?
I want to say yes, in that it fits in with a tight focused workflow that’s part of Bitwig’s ethos. On the other hand, Bitwig has been often noted (at least in the subreddit) to be lacking in more basic DAW-centric functionality as opposed to the myriad sound design tools in its arsenal. I think this feature would help balance the scales, so to speak, to make Bitwig more well-rounded in the DAW marketplace.
Is there already an alternative way to achieve this on Bitwig?
Partially. For midi velocity in particular, the inspector has a velocity histogram sub-menu where you can find a scalable parameter called “scale” that can essentially compress or expand the relative velocities. By raising this up or down and then also moving the “mean” value up and down, you can achieve the relative scaling up and down shown in the video.
You cannot, however, do this in a ramp over time. And this is also limited to only velocity; not other midi expressions, Midi CC values, or automation data. If you want to get really clever, there may be some modulator workarounds, but the point here is efficiency in editing, so that really defeats the purpose of this request.
Could it be implemented using Bitwig components or APIs, without Bitwig team’s support?
No. At least not in any sort of efficient manner, which is the main point here.
Could it be provided by a VST or something else reasonably integrated with Bitwig?
Also no.
Are there other products that offer this feature?
Cubase certainly does, as shown below. Not sure about other DAWs.
Relevant links (optional)
The following video (auto-starting at 8:40 until about 11:00), shows how this is implemented in Cubase. Note that although the demonstration focuses on Midi velocity only, the same implementation is carried over to Midi CC (also within the piano-roll) as well as automation data (in the arranger view).