This should keep LMMS responsive from the window managers POV, unless
the user selects a huge enough default sound font that loading it
takes too long.
Name the automation tracks like "[MIDI trackname] CC ##". And don't
call the automation track creation function for every CC event, as
it now will involve constructing a QString.
Too short notes had their duration rounded down to 0 on import,
as MIDI precision allows way shorter notes than LMMS, and
portsmf reports the duration as a double, where a beat == 1.0.
Was going to use ceil() first, but that might round some notes
up to a slightly longer duration.
Should be enough to add the object to the automation pattern only once,
as the objModel variable that is added will always be the same for the
same value of ccid, which indexes the ccs array.
This will speed up creation of automation tracks for MIDI CCs and pitch
bend.
This commit adds checks for conditions that are asserted during calls to
get_atom_value.
It might fix a crash that is described in 1981. Unfortunately no files
have been attached to that issue. However, I was able to crash LMMS
using a local file and this crash is gone with this fix. So hopefully this
change also fixes the crashes described in 1981.
Lmms routes all midi notes to ZSAF on channel 0, however the CC messages
not routed, and could erronusoly be sent on other channels. This would
lead to ZSAF not acting on these midi commands
This pull request routes All Midi CC messages to channel 0
fixes#1953
The original delay code, was setting it read index relative to the length
of the delay. This fixes that, now when the length is changed the read
index stays in the correct place in the buffer.
Corrected Hann (raised cosine) window function.
Corrected output-windowing logic and recalculated correction factor
for window type. Tested against white noise & triple_osc output.
removed the tick() function, and replaced the invoking code with
direct calls to update().
fixed a bug, where the low shelf bandwidth was getting the incorrect data.
This was done to increase performance when sample exactness
is not in use. This was a consern becasue of the 2 extra function
calls each frame introduced with SA.
Enabled the use of sample exactness on gain control.
After checking the m_bbfx_leftFX.getGain() function, It was found
that this functiomn only sets a member variable, and causes no other
over head, so decided that checking if the value had changed would take more
clock cycles, than the check to see if the value had changhed.
The following controls have sample exact enabled
Filter 1 Cutoff
Filter 1 res
Filter 1 gain
Filter 2 Cutoff
Filter 2 res
Filter 2 Gain
Model.isValueChanged() does not eveluate when recieving sample accurate
so added checks to see if the cutoff and res needed to be recalculated,
The delay time paramter was responding very badly ui user input.
This now has a much more plesant sound, not dis simular to a
record being sped up or slowed down.