Connexion rapide:  

Forum: VirtualDJ Technical Support

Sujet Motorized Platter Scripting

Ce topic est ancien et peut contenir des informations obselètes ou incorrectes.

Is there any query in VDJScript I can use to get a speed percentage from a motorwheel? Or any mapping I could piggyback onto the jog to make it happen? I am trying to map a query to set a variable to true when the Rane Twelve platter is at 100%, and false otherwise. I am "translating" a pad I use for scratching which I originally wrote for a touchwheel style jog, so that It will function similarly on the Twelve. One of the buttons Has a repeat that monitors the status of the touchwheel_touch and when you remove your hand from the jog it automatically syncs the decks. I activate it just before I intend to drop in, to make my scratch drops always fall on-beat. If I am correct in assuming the devs intention when creating the definition file was that the platter rotation speed does not change when pitch change is applied to the deck, then I could achieve the same result by querying the speed of the Twelve platter, and when it reaches 100% for 100ms or so then activate sync.

here's the touchwheel version working...

https://youtu.be/ds7leSRxtlc

edit : Just realized I posted this in TS, can a mod move it to plugins plz? and sorry
 

Posté Tue 16 Apr 19 @ 5:00 am
locoDogPRO InfinityModeratorMember since 2013
Interesting idea, I'm honestly not sure
Thinking out loud here
get_rotation, knowing the rpm and observing over time is my first stab at it, let's put some easy numbers in

60rpm, check 10 times a second, we'll need variables to hold old rotation val, new rotation val and some sort of counter to confirm 10 correct readings
repeat_start 'name' 100ms & var 'counter' 10 ? sync & set 'counter' 0 : var 'counter' 0 ? set 'valOld' `get_rotation` & cycle 'counter' 11 : set 'valNew' `get_rotation` &
if
old + new = 2*old + 0.100
set old to new value & cycle the counter
else
set old to new value & set the counter to 1

You know looking at it, it might be possible, you've got to sort out what to do when old => .9, you might have to allow a bit of tolerance to the compare,
And this is using easy numbers, It will get tricky doing it dynamically
but it's possibly possible
 

Posté Tue 16 Apr 19 @ 9:58 pm
locoDogPRO InfinityModeratorMember since 2013
Second thoughts, track time would be easier than rotation.
 

Posté Wed 17 Apr 19 @ 1:13 am
locoDogPRO InfinityModeratorMember since 2013
repeat_start 'deckNumAutoSync' 33ms & var 'counter' 3 ? sync & set 'counter' 0 : var 'counter' 0 ? set 'valOld' `get_time 1000 & param_add 28` & cycle 'counter' 4 : set 'valNew' `get_time 1000` & param_bigger "get_var 'valOld'" "get_var 'valNew'" ? set 'valOld' `param_add "get_var 'valOld'" 10` & param_smaller "get_var 'valOld'" "get_var 'valNew'" ? cycle 'counter' 4 & set 'valOld' `get_time 1000 & param_add 28` : set 'counter' 1 & set 'valOld' `get_time 1000 & param_add 28` : set 'counter' 1 & set 'valOld' `get_time 1000 & param_add 28`

Something like this works as a proof of concept, but there's more to do, you'll have to test and iron out the bugs.
There could be another method adding a script to the platters but I can't think of it yet.

[same script just visualised]
repeat_start 'deckNumAutoSync' 33ms & var 'counter' 3
..? sync & set 'counter' 0
..: var 'counter' 0
....? set 'valOld' `get_time 1000 & param_add 28` & cycle 'counter' 4
....: set 'valNew' `get_time 1000` & param_bigger "get_var 'valOld'" "get_var 'valNew'"
......? set 'valOld' `param_add "get_var 'valOld'" 10` & param_smaller "get_var 'valOld'" "get_var 'valNew'"
........? cycle 'counter' 4 & set 'valOld' `get_time 1000 & param_add 28`
........: set 'counter' 1 & set 'valOld' `get_time 1000 & param_add 28`
......: set 'counter' 1 & set 'valOld' `get_time 1000 & param_add 28`
 

