Kontrol DJ 500 under MIXXX sofware (windows XP version)

General Mixxx discussion.... discuss

Moderator: garth

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby kdjdem » Thu Dec 10, 2009 3:04 pm

UPDATE :

Using the --debug mode, I started to learn all the primary buttons. It's really easy : I take a printed scheme of my Kontrol DJ, push buttons under debug mode, than read the mixxx.log, and translate the info using the wiki (example : it's a ON/OFF message, and it's the 0x02 button) then note it on the printed paper scheme.

Once I've done that, I made the basic midi learning wizard. Then, I manually add (using the "add button" in the MIXX midi prefs interface) each button I noted (for buttons, it's quite simple, basically you just have to enter the correct control number : 0X"something in hexadecimal"), and it's working. No need for script or XML...for now :mrgreen:

Well, I'll map all the basic buttons primary functions tonight, then I'll come back to you for the complex operations (shift and select buttons for secondary or even 3rd functionality, endless rotary push knobs for track selection, jog wheels). ;)
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

first issue

Postby kdjdem » Thu Dec 10, 2009 8:01 pm

Hi,

Tonight I finished to map the basic buttons...So I tried to map the jog wheels.

The best I 've been able to obtain is a positive pitchbend, but without any acceleration or turning sense :|

I readed the wiki doc about scripting and XML, but I 'm just not a developer, and since there is not example (as far as I know) about jog wheels, I'm blocked :oops:



I used mixxx --debug to find the information about the jog wheel functions :

anticlockwise jog turning (deck 1) :

Code: Select all
Midi status : 90 ctrl : 32 val : 7F
Midi status : B0 ctrl : 28 val: 1
Midi status : B0 ctrl : 28 val: 1
Midi status : B0 ctrl : 28 val: 1
etc... (crtl: 28 is repeating as long as I turn the jog wheel)
Midi status : 90  ctrl : 32 val : 0


anticlockwise jog turning (deck 2) :

Code: Select all
Midi status : 90 ctrl : 36 val : 7F
Midi status : B0 ctrl : 2C val: 1
Midi status : B0 ctrl : 2C val: 1
Midi status : B0 ctrl : 2C val: 1
etc... (crtl: 2C is repeating as long as I turn the jog wheel)
Midi status : 90  ctrl : 36 val : 0




clockwise jog turning (deck1) :

Code: Select all
Midi status : 90 ctrl : 32 val : 7F
Midi status : B0 ctrl : 28 val: 7F
Midi status : B0 ctrl : 28 val: 7F
Midi status : B0 ctrl : 28 val: 7F
etc... (crtl: 28 is repeating as long as I turn the jog wheel)
Midi status : 90  ctrl : 32 val : 0



clockwise jog turning (deck2) :

Code: Select all
Midi status : 90 ctrl : 36 val : 7F
Midi status : B0 ctrl : 2C val: 7F
Midi status : B0 ctrl : 2C val: 7F
Midi status : B0 ctrl : 2C val: 7F
etc... (crtl: 2C is repeating as long as I turn the jog wheel)
Midi status : 90  ctrl : 36 val : 0



WHat I wanted to reach is a progressive pitch bend (for fine beatmaching job), with acceleration and turning sense behavior (like the classic deck jog wheel pitch bend control we can see in any mix software)....But I'm afraid I'm not good enough to achieve that.



Here's my current XML config file :

