Open gilles504 opened 9 years ago
@gilles504 So that code fixes an issue in which light midi keyboard presses become inaudible?
If so, it seems that the real issue is on the plugin side (which you briefly mentioned), with certain instruments not being configurable to work well with low velocity values (is this correct?). If so, is this is a problem common to most plugins (external/VST and builtin), or does it affect only a select few?
Allowing keyboard-global velocity maps could still be useful though. Is this a feature that any other DAWs provide? If we implement configurable velocity curves for midi, we can also likely reuse that same code in controller input routing.
Most of lmms native instruments tends to consider velocity as a volume (and also many vst instruments). Problem occurs when a keyboard has a very wide velocity range and a fixed curve (this is the case of the akai I use, a soft note velocity is 40-50 but can drop to 1 if really soft). Most of commercial sequencer have some panels or midi filter to handle the issue.
here for ableton: http://3.bp.blogspot.com/-GSHpPMcRCB4/UddOt_vJXbI/AAAAAAAAAh0/3GXUKCP5c0o/s1600/Ableton+Velocity.png
having minimum + maximal value will be a quick fix for most of velocity range mismatch beetween keyboard and instruments. I agree that in theory, velocity is not volume... (and is not for most of integrated synthesizers like my old D20) but even on lmms the piano roll labels velocity as "Volume" (at least in French translation file)...
@gilles504 -you are actually correct the bars in piano-roll represent velocity not volume, because vol. can be changed over the duration of a note! velocity cant, that is exclusively for the attack ! I will propose a semantic change.
Hello, while trying to use the triple oscillator with a LPK25 i found it a bit weird that velocity values seem to get added up ie when playing a chord. It would be great to handle this in a way that would allow for sensitive legato (like on a monosynth) as well as for chords.
@wotwot This resourse is not the right forum for Q&A, Q&A should takes place in our dedicated help-forum :) Your Q is also irrelevant in respect to the subject. Could i ask you to create an account there: http://lmms.io/forum/ ? ..However i have a tutorial of how to make glissando chords here: https://www.youtube.com/watch?v=PcyMSpHyL8I
But the hub is not the right place for q&a
Hello,
For now velocity for midi input can be raw from keyboard or fixed to a value. It's ok with some keyboards but for keyboards with fixed velocity curve it does not work well. A better (simple) approach could be to have 2 values, min and max velocity. A much better approach should be to have a real 1->127 to 1->127 graphical editor to create a mapping curve. For now and for my needs (with an Akai LPK25 mini keyboard) I just use the fixed value as a minimum velocity value:
void MidiPort::processInEvent( const MidiEvent& event, const MidiTime& time ) ... if( fixedInputVelocity() >= 0 && inEvent.velocity() < fixedInputVelocity() ) // FIXME GFE now input is not fixed but minimum { inEvent.setVelocity( fixedInputVelocity() ); }
With this simple hack velocity is useable (with a value of 50). We absolutly need to limit the range of velocity because it seems most instrument use velocity as a volume (but that is another debate...).