Jump to content

DESIGN BUG: Gain knob on MIDI tracks


JohnK

Recommended Posts

MIDI track gain

It isn't really a "bug" as it does what it says its suppose to do, but, I think it should be doing something else. It is trying to mimic track gain, that is present on audio channels, but I think it fails in its design in the following ways.

To simplify my post I'll let you in on what i think it should do. I propose that it should instead act as a multiplying factor of the MIDI controller for volume. So, at 0 it would leave the volume as it is, if turned to the left (say -0.9) it would only be 10% of the volume (MIDI Ctrl 7). If turned up way to the right (say +2.0) it would be 200% of the tracks volume slider value.

Some points on why I call it a failure:

1. Track gain on an audio channel makes no difference to the timber. On midi, the velocity of a patch will significantly change the timber of the patch. For example on many patches, the filter will open more if I increase the velocity.
2. On a piano simulation, lowering the velocity below a threshold would mean notes would not be played at all. ie skipped. But on an Audio track gain, they simply get played but very softly.
3. On an organ patch, which is not velocity sensitive, it would have no effect at all.
4. It is a duplication of +velocity, and thereby wasted and confusing to the user.
5. The tonality of a synth that has very distinct sample layers or an analogue simulation with a lot of resonance and a big mapping of velocity to cut-off, the sound would be adversely affected. ie not as the user may play in with variable velocities.

The benefits of using a multiplying effect to volume:
1. All the tonality changes due to performance velocity differences are kept. Therefore its more life-like, and less mono-toned. As would be the case if the velocities are simply bumped up all to the max.
2. The Volume envelopes remain valid, and act as a % of max volume. This benefit is actually what started me down this rabbit hole. If I have say 10 volume envelopes, I have to edit every one of these individually to actually change the mix of the track in the final outcome. If the gain worked as a multiplying factor, then all the envelopes would simply by multiplied up or down  by the gain multiplying factor. I could leave the volume envelopes alone, and change the level of the track in the mix, via  the gain.
3. Remove the duplication and wasted control. As its already there as something else
 

Thats all I can think of right now...

Edited by John Kalabric
Link to comment
Share on other sites

You can already select multiple midi tracks and by click - dragging the numbers in the track view.  While they are highlighted hold down the CTRL key and change the Velocity or any parameter and they will all change.

3. On an organ patch, which is not velocity sensitive, it would have no effect at all.
4. It is a duplication of +velocity, and thereby wasted and confusing to the user

No - >

On a good organ patch the tube drive should change the tone to a more overdriven sound as the velocity is changed.

There is a great plugin I use for getting piano and other tones just right. Two actually 

CSMultiCompander and MidiEQ

https://viramor.com/

You will love the control of the tone with CSMulticompander!

 

 

 

Link to comment
Share on other sites

2 minutes ago, Max Arwood said:

You can already select multiple midi tracks and by click - dragging the numbers in the track view.  While they are highlighted hold down the CTRL key and change the Velocity or any parameter and they will all change.

3. On an organ patch, which is not velocity sensitive, it would have no effect at all.
4. It is a duplication of +velocity, and thereby wasted and confusing to the user

No - >

On a good organ patch the tube drive should change the tone to a more overdriven sound as the velocity is changed.

There is a great plugin I use for getting piano and other tones just right. Two actually 

CSMultiCompander and MidiEQ

https://viramor.com/

You will love the control of the tone with CSMulticompander!

You appear to have missed my point completely.

I spoke nowhere about selecting multiple tracks?

As for a velocity sensitive organ, that was simply and purely an example of a patch that MAY be not velocity sensitive at all. All the organ patches that I remember using are actually velocity sensitive, but in the real physical world, an organ is not, and hence I used it as an EXAMPLE, not a complaint that they are not velocity sensitive. I simply couldn't think of a better example of an instrument that is not velocity sensitive, and hence would NOT respond to the gain control as it stands. A "good organ patch" is 100% irrelevant. I have over 1K organ patches on top of those in the 70+ GM SoundFonts, and I have probably only used many less than 5 in all my tracks.