Code: Select all
    <MixxxMIDIPreset mixxxVersion="1.7.1+" schemaVersion="1" >
        <controller id="Last used" >
            <controls>
                <control>
                    <status>0x90</status>
                    <midino>0x24</midino>
                    <group>[Channel2]</group>
                    <key>cue_default</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x1</midino>
                    <group>[Channel1]</group>
                    <key>flanger</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x26</midino>
                    <group>[Channel2]</group>
                    <key>play</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x2</midino>
                    <group>[Channel1]</group>
                    <key>filterLowKill</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x3</midino>
                    <group>[Channel1]</group>
                    <key>filterMidKill</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x4</midino>
                    <group>[Channel1]</group>
                    <key>filterHighKill</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x2c</midino>
                    <group>[Channel1]</group>
                    <key>pfl</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x2e</midino>
                    <group>[Channel2]</group>
                    <key>pfl</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x80</status>
                    <midino>0x24</midino>
                    <group>[Channel2]</group>
                    <key>cue_default</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x80</status>
                    <midino>0x26</midino>
                    <group>[Channel2]</group>
                    <key>play</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0xe</midino>
                    <group>[Channel1]</group>
                    <key>cue_default</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x34</midino>
                    <group>[Playlist]</group>
                    <key>SelectPrevTrack</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x1</midino>
                    <group>[Master]</group>
                    <key>headVolume</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x10</midino>
                    <group>[Channel1]</group>
                    <key>play</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x2</midino>
                    <group>[Channel1]</group>
                    <key>filterHigh</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x3</midino>
                    <group>[Channel1]</group>
                    <key>filterMid</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x80</status>
                    <midino>0x2c</midino>
                    <group>[Channel1]</group>
                    <key>pfl</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x4</midino>
                    <group>[Channel1]</group>
                    <key>filterLow</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x5</midino>
                    <group>[Master]</group>
                    <key>headMix</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x80</status>
                    <midino>0x2e</midino>
                    <group>[Channel2]</group>
                    <key>pfl</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x6</midino>
                    <group>[Channel2]</group>
                    <key>filterHigh</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x7</midino>
                    <group>[Channel2]</group>
                    <key>filterMid</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x8</midino>
                    <group>[Channel2]</group>
                    <key>filterLow</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x17</midino>
                    <group>[Channel2]</group>
                    <key>flanger</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x9</midino>
                    <group>[Channel1]</group>
                    <key>rate</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x18</midino>
                    <group>[Channel2]</group>
                    <key>filterLowKill</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0xa</midino>
                    <group>[Channel2]</group>
                    <key>rate</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x80</status>
                    <midino>0xe</midino>
                    <group>[Channel1]</group>
                    <key>cue_default</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x19</midino>
                    <group>[Channel2]</group>
                    <key>filterMidKill</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0xb</midino>
                    <group>[Channel1]</group>
                    <key>volume</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x1a</midino>
                    <group>[Channel2]</group>
                    <key>filterHighKill</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0xc</midino>
                    <group>[Channel2]</group>
                    <key>volume</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x80</status>
                    <midino>0x10</midino>
                    <group>[Channel1]</group>
                    <key>play</key>
                    <options>
                        <normal/>
                    </options>
                </control>
      <control>
                    <status>0xb0</status>
                    <midino>0x2c</midino>
                    <group>[Channel2]</group>
                    <key>jog</key>
                    <options>
                        <normal/>
                    </options>
                </control>
       <control>
                    <status>0xb0</status>
                    <midino>0x28</midino>
                    <group>[Channel1]</group>
                    <key>jog</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0xd</midino>
                    <group>[Master]</group>
                    <key>crossfader</key>
                    <options>
                        <normal/>
                    </options>
                </control>
            </controls>
        </controller>
    </MixxxMIDIPreset>




THank you for your help :?
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby kdjdem » Fri Dec 11, 2009 4:17 pm

UPDATE :

I make another try, and finally achieved to make what I wanted for the jogs (positive and negative pitchbend with acceleration detect) ...more or less :mrgreen:

The remaining problem is that the jogs are inversed... I mean, when I turn the jog clockwise, the track slows down, and when I turn the jog anti clockwise, the track accelerates. I want my jogs to do the opposite (clockwise = acceleration, anti clock wise = slow down).

Here's the jog part of my XLM config file :

Code: Select all
           <control>
                    <status>0xb0</status>
                    <midino>0x28</midino>
                    <group>[Channel1]</group>
                    <key>jog</key>
                    <options>
                        <diff/>
                    </options>
                </control>



SO the question is....how can I reverse the jog work to run "normally" ?


thank you a lot,
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby albert » Sat Dec 12, 2009 12:31 am