Posté Wed 17 Apr 19 @ 11:41 pm
Thanks loco. I'll map it and start testing tomorrow. I'll post updates.
 

Posté Thu 18 Apr 19 @ 6:46 am
After looking that over I may try to add rotation querying, and compare rotation position to time. A rotation Delta over time check maybe. Slice the time it takes to make one rotation into 20 queries, then when 2 consecutive identical deltas of the platter position return, it's made a 10th of a rotation at a constant rate. But can you get the delta of the platter? I'll work on it.
 

Posté Thu 18 Apr 19 @ 7:07 am
locoDogPRO InfinityModeratorMember since 2013
get_ns7_platter
for the rane12
I think will give you some data , I don't know what that gives out, 0 to 0.999, 0 to 359.9, I'm not sure.
That info might lead to another way.... but the above method should only have upto +/- 15ms slippage
 

Posté Thu 18 Apr 19 @ 7:46 am
I just got to the studio, I'll try them both. Thanks again loco.
 

Posté Thu 18 Apr 19 @ 11:49 am
Is it that hard to drop in on the one and then hit sync or just hit sync before you scratch in??
 

Posté Thu 18 Apr 19 @ 3:05 pm
locoDogPRO InfinityModeratorMember since 2013
It could amount to more than sync though tsi, this lets vdj know if you're scratching or not. Automatic bass kill/restore, reverb on scratches only, you must have some ideas.
 

Posté Thu 18 Apr 19 @ 3:19 pm
Ok since you put it in terms I can understand now, Lmmfao!!

Yeah I could see that happening and now I’m gonna have to track this thread because I could use this on my Denon 3700’s maybe......
 

Posté Thu 18 Apr 19 @ 4:40 pm
Yeah It triggers a few different things depending on a set of mode variables: slowly sweeps any filter and EQ modifications back to zero on the incoming deck and applies those same modifications to the outgoing deck with a sweep synced to the first sweep, begins autocrossfade of a preselected length, etc. the button is also mapped to act as smart_scratch when down but only activates the sync when the button is up AND the touchwheel_touch is false. It can operate in several modes, but the one the auto-sync really helps in is only smart scratch while pressed and sync release on, and the rest turned off. I use it for rapid fire stutter drops on acapella samples, just one or 2 scratch strokes and release, over and over. When I'm doing this its often during the intro or outro of an extended remix, and using the acap version of the same track, or the upcoming track acap version and a missed drop is pretty easy to pick out even for non-dj folks.
 

Posté Thu 18 Apr 19 @ 4:46 pm
still working BTW Loco, I have several script projects I'm working on for the Twelve, and I'm sort of bouncing around between them when I get frustrated. I've finished 4 though; mode variable that toggles the hotcue strip display to a side by side 4 deck capable color coded 16 beat beat-matcher, multiple hotcue layers(32 hotcues in 4 banks), slicer mode with visual feedback on the hot cue strip, and a couple more. Still early but I'm working on a touch FX layer for the searchstrip also.

Edit: Here's the beat-matcher up and running, My goal is once we get the Am-I-scratching? script ironed out, to place its toggle variable in the scratch drop button script so I don't have to look up to check the bar position.

 

Posté Thu 18 Apr 19 @ 4:57 pm
making some headway, the big issue thusfar is when the platter position rolls back over to 0.00 the delta gets calculated as a negative value which interrupts the delta's differential slope.
 

Posté Thu 18 Apr 19 @ 6:12 pm
I think I've almost got it Loco. Using your original idea, and the delta of the track position. Would using Builder rather than VDJ Script help here? I have been wanting to learn Builder, as it seems a little more in-depth with nesting and maths.
 

Posté Sun 21 Apr 19 @ 5:24 pm
locoDogPRO InfinityModeratorMember since 2013
I'm not sure if builder would make much difference, maybe, can I see what kind of script you've got going so far.
 

Posté Sun 21 Apr 19 @ 11:12 pm


(Les anciens sujets et forums sont automatiquement fermés)