New Hercules RMX DJ console script for Mixxx 1.9.x

XML preset files and script files (.js) for MIDI and other controllers.

Moderators: garth, User Customization Moderators

New Hercules RMX DJ console script for Mixxx 1.9.x

Postby Geert » Mon Nov 07, 2011 11:00 pm

I've modified the original 'Hercules RMX DJ Console Advanced' midi controller preset that comes with Mixxx 1.9. I found myself using the mouse to much when playing with Mixxx, so I tried to improve the functionality of the console. What I call an improvement is ofcourse my personal taste, so I hope the changes makes sense to other people to.

The changes compared to the standard 'Hercules RMX DJ Console Advanced' preset:

Deck scratch mode
Scratch mode for a deck is now also enabled while holding the Shift button (which still is the Stop button).
When the deck is stopped the sensitivity of the jog wheel is decreased to increase accuracy.
Both changes are made to improve cueing up songs, and to have faster access to the scratch function.

Hot cue buttons and hot cue preview
When pressing a hot cue button (keypad 1 to 3) the position of a hot cue is set if it wasn't set before. If it was already set the player jumps to the hot cue position. If the deck was stopped it wil remain stopped at the hot cue position, if the deck was playing it will continue to play starting at the hot cue position.

Pressing Shift and a hot cue button clears the hot cue position.

When a deck is stopped and the player is set at a hot cue position pressing and holding the corresponding hot cue button will start hot cue preview, which is a loop of about 1sec. During this loop you can trim the hot cue position.

Trimming hot cues and loop points
Trimming hot cues and loop points is now done using the jog wheel instead of the Forward/Backward buttons. While trimming the sensitivity of the jog wheel is decreased to increase accuracy.

Permanent pitch change buttons
The Forward/Backward buttons are now used as permanent pitch change buttons (1% change for each key press). On a software DJ system I consider pitch change buttons to be of bigger value than a pitch slider.

Pressing Shift Forward/Backward searches through a song.

Sync led
When a Sync led is on it's turned of when loading a new song using the console.

Pitch slider center value
Older versions of the Hercules RMX DJ have a different internal value for the center position of the pitch slider. When you move the pitch slider and set it back in the center Mixxx might show a pitch value that's not equal to zero. In this case press Shift Pitch Reset once. Move the slider again to check the center position value. You need to do this on one deck only, this will also configure the other deck. Repeating the procedure on the other deck will actually reset the change.


How to install the new preset:
- Dowload the file in attachment
- Shutdown Mixxx
- Extract the 2 files in the download to the Midi directory in the installation directory of Mixxx
- Start Mixxx
- Open Preferences/Midi controllers and load the preset called ''Hercules RMX DJ Console Very Advanced'.
This won't change the original presets that came with Mixxx, so you can always switch back to your previous one.

Please let me know if you find this preset usefull so I know if I should continue to post updates of it.

Happy Mixxxing.

Geert
Attachments
Hercules-DJ-Console-RMX-scripts-VA v1.3.zip
(6.98 KiB) Downloaded 84 times
Last edited by Geert on Thu Dec 15, 2011 10:05 pm, edited 7 times in total.
Geert
 
Posts: 39
Joined: Sat Oct 29, 2011 4:54 pm
Location: Belgium

Re: New Hercules RMX DJ console mapping and script

Postby anders » Tue Nov 08, 2011 8:43 pm

Thanks for the update Geert. I will test the changes as soon as I have time to.
anders
 
Posts: 143
Joined: Sat Mar 06, 2010 11:39 am

Re: New Hercules RMX DJ console mapping and script

Postby anders » Tue Nov 08, 2011 9:12 pm

Aww I had to try it right away...

Most things seem to work very well. I will check the code another day and see if I can merge it with my own changes. Is it ok if we include in the advanced mapping? If not too late already I can try to get it in for 1.10, otherwise 1.11.

I've been thinking to move over to auto loops in the advanced mapping. What do you think about that? Maybe it could be included as an option, to not upset users who like the manual loops?
anders
 
Posts: 143
Joined: Sat Mar 06, 2010 11:39 am

Re: New Hercules RMX DJ console mapping and script

Postby Geert » Tue Nov 08, 2011 10:14 pm

Hi Anders. For me it's OK to merge my changes (or parts of it) in your code or mapping. For me that's the best way to make sure they will be supported in upcoming releases. To be honest it took me a lot of effort to find out how to implement everything, there's not that much documentation available on objects, methods and properties available for scripting.

What do you mean exactly by auto loops, automatically setting in and out points based on beat detection? If that's the case it would depend on how good Mixxx will be able to choose the loop points to create a perfect loop. No problem if you keep the option to trim them manually, but you maybe want to free up some buttons for new loop functions like loop_double?

Maybe it's best to offer a seperate mapping for auto looping. Another option I already considered for some of the new functions was to free up the EQ kill switches by enabling soft takeover by default, and using them combined with the Shift key to change the behavior of the key pad buttons or to directly implement some of the new functions. For example Shift High Kill toggles between autoloop and manual loop points, Shift Mid Kill enables loop_double...
Geert
 
Posts: 39
Joined: Sat Oct 29, 2011 4:54 pm
Location: Belgium

Re: New Hercules RMX DJ console mapping and script

Postby anders » Wed Nov 09, 2011 9:23 pm

