Quick Sign In:  

 LocoDog
The best software is the one you know how to use.
My Releases Over 2 million downloads* [STOPPED COUNTING MAY2024]
Everything you see or do in vdj is because of scripts, think like a 21st century DJ.
If you want a custom plugin writing, MIDI out to SoundSwitch, a broken database fixing, skin tweaks, or help mapping, drop me a pm., or you can catch me on discord.gg
If I've helped you out or you like my plugins, you could buy me a beer.

ThrowInToBeerFund

Sun 05 Jan 25 @ 11:04 am

Script

sampler_play_stop "Electro-Pop Libraries\Bass Pop\Bass Pop - WAV-ACID\15 107 Fmin\Drum Hits\15-hit Kick.wav"

Where I get the path from.











Mon 23 Jan 23 @ 1:08 am

Place this script on a custom button
Fill user 1 tag with desired pitch, if tag is blank it will assume natural pitch
Fill user 2 tag with desired fade point in seconds, if tag is blank it will assume your fadeat time
place songs in automix list but don't turn automix on
don't load a song just press the custom button

these FOUR set variables at the top are your only levers
the toggle $amIworking is there for visual
$fadeat is time to start fading (in seconds)
$fading is how long it fades to silence
$waiting is how long it waits to start playing the next track
$initialWait is how long it waits to play from the first press of the button [or restarting the mechanism]
the variable $fallbackFade [don't worry about it] is a holder of $fadeat time, as actual fade time could be from the tag.

when it reaches the bottom of automix it will play the last song then switch off,
if you add more songs before it switches off it will continue

if you ever error or have garbage tags, press the button to turn the thing off, fade down manually, unload the deck, press the button again and it should grab the next track in automix


THE SCRIPT

toggle $amIworking & set $fadeAt 180 & set $waiting 8 & set $fading 8 & set $initialWait 8 & set $fallbackFade $fadeAt &

( repeat_start 'pulsePitch' ? wait 100ms & repeat_stop 'rsWaiting' & repeat_stop rsInitialWait & set $amIworking 0 : ) &

( repeat_start 'pulsePitch' ? repeat_stop 'pulsePitch' : set $amIworking 1 & repeat_start 'pulsePitch' 100ms -1 & load_pulse ? : loaded ? level 1.0 & set $counter 0 & ( param_equal `get_loaded_song 'user 2'` "" ? set $fadeAt $fallbackFade & param_equal `get_loaded_song 'user 1'` "" ? pitch 100% : get_loaded_song 'user 1' & param_cast 'percentage' & pitch : set $fadeAt `get_loaded_song 'user 2' & param_cast 'integer'` & param_equal `get_loaded_song 'user 1'` "" ? pitch 100% : get_loaded_song 'user 1' & param_cast 'percentage' & pitch : ) &
set $done 0 &
repeat_start 'rsWatchTime' ? on & repeat_stop 'rsWatchTime' : off & level 1.0 & ( loaded !? playlist_load_and_remove : ) & repeat_start rsInitialWait `param_multiply 'get_var $initialWait' 1000` 1 & play &
repeat_start 'rsWatchTime' 500ms -1 & toggle $amIworking & ( param_equal `file_count automix` 0 ? set $done 1 : set $done 0 ) &
repeat_start 'rsfading' ? : repeat_start 'rsWaiting' ? :

param_smaller `get_time total 1000` `param_add "param_multiply 'get_var $fadeAt' 1000" "param_multiply 'get_var $fading' 1000"` ?

param_bigger `get_time elapsed 1` `get_var $fadeAt` ? :

repeat_start 'rsfading' `get_var $fading & param_multiply 10` 100 & level -0.01 & level 0 ? repeat_stop 'rsfading' & stop & var $done 1 ? repeat_stop 'pulsePitch' & repeat_stop 'rsWatchTime' & unload & set $amIworking 0 & level 1.0 : playlist_load_and_remove &
repeat_start 'rsWaiting' `get_var $waiting & param_multiply 1000` 1 & play : :

param_smaller `param_add "get_time total 1000" "param_multiply 'get_var $fading' -1020"` `param_add "get_time elapsed 1000" 500` ? :

repeat_start 'rsfading' `get_var $fading & param_multiply 10` 100 & cycle $counter 100 & var $counter 0 ? repeat_stop 'rsfading' & stop & var $done 1 ? repeat_stop 'pulsePitch' & repeat_stop 'rsWatchTime' & unload & set $amIworking 0 & level 1.0 : playlist_load_and_remove &
repeat_start 'rsWaiting' `get_var $waiting & param_multiply 1000` 1 & play : :



Sat 08 Feb 20 @ 3:39 am

my uid 7697545
param_equal `get_loaded_song 'alreadyplayed'` 'yes' ? on : off
Test if several things are true with just one question mark

set 'a' 1 & set 'b' 2 & set 'c' 3 & param_equal "`var 'a' 1 && var 'b' 2 && var 'c' 3`" 1 ? set 'result' 1 : set 'result' 0

between 2 values one question mark
param_equal "`param_smaller 'effect_slider echo 1' 0.1`" "`param_bigger 'effect_slider echo 1' 0.2`" ? [in between 0.1 & 0.2] : [not inbetween]

Increment vars

set 'a' +1

cast then query for things that aren't straight forward

set 'a' 2 & get_var 'a' & param_cast 'integer' & has_cue & param_equal 1 ? [cue 2 exists] : [it doesn't]

inverted queries

set 'a' 1 & set 'b' 1 & var_equal 'a' 'b' !? [not equal] : [equal]

Dynamic variable names

set '$myvar' 4 & param_add `get_var '$myvar' & param_cast 'text'` `get_text '$mynewvar'` & param_cast 'text' & toggle

result toggle $mynewvar4

Append a tag with ' ABC'

param_add `get_text ' ABC'` `get_browsed_song 'comment'` & param_cast 'text' & browsed_song 'comment'

get_browsed_song 'comment' & param_add ' ABC' & param_cast 'text' & browsed_song 'comment'
Append a tag with ' ABC' ' 123'

PARAM_ADD "GET_TEXT ' 123'" "param_add `get_text ' ABC'` `get_browsed_song 'comment'`" & param_cast 'text' & browsed_song 'comment'


get_slip_time return beats from current.

`param_add "get_time elapsed 1000 & param_multiply -1" "get_slip_time" & param_multiply "param_multiply get_bpm 'get_constant 60000 & param_1_x'"`


loop roll stutters

http://www.virtualdj.com/forums/241779/VirtualDJ_Technical_Support/Slider_Filter_on_Pad.html?search=I%20call%20this%20one%20fun&page=1.7


1 hour countdown
set 'test' 3600 & set 'clock' `get_clock` & repeat_start_instant 'ticktock' 50ms -1 & param_equal `get_var clock` `get_clock` ? : cycle test -3600 & set 'clock' `get_clock` & set sec `param_mod 60 "get_var test" & param_cast '00'` & set min `param_multiply 0.0166666666666 "get_var 'test'"` & set min `get_var min & param_cast 'int_trunc' & param_cast '00'` & set_var counter `param_add "get_text ':'" "get_var 'min'"` & set_var 'counter' `param_add "get_var 'sec'" "get_var 'counter'"` & get_var 'counter' & param_cast 'text' & deck master effect_string 'text' 2

exit cue

goto 100% & set 'myVar' `param_mod 16 "get_beatpos" & param_multiply -1` & get_var 'myVar' & param_cast 'relative' & goto & goto -32 & get_beatpos & param_cast & set_cue 8 & cue_name 8 "Outro 8B"

key to filter folder
set_var folderString ".vdjfolder" &
set folderString `param_add 'get_var folderString' 'get_harmonic'` &
set folderString `param_add 'get_var folderString' 'get_text "C:\Users\user\Documents\VirtualDJ\Folders\Filters\Keys.subfolders\"'` &
browser_gotofolder `get_var folderString

Scrolling

repeat_start_instant scroller ? on & repeat_stop scroller : off & browser_window songs & browser_scroll top & repeat_start_instant scroller 50ms -1 &
THE THING &
browser_scroll bottom ? repeat_stop scroller : browser_scroll +1


volume & samples

set $volManip 0 & deck master repeat_start volManip 25ms -1 & var $volManip 0 ? param_smaller 0.5 `deck 1 level` ? sampler_play 1 & set $volManip 1 : deck all level -2% : var $volManip 1 ? sampler_used ? : set $volManip 2 : var $volManip 2 ? param_equal 1.0 `deck 1 level` ? deck master repeat_stop volManip & set $volManip 0 : deck all level +2%

or

sampler_play FILEPATH & set $volManip 0 & deck master repeat_start volManip 25ms -1 & var $volManip 0 ? action_deck 1 ? param_smaller 0.5 `deck 1 level` ? set $volManip 1 : deck 1 level -2% : param_smaller 0.5 `deck 2 level` ? set $volManip 1 : deck 2 level -2% : var $volManip 1 ? sampler_used ? : set $volManip 2 : var $volManip 2 ? action_deck 1 ? param_equal 1.0 `deck 1 level` ? deck master repeat_stop volManip & set $volManip 0 : deck 1 level +2% : param_equal 1.0 `deck 2 level` ? deck master repeat_stop volManip & set $volManip 0 : deck 2 level +2%

or

sampler_play FILEPATH & set $volManip 0 & deck master repeat_start volManip 25ms -1 & var $volManip 0 ? param_smaller 0.5 `deck active level` ? set $volManip 1 : deck active level -2% : var $volManip 1 ? sampler_used ? : set $volManip 2 : var $volManip 2 ? param_equal 1.0 `deck active level` ? deck master repeat_stop volManip & set $volManip 0 : deck active level +2%


Tue 17 Jul 18 @ 7:55 pm

<?xml version="1.0" encoding="UTF-8"?>
<page>
<pad1 name="set">set &apos;var1&apos; 5 &amp;&amp; set &apos;var2&apos; 4</pad1>
<pad7 name="multiply">param_multiply &quot;get_var &apos;var1&apos;&quot; &quot;get_var &apos;var2&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;</pad7>
<pad3 name="add">param_add &quot;get_var &apos;var1&apos;&quot; &quot;get_var &apos;var2&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;</pad3>
<pad4 name="equal">get_var &apos;var1&apos; &amp; param_equal &quot;get_var &apos;var2&apos;&quot;</pad4>
<pad2 name="subtract">get_var &apos;var1&apos; &amp; param_invert &amp; set &apos;1-var1&apos; &amp; param_add &quot;get_var &apos;1-var1&apos;&quot; -1 &amp; param_cast &amp; set &apos;-var1&apos; &amp; param_add &quot;get_var &apos;-var1&apos;&quot; &quot;get_var &apos;var2&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;((1-var1) -1) + var2&quot; &quot;var2 - var1&quot;</pad2>
<pad6 name="divide">get_var &apos;var1&apos; &amp; param_1_x &amp; set &quot;var1/x&quot; &amp; param_multiply &quot;get_var &apos;var1/x&apos;&quot; &quot;get_var &apos;var2&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;(1/var1) * var2&quot; &quot;var2 / var1&quot;</pad6>
<pad5 name="compare">get_var &apos;var1&apos; &amp; param_bigger &quot;get_var &apos;var2&apos;&quot; ? on : off
&quot;is the first thing bigger than the second&quot;</pad5>
<pad8 name="compare way 2">param_bigger &quot;get_var &apos;var1&apos;&quot; &quot;get_var &apos;var2&apos;&quot; ? on : off
&quot;is the 2nd thing bigger than the first&quot;</pad8>
<param1 name="var1 = `get_var &apos;var1&apos;` var2 = `get_var &apos;var2&apos;`"> </param1>
<param2 name="var3 = `get_var &apos;var3&apos;`"> </param2>
<shift_pad4 name="V2 pow V1">param_pow &quot;get_var &apos;var1&apos;&quot; &quot;get_var &apos;var2&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;second thing to the power first thing&quot;</shift_pad4>
<shift_pad2 name="-X">get_var &apos;var1&apos; &amp; param_invert &amp; set &apos;1-var1&apos; &amp; param_add &quot;get_var &apos;1-var1&apos;&quot; -1 &amp; param_cast &amp; set &apos;var3&apos;</shift_pad2>
<shift_pad3 name="SQRT">param_pow 0.5 &quot;get_var &apos;var1&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;second thing to the power first thing&quot;</shift_pad3>
<shift_pad7 name="QuadRoot">param_pow 0.25 &quot;get_var &apos;var1&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;second thing to the power first thing&quot;</shift_pad7>
<shift_pad6 name="nerds">set &quot;var1&quot; -1 &amp; param_pow 0.5 &quot;get_var &apos;var1&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;second thing to the power first thing&quot;</shift_pad6>
<shift_pad8 name="CubeRoot">param_pow 0.33 &quot;get_var &apos;var1&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;
&quot;second thing to the power first thing&quot;</shift_pad8>
<shift_pad1 name="Exponent 1/x">get_var &apos;var2&apos; &amp; param_1_x &amp; set &quot;var3&quot;</shift_pad1>
<shift_pad5 name="X2">param_pow 2 &quot;get_var &apos;var1&apos;&quot; &amp; param_cast &amp; set &apos;var3&apos;</shift_pad5>
</page>



Fri 28 Oct 16 @ 9:50 am

Something I've started doing is using 2 pad pages on 1 deck at the same time.

Example phantomdj's keymodplay page is great for changing the key of a hotcue.
but you get much more control if you have a pad page devoted to hotcues and a pad page devoted to key.
We're playing deck 1, we have the standard hotcue page on deck 1, on deck 2 we make a new pad page devoted to the key of deck 1.
pad pages don't specify deck because it is presumed you'll be controlling the deck that has the pad page selected.

but you can specify which deck it effects by simply including which deck.

Other scenarios using 2 pages at once is useful is for hotcueing new tracks, have hotcues page on deck 1 and on deck 2 have a pad page dedicated to deck 1 'goto' scripts so you can jump 64/86/128 beats quickly to lay the next hotcue

I'll leave it at that for now but if you want more information post comments here
http://www.virtualdj.com/forums/213532/General_Discussion/Tip__Using_2_pad_pages_on_1_deck_at_the_same_time.html


Tue 25 Oct 16 @ 2:53 am

FX
ShrinkLoop SlipBrake8 LoopCut KeyLoopUP KeyLoopDown Routine Half Speed Simple Volume Detune FTB
virtualFX loopCount openPage sticky dualShaders easyKRM swingIt videoRoll OBSKeys branchFX
mLRecorder tape_mprv brokenStereo


Pad pages
GridAdjustAutomixLive Accord DubLoop RoutinePads RateNColor Transport
CloneLoop revLoop Slid3R ZvideoControl SvideoControl routineSP
AutomixPrepare Retired


Builder Auto Pages
Builder AutoFilters
AutoVFX Retired
AutoVXF Retired


Skins
RemixDecks


Sample Packs
RemixLoops01

Unreleased
HTTP Requests out of vdj, BreakAwayOne, mAirlist, Custom history File, realtime history for RDS,
Database fixing, database conversion, Tools for writing OS2L poi, midi out to Unreal Engine,
midi out to soundswitch, SMPTE out of vdj to lightshow, i/o to 3rd party API [non midi/HID devices],
text output monitored by app to open other apps, open lyrics .txt file for non karaoke singers,
Powerpoint remote to vdj script, Random Track selector, 3rd party skin updates, Full Custom skin, video skins



Tue 04 Oct 16 @ 1:37 am

How to; Remap HW FX Dial 1 To Another FX Dial For A Specific FX


This difficult tutorial we will be looking how to pick a different dial then dial 1 for a specific fx.

There are some FX were you don't want dial 1, maybe you want dial 2, or 3 or even dial 23 [with some VST's]

Now dial 2 & 3, well you can switch to single fx mode, but then you've only got control of one fx and the real fun only starts chaining fx.



Here we have 2 fx on slots 1 & 2 and their GUI's
we want to control both independently at the the same time so we have to be in multi fx mode
but we want to control dial 2 for both fx.

Ok we could just hold the controllers shift button and struggle to handle 2 dials with 1 hand.
Painful, we won't do that.
[DON'T USE YOUR NOSE TO HOLD DOWN THE SHIFT BUTTON, ONE DAY YOU'LL DO IT TOO HARD AND GET BLOOD EVERYWHERE]
[TRUST ME ON THAT]

We could remap the hardware dial to something like this
effect_active 1 'Audio Cut8' ? effect_slider 1 2 : effect_slider 1 1
explained;
we ask is the effect that is active on slot 1 Audio Cut8 ?
yes- control slot 1's 2nd slider
no-- control slot 1's 1st slider

Ok that will work, BUT it will only work when the fx is active / on.
Almost perfect, for some fx good enough, but to get it absolutely perfect we need to use something different and this is it

param_equal '`get_effect_name 1`' 'Audio Cut8' ? effect_slider 1 2 : effect_slider 1 1

explained;
We tell vdj we want to see if two things are the same
param_equal

We put the first thing inside straight or double commas, ' ' or " ", because this is an action we also have to put it inside back ticks ` ` [usually the key above tab] and then the actual action, here it is put together
'`get_effect_name 1`'
The second thing we are looking at is just a collection of characters that make a fx name [collection of characters are known as a string]
So this is the second thing we are looking at, so inside straight or double commas like before, but it's not an action so no need for back ticks this time.
'Audio Cut8'
and this is a question/query so we have a question mark,
and the replies/answers are like before
yes- control slot 1's 2nd slider
no-- control slot 1's 1st slider

Complicated ? To start with yes, the only way to get good and remember this stuff is practice.
Ok let's take the next step, we'll do slot 3 this time, and we'll check for Audio Cut8 or Distortion and control dial 2 for those and dial 1 for anything else

param_equal '`get_effect_name 3`' 'Audio Cut8' ? effect_slider 3 2 : param_equal '`get_effect_name 3`' 'Distortion' ? effect_slider 3 2 : effect_slider 3 1


running through it very quickly
compare two things, the first thing in commas, it's an action too so inside back ticks, the action is get the effect name on slot 3 this time, the second thing we are comparing goes inside commas but it's just a string not an action so no back ticks, question mark,
yes they are the same so the on the 3rd slot we want to control the second slider,
no they are not the same, let's do the same sort of test but with distortion
compare two things, the first thing in commas, it's an action so inside back ticks, the action is get the effect name on slot 3, the second thing we are comparing goes inside commas but it's just a string so no back ticks, question mark,
yes they are the same so the on the 3rd slot we want to control the second slider,
no they are not the same, so it's not audio cut 8 nor is it distortion so on the 3rd slot we control the first slider like normal fx

Complicated? Hell yes, but it's starting to make a bit of sense, you've just covered 2 very tricky things to understand about script
comparing and even trickier multi querying.

Step back, chill out, stop thinking about it, at some point in the future you'll think 'I don't want dial 1 for this fx I want dial 5'
this tutorial will be here, it'll probably be better written, and when you get stuck you can ask for help in this thread

http://www.virtualdj.com/forums/212946/General_Discussion/How_to__Remap_HW_FX_Dial_1_To_Another_FX_Dial_For_A_Specific_FX_tutorial.html


Mon 26 Sep 16 @ 2:07 pm

How to; Perform A Action Automatically When A Track Is Loaded


This is a question that crops up from time to time so here is a tutorial.
In this tutorial we want the hotcues padpage to be shown whenever a new track is loaded.
We'll be using a repeating script to check a variable called load_pulse (this automatically changes from normally true to briefly false when a track is loaded) when load_pulse is false we call the pad page 'hotcues'

repeat_start_instant 'rsiPulseCheck' 190ms & load_pulse ? nothing : pad_page 'hotcues'

I tell vdj that I want a repeating script

repeat_start_instant

I give the repeating script a name

'rsiPulseCheck'

I tell vdj how often I want to repeat the script (more on why 190ms later)

190ms

Now the actual script I want to repeat

load_pulse ? nothing : pad_page 'hotcues'

load_pulse is a script that most of the time when queried gives the answer true/yes but when a track is loaded will turn to false/no for 200ms and then returns to true (This is why I used 190ms)

While load_pulse is true I want nothing to happen, when it turns to false I want the pad pages to switch to 'hotcues'

Where do I write this script?
Well if you always want this action to happen the best place would be on your ONINIT mapping
If you want this to be switchable then you need to change the script a little and put it on a custom button or a keyboard key or a HW button,
Here is the modified script

toggle '$pulseCheck' & var '$pulseCheck' ? repeat_start_instant 'rsiPulseCheck' 190ms & load_pulse ? nothing : pad_page 'hotcues' : repeat_stop 'rsiPulseCheck'

Here is the explanation
When I press a button I want to change a variable from false to true, or from true to false (I called the variable 'pulseCheck' and made it a global variable by putting a $ on the start. (most variables start as false when you turn vdj on)

toggle '$pulseCheck'

I then query the variable

var '$pulseCheck' ?

If the variable is true then this is the action that is performed (which we have already covered)

repeat_start_instant 'rsiPulseCheck' 190ms & load_pulse ? nothing : pad_page 'hotcues'

If the variable is false (when you press your button for a second time togging the variable from true to false) we don't want rsiPulseChecker running any more so this is the action sent

repeat_stop 'rsiPulseCheck'

We tell vdj we want to stop a repeating script

repeat_stop

and we tell vdj the name of the repeating script we want to stop

'rsiPulseCheck'

Some Pioneer HW works a little differently (pads work from a variable called padmode) so here's the script for them

toggle '$pulseCheck' & var '$pulseCheck' ? repeat_start_instant 'rsiPulseCheck' 190ms & load_pulse ? nothing : set 'padmode' 0 : repeat_stop 'rsiPulseCheck'


For further discussion or help please post here
http://www.virtualdj.com/forums/212799/General_Discussion/How_to__Perform_A_Action_Automatically_When_A_Track_Is_Loaded__Tutorial.html

There's no setting, it can be scripted with a custom button with this [switches on/off]

deck master repeat_start 'rsPulseCheck' ? repeat_stop 'rsPulseCheck' & on ? off & repeat_start 'rsPulseCheck' 190ms & deck 1 load_pulse ? deck 2 load_pulse ? nothing : deck 2 level 100% : deck 1 level 100% & deck 2 load_pulse ? nothing : deck 2 level 100%

Or use this on your keyboard's ONINIT [unswitched]
repeat_start 'rsPulseCheck' 190ms & deck 1 load_pulse ? deck 2 load_pulse ? nothing : deck 2 level 100% : deck 1 level 100% & deck 2 load_pulse ? nothing : deck 2 level 100%


Fri 05 Aug 16 @ 3:54 pm

How to; Make A Pads Index Page


This is a step by step tutorial on how to make a pads index page.

Wait, why do I need a index page? There's only one reason, it's quicker, quicker than selecting your pad page by scrolling through the pages and much quicker than using the mouse.

Step by step

1 Go to open the pad page drop down menu, click edit.


2 Click the 'New Page' button and give the new page the name 'Index'


3 Edit each of the pads to link to the page of your choice, by typing
pad_page 'Whatever pad page you want on this button'

and then give that pad a name


4 Do that until you have linked all the buttons or linked to all the pad pages you want to access quickly.

5 Now you have a Index page; how do you access that quickly? Easy, go into your controller mapping and find a button you don't use or find a button that by default links to a pad page and remap the button to this.
pad_page 'index'


I would choose a button that already links to a pad page [maybe one you don't use as regular] as that way you keep all the original function.

That's all there is to it. you've now made your own pad page and customised your controller to your needs.

Any questions or comments please ask in the thread linked here
http://www.virtualdj.com/forums/211607/General_Discussion/_How_to__Make_A_Pads_Index_Page__Tutorial.html


Tue 02 Aug 16 @ 2:43 pm

Add to a variable

set "$Counter" '`get_var "$Counter" & param_add 1'

Slider decided by fx in slot

param_equal '`get_effect_name X`' 'fx name' ? effect_slider X Y1 : effect_slider X Y2

autoaction after cue

repeat_start_instant 'AAction' 33ms & param_bigger "get_time cue1 1000" "get_time elapsed 1000" ? goto -8 : nothing
or
repeat_start_instant 'rsiLoopNextCue' ? on : off & repeat_start_instant 'rsiLoopNextCue' 33ms & param_greater 'cue_countdown' 0.125 ? quantize_loop on & loop on & repeat_stop 'rsiLoopNextCue' & quantize_loop off : nothing


Fri 11 Mar 16 @ 6:39 pm

so you know you've got a gig on some gear you've not used before, now they'll usually be someone to show you and most gear is pretty intuitive.

but if you want to look professional it helps to check how vdj is mapped for that hardware.

with vdj you can, you don't need the hardware plugged in, you just pick show all equipment in the controllers section.

open config, pick controllers,

if you right click the blue bit in this picture [your current mapping]



then the option to show all natively compatible equipment.


[did you know vinyl touch dial on a cdj2000 was effect slider 1, i didn't]

you can check out the mapping for any bit of supported gear, being able to school up on a bit of gear before using, is pretty ninja. if you want to be really ninja you can make custom edits so you can rock up jack in and rock out like a pro.

till next time.


Sun 21 Feb 16 @ 9:10 pm

So I'm just at home previewing a huge list of breakcore, just using automix to play and a simple keyboard shortcut to mark tracks I don't like

browsed_file_color 'green'


While I'm pottering around at home I might want to move the track on with a jump shortcut

goto +64


Now I'm using two deck mode (for no particular reason) and my goto command only works on the selected deck. Now I could just switch to one deck automix but that didn't happen,

So looking at the behavior I figured I wanted to make the playing deck the selected deck, but had to remember with the fade mix I'm using (no reason), for a short time has two decks playing.

Ok so a simple query will sort this out

deck 1 play ? deck 2 play ? nothing : deck 1 select : deck 2 select


Is deck 1 playing ? Yes deck 1 is playing, is deck 2 playing as well ? Yes they are both playing, well we must be in the mix and we want the selected deck to be the out going song, which it will be so there is nothing to do.
deck 1 yes deck 2 no = only deck 1 playing so make it the selected deck
deck 1 no = deck 2 must be playing instead

So I just need to keep asking that query, and vdjscript lets you do this with a 'repeat_start' script

repeat_start 'AMSelectSwitch' 33ms & 


Every 33ms (a speed limit that vdj doesn't go under) it will do whatever comes after the & symbol,
Combine the two

repeat_start 'AMSelectSwitch' 33ms & deck 1 play ? deck 2 play ? nothing : deck 1 select : deck 2 select


Now for my purposes it doesn't mean much but with vdjscript you never know where a simple idea can take you.
Drop comments or thoughts on my wall.


Fri 24 Apr 15 @ 8:31 am

Filter keys is a windows setting to stop key repeats.
By default Windows has these switched off, so holding "A" will give you,

"AAAAAAAAAA"

With filter keys you get just "A"

To set up filter keys is easy, goto

Control Panel\All Control Panel Items\Ease of Access Center\Set up Filter Keys

Set as I have done in the picture.


You can now turn filter keys on or off by holding the right shift button for 8 seconds.


Wed 25 Mar 15 @ 8:19 am

set "decimalMinutes" '`get_time "total" & param_multiply 0.0000166666'
set "totalBeats" '`get_var "decimalMintues" & param_multiply "get_bpm"'
set "beats=1%" '`get_constant 0.01 & param_multiply "get_var totalBeats"'

goto 0% & get_time "remain" "absolute" & param_cast "ms" & loop & s_r & repeat_start 'recWait' 200ms -1 & param_equal `get_browsed_folder` "R" ? repeat_stop 'recWait' & browsed_song "artist" `get_loaded_song "artist"` & browsed_song "remix" `get_loaded_song "remix"` & wait 200ms & browsed_file_info :


Thu 19 Feb 15 @ 8:57 pm

Filter Crossfader

On the crossfader mapping: kicks in @50%
crossfader & param_bigger 50% ? deck 1 filter : param_invert & deck 2 filter

On the crossfader mapping: kicks in @0%
crossfader & param_invert & param_multiply 50% & param_invert & deck 1 filter & param_invert & param_add 50% & deck 2 filter

Crossfader mapping : kicks in across the middle 2/4's (25% to 75%)
crossfader & param_bigger 25% ? param_smaller 75% ? param_invert & param_add -25% & param_invert & deck 1 filter & param_invert & param_add 50% & deck 2 filter : deck 2 filter 50% & deck 1 filter 100% : deck 1 filter 50% & deck 2 filter 100%

Crossfader mapping : kicks in in the end 1/4's (0%to 25% & 75% to 100%)
crossfader & param_smaller 25% ? param_multiply 200% & param_invert & deck 2 filter : param_bigger 75% ? param_add -50% & param_multiply 200% & deck 1 filter : nothing : crossfader