Denon MC7000 Mapping

Thank you very much for this answer Be! So what do you suggest then? Thanks a lot.

Obvious to reduce the amount of traffic and try to switch off each LED individually.
To only trigger the LEDs that are active in multiple blocks seams to work solid now…

@Be : any chance you could help me with the PAD Modes as asked in

Much appreciated! OsZ

Hi everyone - I have created a WIKI page as well in order to let you know about the functionality of this controller…


Hello guys -
please can someone let me know what I am missing for the Pad modes ?
I already struggle to get the pads working in a simple function when trying to apply the coding as mentioned in the WIKI.

The xml file contains links to the PADs as following:

<control> <group>[Channel1]</group> <key>MC7000.PadButtons</key> <description>PAD-1</description> <status>0x94</status> <midino>0x14</midino> <options> <script-binding/> </options> </control>
Obviously continued for all other pad buttons on all other decks.

In my MC7000.Deck function I put this according to the WIKI:

MC7000.PadButtons = function(channel, control, value, status, group) { var hotcues = []; for (var i = 1; i <= 8; i++) { hotcues[i] = new components.HotcueButton({ number: i, group: '[Channel1]', midi: [0x94, 0x14 + i - 1], }); } };
but always get an error: “Can’t find variable: components”.

I also tried this:

MC7000.PadButtons = function(channel, control, value, status, group) { var button = control + 1; script.toggleControl(group, "hotcue_" + button + "_activate"); for (var j = 0; var j <= 3; j++) { midi.sendShortMsg(0x94 + j, button, 0x04); }; };
which is not working as well.

With that PAD buttons I get quite frustrated now - please I need someone who can look into this.

Thanks a lot.

Wow, that is really great. I own a MC7000 too. I bought it recently and will try to use it with Mixxx. Is there any progress since Dec30?

Oh well - so much progress during January. All features are working now except the PAD modes (see above post - I am frustrated about that already). Working: the needle drop strip, key adjustments, Vinyl mode also toggles platter ring LED control, backspin on the CENSOR button (adjust the length of backspin with the STOP TIME knob). I don’t know all changes within the last 4 weeks but that triggers me to give a clear history change log. I gonna do that on the WIKI site with the next mapping. Thanks a lot and please let me know how the mapping is working for you. Let me also know if there is anything to adjust. Cheers!

Wow, thats incredible. I will check everything out and reply then

Hello - very good news: finally we have got a stable kernel patch from the ALSA team to get the Denon supported by the Linux Kernel. Please find it attached here.

Cheers! (2.53 KB)

Finally the patch for Denon MC7000 and MCX8000 will be implemented by the next updates of mainline, stable and LTS Linux Kernels as Greg Kroah-Hartman signed off and moved it to the Kernel stable queue for Kernels:


Updating to the new Kernel revisions of the mentioned branches will give you native audio support for the device.

Thanks a lot to the ALSA and Linux Kernel team for this great news and especially also “Endorphine” for testing.

PS: Now concentrate to finish the PAD Mode mapping :smiley:

Fantastic! A real big thank you for your efforts and and the efforts of the ALSA-team. This is the true power of open source and the community!

Hi …
I have continued to work on PAD modes but not really satisfied with it. Anyhow I uploaded the latest mapping file to the first post and also linked to the WIKI at:

Here what is changed in Beta 0.13:

“BEAT GRID - set” to be used for quantize
“SHIFT + AUTOLOOP” to deactivate an active loop

PAD Modes (feedback and help is very welcome):

  1. ROLL section is working now with 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8 beat loops (I didn’t find any issues yet)
  2. CUE LOOP initially implemented but still with issues
  • if a track is not playing initial set up of cue point is working to create the cue point and the loop
  • if track is playing and a CUE LOOP Pad is pressed it jumps back to the hot cue point but the loop is created where the button was released and not at the cue point
  1. Eject loaded Sampler using Shift + PAD button while in SAMPLER mode

PAD Mode LEDs:

  1. CUE Mode:
  • When a track is already loaded then all LEDs are working ok.
  • When a track with already set up hot cue points is loaded first time then the LEDs do not reflect the existing cue points. Change to another mode and return to CUE will show all LEDs illuminated for active CUE points
  1. SAMPLER Mode:
  • LEDs are working on the active deck but not on the other deck when also in SAMPLER mode.
  • When a sampler is finished playing then the play LED stays active and doesn’t return to “loaded track” illumination

Please also see

I would be very grateful if anyone could check my implementation trials.

Thanks a lot guys.

Beta 0.14 is available bringing further PAD mode improvements - download here:


  • code clean up and simplifications
  • PAD Mode LED improvements
    ---- HotCue LED will be triggered on or off when loading and ejecting a track
    ---- Sampler LEDs now working on all Decks
  • CUE LOOP deactivated for now
  • SLICER mapped as beatjump buttons forward and backward by 1, 2, 4 and 8 beats
  • set default Pitch Fader RANGE to 4, 6, 10, 16, 24 (%)

Hope for some feedback.

