快速登录:  

Forum: General Discussion

话题: Script School - Page: 48.55
djkrysrPRO InfinityMember since 2010
Hi
On my skin I have added a floating window I can run on a separate touchscreen that contains a sample pad with 64 buttons. I am either DJing or providing sound for live acts, so my usage of the sample pad changes depending on what I am doing.
Since the latest update I have had to change my floating window to include <deck deck="master"> to make sure when pressing a sample on the pad, the correct sample plays, because if the right deck is selected and the pad page is NOT '1 - 8', the wrong sample slots plays

This is fine and everything works OK when working with acts, but I am really excited about the new sample features that have been added and would like to use them when DJing, but with my sample windows set to MASTER, you can't use with sample swap feature.

I have created a new layout that only shows when
(visibility="sampler_options 'stemswap') is true.
and this works, but only if you set the (specifically the right deck) pad page to 0, if it is anything else then the wrong sample plays when using the 'sample_pad' instruction.

i.e. if the sample pad is set to '9-12' then 'sample_pad 1' will play the sample in slot 9.
More strangely the 'color' returned using 'sampler_color' and 'sampler_position' also changes to 9 but other things on my button i.e
'get_sample_name'
'get_sample_info'
and 'sampler_volume'
are still using information for sample slot 1 so there is a confusing disconnect and you can't be sure what is going to happen without checking other screens with the relevant information.

If I use 'sample_play' or 'sample_play_stop' it will make sure the correct sample (1) is played but it no longer plays according to 'sampler_mode' which would be preferable.
At this point the only solution I can think of would be to have multiple buttons in my 'sampler button' class that each play differently then only show the one that corresponds to whatever 'sampler_mode' is active, which seems a bit long winded, and the sample color would still be wrong for that sample, plus I only know how to do 'play' 'play_stop' and 'play_stutter' to not sure how I would do 'unmute' or 'hold'.

EDIT: 'sampler_color' displays the color according to the pad page, 'get_sample_color' returns the ACTUAL color for the slot (i.e. 1) so solves that problem.

So is there a way 'sampler_pad' can be forced to use a specific pad page (ie 1-8).

Any other suggestions would also be welcomed.
 

发表时间 Mon 09 Dec 24 @ 4:57 pm
djkrysrPRO InfinityMember since 2010
I may have answered my own question, when sampler_swap is active on a bank I have created a button panel definition that has 3 buttons
'sampler_play_stop'
'sampler_play_stutter'
& 'sampler_play_stop' 'while_pressed'
and only show the appropriate button according to sample_mode, I skipped 'unmute' but since I don't use it I can live with that.

I was worried that 'sampler_play_stop' wouldn't work with 'sample_swap' the same way 'sample_pad' does but it appears to be working as expected.
I know the guys are still working on the new sampler so it may stop working or the original way may work later on but if nothing else it gave me more insight into how the sampler and the differences when using sampler_pad.

Any other pointers for anything I may have missed is still very welcome.
 

发表时间 Mon 09 Dec 24 @ 8:21 pm
locoDogPRO InfinityModeratorMember since 2013
@sofit nothing existing, you could make your own thing with a rsi, I'll pick at it because it's a little more involved that 1 value
 

发表时间 Mon 09 Dec 24 @ 10:26 pm
jrmsoundPRO SubscriberMember since 2024
I just watched the youtube video on scripting and I think im way out of my league.
Im trying to make a button that will fadeout the current song, pause and cue the next song in my automix playlist.

I would also like this button to work with the karaoke playlist. if this is possible please let me know.
thanks
John
 

发表时间 Tue 10 Dec 24 @ 3:49 pm
locoDogPRO InfinityModeratorMember since 2013
I really dislike writing scripts for automix, too may options come into play, karaoke makes it even worse.
 

发表时间 Tue 10 Dec 24 @ 4:37 pm
My annual thanks to all that help out on the forum (particularly locodog) and a question:

Is there a vdj script command to delete a (browsed) file that first moves the file into the recycle bin, so I can catch accidental deletions (rather than the hard delete)?
 

发表时间 Wed 11 Dec 24 @ 12:41 pm
locoDogPRO InfinityModeratorMember since 2013
You can't delete files with script, only with rightclick can you delete and then it's a operating system decision where the deleted file goes [recycling or hard delete]
 

发表时间 Wed 11 Dec 24 @ 6:18 pm
mg_1978PRO InfinityMember since 2008
hi, i have this problem, i have mapped a controller button “eq_mode +1” to change mixer knobs..but when use knobs in automatic mixer kobs return in low-mid-high function….mixer knobs are mapped:
eq_low
eq_mid
eq_high
this scripts are wrong?
thanks!
 

发表时间 Sat 14 Dec 24 @ 4:46 pm
twagaPRO InfinityMember since 2009
Is there a way to scratch just the length of one beat? I think the length of time can be calculated as 60/BPM seconds,

but I would like to use this calculation formula as an argument for scratch.
 

发表时间 Wed 15 Jan 25 @ 5:53 pm
locoDogPRO InfinityModeratorMember since 2013
@twaga I think the scratch verb is only used for BASIC testing purposes.

But to answer the question, mainly to show how to get ms/beat values
get_constant 1 & param_cast beats & param_cast ms & param_cast relative & scratch

get_bpm & param_1_x & param_multiply 60000 & param_cast ms & param_cast relative & scratch

first one is a more recent way
we get a constant 1, we cast it as beats, we then cast that beat to ms and it gives us ms/beat, and because scratch expects a +/- value we cast it one more time to a relative value and that puts it on the end of the scratch verb as a relative ms value.
second one
we don't have a divide verb, but we do have a parameter manipulation of
1 / parameter
we then multiply by 60000 [the number of ms in a minute]
and as before cast as relative.

But as I said before the scratch verb is VERY BASIC
If you're looking for scratch on a button press, you should look at this.
https://www.virtualdj.com/wiki/ScratchDNA.html
 

发表时间 Wed 15 Jan 25 @ 7:32 pm
twagaPRO InfinityMember since 2009
Thank you. I have confirmed the correct behavior of your script. I know about scratchDNA, and we can adjust the size of the scratch using the alphabet.
But although we can adjust the timing based on the beat, I don't think we can adjust the size of the scratch based on the beat.

Is it possible to play only one beat and then pause by VDJscript?
 

发表时间 Thu 16 Jan 25 @ 12:09 am
twagaPRO InfinityMember since 2009
play & wait 1bt & pause

I tried this script, but it seems that the small amount of time it takes for the play command causes small error and shifts.
 

发表时间 Thu 16 Jan 25 @ 12:20 am
twagaPRO InfinityMember since 2009
I think that a loop action can be used to play exactly one beat, but can we create a script that specifies the number of loops and loops one beat only once?
 

发表时间 Thu 16 Jan 25 @ 6:18 am
twagaPRO InfinityMember since 2009

locoDog wrote :

But to answer the question, mainly to show how to get ms/beat values
get_constant 1 & param_cast beats & param_cast ms & param_cast relative & scratch

get_bpm & param_1_x & param_multiply 60000 & param_cast ms & param_cast relative & scratch




I tried to imitate this and write a script that scratches back from the current position to the cuepoint, but the script below didn't work.. Could you please tell me the correct way to write it?

get_position & param_multiply -1 & param_add 'cue_pos 1 mseconly' & param_cast ms & param_cast relative & scratch


Sorry for writing so many times.
If I can make this script correctly, we can use the script with the script of scratching 1 beat taught by you and stutter, I think it will be possible to create a more flexible scratch than scratchDNA using manual keyboard operations.
 

发表时间 Thu 16 Jan 25 @ 4:27 pm
locoDogPRO InfinityModeratorMember since 2013
get_position returns a value of 0.0 to 1.0, not a time,
try get_time elapsed
Also
cue_pos 1 mseconly is not pitch adjusted, use this instead
`get_time cue1 1000`
 

发表时间 Thu 16 Jan 25 @ 5:09 pm
AdionPRO InfinityCTOMember since 2006
You can make the beat to milliseconds part a little bit shorter btw
constant 1bt & param_cast ms
 

发表时间 Thu 16 Jan 25 @ 6:03 pm
locoDogPRO InfinityModeratorMember since 2013
@adion nice addition, thanks for the info.
 

发表时间 Thu 16 Jan 25 @ 6:09 pm
twagaPRO InfinityMember since 2009
This script worked very well! Thank you very much.
param_add 'get_time cue1 1000' 'get_time elapsed & param_cast relative & param_multiply -1'& param_cast ms & param_cast relative & scratch



 

发表时间 Fri 17 Jan 25 @ 12:04 am
twagaPRO InfinityMember since 2009
Adion wrote :
You can make the beat to milliseconds part a little bit shorter btw
constant 1bt & param_cast ms




This script made it easier! thank you!
constant 1bt & param_cast ms & param_cast relative & scratch


 

发表时间 Fri 17 Jan 25 @ 12:07 am
twagaPRO InfinityMember since 2009
twaga wrote :
This script worked very well! Thank you very much.
param_add 'get_time cue1 1000' 'get_time elapsed & param_cast relative & param_multiply -1'& param_cast ms & param_cast relative & scratch





However, I found that this script works while pausing, but not while playing.
How can I make it work even during playing?
 

发表时间 Fri 17 Jan 25 @ 4:24 pm
99%