S4MK3 & S3: Performance MOD (qml coding)
(S4MK3: qml coding projects) S3-variant found below.
I thought the S4Mk3 could use some coding love, adjusting only a few bits and pieces to work out some kinks and adding small extras. The mods listed here are supposed to be small and easy to implement qml-mods to address a few needs of those who are not satisfied with the basic version.
Any ideas, small enough to easily implement, are welcome; feedback is appreciated.
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. After that, the files contained in the archive replace the original files.
S4MK3 Performance Mod V12:
Deck features:
- SHIFT+Play: Activate Vinyl Break, the length of which is calculated using the inverse of the jog wheel haptic tension. Vinyl Break will automatically deactivate Sync to work correctly.
- Jogwheel: Motor (and LED turning) stops temporarily when the jogwheel is used for loop or Tension adjustment. Turning LED now also active when cuing.
- Sync Tap: BPM is set to Master BPM aka TempoSync. Sync is not activated. If Sync is already active it will be turned off.
- Sync Hold (>0.2sec): Sync Toggle. If Sync status is released, Tempo is reset to +/- 0%.
- Sync LED Feedback: BRIGHT when Sync is activated. - CYAN (Tempo & Phase in sync, both with tiny error margins for beat juggling), - LIME (Tempo in sync but out of phase), RED (not in sync & out of phase)
- Master Tap: Deck TempoMaster toggle (ON/OFF).
- Master Hold (>0.2sec): Master Clock AUTO toggle. Also sets internal clock to be master clock.
- Master LED Feedback: BRIGHT CYAN (deck is TempoMaster), - LIME (Master Clock AUTO is not active, deck is not TempoMaster), RED (Master Clock AUTO is active, deck is not TempoMaster)
- Hold DECK (A, B, C or D) + Move Enc Turn (Push): Cycle through all 17 deck colours. Also cycles through the NI-designed waveform colours at the same time, from Red at the low end to White at the high end. The adjustment hard-stops at the left end (Red) and the right end (White). Push Encoder to reset.
- Hold DECK (A, B, C or D) + Browse Enc Turn (Push): Adjust Traktor GUI waveform zoom factor. Push Encoder to reset to -0.75
- SHIFT+MixerFX (Filter): Toggles CDJ-style Cue & Play button LED blinkers. CDJ-style Cue button LED blinker is in WarmYellow (for the CDJ colour coding).
Track/Stem deck features:
- Rec: Loop-In
- Mute: Loop-Out
- Jogwheel Turn: (while in active Loop) hold Rec or Mute (or both) to adjust Loop-In or Loop-Out (or both) with the Jog Wheel. Turn slow for precision adjustment, fast for accelerated adjustment. Jogwheel LED turns GREEN while in an active loop.
- Loop/Move Encoder Turn: (while in active Loop) hold Rec or Mute (or both) to adjust Loop-In or Loop-Out (or both) by exactly 1 beat.
- SHIFT+Move Encoder Push: Triggers Re-Loop. It's mechanically Cue Play (CUP) with an added Loop Active trigger if the targeted active cue is a loop cue. Behaviour depends on your CUP settings. Set in 'Preferences➔Transport➔Cue Play (CUP Mode)'.
- Grid: Also doubles as Beat-Tap to adjust the beatgrid on the fly (RED colouring, OFF if GridLock is active)
- SHIFT+Grid: Toggles GridLock (WHITE colouring).
- Hold DECK (A, B, C or D) + Loop Enc Turn (Push): Cycle through waveform colours (only). From white at the high end, the S4 uses my custom designs (and adapted designs), beginning with X-Ray (for White), over Infrared, Ultraviolet, Denon SC5000/SC6000 Prime (Blue/Green), Pioneer CDJ-2000 Nexus 2 (Red/Blue) to Pioneer CDJ-3000 (Blue/Yellow).
Remix deck features:
- Rec: Activates Step Sequencer (Red LED), toggles recording function (Red Blinking LED).
- SHIFT+Rec: Deactivates Step Sequencer and recording function.
- SHIFT+Loop Enc Toggle: Deactivates Step Sequencer and recording function as well as toggling Quantize function (which btw. doesn't work when the Step Sequencer is active).
Mixer channel features:
- Ext Button: Cycles through all deck types, as long as the corresponding deck is not playing (Track Deck ➔ Remix Deck ➔ Stem Deck ➔ Live Deck ➔ Track Deck).
Browser features:
- Preview Button: Can be used both in HOLD as well as TOGGLE modes. As long as the Preview Player is loaded, the Browse Encoder seeks through the track. Loading a track into a deck will now also unload the Preview Player.
- View Button: HOLD button to use as SHIFT for Browse Encoder only, as well as TOGGLE browser view.
- Jogwheel (+LED Ring): Scroll through playlist while in browser view and not using TT-Mode. Jogwheel LED turns white. Special LED animation when track is loaded into deck.
- SHIFT+View: Toggle original Jogwheel behaviour (i.e. Jogwheel does not scroll playlist, has deck colour, turns when track is playing and allows pitchbending and scratching). Setting will be saved between sessions.
FX features:
- SHIFT+FX Buttons: Cycle through modes (Single➔ Group➔ Pattern Player➔ Single), Cycle through effects and kits. This works exactly like the SHIFT overlay of the X1MK3.
Screen features:
- Top Rows: Display of all elements is bigger and brighter. Loop blink is less jarring.
- Bigger BPM display. Also changed places with Time display.
- Artist name and original track bpm display visible while holding down SHIFT.
- Phase-Meter pop-up: Appears on unsynced slave decks when the tempo phase is changed in any way.
- Jog Wheel haptic tension pop-up: Appears when the value is changed.
- SHIFT+MixerFX buttons (1,2,3,4): Manually select pop-up duration (for all pop-ups) from 1 to 4 seconds.
- SHIFT+Lower Deck (C or D) button: Toggle two alternate Loop Size display types.
- Stripe: Alternate waveforms available (see above).
- Screen Output Override: Toggle to turn off the screens with SHIFT + top deck button (A or B). This will stop all screen output coming in and increase frame rates of the Traktor GUI and the frame rates of any other connected controller with a screen like for example a pair of D2's. Now it shows the Traktor Logo. Setting will be saved between sessions.
The screens are better than the photos show.
Link:
The X1MK3-BrowserMod (found HERE) is fully compatible with this mod.
If you enjoy this mod as much as i do, please consider supporting me. 🦋🎧
For all users of the Traktor Kontrol S3, here is a variant of the Performance Mod below, stalwartly adapted by @pixel.
Check it out:
- S3 Performance Mod V9 -
"I have updated my files (Traktor Kontrol S3)" 😃
Deck features:
- Jogwheel Beatcounter LED
- Jogwheel Browsing (VIEW-JOGWHEEL) (Big Jumps (VIEW)-(SHIFT+JOGWHEEL))
- VinylBreak (SHIFT+PLAY)
- Jogwheel LED PhaseMeter (SHIFT+DECK+MOVE_TOUCH+LOOP_TOUCH)
- DeckUnload (only at deck stop) (SHIFT+GRID+LOOP_TOUCH)
- scratchBlink (play button)
- Sync Tap: BPM is set to Master BPM aka TempoSync. Sync is not activated. If Sync is already active it will be turned off.
- Sync Hold (>0.2sec): Sync Toggle. If Sync status is released, Tempo is reset to +/- 0%.
- Sync LED Feedback: BRIGHT when Sync is activated. - GREEN (Tempo & Phase in sync, both with tiny error margins for beat juggling), - LIME (Tempo in sync but out of phase), RED (not in sync & out of phase)
- (SHIFT+Sync) Tap: Deck TempoMaster toggle (ON/OFF).
- (SHIFT+Sync) Hold (>0.2sec): Master Clock AUTO toggle.
- (SHIFT) Sync LED Feedback: BRIGHT GREEN (deck is TempoMaster), - LIME (Master Clock AUTO is not active, deck is not TempoMaster), RED (Master Clock AUTO is active, deck is not TempoMaster)
- Hold DECK (A, B, C or D) + Loop Encoder (Turn): Adjust GUI zoom factor. (Push Encoder) to reset to -0.75
- Hold DECK (A, B, C or D) + Move Encoder (Turn): Cycle through all 17 deck colours! (Push Encoder) to reset.
Track/Stem deck features:
- Loop-In: (SHIFT+GRID)
- Loop-Out: (SHIFT+JOG)
- Jogwheel Turn: (while in active Loop) hold (SHIFT+GRID) or (SHIFT+JOG) (or both) to adjust Loop-In or Loop-Out (or both) with the Jog Wheel. Jogwheel LEDs turns green.)
- Move Encoder Turn: (while in active Loop) hold (SHIFT+GRID) or (SHIFT+JOG) (or both) to adjust Loop-In or Loop-Out (or both) by exactly 1 beat.
Mixer channel features:
- DeckTypeSwitch (Deck: A,B,C SHIFT+EXT) Cycles through 1-3 deck types, as long as the corresponding deck is not playing (Track Deck ➔ Remix Deck ➔ Stem Deck ➔ Track Deck). (Deck: D SHIFT+EXT) Cycles through all deck types, as long as the corresponding deck is not playing (Track Deck ➔ Remix Deck ➔ Stem Deck ➔ Live Deck ➔ Track Deck).
- Switch MIC D - LINE (EXT) (automatically switches Deck D type to Live Input)
Browser features:
- Preview Button: Can be used both in HOLD as well as TOGGLE modes. As long as the Preview Player is loaded, the Browse Encoder seeks through the track. Loading a track into a deck will now also unload the Preview Player.
- View Button: HOLD button to use as (SHIFT) for Browse Encoder only, as well as TOGGLE browser view.
- SHIFT+View: Toggle original Jogwheel behaviour (i.e. Jogwheel does not scroll playlist, has Cyan colour, turns when track is playing and allows pitchbending and scratching). Setting will be saved between sessions.
Other changes:
- MixerFX 4 colour changed from YELLOW to LIME (better visibility and difference to Filter's LIGHTORANGE).
- Standard deck colors (A, B): Cyan, (C, D): LightOrange
"Big thanks goes to Sûlherokhh,
(If you think the mod is great, please send him a coffee)"
Please create a backup of the original files
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.
Comments
-
Work in progress:
- Setting manual LoopIn-/LoopOut points.
- Adjusting LoopIn-/LoopOut points with the jog wheels.
- Preview Player toggle.
3 -
Is there a way to set the rating of a track? E.g. in preparation mode browse, play or preview and then use shift pads 1 to 8 to rate the current track. I assume not since setting the rating is not in the list of assignable actions.
0 -
I see no way to do this.
0 -
Update:
- Fixed PLAY button while not using SHIFT. Was making an extremely short VinylBreak before.
- Added PreviewPlayer toggle.
Test away... 🦋
Work in progress:
- Setting manual LoopIn-/LoopOut points.
- Adjusting LoopIn-/LoopOut points with the jog wheels.
- Display LoopIn-/LoopOut points on the stripe, green colouring of the looping part of the waveform when the loop is active.
3 -
Hello. Is it possible to add effect selection in hardware? For example as it was on the x1mk1 controller
0 -
Not sure what the x1mk1 provided, but i can try to have SHIFT+FXOn(1-4) jump through the available FX types. By the way, this is also possible by using the overmapping capabilities Traktor provides.
1 -
I believe that Mk1 had that Shift + FX Knob combo to scroll trough the list of all available effects. Then the Buttons 1-2-3 would insert a set of three effects each. I think the first preset was Delay+Reverb+Filter.
1 -
Good to know. That should be doable.
0 -
I couldn't do it with mapping.
0 -
Updated work in progress:
- Setting manual LoopIn-/LoopOut points.
- Adjusting LoopIn-/LoopOut points with the jog wheels.
- Display LoopIn-/LoopOut points on the stripe, green colouring of the looping part of the waveform when the loop is active.
- Browser scrolling with jog wheel.
- FX presets/selection
0 -
respect for your work here :)
I'm wondering if I can use your code VinylBreak for the S3?
0 -
Of course. That's what these open discussions are all about. A note though: Vinyl break length is a function of jog tension (of the S4). You can use the same property, but have to put in your own way of adjusting it with the s3. Or just set a constant in the code that you like.
You will need the following pieces of code:
import QtQuick 2.12 // or another version number
... at the top of the file, or the timers will crash Traktor
MappingPropertyDescriptor { id: vinylBreak path: deckPropertiesPath + ".vinyl_break" type: MappingPropertyDescriptor.Boolean value: false }
... to know if breaking is occurring.
// Wire { from: "%surface%.play"; to: "transport.play"; } Wire { from: "%surface%.play"; to: "VinylBreak"; }
... to assign the ButtonScriptAdapter to the PLAY button and ...
the complicated part. 'hapticTensionProp.value' is an integer value from 0 to 255 in the S4 files. You can just replace it with a number. I recommend 20 to 50.
//Vinyl Break AppProperty { id: tempobend; path: "app.traktor.decks." + deckIdx + ".tempobend.stepless" } AppProperty { id: stableTempo; path: "app.traktor.decks." + deckIdx + ".tempo.true_tempo" } AppProperty { id: isPlaying; path: "app.traktor.decks." + deckIdx + ".play" } AppProperty { id: keyLock; path: "app.traktor.decks." + deckIdx + ".track.key.lock_enabled" } AppProperty { id: isSyncEnabled; path: "app.traktor.decks." + deckIdx + ".sync.enabled" } AppProperty { id: keyAdjust; path: "app.traktor.decks." + deckIdx + ".track.key.adjust" } property int vinylBreakDuration: vinylBreak.value ? 128000/(hapticTensionProp.value + 63) : 100 property double adjustedTempobend: stableTempo.value < 1 ? stableTempo.value : 1 property bool previousKeyLockState: false property bool previousSyncState: false Timer { id: vinylBreak_countdown interval: (vinylBreakDuration/adjustedTempobend)/25 repeat: true onTriggered: { if (tempobend.value < 0.05) { vinylBreak_countdown.stop() tempobend.value = 0 vinylBreak.value = false if (previousKeyLockState) { keyLock.value = true } if (previousSyncState) { isSyncEnabled.value = true } } else tempobend.value = tempobend.value - 0.04 } } ButtonScriptAdapter { name: "VinylBreak" brightness: isPlaying.value || vinylBreak.value onPress: { if (vinylBreak_countdown.running) { vinylBreak_countdown.stop() tempobend.value = 0 isPlaying.value = true vinylBreak.value = false if (previousKeyLockState) { keyLock.value = true previousKeyLockState = false } if (previousSyncState) { isSyncEnabled.value = true previousSyncState = false } } else if (isPlaying.value) { isPlaying.value = false if (module.shift) { if (isSyncEnabled.value) { previousSyncState = true isSyncEnabled.value = false } else previousSyncState = false if (Math.abs(keyAdjust.value) <= 0.05/12 && keyLock.value) { previousKeyLockState = true keyLock.value = false } else previousKeyLockState = false vinylBreak.value = true tempobend.value = adjustedTempobend vinylBreak_countdown.restart() } } else { isPlaying.value = true vinylBreak.value = false previousSyncState = false previousKeyLockState = false } } onRelease: { if (isPlaying.value) { vinylBreak.value = false if (previousSyncState) { isSyncEnabled.value = true } if (previousKeyLockState) { previousKeyLockState = true } } } }
I had to rewrite the last parts several times. VinylBreak temporarily deactivates KeyLock and Sync, or it doesn't work correctly.
Edit: Code corrected.
2 -
Thank you for the introduction.
If I'm successful I'll post the files here. :)
1 -
The following mods are integrated for the S3. :)
Jogwheel Beatcounter LED
Jogwheel Browsing
VinylBreak
special thanks to Sûlherokhh & DuneArchitect
2 -
I noticed that the VinylBreak sometimes gets stuck after a track change
If I empty the deck and reload the track it works again.
0
Categories
- All Categories
- 18 Welcome
- 966 Hangout
- 56 NI News
- 479 Tech Talks
- 2.6K Native Access
- 11.2K Komplete
- 1.4K Komplete General
- 3K Komplete Kontrol
- 4K Kontakt
- 849 Reaktor
- 301 Battery 4
- 626 Guitar Rig & FX
- 329 Massive X & Synths
- 775 Other Software & Hardware
- 4.1K Maschine
- 4.8K Traktor
- 4.8K Traktor Software & Hardware
- Check out everything you can do
- Create an account
- See member benefits
- Answer questions
- Ask the community
- See product news
- Connect with creators