DENON MC4000 Mapping

Hey Guys

Just Opening the thread for the Mapping, I’ve already preordered my controller and I am not a developer by any means, So when anybody has any help on the mapping post away!

I haven’t pre-ordered, but this is likely my next controller as well. Did some work on a DDJ-SB mapping a few months back and was looking at either this or the DDJ-SB2. Only reason I’m going with the MC4000 is the input/output and pitch fader.

Looking forward to getting my hands on some MIDI message documents or the board itself, itching to get started on this

The MIDI Commands are documented in the Appendix of the User Guide that can be found on the product page:

denondj.com/products/view/mc4000

Thanks tapir, I’ll take a look into that this week. Save for the fact the pads can be different colors (neat!) and the vu LEDs can be controlled separately or together (channel/master vu?) everything looks straight forward.

hi guys,

As I can see there has been nothing new for the MC4000 for a long time, but I am committed to get this up and running. I’ve just bought the controller, and so far I have the basic XML more or less done.

I need some more time time to get my head round of the Javascript functionality (I am an amateur python coder) so all the controls work properly.

I will keep you posted.

Hi everyone :slight_smile:

Has someone created a mapping for the MC4000 that is available to download?

I’ve just bought this controller, and I’m hoping to use it with mixxx - don’t want to start from scratch if the donkey work has already been done!

I’ve had a quick look around but I can’t see any existing files? (probably just not looking hard enough…?)

All the best
:slight_smile:
Hardy

I’m also about to buy one of these… Could those who have put any significant work into creating the mappings please create a gist on github or something so that we can make the mapping collaboratively?

My unit is going to arrive in a few days. I guess we’ll be able to use the existing MC3000 and MC6000MK2 mappings as a base:

github.com/mixxxdj/mixxx/tree/m … ontrollers

This unit is actually more a Numark than a Denon controller. Adopting an existing mapping from another Denon controller might be of limited use. Please also have a look at the Numark mappings.

After a quick look at the MIDI codes I see lots of differences compared to the MC6000MK2. Fortunately the mapping for the MC4000 actually seems to be easier to accomplish than that for the MC6000MK2 :slight_smile:

Ah yeah it looks like the MC4000 codes are completely different from both the MC6000 and the Mixtrack 3… Maybe I’ll just generate the XML using the GUI tomorrow if nobody shares their base mapping.

OK I’ve started on a new mapping today and have uploaded a prototype to my github using the new JS library that BE is working on as a base.

Hardly any of the controls are mapped yet, but I expect to complete it over the next few days / weeks. If anyone is interested in collaborating so I don’t have to do it all myself that would be highly appreciated.

Edit: The BASIC functionality is now mostly implemented: E.g. the mixer controls, jog wheels, scratching (with vinyl mode on), pitch faders, library load, etc.
Still need to mapped: hot cues, loops, FX, and the sampler as well as some other miscellaneous buttons.

This is amazing work! Thank you for doing this :slight_smile:

It all seems to be working for me (on linux mint, with mixxx 2.0.0.1)

Scratch doesn’t seem to work for me - with vinyl mode on, when I touch the jog wheel, I get an error ‘A control you used is not working properly…’ ‘Details’ gives ‘Could not getControlObjectThread()’ - ‘Ignore’ just has it pitch bending. If I touch the jog when the track is not playing, it will play forwards and backwards with the jog, but it will sort of coast, rather than track the position of the jog) (if that makes sense?)

I’m afraid I can’t help with the code - I thought I might be able to spot a problem, but I’m new to this, and looking at the code, it’s just too much for me (it would take me weeks to understand it, although I shall devote my spare time to it in case I can help in the future!!)

Thanks again for your hard work. I can help with testing, at least!

All the best!

EDIT: Looking at the code, I changed the latency setting in mixxx to it’s lowest value, and the ‘coasting’ I was talking about is all but gone. Hope that helps!

You might need to compile from source code using the latest version of the master branch to get it working, as I haven’t tested with any other versions.

