Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: How to always query for ColorFX ....Off
Have a question with colorFX and how to determine they are OFF, (at 50%, aka, 0.50)

Why does the color filter knob, behave differently then using, say, a volume fader?

If one creates a the custom button, to test:
deck active filter 50% ? off : on 


then if deck active filter is applied to pitch slider it does turn off, at 50%, as it does when mapped to the filter knob.

It does NOT turn off when applied to say volume fader or crossfader, when either is at 50% (0.50).
The query of filter 50% ?, is NEVER true.. WHY ??



is there some workaround by viewing the actual filter value ?

As the following, almost works, (works for the 1st second it is initially turned off)
param_equal `deck active filter_label` 'off' ? off : on 



Any hints, ideas, or info appreciated.

Thanks



PS
tested using Denon MC7000
and assume it may have something to do with the definitions of the volume fader and crossfader.
And again is there a work around, that one can use as an indicator, of the filter being at a level of 0.50 ?
 

Posted Mon 26 Feb 24 @ 1:32 pm
the solution:
param_equal `deck active filter_label 'clean'` 'off' ? off : on


needed to read all of the description details of filter_label


So love VDJ
woot !
 

Posted Mon 26 Feb 24 @ 1:39 pm
IIDEEJAYII wrote :

It does NOT turn off when applied to say volume fader or crossfader, when either is at 50% (0.50).
The query of filter 50% ?, is NEVER true.. WHY ??

Because of rounding of course.
Display may show volume equals 0.5, but actual value may be 0.5001
Same goes for crossfader. You have to hit the EXACT spot where the volume slider or crossfader is 0.5

Pitch Sliders usually have a dent at "zero" position that sends exactly 0.5 value, even if the slider is using 14 bit MIDI. Same goes for most EQ knobs and of course "Filter"/"Color FX" knobs.

For pitch sliders that don't have a dent in the middle, VirtualDJ uses special code on definition, to allow a very small area of the slider around it's center to be considered that it's sending 0.5
In other words, it rounds up small fluactations around the 0.5 value. But only for pitch sliders without a dent.

So, back to your "filter active" question, unless you hit exactly the 0.5 spot with your slider, it won't turn off.

Finally keep in mind that "Color FX active" versus "Color FX Modifying sound" are 2 different things.
When the Color FX knob is in the middle (0.5) position it does not modify the sound. However, on most cases the color effect is active, even if no modification occurs.

When you use a controller for instance to select various color effects, you actually turn a new color effect on each time you use a different button. The color effect will stay active and the button will usually blink.
But it does not alter the sound if in 50% position.
So, if you want to find when the color effect is changing the sound you need to check both conditions:
Color effect is active AND color effect slider position is different than 50%
 

Posted Mon 26 Feb 24 @ 3:17 pm
AdionPRO InfinityCTOMember since 2006
Since you are getting the exact value of the slider, depending on the precision of the fader either it is never exactly 0.5, or it is so accurate that it's nearly impossible to reach that exact spot.
The pitch fader on the other hand is typically programmed in firmware to return exactly 0.5 (or have a separate pitch_reset mapped) when the center notch is reached.

VirtualDJ does take this into account for applying the filter (so anything around 50% will still disable the filter), but the result when querying is still the actual fader position.
 

Posted Mon 26 Feb 24 @ 3:22 pm
locoDogPRO InfinityModeratorMember since 2013
just to add, I use something like this on when querying the colorfx

param_equal `param_bigger 0.495 filter` `param_smaller 0.505 filter` ? filter is on centre : not on centre

Another thing to note, not that it happens that often, float values might not be 100% accurate, they're pretty accurate for most cases but certain conditions they can lack precision. [all down to how floating point numbers are stored going way back in code history]
Always best to avoid == with floats, unless querying 1.0 or 0.0
 

Posted Mon 26 Feb 24 @ 4:01 pm