DJ-Tech Kontrol One mapping (hotcue loops, saves loops, etc)

Here’s a mapping for the DJ-Tech Kontrol One modular scratch controller. If you also have a DJ-Tech Mixer One, I’ve made a mapping for that too, you can find it here: viewtopic.php?f=7&t=4693

The Kontrol One has four clickable rotary encoder knobs. This mapping provides four “banks” of controls, accessible by clicking the knob buttons quickly. The Knob LEDs will flash to indicate what bank is active. The “Shift” button provides a second mode for each of the banks - I’ll call them bank 1a through 4a without shift, and 1b to 4b with shift.

Right now, I have only used Banks 1a (misc. controls), 2a (hotcues 1-16), 2b (hotcues 17-32), and 3a (loops and beatjumps). There’s a lot of room left for other stuff, which I’ll be adding in over time. When I do, I’ll update this post with new versions of the mapping.

Banks which are not yet programmed will have the controls from Bank 1a - here’s some technical shit nobody will care about: basically, every time you click a button, a function checks what command to execute. First, it checks whether a command has been set for the button you pressed with the modifiers that were held down on the current bank/shift setting. If that’s not set, it’ll check without the modifiers. Then without the shift setting. Then, it’ll check if a command is set on bank 1a with the modifiers. If it still hasn’t found a command set, then it defaults to 1a without the modifiers.

There are 7 modifier keys. Generally, if you hold these buttons you’ll have access to alternate functions on the other buttons. The main mod keys are right below the pitch slider - Pitch down, and pitch up. The four knob buttons are also modifiers - if you click them quickly, you’ll switch banks, but they are also modifiers if you hold them for more than 1/4 second, the bank switch action is cancelled, so you can use them as modifiers without switching banks. The shift key is also a modifier. Again, click it quickly and you’ll activate the “B” mode for the banks, but hold it and that action is cancelled so you can use it as a modifier without switching to “B” mode.

I’ll refer to the mod keys as follows:
MOD1 - pitch down
MOD2 - pitch up
KB1 - knob button 1
KB2 - knob button 2
KB3 - knob button 3
KB4 - knob button 4
SMOD - shift

Switching banks (by clicking a knob button quickly, and/or pressing shift quickly) changes the functions of the 16 buttons in the main 4x4 button grid. Generally, the functionality of the sync, play, cue, knobs, pitch controls, etc. stays the same and can be accessed from any bank mode.

I’ll refer to the main 16 buttons as buttons 1-16, and sometimes as button row 1-4.

The rotary encoder knobs can control a bunch of different things depending on whether a modifier is held down while they’re turned. Since the knob buttons are modifiers, some of these functions are accessed by pressing a knob and turning it while it’s pressed. I haven’t implemented much on the knobs yet, but there’s a lot of room for stuff to be added.

The mapping provides access to control 4 decks - in mixxx terms, Channel1, Channel2, Channel3 and Channel4. To switch between decks, use the deck select knob in the top left corner of the controller. Once you’ve switched decks, you have to hit a button to tell Mixxx that the controller channel has changed so that the LEDs will update - the buttons will work, but the LEDs won’t update until you hit a button or move a control. I generally hit MOD1 or something, because it won’t do anything to the music that’s playing if you just press it and release it.

Pressing and holding the knob buttons can give temporary access to certain functions from any bank mode. The only override in place right now is KB4, which gives access to 2 beat hotcue loops (cues 1-16 without shift, and 17-32 with shift.)

Pressing and turning Knob 4 activates a dynamic loop at the current play position which is deactivated when you release the knob button (if no loop is currently active) OR shrinks and grows the currently active loop, and does not deactivate when you release the Knob Button (if a loop is already active when you press KB4).

The pitch slider, obviously enough, is a pitch slider. MOD1 and MOD2 also work as pitch controls, as follows:

with KB1 - rate temp down
with KB2 - rate perm down
with KB3 - rate temp down small
with KB4 - rate perm down small

with KB1 - rate temp up
with KB2 - rate perm up
with KB3 - rate temp up small
with KB4 - rate perm up small


no mod: slip mode toggle
MOD1: clear slip mode without jumping to a new position
MOD2: beatsync
KB1: flanger toggle
KB3: rewind
KB4: Loop Halve

