S4MK3 & S3: Performance MOD (qml coding)

1141517192033

Comments

  • djvic91
    djvic91 Member Posts: 87 Helper
    edited May 3

    since the button is an encoder not sure what each turn should be, but i like usually moving to +.33 or -.33

    i have found that's a good fine tune number to not change the vocals too deep or too chipmunk

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

    This may be a nice addition. I would have two questions about the implementation. One is the stepsize. How much of a fraction of a semitone should it adjust. The other would be which button/encoder is actually easiest to incorporate into the most common workflows.

    I would like to add that i rather not use any of the three pad-mode buttons for that, because i think they can easily be used by MIDI-style mappers to accomodate custom performance pad overlays, which would block the qml-use of the buttons.

    Have you tried 'DirectPropertyAdapter' either in the source position (from:) or the target position (to:). The path used can be hardware, MappingProperty objects or AppProperty objects. There are some examples in the file for S4 jogwheel wires, i think for reading out MappingProperty assignments done by Preferences settings to set hardware properties (speed, led colour or something). Worth some experimenting i think.

  • djvic91
    djvic91 Member Posts: 87 Helper
    edited May 3

    Sûlherokhh i just figured it out!! i don't use my right side fx knobs so i can map each knob to do deck A B C D.

    also the knobs have a center click that puts them at zero. if i move to the left or right it moves smooth and I've set the percent of the knob sensitivity to 20 percent and full left or right turn gives me 0 to .50 that's all i need

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,818 mod
    edited May 3

    Brilliant! In that case you can now also use the FX buttons to toggle keylock… 👍

    I recommend C➔A➔B➔D. And maybe get some colour-coded Chroma Caps from DJTechTools to mark the decks.

  • djvic91
    djvic91 Member Posts: 87 Helper

    great idea!!! im going to use the A B for now because im only using the left and right deck. C and D are remix decks but because of your MOD that allows us to color our decks i can color match knobs to the color of my decks. BTW i use all my cables and knobs from DJTechTools

    great idea!!!

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

    Hehe, they have lovely dj nuggets in their inventory!

  • djvic91
    djvic91 Member Posts: 87 Helper

    get yourself a coffee, very cool features you have added. really appreciate it!!

    good night!

  • pixel
    pixel Member Posts: 232 Advisor

    without success so far, I have tested the following😪

    //Wire { from: surfacePrefix + ".filter"; to: SetPropertyAdapter { path: "app.traktor.fx.1.dry_wet"; value: 100 } }
    //Wire { from: surfacePrefix + ".filter"; to: DirectPropertyAdapter { path: "app.traktor.fx.1.dry_wet"; input: true } }
    //Wire { from: surfacePrefix + ".filter"; to: DirectPropertyAdapter { path: "app.traktor.fx.1.dry_wet"; value: 100 } }
    //Wire { from: surfacePrefix + ".filter"; to: SetPropertyAdapter { path: "app.traktor.fx.1.dry_wet"; value: 100 } }
    //Wire { from: surfacePrefix + ".filter"; to: AppProperty { path: "app.traktor.fx.1.dry_wet"; value: 100 } }
    //Wire { from: surfacePrefix + ".filter"; to: RelativePropertyAdapter { path: "app.traktor.fx.1.dry_wet"; value: 100 } }
    //Wire { from: surfacePrefix + ".filter"; to: RelativePropertyAdapter { path: "app.traktor.fx.1.dry_wet"; step: 100; mode: RelativeMode.Stepped } }
    //Wire { from: surfacePrefix + ".filter"; to: RelativePropertyAdapter { path: "app.traktor.fx.1.dry_wet"; step: 100 } }
    //Wire { from: surfacePrefix + ".filter"; to: RelativePropertyAdapter { path: "app.traktor.fx.1.dry_wet"; value: 100 } } /* AppProperty { id: fx_tests; path: "app.traktor.fx.1.dry_wet" } Wire {
    from: surfacePrefix + ".filter";
    to: ButtonScriptAdapter {
    onPress: { fx_tests.value = 75; }
    }
    }
    */

    I once made a simple JS function, as I imagine it simplified, which would be the first goal

    <!doctype html>
    <html>
    <head>
    <title>Traktor JavaScript TEST</title> <style>
    body {
    background-color: lightgrey;
    color: blue;
    }

    h1 {
    background-color: black;
    color: white;
    }

    #value {
    background-color: blue;
    color: white;
    }

    #myProgress {
    width: 100%;
    background-color: white;
    }

    #myBar {
    width: 1%;
    height: 20px;
    background-color: green;
    }

    </style> </head> <body> <h1> Traktor JavaScript TEST </h1>
    <p> This page has a loop test. (value: 0-100) </p> <div id="value"></div>
    <div id="myProgress"><div id="myBar"></div></div> <script type="text/javascript">

    const value = document.getElementById('value');
    const elem = document.getElementById('myBar');

    let currentValue = 0;

    function countUp() {
    currentValue++
    value.textContent = currentValue
    elem.style.width = currentValue + "%";

    if (currentValue === 100) {
    clearInterval(timerID)
    timerID = setInterval(countDown, 10)
    }
    }

    function countDown() {
    currentValue--
    value.textContent = currentValue
    elem.style.width = currentValue + "%";

    if (currentValue === 0) {
    clearInterval(timerID)
    timerID = setInterval(countUp, 10)
    }
    }

    let timerID = setInterval(countUp, 10)

    </script> </body>
    </html>

  • pixel
    pixel Member Posts: 232 Advisor

    after 10 hours of tests...😝 I did it... I know how to do it🤗

    I need a break now... that point has worn me out😴

    AppProperty { id: fxtest; path: "app.traktor.fx.1.dry_wet" }
    Wire {
    	from: surfacePrefix + ".filter";
    	to: ButtonScriptAdapter {
    			onPress: { fxtest.value = ".80" }
    	}
    }
    

  • VityaT
    VityaT Member Posts: 41 Helper

    Magic again

  • pixel
    pixel Member Posts: 232 Advisor

    I'm really happy that I succeeded, extremely happy.

    Next week I'll start working on an FX-Rec feature, I'm really looking forward to it.
    Of course I will publish the result here

  • djvic91
    djvic91 Member Posts: 87 Helper
    edited May 5

    pixel: so what does it do?

  • pixel
    pixel Member Posts: 232 Advisor

    In the future, all FX movements should be able to be recorded and played back in a loop

  • pixel
    pixel Member Posts: 232 Advisor
    edited May 6

    first real LOOP test😋

  • pixel
    pixel Member Posts: 232 Advisor

    my Traktor laptop passed the performance test.^^

Back To Top