X1MK3: Browser View And Performance MOD (qml coding)

Sûlherokhh
Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod
edited September 10 in Mapping Traktor

As has been suggested elsewhere, the new X1MK3 is in need of some coding love.

I thought it would be a good idea to open a thread for small and easy to implement qml-mods to address the needs of those who are not satisfied with the basic version.

Before applying any of the ideas and files i am hoping to collect in this thread, make sure to make a safety copy of the complete qml-folder of the Traktor software, so you have the original files as a fallback in case of, you know, failure.

Expanded Browser View mod Version 2 for Traktor 4.0.2 and Version 8 for Traktor 3.11.1 :

Expanded Browser View mod with Preview Player, alternate Mixer Overlay, Screen Support and assorted goodies:

Tempo control features:

  • Tap Sync: Toggles SYNC.
  • Hold Sync: Does NOT toggle SYNC, so you are free to hold the button to just check current track BPM on the screen, without having to adjust the BPM in order to NOT toggle SYNC.
  • Sync[Hold]+LoopTurn: Adjust Tempo by +/- 0.01 BPM.
  • Sync[Hold]+LoopPush[Hold]+LoopTurn: Adjust Tempo by +/- 1.00 BPM.
  • Sync[Hold]+LoopPush: Reset Tempo

Deck Features:

  • Shift Button: Tap to Toggle Browse Mode (and Unload Preview Player).
  • Browse Encoder: Like Move Encoder of S4: Move (Loopsize) and Move (1 beat) when using Shift, also Toggle Loop Active.
  • Loop Encoder: Like Loop Encoder of S4. Loop Size/Set and Key Adjust/Toggle when using Shift (including screen display)

Browse Mode Features:

  • Left or Right Browse (Turn): Navigate Playlist (1 step at a time)
  • SHIFT + Left or Right Browse Encoder (Turn): Navigate Playlist (10 steps at a time)
  • Left or Right Browse (Tap): Load Track (or Load Primary for TP 4) and Unload Preview Player (Push).
  • Left or Right Browse (Hold 1 second): Load Secondary (only for TP 4) and Unload Preview Player (Push).
  • Left Loop Encoder: Navigate Tree (1 step at a time) and Open/Close Node (Push).
  • SHIFT + Left Loop Encoder: Navigate Tree (10 steps at a time) and Open/Close Node (Push).
  • Right Loop Encoder: Load Preview Player (Push) + Seek Preview Player.
  • SHIFT+Right Loop Encoder: cycle through favourites or jump to preperation list (Push).

Alternate Mixer Overlay Features:

  • Knob/Button 1: HI eq (+SHIFT MID eq) controls
  • Knob/Button 2: LO eq controls
  • Knob/Button 3: MixerFX controls including different colours according to Traktor GUI
  • SHIFT+Button 3 will cycle through Filter/MixerFX, limited text feedback on the screens for different MixerFX (MFX1 to MFX4) like for standard FX cycling.
  • Knob/Button 4: VOL+CUE controls.
  • SHIFT+Knob 4: GAIN controls.

New LED feedback. Both Play and Cue LED's now have CDJ-style CuePoint blinker.

  • Play: Green (default)
  • SHIFT+Play (Beat-Tap): White (default)
  • Sync: Cyan (default)
  • SHIFT+Sync (Master): Red (default)
  • Cue: Yellow (default)

Additional features:

  • Browser View indicator: SHIFT button LED will blink when in Browser View.
  • Screen Support: When in Browser View, the deck screens display what you can do with the encoders. At the bottom of the right screen is a preview deck strip for scrolling through. The words 'Preview Player' will blink when the player is running a track. The FX screens also reflect the changes made to the Mixer Overlay.
  • Easy Setup Access: Hold down MODE button for 1 second to re-enter the setup mode to select decks and FX units for the X1.
  • Easy Deck Switch: Double-Tapping the MODE button switches between Deck selection (e.g. AB) and alternate Deck selection (e.g. CD).

