Mapping for the DDJ-1000


  • 2 decks
  • 8 Hotcues per Deck (Shift+Hotcue X to undo)
  • Jog Visualisation : Position Bar + Elapsed Time + Current BPM + Current Tempo range
  • Vu Meter

Function (Touch)

  • Tempo Range : 8% - 12% - 24% - 100% (Tempo change with Shift+Master Tempo)
  • Back -> focus to ‘next’ left panel
  • View -> focus to ‘next’ right panel
  • Reverse -> Hold mode
  • Seach -> Fwd ; Rwd
  • Jog : Scratch + Pitch bend

The FX part can be improved

Enjoy :slight_smile: (5.19 KB)

thanks for this mapping.
I’ve seen parts of the code and indeed its great to be away of the traktor limitations and workarounds.

some notes:

  • “4-beat loop” button should be 4-beat loop / loop deactivate.
  • not putting enough pressure on the mechanical jog makes pitch bend. Right now it sounds bad because it gains significant queueing
  • pitch going down increases tempo. This is good. However is confusing that the opposite is seen on the GUI.
  • Scratching was very good for MIDI standards. There was however a slight glitch everything releasing the jog.


  • needle going round was jerky. in my BOME mapping I just had to raise the timer frequency to make it smooth
  • needle doesn’t go before the zero point. This is confusing when scracthing on the very first beat

PS: these are my MIXXX-generic notes as well:

at a fairly later stage I’m interested in building this map with you.

First to acheive good fidelity of all the functions as labelled in the controller.

After this is ok, I should be able to depart from there and build my own mapping, ideally by supporting my existing TSI mapping. … 0slide.jpg

CMDR already outputs CSV, could be done XML or maybe javascript (I appreciate XML is being phased out).

this would also have the benefit of bringing a huge number of legacy maps to mixxx.
For example I have another very complete map for the AMX. … 0slide.jpg


It sound very great your idea ! I’m in.

I made a break of few days, to think about the version 1.0 of my mapping. I will go further from tomorow. Since the difficult part is already done, the version 1.0 will be quickly done.

Hi @dj_estrela,

I am beginning the mapping for the v.1.0 .

It will be not closed to your Traktor mapping (even some functions will be), the idea is to do a complete 4 decks mapping as “non specific” as possible for the Mixxx community.
The next version, the 1.1 will be as closed as possible as your mapping.

I am one of the people who still work during the confinement, I hope to finish the verison 1.1 for wednesday or thursday.

very good
take your time. While I will definitly work on this, this is not going to be in the short term. (have other commitments in the meantime)

Cool that you got the screens on the jog wheels mostly working. I am wondering how Rekordbox sends the waveform data to the controller. It could be dumping some binary data into a MIDI sysex message, but I doubt it. There is likely another USB endpoint. That is how the NI Traktor controllers with screens work. Traktor renders QML to an offscreen buffer and sends bitmaps over a USB bulk endpoint separate from the HID endpoint. Currently there is no way to get waveform data from Mixxx to a controller so we would need to add that capability. If there is a vendor specific USB endpoint for the screens, we may need to use C++ to interface with it. I hope we could create a generic way for a controller mapping to provide a QML file and send it to a specified USB endpoint like Traktor, but I don’t know if the data formats on the wire are similar enough that this could work.

I’ve made some captures in the past for HID, was able to decode the midi messages in wireshark
my Notes: …

This is how the XDJ-1000 QML is implemented in traktor. … XDJ1000MK2

Stuff seems missing here, it is a lot shorter than for example the S8: … s/S8/Views

Now created a DDJ-1000 techical page:

  • List of MIDI messages
  • Differences between MIDI mode and HID mode
  • Pioneer hardware effects

Also made a technical page for all DDJs … ontrollers

  • DDJ pad colors
  • DDJ midi codes
  • DDJ Channels overview

Besides low-latency scratching and waveforms, doing HID has another benefit: there is several bugs/limitations on the MIDI mode.

I’ve documented what I found here: … d_hid_mode


Nice the DDJ-1000 page on Mixxx !

In my side, I’m stuck with the Loop resize function, i don’t know why yet, but I didn’t get it…

