Kontrol S2MK3, hotcue pads order

kourampies
kourampies Member Posts: 5 Member
edited February 27 in Mapping Traktor

After using the S4 for more than a decade, It's extremely annoying for me to have the hotcue order switched compared to the older models.

Is there any way to reverse this from within Traktor (or perhaps the Controller Editor) without making a custom map? (consider this a feature request if the answer is no)

If there is no easy solution, does anyone know of a map ready to use? I haven't done mappings in years, mapping the inputs is extremely easy, but the outputs, with modifiers, brightness etc are a pain.

Best Answer

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 1,660 mod
    edited November 2022 Answer ✓

    You could edit the qml files.

    These are the sections that would need to be changed: Exchange

    '%surface%.pads.1'

    with

    '%surface%.pads.5',

    2 with 6, 3 with 7, 4 with 8.

    Depending on which version of Traktor you are using, and if you are using a qml-mod already, you will find the relevant lines in a different file. The one below should be the standard location of the HotCue commands:

    Found in the file: 'Resources64\\CSI\Common\HotcuesModule.qml'

        WiresGroup
        {
          enabled: !module.shift
    
          Wire { from: "%surface%.pads.1";   to: "hotcues.1.trigger" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.2.trigger" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.3.trigger" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.4.trigger" }
          Wire { from: "%surface%.pads.5";   to: "hotcues.5.trigger" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.6.trigger" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.7.trigger" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.8.trigger" }
        }
    
        WiresGroup
        {
          enabled: module.shift
    
          Wire { from: "%surface%.pads.1";   to: "hotcues.1.delete" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.2.delete" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.3.delete" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.4.delete" }
          Wire { from: "%surface%.pads.5";   to: "hotcues.5.delete" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.6.delete" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.7.delete" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.8.delete" }
        }
    
    

    Changed to:

    WiresGroup
        {
          enabled: !module.shift
    
          Wire { from: "%surface%.pads.5";   to: "hotcues.1.trigger" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.2.trigger" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.3.trigger" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.4.trigger" }
          Wire { from: "%surface%.pads.1";   to: "hotcues.5.trigger" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.6.trigger" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.7.trigger" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.8.trigger" }
        }
    
        WiresGroup
        {
          enabled: module.shift
    
          Wire { from: "%surface%.pads.5";   to: "hotcues.1.delete" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.2.delete" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.3.delete" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.4.delete" }
          Wire { from: "%surface%.pads.1";   to: "hotcues.5.delete" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.6.delete" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.7.delete" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.8.delete" }
        }
    

    This takes care of HotCue functions and LED feedback.

    Use a good coding editor like notpad++.

Answers

  • Ryan_NI
    Ryan_NI Customer Care Posts: 191 mod

    hey @kourampies - sorry for the delayed reply!

    I don't think this is possible without the Controller Manager in the Traktor preferences, i.e. a custom mapping.

    That being said, I have now submitted a feature request on your behalf.

  • kourampies
    kourampies Member Posts: 5 Member

    Thanks for submitting the feature request. Although I'm familiar with custom mappings, making a map with identical functionality (colors, dimming) and the switched/old style cue order is proving extremely hard, so It would be much better to be able to simply switch the order through Traktor or controller manager.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 1,660 mod
    edited November 2022 Answer ✓

    You could edit the qml files.

    These are the sections that would need to be changed: Exchange

    '%surface%.pads.1'

    with

    '%surface%.pads.5',

    2 with 6, 3 with 7, 4 with 8.

    Depending on which version of Traktor you are using, and if you are using a qml-mod already, you will find the relevant lines in a different file. The one below should be the standard location of the HotCue commands:

    Found in the file: 'Resources64\\CSI\Common\HotcuesModule.qml'

        WiresGroup
        {
          enabled: !module.shift
    
          Wire { from: "%surface%.pads.1";   to: "hotcues.1.trigger" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.2.trigger" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.3.trigger" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.4.trigger" }
          Wire { from: "%surface%.pads.5";   to: "hotcues.5.trigger" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.6.trigger" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.7.trigger" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.8.trigger" }
        }
    
        WiresGroup
        {
          enabled: module.shift
    
          Wire { from: "%surface%.pads.1";   to: "hotcues.1.delete" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.2.delete" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.3.delete" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.4.delete" }
          Wire { from: "%surface%.pads.5";   to: "hotcues.5.delete" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.6.delete" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.7.delete" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.8.delete" }
        }
    
    

    Changed to:

    WiresGroup
        {
          enabled: !module.shift
    
          Wire { from: "%surface%.pads.5";   to: "hotcues.1.trigger" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.2.trigger" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.3.trigger" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.4.trigger" }
          Wire { from: "%surface%.pads.1";   to: "hotcues.5.trigger" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.6.trigger" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.7.trigger" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.8.trigger" }
        }
    
        WiresGroup
        {
          enabled: module.shift
    
          Wire { from: "%surface%.pads.5";   to: "hotcues.1.delete" }
          Wire { from: "%surface%.pads.6";   to: "hotcues.2.delete" }
          Wire { from: "%surface%.pads.7";   to: "hotcues.3.delete" }
          Wire { from: "%surface%.pads.8";   to: "hotcues.4.delete" }
          Wire { from: "%surface%.pads.1";   to: "hotcues.5.delete" }
          Wire { from: "%surface%.pads.2";   to: "hotcues.6.delete" }
          Wire { from: "%surface%.pads.3";   to: "hotcues.7.delete" }
          Wire { from: "%surface%.pads.4";   to: "hotcues.8.delete" }
        }
    

    This takes care of HotCue functions and LED feedback.

    Use a good coding editor like notpad++.

  • kourampies
    kourampies Member Posts: 5 Member

    Thank you very much for the tip, I will try this out asap and report if it works.

  • kourampies
    kourampies Member Posts: 5 Member

    This works great, and doesn't affect the functionality of the older controllers. So for my setup which is a Kontrol S4MK2 and a Kontrol S2MK3 depending on the place I'm playing, this is an ideal solution. Thank you very much for providing a solution.

Back To Top