Good! I will try to do that this weekend. I can understand that this comes from a substantial effort. I've been working a bit on improved objects to be able to support a wider range of controllers. I got a bit stuck since I did not know javascript good enough and also had more than enough to do apart from Mixxx. Now I have a copy of "Javascript: the good parts" and also have a bit more time so I hope to finish this work.

By auto loops I mean the function called beatloops in Mixxx, which by the press of one button sets a loop of a number of beats. Then you would need accurate BPM values to have accurate loops. I guess accurate positions of the beat marks also would help to position the loops. I will have to check the new functions before I do any work here. My intention was to have a button standard loop of say 8 beats and then have halve and double buttons. The tricky part is to get the adjustment functions and still keep the mapping intuitive and usable. If you have some good idea there it's welcome.

It's true that different users want a different set of features. Still I don't think its a good idea to have several mappings per controller. Also if all settings are made from the controller to switch between functions it will soon be impossible to use it since it will be too complex. I think a good solution would be to introduce some type of script variables that could be set through the preferences dialogue. That could be something to work on for 1.11 :-)
anders
 
Posts: 143
Joined: Sat Mar 06, 2010 11:39 am

Re: New Hercules RMX DJ console mapping and script

Postby Geert » Wed Nov 09, 2011 9:56 pm

If your not that good at Javascipt than you will love the updated script (v1.1) I attachted to the first post in this topic. I did a major cleanup of the code:
- Initialised all objects from the init section, which was on your 'to do' I noticed :-)
- Build a procedure to add all buttons and controls to the decks without repeating all code twice. This reduces the script with 46 lines, and should make it easier to maintain.

Auto loops indeed require perfect BPM and accurate positions. I noticed Mixxx sometimes has an issue with determening the exact BPM, so this needs to be cleared first. (It might also be an issue with playback speed, which was discussed in another topic). I should first need to try the 1.10 beta version to be able to provide some input. I downloaded a prerelease this weekend but it doesn't start at all, It immediately crashes.

You are right that switching functions from the controller is tricky. Indeed the best solution would be to have a link from the scripts to the preferences dialogue.

In the mean time I don't know if it's a bad idea to have a multiple mapping preferences. The more extended the functionality of Mixxx becomes the more difficult it will be to design a preset that's good fore everyone. Even worse; a DJ might prefer different presets depending on the style of music he will be playing.

However the way I would implement multiple presets for one controller is to keep al code in one script and provide multiple mapping xml files pointing to it. The different mapping files can (partly) point to different functions in the script file. Such a script would also for a big part be ready for the link to the preferences dialogue in a future release.
Geert
 
Posts: 39
Joined: Sat Oct 29, 2011 4:54 pm
Location: Belgium

Re: New Hercules RMX DJ console mapping and script

Postby rryan » Wed Nov 09, 2011 10:18 pm

I should first need to try the 1.10 beta version to be able to provide some input. I downloaded a prerelease this weekend but it doesn't start at all, It immediately crashes.


Whoa -- could you please give us more details? Maybe file a bug here: http://bugs.launchpad.net/mixxx

Thanks!
The Mixxx Manual, Wiki and FAQ are the best place to start for documentation and support.
Please report any bugs you find to our Bug Tracker.
rryan
Mixxx Developer
 
Posts: 973
Joined: Thu Mar 26, 2009 12:14 am
Location: Cambridge, MA

Re: New Hercules RMX DJ console mapping and script

Postby rryan » Wed Nov 09, 2011 10:25 pm

//Clearing a hotcue that's not enabled activates hotcue indicator and causes unexpected behavior


I noticed that in the script -- is that still true? If so we should fix that problem in Mixxx.
The Mixxx Manual, Wiki and FAQ are the best place to start for documentation and support.
Please report any bugs you find to our Bug Tracker.
rryan
Mixxx Developer
 
Posts: 973
Joined: Thu Mar 26, 2009 12:14 am
Location: Cambridge, MA

Re: New Hercules RMX DJ console mapping and script

Postby Geert » Thu Nov 10, 2011 8:10 am

rryan wrote:
//Clearing a hotcue that's not enabled activates hotcue indicator and causes unexpected behavior
I noticed that in the script -- is that still true? If so we should fix that problem in Mixxx.

When I use engine.setValue(this.group,"hotcue_X_clear", 1) on a hotcue that's not set (enabled) then the corresponding hotcue light turns on in the Mixxx GUI, however the hotcue is not set on the waveform. Afterwards this hotcue start behaving strange. The resulting behavior might also be an issue with the mapping script, I wanted to analyse this first before filing a bug. Anyway, the hotcue clear command should never turn on a hotcue light in Mixxx I guess.
Geert
 
Posts: 39
Joined: Sat Oct 29, 2011 4:54 pm
Location: Belgium

Re: New Hercules RMX DJ console mapping and script

Postby Pegasus » Thu Nov 10, 2011 11:29 am

You need to do both:
Code: Select all
engine.setValue(this.group,"hotcue_X_clear", 1);
engine.setValue(this.group,"hotcue_X_clear", 0);

...for it to work as expected. Leaving it set to 1 is just like right-clicking the GUI button and never releasing the right mouse button.
"D.J. Pegasus"
Mixxx Developer - Controller Specialist
Mixxx Windows package maintainer
User avatar
Pegasus
Mixxx Developer
 
Posts: 1657
Joined: Thu Jan 29, 2009 7:48 pm
Location: Spangdahlem, RP, Germany

Next

Return to Controller presets/mappings

Who is online

Users browsing this forum: No registered users and 4 guests