But now all the four decks are mapped, and I impove the javascript code.

I will write soon a documentation, but the specificities are :

  • the possibility to toogle the track time to remain/elapsed, but for individual deck instead of all decks :slight_smile: by pressing : Shift+Memory
  • More rate (tempo) range : 6/10/16/25/50/100 always changeable by pressing Shift+Master Tempo, that jump to the next rate (tempo) range : 6->10->16->25->50->100->6->etc.

I am still working on the Crossfader channel assignment (A.Thru.B), it is more tricky than expected.

I think now the community can easily mix with this mapping and add the missing functions, that mean the v.1 mean for me “user specific” -> “DIY”, I will not build this one, but from the next week I will begin the v.1.1 to add the functions you set for Traktor @dj_estrela . (8.31 KB)

Thanks for your trust.

I’ve done the last release of CMDR, and now I’m busy every day finishing the final release of my the traktor mapping.

already done: TurnTable FX, Filter superknobs, Tempo range enlarger, all buttons Blink as warning, beatFX fixes, moved from 6 pages to 3 pages (faster load), echo out releaseFX, backwards loop, backwards IN adjust.

todo: HC4500 timestamp, more superknob features, resonant filter, try more FX chains, porting to 4 decks (compiler already done).


I hope I can have more time also to do it…

The manual is done -> Attached. And I add some javascript lines I forgot in the version 0.99 (136 KB)

thanks! also updated the my personal list in the post above

Now created a list of fimrware bugs reported to Pioneer … en_tickets

would be great if you could create support tickets yourself, referencing the original tickets, to try raising the priority with them

I’ve now remade my v7 traktor mapping from scratch.
Hopefully this serves as a reference to the future free DDJ-1000 mixxx mapping, in terms of organization, manual and features.

15 minute demo mix:
61-page manual: … erview.pdf

@dj_estrela, @Capitaine_Fracasse would one of you like to submit this mapping for inclusion in Mixxx?

Thanks for this. I’m new to Mixx (literally as of today!) I generally use Rekordbox but I need to be able to boradcast to my ICECAST server for the radio show so mixx seems like the perfect candidate.

I have DJ 1000’s and have downloaded the xml and JS file here and put them in the presets folder and restarted Mixx however I still can’t find a preset for the DDJ 1000.

My list of controllers by default are _0, _1, _1, _2 etc. but after adding your files to the presets folder I now have 2 new ones. DDJ-1000 and DDJ-1000_3 however if I select DDJ-1000, the load preset dropdown on the right gives me lots of options but the only DDJ’s are DDJ-SB, DDJ-SB2, DDJ-SX. and the DDJ-1000_3 gives me a dropdown with no DDJ’s at all.

Can you assist? Thanks in advance :slight_smile:

EDIT. I did in fact just find the DDJ-1000 in the load preset list (it was all alphabetical order but this was at the very bottom but selecting it and hitting apply and restarting the software doesn’t seem to work for me. No response from the decks, just nothing happening.

It is worth noting, when I select DDJ-1000 and hit apply, the load preset main clears itself so it’s like it’s not registering that I’ve hit apply and saving DDJ-1000 as a preset.

Again, if I’m missing anything please let me know.


First bug reported !

I experience once what you mentioned, but it was probably one year ago… When selecting he “wrong” DDJ-1000 Mixxx tend to create new file and the delete the mapping… annoying.
If you use windows, delete all file here related to the DDJ : DDJ-1000_0.hid / DDJ-1000_1.hid /DDJ-1000_2.hid / DDJ-1000_3.hid + HIDI2C_Device_9999.hid / HIDI2C_Device_9999–2.hid / HIDI2C_Device_9999–3.hid / HIDI2C_Device_9999—4.hid
Unpack the file I attached (it contain the same files + the midi mapping)

After that, restart Mixxx, and normally you should see this : and it should work. If not, plug your DDJ-1000 and launch the debug mode of Mixxx on a command prompt window. (9.6 KB)

@Be0 Sorry I was off the forum during a couple of time. I am rechecking the code and writting a better documentation. I will do !