Traktor Kontrol S5 S8 hacks
diff --git a/CSI/Common/Deck_S8Style.qml b/CSI/Common/Deck_S8Style.qml
index 1ff662f..f558dfd 100755
--- a/CSI/Common/Deck_S8Style.qml
+++ b/CSI/Common/Deck_S8Style.qml
@@ -1370,8 +1370,8 @@ Module
enabled: focusedDeckId == 1
Wire { from: "%surface%.back"; to: "decks.1.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.1.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.1.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.1.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.1.tempo.coarse"; enabled: !module.shift }
}
// Deck B
@@ -1380,8 +1380,8 @@ Module
enabled: focusedDeckId == 2
Wire { from: "%surface%.back"; to: "decks.2.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.2.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.2.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.2.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.2.tempo.coarse"; enabled: !module.shift }
}
// Deck C
@@ -1390,8 +1390,8 @@ Module
enabled: focusedDeckId == 3
Wire { from: "%surface%.back"; to: "decks.3.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.3.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.3.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.3.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.3.tempo.coarse"; enabled: !module.shift }
}
// Deck D
@@ -1400,8 +1400,8 @@ Module
enabled: focusedDeckId == 4
Wire { from: "%surface%.back"; to: "decks.4.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.4.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.4.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.4.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.4.tempo.coarse"; enabled: !module.shift }
}
}
diff --git a/CSI/S5/Mixer.qml b/CSI/S5/Mixer.qml
index 65c880e..bc057a0 100755
--- a/CSI/S5/Mixer.qml
+++ b/CSI/S5/Mixer.qml
@@ -8,8 +8,8 @@ Module
// Master Clock
MasterClock { name: "MasterTempo" }
- Wire { from: "%surface%.mixer.tempo"; to: "MasterTempo.coarse"; enabled: shift }
- Wire { from: "%surface%.mixer.tempo"; to: "MasterTempo.fine"; enabled: !shift }
+ Wire { from: "%surface%.mixer.tempo"; to: "MasterTempo.coarse"; enabled: !shift }
+ Wire { from: "%surface%.mixer.tempo"; to: "MasterTempo.fine"; enabled: shift }
// Channels
diff --git a/CSI/S5/S5Deck.qml b/CSI/S5/S5Deck.qml
index 32716f3..54a7689 100755
--- a/CSI/S5/S5Deck.qml
+++ b/CSI/S5/S5Deck.qml
@@ -1566,8 +1566,8 @@ Module
enabled: focusedDeckId == 1
Wire { from: "%surface%.back"; to: "decks.1.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.1.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.1.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.1.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.1.tempo.coarse"; enabled: !module.shift }
}
// Deck B
@@ -1576,8 +1576,8 @@ Module
enabled: focusedDeckId == 2
Wire { from: "%surface%.back"; to: "decks.2.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.2.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.2.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.2.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.2.tempo.coarse"; enabled: !module.shift }
}
// Deck C
@@ -1586,8 +1586,8 @@ Module
enabled: focusedDeckId == 3
Wire { from: "%surface%.back"; to: "decks.3.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.3.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.3.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.3.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.3.tempo.coarse"; enabled: !module.shift }
}
// Deck D
@@ -1596,8 +1596,8 @@ Module
enabled: focusedDeckId == 4
Wire { from: "%surface%.back"; to: "decks.4.tempo.reset" }
- Wire { from: "%surface%.browse"; to: "decks.4.tempo.fine"; enabled: !module.shift }
- Wire { from: "%surface%.browse"; to: "decks.4.tempo.coarse"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.4.tempo.fine"; enabled: module.shift }
+ Wire { from: "%surface%.browse"; to: "decks.4.tempo.coarse"; enabled: !module.shift }
}
}
diff --git a/Screens/Views/Deck/DeckHeader.qml b/Screens/Views/Deck/DeckHeader.qml
index d6ee6df..d35db7f 100755
--- a/Screens/Views/Deck/DeckHeader.qml
+++ b/Screens/Views/Deck/DeckHeader.qml
@@ -56,11 +56,11 @@ Item {
// NOTE: For now, we set fix states in the DeckHeader! But we wanna be able to
// change the states.
property int topLeftState: 0 // headerSettingTopLeft.value
- property int topMiddleState: hasTrackStyleHeader(deckType) ? 12 : 30 // headerSettingTopMid.value
+ property int topMiddleState: hasTrackStyleHeader(deckType) ? 13 : 30 // headerSettingTopMid.value
property int topRightState: 23 // headerSettingTopRight.value
property int bottomLeftState: 1 // headerSettingMidLeft.value
- property int bottomMiddleState: hasTrackStyleHeader(deckType) ? 11 : 29 // headerSettingMidMid.value
+ property int bottomMiddleState: hasTrackStyleHeader(deckType) ? 14 : 29 // headerSettingMidMid.value
property int bottomRightState: 25 // headerSettingMidRight.value
height: largeHeaderHeight
@@ -201,7 +201,7 @@ Item {
elide: Text.ElideRight
font.pixelSize: fonts.largeFontSize // set in state
anchors.top: top_line.bottom
- anchors.left: cover_small.right
+ anchors.left: parent.left
anchors.topMargin: _intSetInState // set by 'state'
anchors.leftMargin: _intSetInState // set by 'state'
@@ -220,7 +220,7 @@ Item {
elide: Text.ElideRight
font.pixelSize: fonts.middleFontSize
anchors.top: top_line.bottom
- anchors.left: cover_small.right
+ anchors.left: parent.left
anchors.topMargin: 18
anchors.leftMargin: 5
Behavior on anchors.leftMargin { NumberAnimation { duration: speed } }
@@ -267,6 +267,44 @@ Item {
Behavior on opacity { NumberAnimation { duration: speed } }
}
+ // bottom_middle_text: REMAINING TIME
+ DeckHeaderText {
+ id: top_middle_text2
+ deckId: deck_Id
+ explicitName: ""
+ maxTextWidth : 80
+ textState: 12
+ font.family: "Pragmatica" // is monospaced
+ color: textColors[deck_Id]
+ elide: Text.ElideRight
+ font.pixelSize: fonts.middleFontSize
+ horizontalAlignment: Text.AlignRight
+ anchors.top: top_line.bottom
+ anchors.right: parent.right
+ anchors.topMargin: _intSetInState // set by 'state'
+ anchors.rightMargin: 178 // set by 'state'
+ Behavior on anchors.topMargin { NumberAnimation { duration: speed } }
+ Behavior on anchors.rightMargin { NumberAnimation { duration: speed } }
+ }
+ // bottom_middle_text: ELAPSED TIME
+ DeckHeaderText {
+ id: bottom_middle_text2
+ deckId: deck_Id
+ explicitName: ""
+ maxTextWidth : 80
+ textState: 113
+ font.family: "Pragmatica" // is monospaced
+ color: darkerTextColors[deck_Id]
+ elide: Text.ElideRight
+ opacity: _intSetInState // set by 'state'
+ font.pixelSize: fonts.middleFontSize
+ horizontalAlignment: Text.AlignRight
+ anchors.top: top_line.bottom
+ anchors.right: parent.right
+ anchors.topMargin: 20
+ anchors.rightMargin: 178
+ Behavior on opacity { NumberAnimation { duration: speed } }
+ }
// top_right_text: BPM
DeckHeaderText {
id: top_right_text
@@ -393,6 +431,7 @@ Item {
color: "black"
anchors.fill: cover_small
anchors.margins: -1
+ visible: false
}
DropShadow {
@@ -407,6 +446,7 @@ Item {
color: "#000000"
transparentBorder: true
source: blackBorder
+ visible: false
}
Rectangle {
@@ -421,6 +461,7 @@ Item {
// if no cover can be found: blue / grey background (set in parent). Otherwise transparent
opacity: (headerPropertyCover.value == "") ? 1.0 : 0.0
//visible: headerState == "large" && (opacity == 1.0)
+ visible: false
color: coverBgEmptyColors[deck_Id]
Behavior on opacity { NumberAnimation { duration: speed } }
Behavior on width { NumberAnimation { duration: speed } }
@@ -467,6 +508,7 @@ Item {
width: height
anchors.top: cover_small.top
anchors.left: cover_small.left
+ visible: false
}
@@ -493,7 +535,7 @@ Item {
anchors.top: top_line.bottom
anchors.topMargin: 3
anchors.right: parent.right
- anchors.rightMargin: 178
+ anchors.rightMargin: 246
width: 30
height: 30
@@ -642,11 +684,13 @@ Item {
PropertyChanges { target: top_middle_text; font.pixelSize: fonts.middleFontSize; anchors.topMargin: 1 }
+ PropertyChanges { target: top_middle_text2; font.pixelSize: fonts.middleFontSize; anchors.topMargin: 1 }
PropertyChanges { target: top_right_text; font.pixelSize: fonts.middleFontSize; anchors.topMargin: 1 }
PropertyChanges { target: bottom_left_text; opacity: 0; }
PropertyChanges { target: bottom_warning_text; opacity: 0; }
PropertyChanges { target: bottom_middle_text; opacity: 0; }
+ PropertyChanges { target: bottom_middle_text2; opacity: 0; }
PropertyChanges { target: bottom_right_text; opacity: 0; }
},
State {
@@ -659,10 +703,12 @@ Item {
PropertyChanges { target: top_warning_text; font.pixelSize: fonts.largeFontSize; anchors.topMargin: -2 }
PropertyChanges { target: top_middle_text; font.pixelSize: fonts.largeFontSize; anchors.topMargin: 1 }
+ PropertyChanges { target: top_middle_text2; font.pixelSize: fonts.largeFontSize; anchors.topMargin: 1 }
PropertyChanges { target: top_right_text; font.pixelSize: fonts.largeFontSize; anchors.topMargin: 1 }
+
PropertyChanges { target: bottom_middle_text; opacity: 1; }
+ PropertyChanges { target: bottom_middle_text2; opacity: 1; }
PropertyChanges { target: bottom_left_text; opacity: 1; anchors.leftMargin: (deckType.description === "Live Input" || directThru.value) ? -1 : 5}
-
PropertyChanges { target: bottom_right_text; opacity: 1; }
}
]
diff --git a/Screens/Views/Overlays/CenterOverlays/TempoAdjust.qml b/Screens/Views/Overlays/CenterOverlays/TempoAdjust.qml
index d005b91..c2ad93f 100755
--- a/Screens/Views/Overlays/CenterOverlays/TempoAdjust.qml
+++ b/Screens/Views/Overlays/CenterOverlays/TempoAdjust.qml
@@ -52,8 +54,9 @@ CenterOverlay {
// headline
Text {
anchors.top: parent.top
- anchors.horizontalCenter: parent.horizontalCenter
+ anchors.left: parent.left
anchors.topMargin: customMargins.topMarginCenterOverlayHeadline
+ anchors.leftMargin: 20
font.pixelSize: fonts.largeFontSize
color: colors.colorCenterOverlayHeadline
text: titleForBPMOverlay(masterDeckId.value, isSynced.value)
@@ -70,6 +73,17 @@ CenterOverlay {
color: colors.colorWhite
text: dispBpm.toFixed(2).toString()
}
+ // key
+ Text {
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.topMargin: customMargins.topMarginCenterOverlayHeadline
+ anchors.rightMargin: 20
+ font.pixelSize: fonts.largeFontSize
+ font.family : "Pragmatica"
+ color: colors.colorWhite
+ text: baseBpm.value.toFixed(2).toString()
+ }
// footline
Text {
diff --git a/Screens/Views/Deck/DeckHeaderText.qml b/Screens/Views/Deck/DeckHeaderText.qml
index a387662..794659c 100755
--- a/Screens/Views/Deck/DeckHeaderText.qml
+++ b/Screens/Views/Deck/DeckHeaderText.qml
@@ -305,14 +305,22 @@ Text {
function getSyncStatusString() {
if ( !isLoaded )
return " ";
- else if (isMaster)
- return "MASTER";
+ // else if (isMaster)
+ // return "MASTER";
+ // else if (isInSync)
+ // return "SYNC";
+
+ var prefix = "";
+
+ if (isMaster)
+ prefix = "M ";
else if (isInSync)
- return "SYNC";
+ prefix = "S ";
+
// Show the decks current pitch value in the area of the Master/Sync indicator
// if a deck is neither synced nor set to maste (TP-8070)
- return getStableTempoString();
+ return prefix + getStableTempoString();
}
}
diff --git a/Screens/Views/Definitions/Colors.qml b/Screens/Views/Definitions/Colors.qml
index 295a850..04d4b9f 100755
--- a/Screens/Views/Definitions/Colors.qml
+++ b/Screens/Views/Definitions/Colors.qml
@@ -479,12 +479,16 @@ QtObject {
// Fuchsia - #ff0032
{ low1: rgba (255, 0, 50, 150), low2: rgba (255, 30, 60, 170),
mid1: rgba (255, 110, 110, 130), mid2: rgba (255, 125, 125, 160),
- high1: rgba (255, 210, 220, 140), high2: rgba (255, 220, 230, 160) }
+ high1: rgba (255, 210, 220, 140), high2: rgba (255, 220, 230, 160) },
+ // Spectrum-like colors
+ { low1: rgba (255, 50, 0, 150), low2: rgba (255, 70, 20, 170),
+ mid1: rgba ( 80, 245, 80, 110), mid2: rgba ( 95, 245, 95, 130),
+ high1: rgba ( 30, 85, 170, 255), high2: rgba ( 50, 100, 180, 255)}
]
function getDefaultWaveformColors()
{
- return waveformColorsMap[0];
+ return waveformColorsMap[17];
}
function getWaveformColors(colorId)
/Applications/Native Instruments/Traktor 2/Traktor.app/Contents/Resources/qml
on Mac, on Windows look for qml
in directory where Traktor is installed (I don't have windows machine around)…See screenshot: https://www.native-instruments.com/forum/threads/s5-s8-needs-spectrum-waveform-colors-on-display.267253/#post-1475226
In addition to currently set BPM it's good to know what's the original tempo.
I don't really need cover image, this makes extra space for additional column: beats and beats to next cue
Displays S +5.0%
, M +5.0%
or +5.0%
instead of SYNC
, MASTER
or +5.0%