Pioneer DDJ-400

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

Moderators: garth, User Customization Moderators

Re: Pioneer DDJ-400

Postby sinfulchimp » Mon Jun 10, 2019 10:49 pm

warker wrote:Hi, I implemented this ~2 weeks ago including LEDs. Checkout my github
I think one could use that. I also tried to stick to Rekordbox default as possible.


Sure I will have a look at yours. Looks like you got a really good working version can't wait to test it out!
sinfulchimp
 
Posts: 3
Joined: Mon May 27, 2019 4:52 pm

Re: Pioneer DDJ-400

Postby diskoselecta » Mon Jul 01, 2019 11:41 pm

Can you implement this ?

Code: Select all
var deck = DDJ400.channelGroups[group];

    if (value) {

        if (DDJ400.smartPFL) {
            for (var i = 1; i <= 4; i++) {
                //Change headphone cue (pfl) to the deck on which the song loaded.
                engine.setValue("[Channel" + i + "]", "pfl", (deck+1) === i);
            }
        }

        engine.setValue(group, 'LoadSelectedTrack', 1);
    }


also I have changed the ddj-sb2 to search tracks with shift+jogplattermove.

Code: Select all
DDJ400.jogSearch = function(channel, control, value, status, group) {

      var oldPos = engine.getValue(group, 'playposition');
      // Since ‘playposition’ is normalized to unity, we need to scale by
      // song duration in order for the jog wheel to cover the same amount
      // of time given a constant turning angle.
      var duration = engine.getValue(group, 'duration');
      var newPos = Math.max(0, oldPos + (DDJ400.getJogWheelDelta(value) * DDJ400.stripSearchScaling / duration));
      engine.setValue(group, "playposition", newPos); // Strip search

};


the vumeter needs to be improved ( based on the ddj-sb2 script )

Code: Select all
// The red LED lights up with MIDI values 119 (0x77) and above. That should only light up when
    // the track is clipping.
    if (engine.getValue(group, 'PeakIndicator') === 1) {
        value = 119;
    } else {
        // 117 was determined experimentally so the yellow LED only lights
        // up when the level meter in Mixxx is in the yellow region.
        value = Math.floor(value * 117);
    }


also I have replaced the sync button with

Code: Select all
DDJ400.keyLockButton = function(channel, control, value, status, group) {
    if (value) {
        script.toggleControl(group, 'keylock');
    }
         
};


but it's not a wide change. It's only for my usage.
diskoselecta
 
Posts: 24
Joined: Wed Dec 10, 2014 5:42 am

Re: Pioneer DDJ-400

Postby diskoselecta » Mon Jul 01, 2019 11:48 pm

I also compile mixxx with those changes.

in "enginemaster.cpp"

Code: Select all
 m_pMasterGain = new ControlAudioTaperPot(ConfigKey(group, "gain"), -14, 9, 0.6);


to match the knob configuration.

in "enginepregain.cpp"

Code: Select all
m_pPotmeterPregain = new ControlAudioTaperPot(ConfigKey(group, "pregain"), -12, 9, 0.65);


to allow a +9db max. But it's a little experimental
diskoselecta
 
Posts: 24
Joined: Wed Dec 10, 2014 5:42 am

Re: Pioneer DDJ-400

Postby Leo Combes » Sat Oct 05, 2019 2:37 pm

Last night I was testing the Warker mapping. I use only linux, so I not have rekordbox to compare.
A very good job has been done with this mapping.
Some thoughts are based in a mapping I was made for DDJ 400 and could be nice see on new official mapping, although some things may not be the same or be present in rekordbox.

- we need a control to enable / disable vinyl or scratch mode while playing. In my mapping version, the outer wheel control the pitch bend, inner plate is used to scratch, but this can be dangerous if we touch the center plate accidentally. A key to enable / disable this behaviour can be useful.
- pitch slider is inverted, this is a minor fix. I would like see added 4% range.
- pushing browser rotary selector actually select between files / folders like in rekordbox (I think). In my version, pushing the control will load and play preview listening over track from beggining or cue mark, when release the control will jump preview to middle of track, push again stop the preview function. This is incredibly useful to identify a track quickly while explore lists. I understand that changing this behavior could be weird, but could have a combination of keys to do this anyway?
- in beatloop mode, pads do the thing is supposing to do (loops). But if press any pad while maintain shift key, beatloop will made with slip mode (track will continue in background), and this is really fantastic. This is momentary, only works while pad press is maintained. When pad is released, the track will jump and continue in the position where is supposed should follow if the loop had not been made.
- in FX1 mode I have kills for EQs. Could be made with shift if rekordbox have other controls here, but anyway, the idea is: pads 1 to 4 controls permanent on / off in low, mid, high and filter, pads 5 to 8 do the same but momentary (not permanent) and reset the knob to default position (center).
- shift + play works as reverse button.
- shift + cue go to very beginning of track.
- we need any combination of key to on / off keylock mode. I made it with shift + beatsyc, but "tempo range" it has to be used here.