Customizable features:

  • In the Preferences page of the X1MK3, the whole 'Browse Encoder' and 'Loop Encoder' sections (both made obsolete by the BrowserView code) now let you customize a few of the new functions (see picture):

  • Setting "Browser SHIFT+Turn" - to 'Browse Favorites' changes MODE Tap to switching Decks, and setting MODE Double-Tap to switch FX-Layers.
  • Setting "Browser SHIFT+Push" - to 'Maximize Browser' switches Volume/Gain functions of Knob 4 in the Mixer Overlay to Gain (normal) and Volume (SHIFT).
  • Checkmark in the box "Maximize Browser when browsing" to connect BrowserView (X1) and FullscreenBrowser (Traktor GUI) states
  • Setting "Loop SHIFT+Turn" - to 'Key Adjust' will block the Mixer Overlay completely, jumping only between FX overlays when using the MODE button.

Link:

If you enjoy this mod as much as i do, please consider supporting me. 🦋🎧


Minimal mod without Browser Mode or Mixer Overlay for Traktor 4.0.2 and Traktor 3.11.1:

Tempo control features:

  • Tap Sync: Toggles SYNC.
  • Hold Sync: Does NOT toggle SYNC, so you are free to hold the button to just check current track BPM on the screen, without having to adjust the BPM in order to NOT toggle SYNC.
  • Sync[Hold]+LoopTurn: Adjust Tempo by +/- 0.01 BPM.
  • Sync[Hold]+LoopPush[Hold]+LoopTurn: Adjust Tempo by +/- 1.00 BPM.
  • Sync[Hold]+LoopPush: Reset Tempo

Additional Features:

  • Mixer Overlay: Is blocked completely.
  • Easy Setup Access: Hold down MODE button for 1 second to re-enter the setup mode to select decks and FX units for the X1.
  • Easy Deck Switch: Double-Tapping the MODE button switches between Deck selection (e.g. AB) and alternate Deck selection (e.g. CD). You can still switch between FX Unit pairs by Single-Tapping the MODE button.
  • Browse Encoder (Hold 1 second): Load secondary for TP 4 only.

New LED feedback. Both Play and Cue LED's now have CDJ-style CuePoint blinker.

  • Play: Green (default)
  • SHIFT+Play (Beat-Tap): White (default)
  • Sync: Cyan (default)
  • SHIFT+Sync (Master): Red (default)
  • Cue: Yellow (default)


Old mods for Traktor 3.10.1 only! :

(2) Simple Tempo Adjust mod

Here is a mod for tempo control.

Features:

  • Tap Sync: Toggles SYNC.
  • Hold Sync: Does NOT toggle SYNC, so you are free to hold the button to just check current track BPM on the screen, without having to adjust the BPM in order to NOT toggle SYNC.
  • Sync[Hold]+LoopTurn: Adjust Tempo by +/- 0.01 BPM.
  • Sync[Hold]+LoopPush[Hold]+LoopTurn: Adjust Tempo by +/- 1.00 BPM.
  • Sync[Hold]+LoopPush: Reset Tempo

Installation: Replace the file found here...

"...\Native Instruments\Traktor Pro 3\Resources64\qml\CSI\X1MK3\X1MK3Deck.qml"

with this file:

(3) Expanded Browser View mod with Preview Player

Features:

  • Shift Button: Tap to Toggle BrowserView (and Unload Preview Player).
  • Browse Encoder: stock NI functions.
  • Left Loop Encoder: in BrowserView Navigates Tree.
  • Right Loop Encoder: in BrowserView Load + Seek Preview Player.
  • SHIFT+Right Loop Encoder: in BrowserView cycle through favourites or jump to preperation list.

Loading a track Unloads Preview Player as well.

This version doesn't automatically enter/leave BrowserView (tap SHIFT for that). I am still tinkering with the screens. I plan to show a seeking strip for the preview player in the right screen and a BrowserView indicator for the left screen. Right now the only indicator is a solid shift LED.

Compatible with the '(4) Alternate Mixer Layout mod' (below); includes '(2) Simple Tempo Adjust mod' (above)

The mod is how i envisioned it, best fitting to my own workflow. I dislike using shifted layers and prefer using just one hand for controls. This is especially true for the X1, with the shift button in the middle.


(4) Alternate Mixer Layout mod

Features:

  • Knob/Button 1: HI+MID eq controls
  • Knob/Button 2: LO eq controls
  • Knob/Button 3: MixerFX controls including different colours according to Traktor GUI
  • Knob/Button 4: VOL+CUE controls
  • Adapted FX screen display
  • Shift+Button 3 will cycle through Filter/MixerFX, limited text feedback on the screens for different MixerFX (my personal selection only for now) like for standard FX cycling. In the future, it will show the names of MixerFX selected in the 'Preferences'. Adjusted files in this archive are in their corresponding folders.

