Anmelden:     


Forum: General Discussion

Topic: Smart_Fader without Bass-Swap?
Hi,

there is the smart_fader feature that can synchronize the bpm of 2 tracks step by step automatically during crossfade. But it also swaps the bass during this transition automatically. Which is fine in most situations, but sometimes I want to keep the basses untouched.

Question: how can I use the smart_fader feature, but disable bass-swap during the transition (so bass is untouched)?

Thanks
 

geposted Sun 24 Mar 24 @ 10:33 am
The script is as you see it,
I worked out the maths required for the pitch change [it can be done with current script] and made a virtualfx that monitors the xf position out of it.
 

So it's not possible to say "don't touch the bass during the transition"?
 

not with smart_fader, as you see it, is how it works

this is the thing I made that doesn't effect the bass
 

Great! Is this script available to the community? Or would you be sharing insights?
 

instructions sent in pm
 

do you mind sharing it with me as well? also do you know the way that Smart fader works similar to Serrato like use it with volume instead of fader?
 

Save; source bpm, target bpm, the difference between the two.
Sync
start a rsi,
pitch lock on
sum the level sliders and save the reciprocal.
multiply the reciprocal by the target level slider, save the result
( result * bpmdifference ) + source bpm = new bpm, cast as beats to pitch,
pitch lock off.
 

Thanks I wrote this one but cant get it to work.
set 'LBPM' `deck Left get_bpm 'absolute'` &
set 'RBPM' `deck rightget_bpm 'absolute'` &
set 'LLevel' `get_level_left` &
set 'RLevel' `get_level_right` &
sync &
Pitch_lock on &
set 'PitchBase' `param_divide
param_add
param_multiply var 'LBPM' var 'LLevel'
param_multiply var 'RBPM' var 'RLevel'
param_add var 'LLevel' var 'RLevel'` &
deck 1 pitch `var 'PitchBase' bpm`
 

no such verb as param_divide
pitch verb doesn't accept script actions as a param.
var is only used like that in comparison against a value, get_var is how you get a var.

Even if you could do those things with script your maths is all wrong.
 

okay I guess I could use
param_1_x
but then I cannot assign it to the variable.
set 'Left' param_multipy doesnt work either
so how did you do it in your example then?
 


Exactly as I said, there's nothing in my overview method that I haven't explained before. here

also get_level relates to momentary output volume and not a slider position.
 

thanks, but I have an issue with rsi now it keep changing the BPM to infinity
set '$LBPM' `deck 1 get_bpm 'absolute'` &
set '$RBPM' `deck 2 get_bpm 'absolute'` &
sync&
repeat_start_instant 'SmartSyncLoop' 30ms -1 &
Pitch_lock on &
set '$LVolume' `deck 1 get_volume` &
set '$RVolume' `deck 2 get_volume` &
param_add "`get_var '$LVolume'`" "`get_var '$RVolume'`" & param_cast & set '$SumVol'&
get_var '$SumVol' &param_1_x & param_cast & set '$InvSumVol'&
get_var '$LVolume' & param_multiply "get_var '$LBPM'" & param_cast & set '$L'&
get_var '$RVolume' & param_multiply "get_var '$RBPM'" & param_cast & set '$R'&
param_add "`get_var '$L'`" "`get_var '$R'`" & param_cast & set '$SumLR'&
get_var '$SumLR' & param_multiply "get_var '$InvSumVol'" & param_cast & set '$NewPitch'&
get_var '$LBPM' & param_multiply -1 & param_cast & set '$NegLBPM' & param_add "`get_var '$NewPitch'`" "`get_var '$NegLBPM'`" & param_cast & set '$delta'&
get_var '$delta' & param_cast beats & param_cast relative & pitch&
pitch lock off
 

You've at least put the effort in, I don't know if they are local typos but I'm seeing missing spaces. I wouldn't have used absolute bpm for source as you might not be at quartz lock when calling. Using get_volume wouldn't have been my first choice. You seem to almost get there and then detour in the wrong direction at the last moment.

repeat_start_instant name ? repeat_stop name & pitch_lock off : set outbpm `deck master get_bpm` & set inbpm `deck default get_bpm` & set diffbpm `param_add 'param_multiply "get_var outbpm" -1' 'get_var inbpm'` & ( deck default sync ) & repeat_start_instant name 33ms -1 & pitch_lock on & set recipSumVol `param_add 'deck 1 level' 'deck 2 level' & param_1_x` & set resultVol `param_multiply 'deck default level' 'get_var recipSumVol'` & param_add `get_var outbpm` `param_multiply 'get_var resultVol' 'get_var diffbpm'` & param_cast beats & pitch & pitch_lock off
 

Thanks a lot. this is really great :-)
I tried it last night , it will work once, and not working for a while. not sure what's going on , but I will start debugging it on the weekend.
 

It works once, then you turn it off. Then it will work again next time you switch it on.
 

It could run constantly but you'd have to throw in a load_pulse check to update the initial vars, for me a tempo slide transition is at most a once or twice thing per set, it's a one off novelty to be done too regularly it becomes stale and unless you're sliding a tiny amount it's jarring to the floor rhythm, once or twice a set then jarring is ok - the point is we're doing something different, you're signalling we're doing something different, all the time breaks the rhythm continuity too much, people stand still.

I'd probably bracket all of this prior to the moving parts;
a level 0.0 check to determine side, then a load_pulse check on that side then do all the stuff done before the rsi, but I think I've done enough of your homework.