Slip mode: When triggered, the playposition at that time is stored. Then you can jump to hotcues, or activate loops or whatever, and when slip mode is triggered again, play position will jump to where it would have been if you had just played the track straight through. I’m currently using a homebrew slip mode rather than the one in Mixxx, because you can’t clear the slip position in the Mixxx one yet.


no mod: cue default
MOD1: quantize
MOD2: beatgrid align
KB3: fast forward
KB4: Loop Double


no mod: Play/pause
MOD1: keylock
KB1: go to start of track
KB3: reverse play
KB4: reloop/exit

BANK 1a - misc controls

Button row 1
Button 1 - momentary mute
Button 2 - momentary high eq kill
Button 3 - momentary mid eq kill
Button 4 - momentary low eq kill

Button row 1 - with MOD1
Button 1 - toggle mute
Button 2 - toggle high eq kill
Button 3 - toggle mid eq kill
Button 4 - toggle low eq kill

Button row 2
hotcues 5-8

Button row 3
1 beat beatloop
2 beat beatloop
4 beat beatloop

Button row 4
loop in
loop out
loop halve
loop double

BANK 2a - hotcues 1-16
Hotcue functions (should work with any hotcue button on the mapping) are as follows:

no mod: hotcue activate
MOD1: clear hotcue/move hotcue to different button
KB1: .25 beat hotcue loop
KB2: .5 beat hotcue loop
KB3: 1 beat hotcue loop
KB4: 2 beat hotcue loop

MOVE HOTCUE TO DIFFERENT BUTTON: press MOD1, then press an unoccupied hotcue button. It will start to flash. Keep holding MOD1, and press an existing hotcue button. The hotcue will be transferred to the flashing button and the old button will be cleared.

HOTCUE LOOPS: press one of the knob buttons and hold it down while pressing an active hotcue. Mixxx will jump to that hotcue and immediately start a loop at that point. This basically allows you to save loops with a song, and reactivate the same loops multiple times.

BANK 2b - hotcues 17-32
same as above.

BANK 3a - Loops, beatjumps

Button row 1
.03125 beat beatloop
.0625 beat beatloop
.125 beat beatloop
.25 beat beatloop

Button row 2
.5 beat beatloop
1 beat beatloop
2 beat beatloop
4 beat beatloop

Button row 3
8 beat beatloop
16 beat beatloop
32 beat beatloop

Button row 4
loop in
loop out
loop halve
loop double

BEATLOOP BUTTON MODS: These should work with any beatloop button.

no mod: beatloop X activate
MOD1: beatjump (jump play position back X beats)
MOD2: beatlooproll X Activate
KB1: save current loop in point to hotcue bank 1
KB2: save current loop in point to hotcue bank 2
KB3: 1 beat hotcue loops (shows hotcues 1-16 (or 17-32 with shift))
KB4: 2 beat hotcue loops (shows hotcues 1-16 (or 17-32 with shift))

Hold down a loop button (eg: reloop or the active beatloop button), and press LOOP HALVE to move the whole loop back a bit for each press, or LOOP DOUBLE to move it forward a bit. Hold a loop button and turn the wheel (touch the outside of the wheel only - if you use the middle then scratching will be activated) to move loops backwards or forwards.

Hold down LOOP IN and use the loop halve or double buttons or the wheel to move the loop in point only.

Hold down LOOP OUT and use the loop halve or double buttons or the wheel to move the loop out point only.

Knob1: gain
Knob2: high eq
Knob3: mid eq
Knob4: low eq

hold MOD1 while clicking the knob buttons to reset gain, hi, mid, or low to 50% position.

Press and turn knob 4 to activate a dynamic loop from the current play position.

You can muck around with the scratch settings using the knobs too if you like, by holding MOD1 and MOD2.
Knob1: scratch revolutions
Knob2: scratch resolution
Knob3: scratch alpha
Knob4: scratch beta

Feel free to do whatever you want with this. Modify it, copy it, redistribute it, provide the code to terrorists, take chunks and incorporate into your own mappings, print it out and eat it, sell it to an idiot, whatever.
DJTech-Kontrol_One-RK-scripts.js (75.3 KB)
DJTech-Kontrol_One-RK.midi.xml (40 KB)


Thanks Borfo – added to the 1.11 repo.