Compatible with all old browser mods in this thread.


(5) Simple SYNC-only-on-tap mod

Here is a mod for the SYNC button. If you hold down the SYNC button (without the mod), look at the screen to see the track BPM, decide not to change the BPM and take the finger off the SYNC button, deck SYNC gets toggled, even if you don't want it to. With this mod, only a short tap will toggle the SYNC state.

Features:

  • Tap Sync: Toggles SYNC.
  • Hold Sync: Does NOT toggle SYNC, so you are free to hold the button to just check current track BPM on the screen, without having to adjust the BPM in order to NOT toggle SYNC.

Installation: Replace the file found here...

"...\Native Instruments\Traktor Pro 3\Resources64\qml\CSI\X1MK3\X1MK3TransportButtons.qml"

with this file:

Can be combined with every other old mod in this thread.


(6) Expanded Browser View mod with Screen Support:

This qml mod combines the following mods ...

  • (2) Simple Tempo Adjust mod
  • (3) Expanded Browser View mod with Preview Player
  • (5) Simple SYNC-only-on-tap mod

In addition it features:

  • SYNC-as-SHIFT: this works for the bottom buttons on the same side as the SYNC button.
  • Browser View indicator: SHIFT button LED will blink when in Browser View.
  • Screen Support: When in Browser View, the deck screens display what you can do with the loop encoders. At the bottom of the right screen is a preview deck strip for scrolling through. The words 'Preview Player' will blink when the player is running a track.

Compatible with (4) Alternate Mixer Layout mod.

All caveats apply, make a safety copy of your qml files first.


Also this:

Note from @Karlos Santos

Moderator note:

FYI: Modifying the software is a breach of the EULA Terms & Conditions that you agreed to when you installed Traktor. You do it at your own peril.

"3.5 Licensee is not authorized to modify the software, unless it is to preserve or restore the agreed functions of the software purchased."

Don't shoot the messenger, it's my duty to inform you.

Replying to this message is pointless because I do not write the EULA.

Karlos.

«13456711