What about if you write a script that reverses the direction of the jog wheel?
Start DJing with Mixxx | Fill your Sampler Decks with BeatCleaver | Oscillicious VST Plugins and Audio Tools
User avatar
albert
Mixxx Developer
 
Posts: 554
Joined: Wed Feb 13, 2008 5:45 am
Location: Victoria, BC, Canada

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby kdjdem » Sat Dec 12, 2009 10:00 am

What about if you write a script that reverses the direction of the jog wheel?


Good idea. How ? :mrgreen:

Seriously, I'm already hardly fighting with XML, I'm just not able of writing scripts :oops:


thanks
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby kdjdem » Fri Dec 18, 2009 5:02 pm

Well....I give up. :(

I tried to improve my mapping, but it stills not enough useable. I'm not a developer, and believe me, what you think is simple is not so simple for everyone :mrgreen:

Perhaps new versions of MIXXX will include a complete mapping wizzard ?

bye
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby albert » Sat Dec 19, 2009 8:42 pm

Unfortunately, I don't think we have any developers with spare time to help work on your script. It's very difficult for us to support devices where one of us doesn't have the device on-hand.

However, if you could please share your existing mapping (if the one above isn't the latest), then perhaps the next person who comes along can pick up where you left off and take it from there.

A more complete mapping wizard is something we will definitely consider working on in the future.

Thanks for your time,
Albert
Start DJing with Mixxx | Fill your Sampler Decks with BeatCleaver | Oscillicious VST Plugins and Audio Tools
User avatar
albert
Mixxx Developer
 
Posts: 554
Joined: Wed Feb 13, 2008 5:45 am
Location: Victoria, BC, Canada

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby kdjdem » Sat Dec 19, 2009 11:15 pm

The one above is the latest (even if you need to add the jog wheels part too). I understand you can't take time to create one driver for each controller, no problem. I guess the solution will be in a more complete mapping wizzard "for dummies" :mrgreen:


thanks anyway, I'll still follow the project.
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby kdjdem » Sat Mar 27, 2010 8:44 pm

BUMP

I come back to know if any progress has been done concerning mapping wizzard in MIXXX, or perhaps someone has found something for the KDJ500 ?

THanks !
kdjdem
 
Posts: 42
Joined: Tue Dec 08, 2009 12:20 pm

Re: Kontrol DJ 500 under MIXXX sofware (windows XP version)

Postby Pegasus » Sun Mar 28, 2010 2:34 pm

kdjdem wrote:The remaining problem is that the jogs are inversed... I mean, when I turn the jog clockwise, the track slows down, and when I turn the jog anti clockwise, the track accelerates. I want my jogs to do the opposite (clockwise = acceleration, anti clock wise = slow down).

SO the question is....how can I reverse the jog work to run "normally" ?


Yeah, you'll need a script function. Do something like this in the XML:
Code: Select all
           <control>
                    <status>0xb0</status>
                    <midino>0x28</midino>
                    <group>[Channel1]</group>
                    <key>KontrolDJ500.jog1</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>

Then make a script file that includes a function like this:
Code: Select all
KontrolDJ500.jog1 = function (channel, control, value, status) {
    if(value==0x7F) engine.setValue("[Channel1]","jog",1);
    if(value==0x01) engine.setValue("[Channel1]","jog",-1);
}

Then play around with the -1 and 1 values to get the sensitivity you prefer. (You can set them to values less than 1 as well, e.g. -0.1 and 0.1.)
Make sure to add .init and .shutdown functions as mentioned on the wiki and to add the script file to the top of your XML file so it gets loaded.

And yes, I'll need to post a section to that wiki page specifically for jog wheels.
"D.J. Pegasus"
Mixxx Developer - Controller Specialist
Mixxx Windows package maintainer
User avatar
Pegasus
Mixxx Developer
 
Posts: 1656
Joined: Thu Jan 29, 2009 7:48 pm
Location: Spangdahlem, RP, Germany

PreviousNext

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 2 guests