S4MK3 & S3: Performance MOD (qml coding)

Options
1356719

Comments

  • pixel
    pixel Member Posts: 114 Helper
    Options

    I have made a video🎥, but the problem is solved.😋


  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 1,818 mod
    Options
  • pixel
    pixel Member Posts: 114 Helper
    Options

    😆a little coffee for you☕️

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

    Thank you, i'm having it right now... 🍩+☕➔😃🎧

  • pixel
    pixel Member Posts: 114 Helper
    Options

    Can you tell me about (phase meter)?

    "app.traktor.decks.X.sync.enabled"
    "app.traktor.decks.X.sync.phase"
    "app.traktor.decks.X.sync.tempo"
    

    I want to create an 8 LED visualization🤪

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

    For the phase meter (like in the Traktor GUI) you better use this:

    AppProperty { id: tempoPhase; path: "app.traktor.decks." + deckIdx + ".tempo.phase" }
    

    tempoPhase.value will range from -0.5 to +0.5

    you can use this value as a conditional to trigger LED or enable wires to do that. Divide the value in 8 steps of 0.125 like this:

    step 1 : (tempoPhase.value <= -0.375)

    step 2 : (tempoPhase.value > -0.375) && (tempoPhase.value <= -0.25)

    etc.

    If you want to use the jogwheel leds, take the spinning led wires group as a template, but instead of the 'beat' conditionals i put in, you use the tempoPhase.value range as a conditional.

  • pixel
    pixel Member Posts: 114 Helper
    Options

    Thank you for the instructions.😁

    I will implement this in a few days^^

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

    Preliminary update:

    Turn off the screens with SHIFT+Deck Button. This will not turn the screen black, just stop any output. Turn deck to Live Input first if you want it to be black. I may implement a fade-to-black at a later date.

    Enjoy testing.


  • pixel
    pixel Member Posts: 114 Helper
    Options

    I'm done😋, I'll make a video later😊

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 1,818 mod
    Options
  • pixel
    pixel Member Posts: 114 Helper
    Options

    Actually you don't need that🤣But it was fun


  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 1,818 mod
    Options
  • pixel
    pixel Member Posts: 114 Helper
    Options

    somehow I can't cope with the knobs.😪

    Do you know a suitable link?

    right.loop.touch
    right.move.touch
    left.loop.touch
    left.move.touch
    
      WiresGroup {
        enabled: (tempoPhase.value && !endWarningProp.value && move.touch && loop.touch);
    


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

    i know that the s4 move and loop encoders are touch sensitive. don't know about the s3.

    i will have a look and show you what to do.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 1,818 mod
    edited March 3
    Options

    If you place it in 'S3Deck.qml' (or it's dependents) you can use this:

    MappingPropertyDescriptor { id: deckLoopSizeTouchProp; path: deckPropertiesPath + ".loop_size.touch"; type: MappingPropertyDescriptor.Boolean; value: false }
    MappingPropertyDescriptor { id: deckLoopMoveTouchProp; path: deckPropertiesPath + ".loop_move.touch"; type: MappingPropertyDescriptor.Boolean; value: false }
    
    Wire { from: "%surface%.loop_size.touch"; to: HoldPropertyAdapter { path: deckPropertiesPath + ".loop_size.touch" } }
    Wire { from: "%surface%.loop_move.touch"; to: HoldPropertyAdapter { path: deckPropertiesPath + ".loop_move.touch" } }
    

    Then you can use 'deckLoopSizeTouchProp.value' and 'deckLoopMoveTouchProp.value' as a deck-specific conditional.

    This works for the s4mk3; if the s3 also has touch-sensitive encoders, then it should work as well.

    If you want to use a global variant, which i don't think you need, you can use this (in S3.qml):

    MappingPropertyDescriptor { id: deckLeftLoopSizeTouchProp; path: "mapping.state.left.loop_size.touch"; type: MappingPropertyDescriptor.Boolean; value: false }
    MappingPropertyDescriptor { id: deckLeftLoopMoveTouchProp; path: "mapping.state.left.loop_move.touch"; type: MappingPropertyDescriptor.Boolean; value: false }
    MappingPropertyDescriptor { id: deckRightLoopSizeTouchProp; path: "mapping.state.right.loop_size.touch"; type: MappingPropertyDescriptor.Boolean; value: false }
    MappingPropertyDescriptor { id: deckRightLoopMoveTouchProp; path: "mapping.state.right.loop_move.touch"; type: MappingPropertyDescriptor.Boolean; value: false }
    
    Wire { from: "s3.left.loop_size.touch"; to: HoldPropertyAdapter { path: "mapping.state.left.loop_size.touch" } }
    Wire { from: "s3.left.loop_move.touch"; to: HoldPropertyAdapter { path: "mapping.state.left.loop_move.touch" } }
    Wire { from: "s3.right.loop_size.touch"; to: HoldPropertyAdapter { path: "mapping.state.right.loop_size.touch" } }
    Wire { from: "s3.right.loop_move.touch"; to: HoldPropertyAdapter { path: "mapping.state.right.loop_move.touch" } }
    

    🦋

Back To Top