As for the extra's, that has nothing to do with if the gain control could be improved or should be changed. I am not looking for ANOTHER plugin to plug holes in CW. Especially when changing the Gain control as I suggest, would up the functionality built into Cakewalk.

Link to comment
Share on other sites

The Gain knob on MIDI tracks acts as a velocity trim. This isn't a design bug, it was a design decision.

Whilst I don't disagree with your suggestion (which is a pretty sensible one to be honest), given that there's no MIDI equivalent of gain, your suggestion is no more valid a solution than what is currently there. In fact you could argue that since gain is applied at the beginning of the chain and volume at the end, velocity actually makes more sense than essentially having two controls over volume.

Personally, I would argue that having gain control CC11 (expression) would be more suitable than either velocity or volume, but even then its behaviour is different depending on the instrument being controlled.... just as depending on the patch, velocity doesn't always make a change in timbre - or even in volume as you've pointed out!
 

  • Like 2
Link to comment
Share on other sites

3 minutes ago, msmcleod said:

The Gain knob on MIDI tracks acts as a velocity trim. This isn't a design bug, it was a design decision.

Whilst I don't disagree with your suggestion (which is a pretty sensible one to be honest), given that there's no MIDI equivalent of gain, your suggestion is no more valid a solution than what is currently there. In fact you could argue that since gain is applied at the beginning of the chain and volume at the end, velocity actually makes more sense than essentially having two controls over volume.

Personally, I would argue that having gain control CC11 (expression) would be more suitable than either velocity or volume, but even then its behaviour is different depending on the instrument being controlled.... just as depending on the patch, velocity doesn't always make a change in timbre - or even in volume as you've pointed out!
 

Obviously. I disagree.;)

As I said, I didn't think it was really a bug in operation, but I think it is a weakness in the design, that could be improved to provide an extra layer of functionality.

Having 2 volume controls is no more "wrong" than two velocity controls. EXCEPT, the second volume control I am suggesting, acts differently, while the second velocity, does the exact same thing. i.e. no benefit, while my version of the gain control has a big benefit. So, less, ummm... wrong.

As for the expression control. That's what actually got me looking into what the gain control did on a MIDI track in the first place. I had an old project that used an envelope on the expression control, as a pseudo second stage volume control. When I upgraded my sound-font player, the track actually started to present an unwanted vibrato. Which, I realised (actually assumed9_9) is how the expression control should be acting per the sound-font specs. My previous softsynth had a bug, that I was taking advantage of.

In short, the expression control  is NOT for use as a volume trim control. So, that leads me back to a fix to the duplicated Gain control, to better mimic a gain control of an audio track, which it obviously is there for.

Link to comment
Share on other sites

56 minutes ago, Kevin Perry said:

having 2 volume controls makes it more confusing for users (IMHO).

But if you read the actual OP. It is NOT two volume controls. And if its is confusing, it is also confusing in the audio tracks, where the gain acts as a secondary volume trim.

But are you saying two volume controls, which actually have different purposes, is more confusing than having two velocity offset controls that do the EXACT same thing? 

Even if it were more confusing, converting the Gain control on MIDI tracks adds functionality that there is currently no other simple way of achieving. While two velocity trim controls obviously waste the extra control. Extra functionality, can be more confusing, but other users do not like unnecessary redundancy, especially when  it is limiting.Currently, I have no way to lower or raise the volume on a single track of a multitimbral synth , which has a volume envelope, without modifying the envelope to suit the current other specifics. The multiplier as gain, would be a significantly  more generic system which would mimic the same control on an audio track, much more closely.

Audio does not have velocity, and if you don't wish to use the gain multiplier, use the velocity offset, which is exactly what you want. But, without the gain multiplier, you have two velocity offset controls, and the rest of us have nothing.

