S4MK3 & S3: Performance MOD (qml coding)
Comments
-
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
0 -
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.
0 -
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
1 -
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.
0 -
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!!!
0 -
Hehe, they have lovely dj nuggets in their inventory!
0 -
get yourself a coffee, very cool features you have added. really appreciate it!!
good night!
0 -
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>1 -
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" } } }
2 -
Magic again
1 -
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 here3 -
pixel: so what does it do?
0 -
In the future, all FX movements should be able to be recorded and played back in a loop
0 -
first real LOOP test😋
1 -
my Traktor laptop passed the performance test.^^
1
Categories
- All Categories
- 19 Welcome
- 1.4K Hangout
- 60 NI News
- 733 Tech Talks
- 3.9K Native Access
- 15.8K Komplete
- 1.9K Komplete General
- 4.1K Komplete Kontrol
- 5.5K Kontakt
- 1.5K Reaktor
- 364 Battery 4
- 814 Guitar Rig & FX
- 416 Massive X & Synths
- 1.2K Other Software & Hardware
- 5.5K Maschine
- 7K Traktor
- 7K 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