mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.5k stars 1.28k forks source link

Pressing hotcue+play causes unstoppable Play [Hercules DJ Console RMX] #6118

Closed mixxxbot closed 2 years ago

mixxxbot commented 2 years ago

Reported by: jenszo Date: 2011-11-17T12:41:52Z Status: Fix Released Importance: Low Launchpad Issue: lp891593 Tags: hercules-rmx, midi Attachments: Hercules-DJ-Console-RMX-scripts.js, [Patch: Fix unstoppable Play on Hercules DJ Console Mk2](https://bugs.launchpad.net/bugs/891593/+attachment/2990790/+files/Patch: Fix unstoppable Play on Hercules DJ Console Mk2)


How to reproduce:

  1. set a hotcue
  2. press play
  3. press hotcue and play simultenously (sometimes you have to repeat it a few times to have the bug "working") Then play cannot be paused anymore (only Cue can stop a song playing or the end of the song) If you then load another song, this also starts automatically playing like Mixxx is in a "constant play" mode.

I could not reproduce this with my keyboard. Only with mouse+RMX Advanced Midi or RMX Advanced midi only.

I think this also happens in other situations with the RMX, but the above is the only way to halfway quickly reproduce it. I think this is maybe a javascript issue with the RMX midi Advanced scritp.

In terms of behaviour this is similar to #⁠790849, however, this here is something different (790849 is fixed for me)

I use mixxx 1.10 beta1 on ubuntu10.10

mixxxbot commented 2 years ago

Commented by: rryan Date: 2011-11-27T10:24:13Z


After a quick look at the RMX MIDI script, I think I see the problem. The script sets hotcue_activate to 1 on down-press, but never sets it back to 0 when the button is released.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2011-11-27T10:27:04Z


I just modified a skin so that it would have the same behavior and was able to reproduce the issue. Downgrading to low and renaming as a MIDI script issue.

mixxxbot commented 2 years ago

Commented by: toomuch Date: 2011-12-14T22:33:13Z


So we are talking about this extract here:

HerculesRMX.Deck.prototype.keypad1Handler = function(value) {
   if(value == ButtonState.pressed) {
      if(HerculesRMX.shiftMode) {
         if(engine.getValue(this.group,"flanger") == 0) {
            engine.setValue(this.group,"flanger",1);
         } else {
            engine.setValue(this.group,"flanger",0);
         }
      } else if(this.shiftMode) {
         engine.setValue(this.group,"hotcue_1_clear", 1);
      } else {
         engine.setValue(this.group,"hotcue_1_activate", 1);
      }
   }

Unfortunately I'm not a good scripter, but in some other .js they are doing it a little differently:

engine.setValue(group, "hotcue_1_activate", value ? 1 : 0);
But changing 
engine.setValue(this.group,"hotcue_1_activate", 1);
to
engine.setValue(this.group, "hotcue_1_activate", value ? 1 : 0);

did not work.

In Hercules-DJ-Control-MP3-scripts.js they made something different with a boolean variable (is_hold_hotcue). Would this also help us?

mixxxbot commented 2 years ago

Commented by: jenszo Date: 2011-12-15T09:16:14Z


toomuch, do not worry I can take care of it. I do not know when exactly, but I think still this year :)

mixxxbot commented 2 years ago

Commented by: toomuch Date: 2011-12-15T12:43:20Z


Don't want to put pressure on you, but I wanted to use Mixxx at a private party on Dec 26th. :) Can I (as a non-coder) with the help of http://www.mixxx.org/wiki/doku.php/midi_scripting do something to support you or maybe even play around a little with some code snippets?

mixxxbot commented 2 years ago

Commented by: Pegasus-RPG Date: 2011-12-15T12:59:40Z


Toomuch, you can easily fix that script. What many script writers seem to forget is that you usually have to set a control to 0 after using it in order to clear it for the next use (with the exception of Play.)

So under the code snippet you posted, add the following:

else {  // On button release
    if(!HerculesRMX.shiftMode) {
      if(this.shiftMode) {
         engine.setValue(this.group,"hotcue_1_clear", 0);
      } else {
         engine.setValue(this.group,"hotcue_1_activate", 0);
      }
  }
}

Make sure the XML also maps the button release (usually 0x80) to the same script function as the press (0x90) for each hot cue button.

You may not need the if(!HerculesRMX.shiftMode) clause so remove that (and the corresponding brace at the end) if this doesn't work.

mixxxbot commented 2 years ago

Commented by: toomuch Date: 2011-12-15T21:05:31Z Attachments: Hercules-DJ-Console-RMX-scripts.js


Thank Sean, that fixes it. I attached the updated .js.

mixxxbot commented 2 years ago

Commented by: toomuch Date: 2011-12-15T21:09:29Z


Ah, I forgot: There is no 0x80 or 0x90 in .js nor .xml. But it works anyway.

mixxxbot commented 2 years ago

Commented by: toomuch Date: 2011-12-26T18:09:18Z


Still not fixed in 1.10.0. :( Can someone include the patch, please? (It has HerculesRMX.firstGenerationFirmware set to true, change that if necessary.)

mixxxbot commented 2 years ago

Commented by: rryan Date: 2012-01-07T08:37:47Z


Thanks toomuch and sorry for letting that slip through the 1.10.0 release. It'll be included in 1.10.1.

mixxxbot commented 2 years ago

Commented by: lightrush Date: 2012-03-12T01:31:29Z


Guys, could you also take a look at the Mk2 as it exhibists exactly the same behaviour?

mixxxbot commented 2 years ago

Commented by: toomuch Date: 2012-04-01T19:58:05Z


What does it mean that this bug is assigned to me? I'm not a developer... I don't have a MK2 to check this. What I found was that in Hercules-DJ-Console-Mk2-scripts.js there is no switch for the Firmware version like in Hercules-DJ-Console-RMX-scripts.js. Could be that the problem also exists there.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2012-04-01T20:09:42Z


Hey toomuch,

It's assigned to you b/c you supplied the fix in comment #⁠7. :)

mixxxbot commented 2 years ago

Commented by: lightrush Date: 2012-04-01T22:07:25Z


Could anyone elaborate on the actual problem that causes this behaviour and this:

What many script writers seem to forget is that you usually have to set a control to 0 after using it in order to clear it for the next use (with the exception of Play.)

so I can attempt to fix the Mk2 script?

mixxxbot commented 2 years ago

Commented by: lightrush Date: 2012-04-02T18:15:39Z Attachments: [Patch: Fix unstoppable Play on Hercules DJ Console Mk2](https://bugs.launchpad.net/mixxx/+bug/891593/+attachment/2990790/+files/Patch: Fix unstoppable Play on Hercules DJ Console Mk2)


Hey guys,

I sent a patch for the Mk2 that fixes unstoppable Play to the mailing list but have no response about it, so I am posting it here as well. Also I could make a separate bugreport for the Mk2 issue and attach it there if you prefer that.

Is it preferred to send patches to the mailing list or attach to bugreports here?

mixxxbot commented 2 years ago

Commented by: rryan Date: 2012-04-02T18:31:04Z


Hi Nicolay,

Sorry for the lack of response -- right now is a busy time for a lot of the developers :)

The preferred way is to file a new bug report and attach the patch there. I'll assign it to the 1.10.1 milestone and get your patch reviewed and committed then.

Thanks! RJ Ryan

On Mon, Apr 2, 2012 at 2:15 PM, Nicolay Doytchev

Hey guys,

I sent a patch for the Mk2 that fixes unstoppable Play to the mailing list but have no response about it, so I am posting it here as well. Also I could make a separate bugreport for the Mk2 issue and attach it there if you prefer that.

Is it preferred to send patches to the mailing list or attach to bugreports here?

** Patch added: "Patch: Fix unstoppable Play on Hercules DJ Console Mk2"

https://bugs.launchpad.net/mixxx/+bug/891593/+attachment/2990790/+files/fix_unstoppabple_play_mk2.patch

-- You received this bug notification because you are a member of Mixxx Development Team, which is subscribed to Mixxx. https://bugs.launchpad.net/bugs/891593

Title: Pressing hotcue+play causes unstoppable Play [Hercules DJ Console RMX]

To manage notifications about this bug go to: https://bugs.launchpad.net/mixxx/+bug/891593/+subscriptions

mixxxbot commented 2 years ago

Commented by: lightrush Date: 2012-04-02T20:11:35Z


Done RJ!

Here it is - https://bugs.launchpad.net/mixxx/+bug/971859 .

mixxxbot commented 2 years ago

Issue closed with status Fix Released.