For now is all I remember ... if anyone like some of this ideas I could help implementing it.
Leo Combes
 
Posts: 24
Joined: Fri May 20, 2011 12:02 am

Re: Pioneer DDJ-400

Postby hayasakabu » Sun Oct 06, 2019 5:46 pm

Leo Combes wrote:- we need a control to enable / disable vinyl or scratch mode while playing. In my mapping version, the outer wheel control the pitch bend, inner plate is used to scratch, but this can be dangerous if we touch the center plate accidentally. A key to enable / disable this behaviour can be useful.
- in beatloop mode, pads do the thing is supposing to do (loops). But if press any pad while maintain shift key, beatloop will made with slip mode (track will continue in background), and this is really fantastic. This is momentary, only works while pad press is maintained. When pad is released, the track will jump and continue in the position where is supposed should follow if the loop had not been made.
- shift + play works as reverse button.
- shift + cue go to very beginning of track.

These are all good ideas to implement. I haven't tested Warker's config all that much but I had trouble scratching/using effects. For the effect knobs, the 1 2 Master slider can be used to choose which deck to put the FX on and when the effect button is pressed on the controller it could activate the selected fx deck for the selected deck. The effect knob can be mapped to the meta knob easily as well.
Also, care to share your mapping? I'd love to try it out and see if I can scratch as well..
hayasakabu
 
Posts: 3
Joined: Sun Oct 06, 2019 5:33 pm

Re: Pioneer DDJ-400

Postby Leo Combes » Mon Oct 07, 2019 1:25 pm

Also, care to share your mapping? I'd love to try it out and see if I can scratch as well..


Yes! But I have to warn that the mapping is fast and dirty one, I copied another map and patched, deleted and changed things without comments or specific order. It is a disaster, but it works 8-)

You can test some of features I have mentioned here.
Attachments
Pioneer-DDJ-400-scripts.js
(48.67 KiB) Downloaded 11 times
Pioneer-DDJ-400.midi.xml
(126.65 KiB) Downloaded 11 times
Leo Combes
 
Posts: 24
Joined: Fri May 20, 2011 12:02 am

Re: Pioneer DDJ-400

Postby hayasakabu » Tue Oct 08, 2019 5:46 pm

Definitely can scratch properly with it though as you said the code is really messy :lol: . Combining it with Warker's mapping would do wonders to it.
hayasakabu
 
Posts: 3
Joined: Sun Oct 06, 2019 5:33 pm

Re: Pioneer DDJ-400

Postby Leo Combes » Wed Oct 09, 2019 6:45 pm

Another idea: scratch could only work when track is paused...
Leo Combes
 
Posts: 24
Joined: Fri May 20, 2011 12:02 am

Re: Pioneer DDJ-400

Postby jusko » Fri Oct 11, 2019 3:09 am

Thanks for creating this mapping @Warker! You've done some great work here.

I've added the link to the latest firmware update on the controller page. https://www.pioneerdj.com/en/support/so ... er/ddj-400. This fixes a bug where the tempo faders occasionally sent signals when they are not moved.

I'm wondering if the 14-bit-lsb implementation can be customised somewhat to make it easier to hit certain % increments when using the faders. For e.g., I want to hit 0.8, 1.6, 2.4, 3.2, 4.0 and 4.8 rate increases/decreases more easily. It's possible on 6% rate limit (or if I add a 0.048 option to the `temoRanges`). But the faders are so sensitive it's really difficult to hit them consistently.

Any ideas on how to do this? I'll try take a look into it on the weekend
jusko
 
Posts: 8
Joined: Sun May 26, 2019 10:46 am

Re: Pioneer DDJ-400

Postby hayasakabu » Fri Oct 11, 2019 7:42 am

The rekordbox mapping can be found here https://www.pioneerdj.com/en-us/support/software-information/controller/ddj-400/ under the rekordbox tab.
hayasakabu
 
Posts: 3
Joined: Sun Oct 06, 2019 5:33 pm

Previous

Return to Controller presets/mappings

Who is online

Users browsing this forum: No registered users and 3 guests