Hey OsZ,
Do you know if your MC7000 mappings work on the MCX8000?
I found the old MCX8000 mappings on github but I’m unsure how good they are given their age. … scripts.js … 0.midi.xml

Hello almw - as I don’t own a MCX8000 I cannot say unfortunately. As the MC7000 MIDI signals were not made public by Denon then I used several items of the MCX8000 - like the LED signals for the platter rings etc. Some functions also use the same MIDI signals - other functions use different though. I think you would be very disappointed using my mapping straight away - anyhow it may be a good starting point to combine with the MCX8000 mapping you found.

PS: Check my very first post here to find all the MIDI signals from the MC7000 to compare with your MCX8000

Have fun!

The MC7000 mapping actually does work with the MCX8000. Of course, the screens are not supported by the MC7000 mapping.

That is interesting to know the MCX8000 works to great extend with the MC7000 mapping. Assume the MCX8000 is a MC7000 with displays… anyhow, some MIDI signals are different. So I am wondering how satisfying that will be.
I have updated the MC7000 mapping to implement the sort functions for Mixxx 2.3 - hope they should work on MCX8000 too.

hey there, first thank you for all your work getting the mc7000 mapped nd working i’m excited to play using mixxx and my mc7000 for the first time…my trouble is this, that i can get my windows lenovo thinkpad to play using the mc7000 with serato, but nothing seems to play with the mc7000 on my macbook air 2014, running Catalina. I can get the controls and everything in the software to show it’s being controlled by the mc7000, but when i load a track it never shows the waveform, just hangs at loading. interestingly if i use the dennon or built in sound i get nothing , sometimes i get the portadudio error, which i thought i fixed by using homebrew o update/reinstall portaudio all together, however i stll get the portaudio message eventhough everything looks to be being controlled fine, just no tracks load up. So i have a peavey 6 mixer with usb, plug that into the laptop and choose it formy out signal and bam , tracks load and waveforms good, sound that plays is nice and crisp, BUT i loose the functionality of the mc7000…please advise me do i need to do this kernel patch i read about up above? What is and how do i stop the portaudio error? Why wont it load tracks and make sound if the dennon is my output and can i fix that? Lastly I have been wondering if there is a way to use a different audio engine like propellerhead software , Rex and rewire to use for the sound output of sound thru mixxx and the os… Ableton never gives me any problems, it also takes over the audio, it always recognises the mc7000 and my ddjsx2 as midi controller with some mapping in place… i can run audio in and out and in and out again never have a problem, if thers a way to use that software instead of portaudo tht would. be so super dope causse i haven’t been able to use thsis new controller even once yet

Hey DJSquale,
from your description it sounds like it is no mapping issue but a sound device issue. Unfortunately I cannot even help really on Mac Sound system choices as I am on Linux. The patch mentioned above is for Linux kernels only, not for Mac OS. Anyway, all recent Linux kernels do not require the patch anymore as the support for this device was implemented to the kernel.

You could check if the MC7000 can control Mixxx when you select another sound device, like your built in speakers or external audio interface.

Also check if you can use the MC7000 sound device for other software than Mixxx, eg a video player and if sound is recognised at all

I would recommend to look into the manual and maybe my howto video on youtube help there as well.

PS: I strongly recommend to use Mixxx v 2.3 already even it is still beta. It added a lot of features.

Another point: Can you select Core Audio for the audio API in Mixxx? According the manual that would be the only one on Mac OS.

ya but when i do and i hit the apply button i get the message internal portaudio error. So like I don’t know hadly anything about programming, i get the idea but know nothing f the languages and how they work, but from what i have gathered is that coreaudio uses portaudio binary to do whatever it is it does. I don’t know if there is a problem with the headers not being labeled in the portaudio library on my mac because in the code(i use xcode to view whats going on) it says theat it can’t find AUHAL or whatever it’s called but after looking on the portaudio site it refers to that as being the header for coreaudio on mac systems, some part of the scons build part of the programing. So like i tried to download the portaudio library but didn’t fix nothing…So now I don’t know if I have to try to compile these scons myself as part of the programming, maybe something that Catalina didn’t do or doesn’t support anymore that mine is trying to use…otherwise your mapping for the mc7000 works great , but i wont load songs and no sound comes out no matter how i set up the input output for the audio. I am having the same problem with serato it just comes back as saying failed to connect to audio, which is strange that all my dj apps, VDJ, Cross, all have same issue, however Ableton Live that uses REX ReWire for audio connects to all of it and plays it back and connects to controller all that just fine. thus furthingerin my suspicion about a lack in the portaudio coding that was done when i went from high sierra to catalina…

Hey @DJSquale - sorry that I cannot further help on sound device issues for Mac. Afaik here are not many Mac users anyway so maybe you are more lucky at MacOS forums to ask about sound setup. You did not even answer my questions so there is no way we could narrow down your issue. Just googled myself for denon mc7000 mac os and first 2 links got me to Denon Knowledge Base site about MacOS 10.13 and 10.15. Maybe you gonna find something useful there. Cheers