Comments

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod
    edited October 2023

    Here is a (untested) qml mod for a simple BrowserView mod of the X1MK3 i cooked up.

    Features:

    • Open BrowserView of the Traktor software by turning the Browser Encoder.
    • Close BrowserView of the Traktor software when a track is loaded.
    • Toggle BrowserView of the Traktor software by tapping the Shift Button.


    Installation: Replace the file found here...

    "...\Native Instruments\Traktor Pro 3\Resources64\qml\CSI\X1MK3\X1MK3.qml"

    with this file:

    Remember to make a safety copy of the qml folder first. Please test and give feedback, my controller hasn't arrived yet.

    Note: this is the minimal version. I plan on an internal browse-mode with preview-player capabilites and whatever else you may find useful.


    Edit1: For those who are interested, this is what i changed in the file:

    line 103++

    // Wire { from: "surface.shift"; to: DirectPropertyAdapter { path: mapping.propertiesPath + ".shift" } }
    
    Browser { name: "browser" }
    
    AppProperty { id: fullscreenBrowserProp; path:"app.traktor.browser.full_screen" }
    
    AppProperty { path: "app.traktor.decks.1.is_loaded_signal"; onValueChanged: { fullscreenBrowserProp.value = false } }
    AppProperty { path: "app.traktor.decks.2.is_loaded_signal"; onValueChanged: { fullscreenBrowserProp.value = false } }
    AppProperty { path: "app.traktor.decks.3.is_loaded_signal"; onValueChanged: { fullscreenBrowserProp.value = false } }
    AppProperty { path: "app.traktor.decks.4.is_loaded_signal"; onValueChanged: { fullscreenBrowserProp.value = false } }
    
    Wire {
      from: "surface.shift"
      to: ButtonScriptAdapter {
        onPress: {
          shiftProp.value = true;
          holdShift_countdown.restart()
        }
        onRelease: {
          shiftProp.value = false;
          if ( (holdShift_countdown.running) && (deviceSetup.state == DeviceSetupState.assigned) ) {
            fullscreenBrowserProp.value = !fullscreenBrowserProp.value
            holdShift_countdown.stop()
          }
        }
      }
    }
    
    Timer { id: holdShift_countdown; interval: 200 }
    
    Wire {
      enabled: (deviceSetup.state == DeviceSetupState.assigned)
      from: Or {
        inputs:
        [
          "surface.left.browse.is_turned",
          "surface.right.browse.is_turned"
        ]
      }
      to: SetPropertyAdapter { path: "app.traktor.browser.full_screen"; value: true }
    }
    

    Edit2: Adjusted so as not to toggle BrowserView when in Setup-Mode.

  • nachopenades
    nachopenades Member Posts: 282 Pro
    edited October 2023

    This sounds fantastic, thank you very much for the initiative.

    What do you think of this configuration? It also opens automatically when you turn the encoders.


    I'm going to try the one you shared and let you know.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    My idea is to keep it as simple as possible and avoid as much as possible shift-layer functions. In short, a future BrowseMode should be triggered by simply pressing any of the two Browse Encoders. This would change the functions of both Browse Encoders and Loop Encoders until exiting BrowseMode again.

    The Browse Encoders will provide the controls for Tree (shifted), Playlist scrolling and deck loading, while The Loop Encoders will provide the controls for going through the favorites and for loading and seeking through the preview player.

    Also some indication on the screen to signify BrowseMode directly on the controller.

  • nachopenades
    nachopenades Member Posts: 282 Pro

    Your project seems fantastic to me, it solves an important problem. And it's easy to use. Works perfect on all 4 decks.

    Infinite thanks!!!!

  • nachopenades
    nachopenades Member Posts: 282 Pro
    edited October 2023

    ..........

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod
  • nachopenades
    nachopenades Member Posts: 282 Pro

    Yes, I updated the image from the original message ;)

  • Stevan
    Stevan Traktor Mapping Mod Posts: 1,995 mod

    Thanks for starting this thread!

    I don't think I will be using those small screens to browse tracks on them but will definitely need your help with the customizing the screens when I have the X1 Mk3.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    I think they are too small as well and wasn't going to try. BrowseMode is supposed to be a state that make the encoders have different functions (plus browser view in the software).

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod
    edited October 2023

    If you want i can still code the functionality of your picture (including encoder-turn = open browser view).

    And a big thank you for my coffee; sure feels good to be appreciated. ❤️‍

  • nachopenades
    nachopenades Member Posts: 282 Pro

    My head is a little cloudy because I am sick in bed now, I thank you very much for your willingness. If you want we can talk later.

    It has been a pleasure to invite you to a couple of coffees, they won't be the last, what you do is very useful for us.

  • Stevan
    Stevan Traktor Mapping Mod Posts: 1,995 mod

    @Sûlherokhh Is it possible to have the FX Knobs to output the Global Midi Knobs when the Mixer Page Is selected?

    I have idea how to upgrade the mixer page functionality. Making that mapping on my X1 MK2 now.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    Sure, there are eight buttons and eight knobs. If you want a 1 to 1 correspondence it's a short and straightforward piece of code in a single file.

    Give this a try (still can't test myself) :

    '...\Native Instruments\Traktor Pro 3\Resources64\qml\CSI\X1MK3\X1MK3FXSection.qml'

    Left row is Knobs/Buttons 1-4, right row is 5-8. 🦋

    Edit: Do you want me to remove the original mixer controls (high-mid controls, volume, kill buttons and cue monitor) so that there are only the midi control elements when in mixer-overlay?



    We got a noticable wave of infections in (at least) germany as well. Recently recovered myself from an incapacitating episode. Get well and be cared for... 🐭🌾🍁

  • Stevan
    Stevan Traktor Mapping Mod Posts: 1,995 mod

    I don't have the X1 Mk3 either. Not able to test it - just wondering if it is possible or not.

    The original EQ knobs can go and the Volume knob can stay.

    So only 6 Knobs and 6 buttons :)

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    FX overlay has the (default) colour Light Orange; pattern player has Mint; equalizer kill buttons and cue monitor has Blue. What colour do you want for the 6 MIDIbuttons (cue monitor would stay Blue, if you want)? I think picking a custom colour will override this, but i am not sure.

    Also i will set MIDIknobs/buttons 1, 2 and 3 for decks A and C (left side), 4, 5 and 6 for decks B and D unless you would like a different combination.

Back To Top