Mapping something (e.g. loop size/out) to jog wheel
Answers
-
Hey Evening / Morning
Apologies for the delay, please find attached a 30sec clip of the platter light ring beat counter.
Thanks Again
1 -
Just FYI, I am using ver.4b in the video clip I uploaded.
1 -
Looks great! You put in some new deck colours, right? :)
0 -
Yes I did. Left Deck A - Lime Green | Right Deck B - Plum ( Need them brighter ) will play around & provide feedback.
Thank you again for your help.
0 -
Hello! You've made amazing mods for S3!
Since i've bought my Traktor S3 i wanted jogwheels LEDs to turn around like on S4Mk3. Your beatcounter mod make me believe it is possible. But i'm not programmer but try to do my best :) All i can made from your mod you can see in a video https://drive.google.com/file/d/1IyS50sYFOKOd57fY9mS0e--_z3EIB6oq/view?usp=sharing
Rotation speed assigned to track bpm*2. There is 8 LEDs around jogwheels and traktor, as i understand, works only with 4 beats. So i've made LEDs to glow in pairs. But it not that i want in my perfect world
Maybe there is a way to make rotation speed as classic turntable speeds 33 1/3 rpm or 45 rpm
Is there way to make LEDs turn like on S4mk3? One by one. I understand that S4mk3 LEDs much more smooth, but as close as it can be.
And i want only light mod - no any control mods.
Hope you can guide me in the right direction
0 -
I didn't know there where 8 LED's! Sweet! :)
Rotation speed assigned to track bpm*2. There is 8 LEDs around jogwheels and traktor, as i understand, works only with 4 beats. So i've made LEDs to glow in pairs. But it not that i want in my perfect world
Can you elaborate? What end result do you want to achieve?
0 -
First 6 seconds of official s4mk3 introduction https://www.youtube.com/watch?v=feOVbUHcDyA
Or just light up one LED by one
Not two by two as on my video
And is it possible to invert LEDs? I meen not to light up them one by one but light up them all at once and then light down one by one round and round
1 -
Yes, both is possible and more.
My idea would be to devide 4 beats into 8 half-beats. For a smoother transition among the 8 LED's it would look like this:
- Half-beat 1 lights up LED 1 and LED 2
- Half-beat 2 lights up LED 2 and LED 3
- Half-beat 3 lights up LED 3 and LED 4
- (etc) ...
- Half-beat 8 lights up LED 8 and LED 1
4 beats will still make the LED ring turn around exactly once.
2 -
So. I've made inverted spin with 2 LEDs
My scheme is like BEAT - LED
1 - 345678
2 - 125678
3 - 123478
4 - 123456
But half-beat is too difficult for me at this moment
Tried something like
Wire { enabled: !loopActive.value && (deckBeat[deckIdx]/2 == 0.5) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.3"; to: "turntable.lights" ; }
But it do not work
1 -
Good to see you are actually trying to adjust the code itself to your liking.
As you could see in the file, i have marked a whole section to get the beats and the LED's right. This is my take on the updated section. I will point out a few things at the bottom, but here is the whole thing:
//-----------------------------------Jogwheel Beatcounter LED------------------------------------// // AppProperty { id: deckTypeProp; path: "app.traktor.decks." + deckIdx + ".type" } AppProperty { id: deckElapsedTime; path: "app.traktor.decks." + deckIdx + ".track.player.elapsed_time" } AppProperty { id: deckGridOffset; path: "app.traktor.decks." + deckIdx + ".content.grid_offset" } AppProperty { id: deckMixerBpm; path: "app.traktor.decks." + deckIdx + ".tempo.base_bpm" } AppProperty { id: remixBeatPos; path: "app.traktor.decks." + deckIdx + ".remix.current_beat_pos" } readonly property var deckBeats: deckTypeProp.value != 1 ? (((deckElapsedTime.value * 1000 - deckGridOffset.value + 10) * deckMixerBpm.value) / 30000.0) : parseInt(remixBeatPos.value) * 2 readonly property var deckBeat: (deckBeats < 0.0) ? (8 - (parseInt(Math.abs(deckBeats) % 8))) : parseInt(Math.abs(deckBeats) % 8) + 1 WiresGroup { enabled: !gridAdjustEnableProp.value && module.active Wire { enabled: !loopActive.value && ((deckBeat == 8) || (deckBeat == 1)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.1"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 8) || (deckBeat == 1)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.1"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 1) || (deckBeat == 2)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.2"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 1) || (deckBeat == 2)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.2"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 2) || (deckBeat == 3)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.3"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 2) || (deckBeat == 3)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.3"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 3) || (deckBeat == 4)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.4"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 3) || (deckBeat == 4)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.4"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 4) || (deckBeat == 5)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.5"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 4) || (deckBeat == 5)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.5"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 5) || (deckBeat == 6)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.6"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 5) || (deckBeat == 6)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.6"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 6) || (deckBeat == 7)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.7"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 6) || (deckBeat == 7)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.7"; to: "loop.active" ; } Wire { enabled: !loopActive.value && ((deckBeat == 7) || (deckBeat == 8)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.8"; to: "turntable.lights" ; } Wire { enabled: loopActive.value && ((deckBeat == 7) || (deckBeat == 8)) && (deckScratching || deckPlaying); from: "%surface%.jogwheel_ring.8"; to: "loop.active" ; } }
As you can see, i've thrown out a lot of the code that measure the beats of ALL decks at the same time because i've given up on aligning this with master beats. So, this is the reduced code.
Every ring LED has two wires, one for deck colour, one for loop colour. The first line (enabled: ...) shows under which condition the LED lights up. The beat counter will also now count 8 half beats. When it says '((deckBeat == 7) || (deckBeat == 8))' it means, when the beatcounter# is 7 or 8 the LED lights up. If you want it to be inverted, you have to negate it with a '!' symbol in front. In this case, instead of this:
enabled: loopActive.value && ((deckBeat == 7) || (deckBeat == 8)) && (deckScratching || deckPlaying);
it will have to look like this:
enabled: loopActive.value && !((deckBeat == 7) || (deckBeat == 8)) && (deckScratching || deckPlaying);
so, all instances of ((deckBeat == X) || (deckBeat == Y)) need to be !((deckBeat == X) || (deckBeat == Y)).
Hope this helps.
1 -
Thank you very much for the detailed explanation!
I like to understand how any mechanism works so there will be my homework for this evening
I will tell you the results
1 -
The latest LED upgrade to the scratch mod, using 8 LEDs turning to the beat (at half beat jumps):
The NotScratchJustLED mod, with inverted colour turning:
Please test away and give some feedback. Don't have an S3 at home to test (I'm testing using my S4Mk3 and the 8 performance pads as placeholders).
2 -
Unfortunately this version do not work. Here is video https://drive.google.com/file/d/1kOjmzRl-KMBDH1vwkE3ESjpbEKoCaMFf/view?usp=sharing
0 -
Stop.
My previous post was about S3DeckLEDModInverted.zip
Just tried S3DeckScratchMod5.zip and it works great
Here is video https://drive.google.com/file/d/1-4Q8ZbGEz8xaepHDcoMa1kVr71B0Zlyo/view?usp=sharing
Will analyze your code tomorrow
Great! Thank you again!
1 -
Thanks for the video. I'll have a look what made the inversion mod not work. And you probably don't want the scratch mod version. Or do you? :)
0
Categories
- All Categories
- 19 Welcome
- 1.4K Hangout
- 60 NI News
- 735 Tech Talks
- 3.9K Native Access
- 15.9K Komplete
- 1.9K Komplete General
- 4.1K Komplete Kontrol
- 5.5K Kontakt
- 1.5K Reaktor
- 365 Battery 4
- 817 Guitar Rig & FX
- 417 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