[EffectX] audibly enabled only every 2nd time toggled ON when "mix"=0

Bug #1645565 reported by ronso0
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Undecided
Be

Bug Description

Apparently effect is enabled audibly(!) only every SECOND time GUI and MIDI say it's ON if Wet/Dry is set to 0 when toggling that effect ON.
This happens for Effect1-3, no matter if 1,2 or all 3 are enabled at the same time. Just toggle them all while Wet/Dry is 0.

1) assign [EffectRack1_EffecetUnit1] to [Channel1], enable it
2) load an effect to [EffectRak1_EffecetUnit1_Effect1], choose one that is easily audible like BitCrusher and leave it OFF
3) turn "Wet/Dry" of [EffectRack1_EffecetUnit1] to 0
4) load a track to [Channel1], play it
5) enable [Effect1]
6) increase Wet/Dry so you would normally hear the BitCrusher
  > Do you? I don't.
7) set Wet/Dry back to 0
8) disable [Effect1]
9) enable [Effect1]
10) increase Wet/Dry
  > do you hear [Effect1]? Now I do
3-6) I can't hear it
7-10) I CAN hear it
...and so on

2.1.0-alpha-pre (build master r5996) (will try current master as soon as it has a rev.number)
2.0.0.1 (build 1.12 r5769)

Linux 3.14.23-rt20 #1 SMP PREEMPT RT x86_64 GNU/Linux

skin: Deere and FlatNite http://www.mixxx.org/forums/viewtopic.php?f=8&t=8578

Tags: effects script
ronso0 (ronso0)
description: updated
description: updated
Revision history for this message
Daniel Schürmann (daschuer) wrote :

When "mix" is 0 when enabling the effect you should not hear the effect at all. Because it is fully dry = bypassed. If this is not the case this sounds like an engine bug.

You could verify the current values of the controls by starting Mixxx using:
mixxx --developer

Now the tooltips are displaying the current value. And you are able to whatch all Control objects in the developer menu.

You may also run your script and save all COs in a CVS file before and after.

Is it possible to reproduce the faulty behavior using the developers menu only?

Does it happen in latest master build? Maybe
https://bugs.launchpad.net/mixxx/+bug/1609270 is related.

tags: added: effects
Revision history for this message
ronso0 (ronso0) wrote :

Yeah, of course I don't hear the effect when "mix" is 0.
"0" is just the position when toggling the effect, after that I increase "mix".
My initial description might be to complex.
Procedure is like this:
1. mix = 0, effect_enabled = 0
2. switch effect with "fxSlot1_enabled != fxSlot1_enabled"
> status is updated in GUI
3. 0 < "mix" < 1
> effect is NOT audible
4. set "mix" to 0 again
5. switch effect off with script
repeat 1, 2, 3...
> effect is audible
repeat 1, 2, 3...
> effect is NOT audible
repeat 1, 2, 3...
> effect is audible

As mentioned above: toggling the effect like this works everytime
  if (fxSlot1_enabled == false) {
    fxSlot1_enableds = 1;}
  else {
    fxSlot1_enabled = 0;}
So I suppose it has to do with binary/boolean.
Also it works when mapping "mix" knob to 0,001-1 instead of 0-1.

Revision history for this message
Be (be.ing) wrote :

I'm confused why you're manipulating both the effect enabled switch and the mix knob. If you want to toggle the effect, just use the enabled switch.

Also, this code looks strange:
engine.setValue("[EffectRack1_EffectUnit1_Effect1]","enabled",+fxSlot1_enabled+);

I'm not sure what's going on with those +'s around fxslot1_enabled, but they're probably doing some implicit type conversion that isn't quite what you think it is. JavaScript's type conversions can be really weird and unintuitive, especially with the + operator. Generally, you shouldn't rely on implict type conversions in JavaScript. For some humorously absurd examples, see https://www.destroyallsoftware.com/talks/wat

Revision history for this message
ronso0 (ronso0) wrote :

I'm sorry for the confusion about the script part, forget that: I can reproduce it with GUI, without any controller/script involved. r5996
I'll updat the dsecription accordingly, please give it a try.

@Be You're right about enclosing the var like +var+ but it doesn't make a different.
And mapping "mix" like I mentioned was a workaround I came across by chance. It still applies when reproducing this bug when you use it instead of the GUI knob.

ronso0 (ronso0)
description: updated
ronso0 (ronso0)
summary: - jscript issue: true/false is not 1/0
+ [EffectX] audibly enabled only every 2nd time toggled ON when "mix"=0
description: updated
ronso0 (ronso0)
description: updated
ronso0 (ronso0)
description: updated
Revision history for this message
Sébastien BLAISOT (sblaisot) wrote :

Ronny,

Which OS an which skin do you use ?

Are you able to reproduce it using Mixxx 2.0.0 (last stable release) ?

Revision history for this message
Sébastien BLAISOT (sblaisot) wrote :

also, are you able to reproduce the bug if you disable your controller in the settings (uncheck the "enabled" checkbox on the controller page) ?

Revision history for this message
ronso0 (ronso0) wrote :

2.1.0-alpha-pre (build master r5996)
2.0.0.1 (build 1.12 r5769)

Linux 3.14.23-rt20 #1 SMP PREEMPT RT x86_64 GNU/Linux

skin: Deere and FlatNite http://www.mixxx.org/forums/viewtopic.php?f=8&t=8578

yes, controller is disabled.

description: updated
Revision history for this message
ronso0 (ronso0) wrote :

Bug still present in build master r6201.
Tested with clean profile and mouse-only.

Revision history for this message
Be (be.ing) wrote :

Another way of explaining the bug: if an effect is enabled when the "mix" (dry/wet) ControlPotmeter > 0, then mix is set to 0, then the effect is disabled while mix is still 0, enabling the effect while mix is still 0 does not work. This is a bug in the effect chain optimization code.

Changed in mixxx:
status: New → Incomplete
status: Incomplete → Confirmed
Revision history for this message
Be (be.ing) wrote :
Changed in mixxx:
assignee: nobody → Be (be.ing)
status: Confirmed → In Progress
Be (be.ing)
Changed in mixxx:
status: In Progress → Fix Committed
Be (be.ing)
Changed in mixxx:
milestone: none → 2.1.0
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8702

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.