Edited by John Kalabric
correct quote
Link to comment
Share on other sites

When you said 10 Envelopes I was thinking 10 tracks. It works the same on a single track with 10 envelopes.  This works with multiple clips and multiple volume envelopes in the same track.

Set the edit filter to Volume

Click 3 times on the track number

CTRL Drag from anywhere - all nodes move the direction you choose. Hold CTRL- locks volume up or down Shift-locks left and right for timing shifts.

If you need more volume than the Midi allows - You have two choices 1 You can lower everything else (An master/extra volume here would  be nice) 2 Just use the Synth Audio out volume.

++++++++++++It would be nice to have a volume in the console that would change all the volume envelopes

++++++++++++or be a master type midi volume but that is where we have to use the synth audio out.

VSTi's already always have 4 volume controls and can have possible 5 or more!

A sample Violin track (Just assume I have 4 violin voices I am working with)

Midi volume

Midi Velocity (I know not exactly volume on better VSTi's)

Synth Audio Volume

Synth Audio Gain

(more)

#5 Group 1 Violin Bus  Volume and Gain->String Bus

#6 Group 2 String Bus Volume and Gain-> Music Bus

#7 Music bus to Volume and Gain->Master Bus

This is 10 volumes and not an uncommon arrangement.

Is that what you are talking about?  Or can you give and example or show what you would need another volume so I can understand?

 

Link to comment
Share on other sites

2 hours ago, Max Arwood said:

When you said 10 Envelopes I was thinking 10 tracks. It works the same on a single track with 10 envelopes.  This works with multiple clips and multiple volume envelopes in the same track.

...snip...

Is that what you are talking about?  Or can you give and example or show what you would need another volume so I can understand?

 

The above may be common for you. My set up is that I commonly use 2 or more multi-timbral synths, each capable of 16 parts each. And Cakewalk itself comes with a 16 part multi-timbral synth; i.e. TTS, and a big feature of MIDI is 16 parts, so I am not the only one that uses multi-timbral synths. Under this use case, I will take you through why each of your "10" (only 7 by my count) volume controls do not work as a track volume.

But first, lets address the same issue again. Read my OP, as far as I can read, nowhere do I mention or hint at anything about "selecting 10" envelopes, or ten tracks. Please, this request has NOTHING TO DO WITH MULTIPLE SELECTS. Or please quote where in the OP I am not clear. and have even hinted at multiple track selection OR envelope selection?

And back to your 10 ideas (7 by my count) for TRACK volume:

1. A sample Violin track (Just assume I have 4 violin voices I am working with)
    Midi volume

    
I have a control for track volume in the interface in Cakewalk, BUT this control gets cancelled out / over-ridden, if I use an envelope (and to be clear, that is a single envelope) for MIDI volume.

So now, I cannot change the volume with the track volume slider. Further, if I am doing a mix down, to change the volume mix of the part in question, I have to edit and change every single inflection/elbow point in the envelope. And this edit is a destructive edit. Now if I am playing the little up / little down game, this will become very arduous (remember, every elbow point), and destructive.
    
2. Midi Velocity (I know not exactly volume on better VSTi's)
 As you agree, and as has been covered above, VELOCITY IS NOT A VOLUME CONTROL. i have patches that are ALL about their velocity response. Using an offset destroys the patch.

3. Synth Audio Volume
I am using a multi-timbral synth (up to 16 parts) or multiple multi-timbral synths. So changing the overall synth audio out volume on this single synth, affects every part played by that synth (up to 16), not just the single track I am trying to change. So if I have two multi-timbral synths, I not only have to go back to each individual MIDI track and change each individual track volume of that synth in question (since the overall output has been altered) but also I am messing with the mix between each of the two (or more synths), where the other(s) one could have 16 tracks in itself. Adjusting the total synth volume destroys the mix between all tracks. In simple terms, its not a "track" volume when using a multi-timbral synth. And if I have volume envelopes on any of the affected synths, boy am I in for some pain. In simple terms, its not a "TRACK" volume.
    
 Having a multiplier as the gain averts all the above completely, as the gain/multiplier only affects that one synth track It is encapsulated in the specific MIDI track.

4. Synth Audio Gain
Exactly the same issue and reason, it is not a "track" volume, see point 3.

5. Group 1 Violin Bus  Volume and Gain->String Bus
 Exactly the same issue and reason, it is not a "track" volume, see point 3.

6. Group 2 String Bus Volume and Gain-> Music Bus
Exactly the same issue and reason, it is not a "track" volume, see point 3.

7. Music bus to Volume and Gain->Master Bus
Exactly the same issue and reason, it is not a "track" volume, see point 3.
    
You also appear to have double counted some headings, as individual items/methods, as I only come to 7 from your post. Have I missed any? I only count that you proposed 7, all of which do not work as a TRACK volume, for the above given reasons.

By Changing the gain to a volume multiplier:
i. Only affects the one single track it is used on. Does not require you to go back and adjust every other track, after every  single small adjustment
ii. If you have a volume envelope(s), you do not need to edit it, as the multiplier does that all for you. NB: A volume envelope adjust is destructive. You go too low and you will lose resolution. Having gain as a multiplier, means you can draw it with full 127 step resolution and always keep it that way.
iii. Its not an offset, but a multiplier. If you offset the velocity down 90%, some notes may end up with a velocity of 0 and thus will not be played by many instruments. An offset, mathematically speaking (and by what you hear), is also not relative in volume to the rest of the other tracks.
iv. Removes the confusion of the duplication of having two differently named controls, for the exact same result i.e. velocity offset.
v. Existing users that have used the velocity offset (including me) keep their values in the duplicated velocity offset control. i.e.nothing is lost, its only a gain (not meant to be a pun on words...).

What in the above, and please use my reference numbers to clarify which point you are asking about, is invalid?

 

Edited by John Kalabric
Link to comment
Share on other sites

48 minutes ago, Kevin Perry said:

1 - Aha...read up on Offset Mode.  I think it does what you want/.

NOW we are getting somewhere! thanks!👍

I just tried it on one project & track, and it sounds to do exactly what I need. However, when I read the documentation, it sounds like mathematically, it would not.:$

For example, in offset mode, say I have a volume envelope that goes down linearly from 127 to 0 over 1 bar (in 4/4 for this example), and I set the track volume to 64 (ie a mathematically -64 offset). To me, at the middle of the bar (ie 1:03:000), the envelope would be 64, and the offset would be -64, so it would send 0 for volume to the track:S . But when I solo the track, I *think* i can still hear it past that point. I need to do more tests/investigation. I'm obviously doing something wrong or miss-understanding it big time, or hearing things that are not there.

Link to comment
Share on other sites

On 8/13/2020 at 3:42 AM, John Kalabric said:

In short, the expression control  is NOT for use as a volume trim control. So, that leads me back to a fix to the duplicated Gain control, to better mimic a gain control of an audio track, which it obviously is there for.

Not sure what you mean here--asking for clarity. With hardware I have frequently used CC 7 for overall volume and CC 11 for per channel volume tweaks.

Are you saying that you use a controller that uses expression in a certain way that precludes this usage (or that the use of CC 11 in this way might interfere with someone who might have such a controller)?

 

Link to comment
Share on other sites

4 hours ago, John Kalabric said:

By Changing the gain to a volume multiplier:
i. Only affects the one single track it is used on. Does not require you to go back and adjust every other track, after every  single small adjustment
ii. If you have a volume envelope(s), you do not need to edit it, as the multiplier does that all for you. NB: A volume envelope adjust is destructive. You go too low and you will lose resolution.
Having gain as a multiplier, means you can draw it with full 127 step resolution and always keep it that way.
iii. Its not an offset, but a multiplier. If you offset the velocity down 90%, some notes may end up with a velocity of 0 and thus will not be played by many instruments. An offset, mathematically speaking (and by what you hear), is also not relative in volume to the rest of the other tracks.
iv. Removes the confusion of the duplication of having two differently named controls, for the exact same result i.e. velocity offset.
v. Existing users that have used the velocity offset (including me) keep their values in the duplicated velocity offset control. i.e.nothing is lost, its only a gain (not meant to be a pun on words...).

What in the above, and please use my reference numbers to clarify which point you are asking about, is invalid?

 

Some questions to try to understand what you proposed:

  1. Is the multiplier based on percents?
  2. If so, does it have a min and a max--e.g. 0% to 400%?
  3. If not,  what is it based on (e.g., 127 values)?
  4. What hardware/software parameter does it change?

Also, can what you want be done with this--the CSMultiCompander?  And if so, what settings would give you what you propose if there were a single track control with that functionality?

Just trying to understand your proposal.  (Apologies if your posts already answer these questions; I have read them and there are issues discussed that prevent me from seeing the answers.) 

 

 

Link to comment
Share on other sites

Ok, so I have two things I need to say.

1. SORRY! :$ and for what I am sorry, about, see point 2.

2. I was WRONG regarding expression not being a kind of volume control. I did an actual check of the MIDI specs and Soundfont specs, and it IS an adjustment of ONLY volume. The volume (CC7) sets the maximum value for volume, and expression (CC11) is for the adjustment from 0 and up to the max volume set by CC7.:$

I thought otherwise because an old CWP I opened that used CC11 to fade out near the end on a strings track, had some extreme vibrato that wasn't there originally. I thought that maybe the old VSTi I used to load/play the soundfont did not respect vibrato on expression. In hind sight, maybe it was actually a delayed vibrato on the patch. After reading the specs, I went back and tested the VSTi with other patches, and there was no vibrato added with CC11. So, sorry about all that, my bad. I will go back and mark those statements as incorrect in my old posts (I will simply leave them in, but strike them out to keep the logic in the flow). The other thing I learnt reading the specs, is that CC11 is actually the course control, and there is another one for fine control (CC43) to enable 128 different levels between each of the 128 levels of CC11. No-one uses or even supports it, as it really becomes theoretical to be able to hear the volume adjustments down to that detail.

Even though this re-enables my ability to control track volume (now that I know CC11 operates how I though it did a week ago), I still think for all the other reason above, that mapping track Gain on a MIDI channel to velocity, is far from optimal.

Regarding the above questions by User 905133, I will answer these a little later, possibly with diagrams!, I have a few things I need to sort in the physical world first.

  • Like 1
Link to comment
Share on other sites

12 hours ago, John Kalabric said:

Ok, so I have two things I need to say.

1. SORRY! :$ and for what I am sorry, about, see point 2.

2. I was WRONG regarding expression not being a kind of volume control. I did an actual check of the MIDI specs and Soundfont specs, and it IS an adjustment of ONLY volume. The volume (CC7) sets the maximum value for volume, and expression (CC11) is for the adjustment from 0 and up to the max volume set by CC7.:$

I thought otherwise because an old CWP I opened that used CC11 to fade out near the end on a strings track, had some extreme vibrato that wasn't there originally. I thought that maybe the old VSTi I used to load/play the soundfont did not respect vibrato on expression. In hind sight, maybe it was actually a delayed vibrato on the patch. After reading the specs, I went back and tested the VSTi with other patches, and there was no vibrato added with CC11. So, sorry about all that, my bad. I will go back and mark those statements as incorrect in my old posts (I will simply leave them in, but strike them out to keep the logic in the flow). The other thing I learnt reading the specs, is that CC11 is actually the course control, and there is another one for fine control (CC43) to enable 128 different levels between each of the 128 levels of CC11. No-one uses or even supports it, as it really becomes theoretical to be able to hear the volume adjustments down to that detail.

Even though this re-enables my ability to control track volume (now that I know CC11 operates how I though it did a week ago), I still think for all the other reason above, that mapping track Gain on a MIDI channel to velocity, is far from optimal.

Regarding the above questions by User 905133, I will answer these a little later, possibly with diagrams!, I have a few things I need to sort in the physical world first.

I don´t make orchestral music, but I believe that the common practice with orchestral sample libraries is mapping CC11 to the Mod Wheel and use it to ride expression as you play your midi controller.

Link to comment
Share on other sites

9 hours ago, JoseC said:

I don´t make orchestral music, but I believe that the common practice with orchestral sample libraries is mapping CC11 to the Mod Wheel and use it to ride expression as you play your midi controller.

And that's exactly what i was thinking. however, as i said above, I read the MIDI specs and the soundfont specs (which was the patch i was using), and they both explicitly document that CC11 ONLY changes the volume. And as the SoundFont spec details so, the engine would/should not have a mapping of CC11 to pitch or the LFO depth. It has been a while since I have made my own soundfonts with something like Vienna to check if that is the case when creating a patch.

I tested a few existing string/orchestral patches I had as SoundFonts, and they did not respond to CC11 with anything but volume. 

Link to comment
Share on other sites

1 hour ago, John Kalabric said:

And that's exactly what i was thinking. however, as i said above, I read the MIDI specs and the soundfont specs (which was the patch i was using), and they both explicitly document that CC11 ONLY changes the volume. And as the SoundFont spec details so, the engine would/should not have a mapping of CC11 to pitch or the LFO depth. It has been a while since I have made my own soundfonts with something like Vienna to check if that is the case when creating a patch.

I tested a few existing string/orchestral patches I had as SoundFonts, and they did not respond to CC11 with anything but volume. 

Yes, Expression is only volume, nothing else. If you map it to the Mod Wheel, you should take care that no other parameter is mapped. The most common use for the wheel is vibrato, so it could be that both Vibrato and Expression  become mapped to it at the same time. 

Link to comment
Share on other sites

 

let me answer the easy ones first,.

On 8/14/2020 at 11:27 PM, User 905133 said:

Some questions to try to understand what you proposed:

  1. Is the multiplier based on percents?
  2. If so, does it have a min and a max--e.g. 0% to 400%?
  3. If not,  what is it based on (e.g., 127 values)?
  4. What hardware/software parameter does it change?

1. Yes, but multiple parameters. I ill explain what I mean by that in a later post. It is complex, and the devil is in the detail; NB; the single dial interface would be hiding the complexity from the composer, as all good software does.

2. As I will explain the multiple parameters later, for simplicity, and I am not 100% firm on it at this stage (As its still not set in stone in my mind and the devil is in the detail) I would propose that the range of values would more likely be conceptually -infinity to +infinity. -infinity (although kinda useless) would conceptually be telling CW to do everything possible to make the resultant volume 0; basically act like muting the track and hence redundant. The actual -infinity setting would be practically useless in my eyes, BUT the dial position JUST before it may be of use; ie as quiet as possible without being muted. However, the +ve infinity could useful, by asking CW to do everything possible (within the track), to make what is playing, as loud as possible. When I explain later what/how I am thinking this would be achieved, it will also become clearer.

On 8/14/2020 at 11:27 PM, User 905133 said:

Also, can what you want be done with this--the CSMultiCompander?  And if so, what settings would give you what you propose if there were a single track control with that functionality?

Just trying to understand your proposal.  (Apologies if your posts already answer these questions; I have read them and there are issues discussed that prevent me from seeing the answers.) 

That control  has the issue that it is not a prominent dial (ie Gain) in the midi inspection track. I haven't looked too far into it (there are warnings its still in dev and should not be considered bug free). On first glance, it looks like it may be able to effectively achieve the same results I am thinking of, but would require a LOT more complex configuration over using a single dial.

  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...