If it still doesn’t work after that, then please run mixxx from the command line using the --midiDebug argument and see if there is any more useful debug information there.

I’ve made a few major revisions to the mapping over the last week, and have submitted for review.

Are there any MC4000 users here that own macs? I’d like someone to test something for me.

I compiled from the master branch on another machine, and a quick test seems to all work as it should. Hurray!

On my ‘live machine’, with mixxx 2.0.0.1, your new xml and js give me the same error message when I touch the jogs, but clicking ‘ignore’ doesn’t have it scratch at all, not even the ‘coasting’ thing I had before - it just alters the pitch when I spin the jogs.

It might be that I’ve done something silly with the configuration in the past, and a fresh install of the stable version might work ok, but I can’t risk trying it right now… (It works with my old controller (numark mixtrack pro 2) and I’ll need it later in the week - I’m afraid I might break it if I mess with it trying to get the mc4000 working, and then be stuck when I need it!)

the --midiDebug option gives pages and pages of the same error - each tick, presumably?;

Is that any help? I’m guessing you’ll want the mapping to work with the stable version, not just the master branch?

If the above doesn’t reveal anything, then I’ll bite the bullet and reinstall fresh with 2.0.0.1 and try again. I can do that over the weekend. It might be time for me to start fresh anyway :wink: I seem to have a lot of redundant log files and stuff in my .mixxx directory, some of which are quite large…

If version 2.1 is close to stable, then perhaps it’s better that I just wait for a few weeks? When I was running the master branch version on the other machine it didn’t crash or anything, but that was only half an hour or so…

Thanks again for your efforts; really looking forward to using Mixxx with the Denon controller (I’m not getting on that well with Serato, to be honest! Or Windows, for that matter.)

BTW - is anyone else working ok with the mc4000 with Mixxx 2.0.0.1 on Linux? Is it just me that’s got a problem? It wouldn’t surprise me…

I deleted my installation of mixxx 2.0.0.1 and removed the .mixxx folder (I’m on linux mint 17.1) Reinstalled from the ppa. I got mostly the same issues;

When the track is playing, touching the jog has no effect, spinning the jog (with ‘vinyl’ on) just increases/decreases pitch.

When the track is paused, touching the jog and spinning will move the track forwards and backwards, but the ‘coasting’ I was talking about still occurs depending on the value in ‘audio buffer’ - minimum value gives next to no ‘coasting’ max value (92.9ms) has it ‘coast’ along for a couple of seconds after the jog wheel is stopped.

The error seems to come up less frequently whilst a track is playing than it did before reinstalling. But still doesn’t appear to effect operation if I click ‘ignore’.

I’ve tried playing briefly with some of values in the .js file, but I don’t know what I’m doing, and I didn’t make any progress - didn’t solve anything.

I’ve now compiled from source from the master branch, so I’m running the 2.1.0-alpha-pre version. Everything I’ve tried seems to work as it should; jogs stop the track when touched, scratch, no error message…

I’ve been using this version for a couple of days and it seems stable! So if there’s no appetite to fix the mapping for 2.0.0.1 (assuming I’m not the only one with the problem) then I guess we should just wait for the stable release of 2.1?

EDIT: - just to add - with 2.1, and the track paused, if I take my finger off the jog before it stops spinning, it will ‘coast’. If I keep my finger on until it stops, then it doesn’t. Does that give a clue?

All the best everyone
:slight_smile:

Good to hear. I’m planning on submitting a patch to the 2.1 branch with some currently unsupported controls that I want to use on the MC4000 mapping, so I think it makes sense to target release 2.1.

Sorry I don’t really follow you… would you be able to post a video or something demonstrating the steps to reproduce the issue that you’re having?

we moved from here: mixxx.org/forums/viewtopic.php?f … 3&start=10

here: github.com/mixxxdj/mixxx/tree/m … ontrollers
it was not that hard :slight_smile:

The mapping is for the master branch. If you try to use it with Mixxx 2.0 it will not work.