Hi
I have programmed my track button to do different things depending on where the cursor is, so when on the 'Ask The DJ' folder I can't check
browser_window "sideview" ? sideview "askthedj://" ? search "`get_browsed_song 'message'`"
to get Virtual DJ to search music for the song highlighted.
However there is also the "Recommended Next" & "Similar Songs" folders within Sideview, and also now we have "Charts" under Folders.
All these folders allow searching so is there any way to detect when I in a searchable folder, or to specifically test for these folders (and subfolders where Charts is concerned) to trigger search when browsing them.
I know the easiest thing would be to program a dedicated button or key to search no matter where you are, but I wondered if this was possible.
Thanks anway.
I have programmed my track button to do different things depending on where the cursor is, so when on the 'Ask The DJ' folder I can't check
browser_window "sideview" ? sideview "askthedj://" ? search "`get_browsed_song 'message'`"
to get Virtual DJ to search music for the song highlighted.
However there is also the "Recommended Next" & "Similar Songs" folders within Sideview, and also now we have "Charts" under Folders.
All these folders allow searching so is there any way to detect when I in a searchable folder, or to specifically test for these folders (and subfolders where Charts is concerned) to trigger search when browsing them.
I know the easiest thing would be to program a dedicated button or key to search no matter where you are, but I wondered if this was possible.
Thanks anway.
Posted Sat 06 Jan 24 @ 11:34 pm
using
get_sideview_title & debug
would have given you hints for the sideview
they return the string "remixes" no matter which it is (next, similar....)
then looking for something common for chart listings, like filepath is always empty, let's look what it really returns
get_browsed_filepath & debug
they all return "search://SOMECATALOGUENUMBER"
so first 9 chars are always "search://"
we can, param_cast text 9
to get just the first 9 chars then make that part of a test for equivalency
get_sideview_title & debug
would have given you hints for the sideview
they return the string "remixes" no matter which it is (next, similar....)
then looking for something common for chart listings, like filepath is always empty, let's look what it really returns
get_browsed_filepath & debug
they all return "search://SOMECATALOGUENUMBER"
so first 9 chars are always "search://"
we can, param_cast text 9
to get just the first 9 chars then make that part of a test for equivalency
browser_window sideview ? sideview "askthedj://" ? search "`get_browsed_song 'message'`" : sideview remixes ? search "`get_browsed_song title`" : : browser_window songs ? param_equal `get_browsed_filepath & param_cast text 9` "search://" ? search "`get_browsed_song title`" : load
Posted Sun 07 Jan 24 @ 12:48 am
Ok so you are absolutely amazing, I am gonna have to sit down & think about what you’ve said in the morning after work but the fact that you are able to offer a solution so quickly is mind blowing, I am gonna play in the morning & thank you so much
Posted Sun 07 Jan 24 @ 3:31 am
locodog wrote :
native fx are limited to one instance of that effect per deck. Truth be told so are non native fx BUT you can rename them to dodge that limitation.
SBDJ has a solid filter fx available
https://forum.sbdj.co.uk/topic/2/sbdj-filter-v2-0-released
install, make several copies, give each a name that makes sense like
filterRhythm
then call them like so
effect_active rhythm filterRhythm
and control like so
effect_slider rhythm filterRhythm 1 20%
or show the gui
effect_show_gui Rhythm filterRhythm
SBDJ has a solid filter fx available
https://forum.sbdj.co.uk/topic/2/sbdj-filter-v2-0-released
install, make several copies, give each a name that makes sense like
filterRhythm
then call them like so
effect_active rhythm filterRhythm
and control like so
effect_slider rhythm filterRhythm 1 20%
or show the gui
effect_show_gui Rhythm filterRhythm
Thank you for this information! I am now finally in progress building my custom revolutionary DJ controller.
I assume this applies to my problem that the FX locks up when I use several of them on same song but on different stems?
For testing purposes I use the native FX Echo, Reverb and Flanger.
I have looked after the installation folder for all FX to rename and duplicate a few for testing, but I can't find them!? In documents I only see *.ini files for the audio effects. In folders, "AppData" or in "Program Files" I found nothing relevant to rename.
The plan is to use a name scheme for the actual files, something like this:
Echo_Deck1_Vocals.exe
Echo_Deck1_Instruments.exe
Echo_Deck2_Vocals.exe
Echo_Deck2_Instruments.exe
Reverb_Deck1_Vocals.exe
Reverb_Deck1_Instruments.exe
Reverb_Deck2_Vocals.exe
Reverb_Deck2_Instruments.exe
And so on.
I uninstalled all FX I do not use in case it takes unnecessary resources, because there will be MANY instances of same FX loaded now (from different files) since I will have 3 FX on every stem on both decks, lol.
Could maybe Locodog once more bring clarity in my challenges? :-)
Posted Mon 08 Jan 24 @ 2:21 pm
native fx are built in, you can't make duplicate copies, the only thing there is to see is .ini
As for making copies of external fx/vst, which are .dll, not .exe, you don't need per deck copies that wouldn't help and make mapping harder.
One named copy for each stem slot is what you need.
As for making copies of external fx/vst, which are .dll, not .exe, you don't need per deck copies that wouldn't help and make mapping harder.
One named copy for each stem slot is what you need.
Posted Tue 09 Jan 24 @ 5:11 am
Ok, then I will install third party FX's.
When I for example add an FX on the vocals on the Deck 1 when I stem-mix it out, I want it to trail into the next song (post stem-fader) without the vocals on Deck 2 song being affected, so I need to have the effects separated for every deck also I assume.
If it is not possible to allocate the same *.dll FX file in separate memory for different stems and decks...
Posted Sat 13 Jan 24 @ 2:52 pm
decks don't need their own copies, just stems
5 stems, 5 copies of the fx named differently, number of decks does not matter.
5 stems, 5 copies of the fx named differently, number of decks does not matter.
Posted Sat 13 Jan 24 @ 3:45 pm
Something of not much, but I've been thinking about this for a while and I actually made it today so here it is.
Beat detection, all software pretty much does the same thing, look for a regular peak and that's your beat marker.
And that works, but I'm picky and for me, that kind of detection marks the "UMP" of the "THUMP"
sure there's smart cue and quantize, all that stuff that means it marks the "UMP" but press at the right time and you get the whole "THUMP"
but I'm picky [and a glutton for punishment] so I very regularly end up moving the CBG that tiny fraction earlier, not always but very often.
So I have reference tracks that I say the CBG is perfect, all my samples sync perfect to them, anything I've cued is in agreement, anything I've cued is a reference track.
So on my new track I set my first beat visually then I'd mix into a reference track to test how it sounds when using sync.
If it's good [and it usually is] then all's well.
if it's a fraction off then it's a bit of a pain, poke the cbg a tiny fraction with adjust_cbg +0.001 , press sync, listen again, do that several times till I'm happy.
Not a productive workflow and I've done it for years :| so today I made this [after thinking about it for nearly as long] , it's my "these are audibly synced - now sync the CBGs" button
get_beatdiff returns 0.5 when 2 cbgs are sync'd, approaches 0.0 when cbg approaches 1/2 beat early, approaches 1.0 when cbg approaches 1/2 beat late.
It only gives grid difference for beat to beat, if you can't figure the position in the bar then you have your own problems [and some techno do be like that]
We have a measurement, do a little math to make it a value that works for a cbg adjustment then param_cast relative it [relative to keep the + sign for a positive adjust] to the adjust_cbg action.
There we go, a get_ action described, what it can be used for and some filler info on adjusting the cbg
Beat detection, all software pretty much does the same thing, look for a regular peak and that's your beat marker.
And that works, but I'm picky and for me, that kind of detection marks the "UMP" of the "THUMP"
sure there's smart cue and quantize, all that stuff that means it marks the "UMP" but press at the right time and you get the whole "THUMP"
but I'm picky [and a glutton for punishment] so I very regularly end up moving the CBG that tiny fraction earlier, not always but very often.
So I have reference tracks that I say the CBG is perfect, all my samples sync perfect to them, anything I've cued is in agreement, anything I've cued is a reference track.
So on my new track I set my first beat visually then I'd mix into a reference track to test how it sounds when using sync.
If it's good [and it usually is] then all's well.
if it's a fraction off then it's a bit of a pain, poke the cbg a tiny fraction with adjust_cbg +0.001 , press sync, listen again, do that several times till I'm happy.
Not a productive workflow and I've done it for years :| so today I made this [after thinking about it for nearly as long] , it's my "these are audibly synced - now sync the CBGs" button
get_beatdiff returns 0.5 when 2 cbgs are sync'd, approaches 0.0 when cbg approaches 1/2 beat early, approaches 1.0 when cbg approaches 1/2 beat late.
It only gives grid difference for beat to beat, if you can't figure the position in the bar then you have your own problems [and some techno do be like that]
param_bigger 0.5 get_beatdiff ? param_multiply -1 `get_beatdiff & param_add -0.5` & param_cast 'relative' & adjust_cbg : param_smaller 0.5 get_beatdiff ? param_add 0.5 `param_multiply -1 get_beatdiff` & param_cast 'relative' & adjust_cbg :
We have a measurement, do a little math to make it a value that works for a cbg adjustment then param_cast relative it [relative to keep the + sign for a positive adjust] to the adjust_cbg action.
There we go, a get_ action described, what it can be used for and some filler info on adjusting the cbg
Posted Thu 18 Jan 24 @ 3:56 pm
When I have the stem crossfader in the middle it seems like the curve is on "smooth" or something similar since I do not get full stem-volume on both decks, so I need the "full" curve at least. Is this possible to fix with scripting?
I am currently using your otherwise excellent script for this:
nothing & nothing & param_invert & param_multiply 0.5 & deck 1 filter & param_multiply 2 & param_invert & param_multiply 0.5 & deck 2 filter
I am currently using your otherwise excellent script for this:
nothing & nothing & param_invert & param_multiply 0.5 & deck 1 filter & param_multiply 2 & param_invert & param_multiply 0.5 & deck 2 filter
Posted Sun 21 Jan 24 @ 2:39 pm
It's not "smooth", it's linear. smooth is an approximation of a constant power curve.
you have one input and 2 outputs,
full is described like this with vdj crossfader notation
input smaller than 0.5 control the right side directly proportional to the input [I say directly as the output 1's are really 0.5s for a centre based dial], input bigger than 0.5 control the left side inversely proportional to the input, if input bang on 0.5 both outputs set to where you want them
you have one input and 2 outputs,
full is described like this with vdj crossfader notation
0=[1,0]/0.5=[1,1]/1=[0,1]
input smaller than 0.5 control the right side directly proportional to the input [I say directly as the output 1's are really 0.5s for a centre based dial], input bigger than 0.5 control the left side inversely proportional to the input, if input bang on 0.5 both outputs set to where you want them
nothing & nothing & param_smaller 0.5 ? deck 2 filter : param_bigger 0.5 ? param_invert & deck 1 filter : deck 1 filter 0.5 & deck 2 filter 0.5
Posted Sun 21 Jan 24 @ 3:21 pm
Oh, It does work as I intended....Thank you a lot!
Posted Mon 22 Jan 24 @ 2:04 pm
Is it not yet possible to have full resolution on the faders/knobs only for stem-volume 0-100%?
Posted Tue 23 Jan 24 @ 1:55 pm
It's completely possible, script has been arithmetically complete for years now.
figure out what you want mathematically with x as an input and y1 y2 as outputs.
The script won't be all that different.
with a hardware dial [or custom button slider type] you have to wrestle with the implicit, but the rest is + - * /
figure out what you want mathematically with x as an input and y1 y2 as outputs.
The script won't be all that different.
with a hardware dial [or custom button slider type] you have to wrestle with the implicit, but the rest is + - * /
Posted Tue 23 Jan 24 @ 2:39 pm
Uhm lol, thank you again for your infinite knowledge about scripting VDJ, contrary to my infinite ignorance about it, lol. I am afraid I need some examples to edit though. Yes, I plan to use high resolution motorized faders for all 5 stems. Is it possible for you to make an example script I can edit? Thank you anyway for your time!
Example script from Bass fader I use now:
nothing & nothing & param_smaller 0.5 ? deck 2 filter : param_bigger 0.5 ? param_invert & deck 1 filter : deck 1 filter 0.5 & deck 2 filter 0.5
Example script from Bass fader I use now:
nothing & nothing & param_smaller 0.5 ? deck 2 filter : param_bigger 0.5 ? param_invert & deck 1 filter : deck 1 filter 0.5 & deck 2 filter 0.5
Posted Wed 24 Jan 24 @ 5:12 pm
you haven't told me what is wrong with the script.
Posted Wed 24 Jan 24 @ 5:35 pm
Oh sorry for being unclear, maybe it is just graphically, in VDJ software(?) but the stem knobs only use half the travel path's. still (since we removed the 100+ stem volume function on the knobs when turning them to the right (default behavior). Otherwise it functions perfectly now with my very small travel faders on my midimix. But my motorized faders have like 3 times the physical travel.
Posted Wed 24 Jan 24 @ 5:42 pm
Hi there,
Did this get resolved? I'd like to remap my Inpulse 500 FX buttons but it just doesn't work even though it's a really simple task!
Thanks
Did this get resolved? I'd like to remap my Inpulse 500 FX buttons but it just doesn't work even though it's a really simple task!
Thanks
golnar wrote :
Hey guys,
I am using the Inpulse 500 with VDJ 2021. There I have 4 FX Buttons. Two left and two right. On Click I want the left buttons to activate a certain filter on DECK 1 and the right Buttons to activate a certain filter on DECK 2. If the filter is activated it should be deactivated. I tried coding it my self. But I failed. Can some help me:
On Click:
Case 1: Filter X is not activated. Filter X gets activated.
Case 2: Filter X is activated. Filter X get deactivated.
Can you tell me how I can do this? Also I have two knobs for the filters. What is the right code for the knob to change the filter?
Thank you so much in advance!!!
I am using the Inpulse 500 with VDJ 2021. There I have 4 FX Buttons. Two left and two right. On Click I want the left buttons to activate a certain filter on DECK 1 and the right Buttons to activate a certain filter on DECK 2. If the filter is activated it should be deactivated. I tried coding it my self. But I failed. Can some help me:
On Click:
Case 1: Filter X is not activated. Filter X gets activated.
Case 2: Filter X is activated. Filter X get deactivated.
Can you tell me how I can do this? Also I have two knobs for the filters. What is the right code for the knob to change the filter?
Thank you so much in advance!!!
Posted Tue 30 Jan 24 @ 5:06 am
A pretty big deal as far as I see, just went live in early access.
BUILD 7881 (2024-02-05)
-Related tracks option in Remixes tab in sideview, and mark_linked_tracks script to add them
In other words it's track linking. Just gone E.A. so still subject to change
Let's have a look; where it is, what it looks like, how it works.
[edit image was taken before a minor naming change, "related" is replaced with "linked" and has been edited in text below]
It lives as an option in the "Remixes" tab. If you don't see that tab click the dot in the yellow square pictured.
Then as it's an option of this tab pick it from the dot in the greenish square pictured on the tab header.
[if you want this as an independent tab, you can make it a shortcut by adding this to setting sideviewShortcuts]
geniusdj://linked
[EDIT NOTE, header has changed choice between active & browser is now in the header options (the dot) ]
In the tab header we have, the track artist- title we are looking at. We also have "Deck 1" if you click that you've given 2 choices "Active Deck" or "Browser".
Active deck that just looks at whatever is considered the masterdeck at the time [and the list will update live]
Browser will just look at what is picked in browser_window songs
So how do we link tracks?
We have 3 ways. When using "Active deck" you can just drag files on to this list.
The other way is when you're in the mix the script on the custom button
mark_linked_tracks
that will link the tracks on decks left & right.
Third way is similar to the second way if you click the cover art on deck you'll see a link option at the bottom of the drop down menu
[edit on 2nd method]
The script allows for params like so.
mark_linked_tracks `get_loaded_song fullpath` `get_browsed_song fullpath`
mark_linked_tracks `deck 1 get_loaded_song fullpath` `deck 2 get_loaded_song fullpath`
So looking in the list itself, we have a couple of separator headers.
Any item above the separators is a track you explicitly linked to follow the track pointed at.
Any item under "Backward Links" is a track you explicitly linked than is known to go before the track pointed at.
The last separator "Secondary Links" is when it gets special.
These aren't tracks you explicitly linked, these tracks are inferred links. This is the program joining dots for you. It's not crowd consensus like geniusdj [what everybody else is doing], it's not a compatibility filter based on key+bpm [which can give varied results], it's not recommended from your play history [you repeating the same mixes].
It's like having a friend who knows your mixes, knows your library, knows your taste, making a suggestion.
You're playing "a". You explicitly said "b" follows "a" also you said "c" follows "b"; Have you considered mixing "c" with "a" ?
There's a little bit more to "Secondary Links" but it gets a little awkward to explain with all the "a" "b" "c" order. Think of it this way, it will look at direct links and backward links and then from all those songs it will pull up their direct links as secondaries.
"Secondary Links" they're not always going to be winners, but you'll start with direct links and in practice time you start checking out the suggestions, some of those will be worthy of direct linking. Which in turn will generate more secondary links that could be worth checking out.
in practice time, using compatibility filter to discover mixes and using Linking to pin down those mixes, then testing secondaries. You'll have way more productive practice and when you're live you'll have a lot more mixes to easily choose from.
Footnote; This has only just gone Early Access and is subject to change and/or further additions. So your feedback is important.
Any changes will be edited in to this post.
And probably embed the klaus video if he does one.
Edit, klaus did do a video
Posted Mon 05 Feb 24 @ 9:42 am