New to mixxx, are there features I don't know about

Hi all

I’ve just starting trying to DJ, and have gravitated towards Mixxx as I love open source projects. Are there any features you didn’t uncover immediately when using Mixxx I should know about?

Also is it easy to write kind of custom features? I’d really like to be able to skip back 4 bars and then loop over them at the single press of a button, that kind of thing.

Hi @JoeSalmon, welcome to Mixxx.
I am a user and only contribute a controller mapping but no developer. But as mixxx is open source and everyone could look into the code then there are no “hidden” things as such. You may look into GitHub and see open pull requests for new stuff that is not yet available to released versions of mixxx

In terms of features you can add those things (like the example you mentioned) in the controller mapping. Obviously it depends on the controller you use. Check out the mixxx wiki. There is a lot of information about how to modify and write your own controller mapping. Have fun!

If you like also check my Youtube channel where I have recently uploaded some tutorials how to set up mixxx on a Linux box. Would love a subscription. Cheers

I’m subscribed, I’m running on Ubuntu 18.04, did you get Mixxx opening M4A files okay? I gave up in the end most of my stuff is in MP3.

I’m having a go at writing the feature I want in javascript now, I’ve got as far as, but I don’t know enough about MIDI to know what signals I want to send. Any tips?

NumarkDJ2Go2.loopback4 = function (channel, control, value, status, group) {
if (value === 127) {
// do something when this button is pressed
midi.sendShortMsg(0x80, 0x00, 0x00)
}
}

… you would like to read the midi signal from your controller button and then apply an action to it.

You should read the documentation at the Wiki and see the Manual for Controlls. Also useful to understand the current NumarkDJ2Go mapping.

in your case - if the midi signal comes in with a push on the button I’d try and define actions with beatjump_4_backward and apply a loop with beatloop_4_activate.

You would still need to define details like if the action shall only be possible while you hold the button down or if it can be released and loop is still active or if the button LED should be activated etc…

1 Like

The feature you want should be easy to implement in a custom midi script.

YourController.loopLast4Beats = function(channel, control, value, status, group) {
  if (value === 127) {
    print('[DEBUG] loopLast4Beats: pressed');

    engine.setValue(group, 'beatjump_4_backward', 1)
    engine.setValue(group, 'beatloop_4_activate', 1);
  }
}

And to bind this function to the buttons on channel a/b:

            <control>
                <group>[Channel0]</group>
                <key>YourController.loopLast4Beats</key>
                <description>Loop last 4 beats</description>
                <status>0x9</status>
                <midino>0xNUMBEROFBUTTONONCHANNELA</midino>
                <options>
                    <Script-Binding/>
                </options>
            </control>

            <control>
                <group>[Channel1]</group>
                <key>YourController.loopLast4Beats</key>
                <description>Loop last 4 beats</description>
                <status>0x9</status>
                <midino>0xNUMBEROFBUTTONONCHANNELB</midino>
                <options>
                    <Script-Binding/>
                </options>
            </control>

Didn’t test this code but copied it and modified it from my midi mappings of the diy MiniX1 controller.

Thanks both, that’s really helpful. I’ll have a crack and share what I’ve done via github if I figure out how. Is it fairly easy to introduce new visual aids into mixxx as well? Was thinking how useful something telling me how many bars until each hot queue set on a track from the current point would be.