Is there any way to change the order of the channels on the S4 MK3?
They are currently set to C A B D. I need A C D B… should I look into QML coding? would it be easy?
Yes.
Open '…\Native Instruments\Traktor Pro 4\Resources64\qml\CSI\S4MK3\S4MK3Channel.qml'
Change this
property int index: 1 // helpers readonly property string surface_prefix: "s4mk3.mixer.channels." + module.index + "."
to this
property int index: 1 property int channel: (index == 1) ? 3 : (index == 3) ? 1 : (index == 2) ? 4 : 2 // helpers // readonly property string surface_prefix: "s4mk3.mixer.channels." + module.index + "." readonly property string surface_prefix: "s4mk3.mixer.channels." + module.channel + "."
This solves everything except Filter/MixerFX controls.
To do that, you will need to do something similiar to FourChannelFXSelector.qml and Channel.qml, so that all surface defined control names channel numbers 1,3,2,4 get exchanged by 3,1,4,2.
Wow, thanks for this! Going to delve into it now
I was able to get the channels changed, worked like a charm!
I was able to get the filter knobs changed correctly by editing FourChannelFXSelector.qml with
// Channel FX Amount Wire { from: module.surface + ".mixer.channels.1.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.3.fx.adjust" } } Wire { from: module.surface + ".mixer.channels.2.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.4.fx.adjust" } } Wire { from: module.surface + ".mixer.channels.3.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.1.fx.adjust" } } Wire { from: module.surface + ".mixer.channels.4.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.2.fx.adjust" } } }
// Channel FX Amount Wire { from: module.surface + ".mixer.channels.1.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.
3
.fx.adjust" } } Wire { from: module.surface + ".mixer.channels.2.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.
4
.fx.adjust" } } Wire { from: module.surface + ".mixer.channels.3.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.
1
.fx.adjust" } } Wire { from: module.surface + ".mixer.channels.4.channel_fx.amount"; to: DirectPropertyAdapter { path: "app.traktor.mixer.channels.
2
.fx.adjust" } } }
All of the MixerFXButtons/FX Selection/FX Out are still OG, not sure where I can find the settings for these. I can't seem to find the Channel.qml for the S4MK3 that you suggested…. the S5 folder has one and the S8 folder has one….
It's in the same folder as FourChannelFXSelector.qml. But you probably won't need to edit it, because look at this piece from FourChannelFXSelector.qml:
// Channel FX selection ChannelFX { id: channel1 active: true name: "channel1" surface_mixer_channel: module.surface + ".mixer.channels.1" index: 1 onFxChanged : { module.cancelMultiSelection = true; } channelFxSelectorVal: module.currentlySelectedFx momentary: module.momentaryButtons }
Just change this:
surface_mixer_channel: module.surface + ".mixer.channels.1"
… into this:
// surface_mixer_channel: module.surface + ".mixer.channels.1" surface_mixer_channel: module.surface + ".mixer.channels.3"
Flip 1 and 3 as well as 2 and 4 for the other 3 ChannelFX modules.
mine looks like this currently
// Channel Fx ChannelFX { id: channel1 name: "channel1" surface: module.surface index: 1 onFxChanged : { module.cancelMultiSelection = true; } channelFxSelectorVal: module.currentlySelectedFx}
// Channel Fx ChannelFX { id: channel1 name: "channel1" surface: module.surface index: 1 onFxChanged : { module.cancelMultiSelection = true; } channelFxSelectorVal: module.currentlySelectedFx
I'll add the
+ ".mixer.channels.1"
to each line and edit the value accordingly.
Do I need this?
momentary: module.momentaryButtons
What Traktor version are you working on? With the MX2 there was updated code for the channels.
Currently on my non DJ computer, its at 4.2.0… Going to upgrade now… I think I'm going to start from scratch as well (Let it install fresh qml folders), have been messing around with these a bunch
Good call. :)
Working very well! Thank you!
QML is super cool, I love that these are available to mess with
You and me both, mate. :)