Denon MC6000MK2

Thanks for your review, RJ! The script is already huge and any hints for simplifying it are greatly welcome. I’m also striving for a more modular and cleaner design. Well, JavaScript is definitely not my coding language of choice. Lots of trial and error and often hard to detect runtime bugs.

I noticed that “filter” and “filterDepth” are not available any more? Already tried to use them for my VCI-300, didn’t work either. A quick look into the source code revealed that the corresponding control objects don’t exist, although they are still documented in the Wiki.

Btw, the new cue/play indicators are really nice :slight_smile:

Mapped some controls and the VU meter LEDs directly:

Mixxx_Denon_MC6000MK2_2014-04-14.zip (8.52 KB)
I could not directly map to SelectTrackKnob, because the knob on the controller sends the values 0x00/0x7F for right/left turns which need to be transformed to +1/-1 by the script.

Oh, shoot – I misread 0x00 and 0x7F as 0x01 and 0x7F (which the selectknob MIDI option would handle correctly). Yea, for now script is needed for that.

Looping

  • Loops: Manual, beat and beatroll
  • Censor: Use reverseroll instead of reverse
  • Scratching: Don’t modify keylock mode

Mixxx_Denon_MC6000MK2_2014-04-16.zip (8.94 KB)

  • Solo cue mix when loading a track (can also triggered manually by pressing Shift + Cue Mix)
  • Slip mode fixes (still does not always work as expected)

Mixxx_Denon_MC6000MK2_2014-04-17.zip (9.11 KB)

2014-04-27: Samplers and various improvements

  • 16 samplers (4 per deck)
  • Hotcue fixes
  • Sync mode switching improvements
  • Use cue mix LEDs as track load indicator
  • Delete obsolete filter controls

Mixxx_Denon_MC6000MK2_2014-04-27.zip (9.6 KB)

2014-04-28 Polishing

  • Global shift state
  • Slip mode fixes
  • Looping improvements
  • Cue button controls AutoDJ fade/skip
  • Shift + play triggers stutter play
  • Internal refactoring of hotcues
  • Delete obsolete constants & triggers
  • Minor changes

Mixxx_Denon_MC6000MK2_2014-04-28.zip (9.76 KB)

2014-04-29 Many MIDI mapping fixes

  • Many MIDI mapping fixes, mainly for [Channel3/4]
  • AutoDJ changes
    Shift + Cue triggers skip_next
    Shift + Play triggers fade_now
  • Internal refactorings & cleanup

Mixxx_Denon_MC6000MK2_2014-04-29.zip (10 KB)

2014-04-30 Only 4+4 samplers (shared between decks)

  • MIDI debugging revealed that the sampler controls buttons/LEDs are sending/receiving on MIDI Ch0 (left side) and MIDI Ch2 (right side) independent of the currently selected deck.
  • Automatically load selected track into empty deck or sampler when pressing the cue/play or the sampler button respectively

Mixxx_Denon_MC6000MK2_2014-04-30.zip (10.3 KB)

2014-05-02 Sampler modes + crossfader configuration

  • Support 2 different sampler modes:
  • Hold (the new default mode)
  • Trigger
    The default sampler mode can be changed by setting DenonMC6000MK2.DEFAULT_SAMPLER_MODE appropriately.
  • Assignment of crossfader to channels
  • Modify contour of crossfader curve
  • Delete unused booth level control

Mixxx_Denon_MC6000MK2_2014-05-02.zip (10.8 KB)

2014-06-11 Filters and initial effects support

  • Effect units (ordered according to physical controller layout from left to right):
    • EffectUnit1: Left FX1
    • EffectUnit2: Left Filter
    • EffectUnit3: Right Filter
  • EffectUnit4: Right FX2
  • Filters are fully functional
  • FX1 and FX2 can be assigned to decks
  • Minor changes of VuMeter sensitivity

Mixxx_Denon_MC6000MK2_2014-06-11.zip (11.5 KB)

2014-06-12 Basic effect chain control

  • Effect chain selector (need to press shift as labeled)
  • Efx3 button enables/disables the effect chain
  • Efx3 knob for dry/wet control
  • Efx2 knob for master parameter control (“metaknob”)
  • Minor cleanup

Mixxx_Denon_MC6000MK2_2014-06-12.zip (11.4 KB)

2014-07-14 Simplify sync logic

  • Control sync mainly through “sync_enabled” instead of trying to select a specific “sync_mode”. Mixxx already handles this internally and we should not override it here
  • Generalize shift button handling for easier switching between local and global Shift button handling
  • Minor cleanup

Mixxx_Denon_MC6000MK2_2014-07-14.zip (11.8 KB)

2014-08-20: Sync mapping with push-and-hold

  • Use MIDI mapping for “sync_enabled” to support push-and-hold
  • Change sync mode indicator LED:
    MASTER=blinking, FOLLOWER=on, NONE=off
  • Use setParameter() instead of setValue() for effect parameters
  • Fix right effect unit enabled LED

Mixxx_Denon_MC6000MK2_2014-08-20.zip (11.9 KB)

2015-01-25: Reconnect controls for version 1.12

  • Connect filter effect to QuickEffectRack
  • Connect channel EQs to EqualizerRack
  • Connect FX Beats knob to musical key controls (next/prev/reset)
  • Fine-tune jog wheel parameters

Mixxx_Denon_MC6000MK2_2015-01-25.zip (12.3 KB)

2015-04-27: Release candidate for 1.12

Please update the firmware of your controller to v1003. Otherwise the filter LEDs will not work with this mapping.

  • Unify jog wheel control for vinyl and non-vinyl mode
  • Implement proper spin-back capability
  • Fix key control
  • Change MIDI numbers of filter LEDs (FW v1003)
  • Update state of filter LEDs when applying the filter (in addition to engine callback)

Mixxx_Denon_MC6000MK2_2015-04-27.zip (12.5 KB)

2015-05-03 Minor bug fixes

  • Fix scratch ramping
  • Fix controller shutdown

Mixxx_Denon_MC6000MK2_2015-05-03.zip (12.6 KB)

Deployed with Mixxx 1.12 Beta (build r5418)

2015-06-28 Getting ready for release

  • Documentation: mixxx.org/wiki/doku.php/denon_mc6000mk2
  • Break effect (press Shift + Cue while playing)
  • BPM synchronized echo loop effect (due to an open echo effect bug the delay is currently only 1/2 beat long)
  • Various internal improvements and fixes

Mixxx_Denon_MC6000MK2_2015-06-28.zip (13.7 KB)

2015-06-30 Usability + Bugfixes

  • Improved usability of echo loop (slip mode)
  • Bugfixes

Mixxx_Denon_MC6000MK2_2015-06-30.zip (13.9 KB)

2015-10-04 Final (hopefully) update for 1.12

  • Just some cleanup and formatting

Mixxx_Denon_MC6000MK2_2015-10-04.zip (13.2 KB)