Forum: Wishes and new features

Post here the features you would like to see developed in VirtualDJ in the future.
Topic: Setting the BPM according to the ID3 Genre
spufiHome userMember since 2018
Hello, I want to use Virtual DJ on dancing tournaments, where the dances have to have a certain tempo. It would be perfect if Virtual DJ could set these tempo automatically. Perhaps implemented through an xml file with an on/off switch and a dance list and the related target BPMs in it. The logic could be: if the xml switch is on and the ID3Tag – Genre is a dance that is in the xml list, then set the BPM to the target value from the xml list, else do the normal stuff. Because this exceeds my programming skills by far, I hope someone else feels called to implement such a plugin.

Inviato Sun 10 Jun 18 @ 12:05 pm
locodogPRO InfinityModeratorMember since 2013
Using vdj in a professional capacity requires that you have either a pro subscription or a full pro licence.
I believe what you want could be done. Get 2 more stars and we can discuss in personal messages.

Inviato Sun 10 Jun 18 @ 12:50 pm
spufiHome userMember since 2018
“Dancing tournaments” sounds quite big. But apart from very few big tournaments like national championships, all helpers from the entrance guy to the tournament manager are unsalaried. And the number is 3 to 4 a year.

The officials of my club asked me, if I would arrange the music job new, bring in some order. I already did it 20 years ago playing with Winamp. I must admit, not one of the tested alternatives has this function, that is not mandatory but would be so perfect. I like VD best, so I decided that asking first costs nothing.

I have no clue what I have to do to get two more stars, but I assume it’s unlikely that I’ll get them. If the price for such a plugin would be a pro license or something else, not impossible, I have to talk to the officials of my club.

Inviato Mon 11 Jun 18 @ 8:37 am
locodogPRO InfinityModeratorMember since 2013
I get what you're saying but there must be some money coming in somewhere, just to cover costs. (Hall hire etc)
We're not just talking tournaments are we? there's practice sessions too.
1 event with 10 partners a month for a couple of euros per team, that's a monthly subscription, if the organisers were willing to stump up for a full pro licence, it would be paid for in a year.

Vdj can certainly do what you're after, and more (like keeping a constant slower tempo for practice without going back to the laptop)

See what the powers that be say.

Inviato Mon 11 Jun 18 @ 2:24 pm
The thing is - paid or not, you're performing in public.

The Home license is called Home for a reason. It's for home use only.

Same with the Plus licenses that allow you to use one controller. Home use only.

The only version you should be using for public performance is the Pro version.

Inviato Mon 11 Jun 18 @ 5:30 pm
AdionPRO InfinityCTOMember since 2006

Inviato Tue 12 Jun 18 @ 2:21 am
spufiHome userMember since 2018
This thread is getting a life of it’s own :)

Training is lead by a trainer who costs 60€ and above per hour. With witch hard- and software or even CD they play the music on their trainings, is not my business. Trainer <> musician on tournaments.

Of course there are some musicians who are salaried, and I know that they have a pro license in whatever software they use. I know that less and less people can even imagine to campaign for non-profit-making club, but there are some of these isolated exotics left. On the VDJ Homepage it says: “"professional usage" (earning money using VirtualDJ)”. I’m getting a Coke and a sausage. Now you can say that the hosting club is making money with the entrance- and starting fee, yes… rephrased: it is trying to make some money. Minus the costs, some tournaments make a profit and some a loss. As I already wrote, if the club has to have a license, NOT impossible…

For what I can evaluate, VDJ is a fantasic program and it would be like cracking a nut with a sledgehammer. “Vdj can certainly do what you're after…” - I think that all the ingredients are invented so that an experienced programmer could generate such a plugin in no time. Another possibility could be a one-time-fee. Without this plugin the arguments for using VDJ in my “field of application” are weak, because there’s enough freeware for playing music and setting the tempo manually.

Inviato Wed 13 Jun 18 @ 12:24 pm
locodogPRO InfinityModeratorMember since 2013
Alright, yep this has got bogged down in licensing.

Let's just look at the problem asked, you want to read genre tag and set pitch/bpm

Give me some examples, genres & bpms

Inviato Wed 13 Jun 18 @ 6:10 pm
spufiHome userMember since 2018
Genre BPM
Langsamer Walzer 87
Tango 128
Wiener Walzer 177
Slow Foxtrott 116
Quickstep 204
Samba 102
Cha Cha 124
Rumba 104
Paso Doble 122
Jive 172

And a little change in the logic. It should be:
if tounament mode is on then
___if genre is in list then set BPM to value in list
___else set BPM to 100%
else do the normal stuff

Inviato Thu 14 Jun 18 @ 8:10 am
locodogPRO InfinityModeratorMember since 2013
Easy enought something working here,

Always deck 1?

Inviato Thu 14 Jun 18 @ 12:51 pm
spufiHome userMember since 2018
No, both decks please...
(or all decks)

Inviato Thu 14 Jun 18 @ 2:22 pm
locodogPRO InfinityModeratorMember since 2013
var "$bpmSet" 0 ? set "$bpmSet" 1 & repeat_start_instant "rsiStartrsi" 33ms 4 & cycle "$1to4" +4 & var "$1to4" 1 ? repeat_start_instant "rsiD1pulseCatch" 33ms & deck 1 load_pulse ? nothing : param_equal "`deck 1 get_genre`" "Tango" ? deck 1 pitch 128 bpm : (copy last query for all genres in list, last one ending " : (false reply) pitch 0% : " ) var "$1to4" 2 ? "rsiD2pulseCatch" 33ms & deck 2 load_pulse ? nothing : param_equal "`deck 2 get_genre`" "Tango" ? deck 2 pitch 128 bpm : (as above) (continue with var "$1to4" 3 ? for deck 3, set up the rsi, query genre to string, set pitch to bpm, continue with deck 4 (var "$1to4" 0 ?) as above, ending like above " pitch 0% : nothing : "
(then the reply for var "$bpmSet" 0 ? (Not true) ) set "$bpmSet" 0 & repeat_stop "rsiD1pulseCatch" & (stop other rsi's for other decks)

...I should be getting paid for this.

Inviato 7 days ago @ 5:13 am
spufiHome userMember since 2018
That looks like (what I now know exists) VDJscript. Please correct me if I’m wrong… you can attach it to a button, Keyboard key or even to the “ONINIT” and “ONEXIT” Event. But there is no “ONSONGLOADINDECK” Event?

Inviato 7 days ago @ 1:15 pm
The deck 1 load_pulse part is what checks that.

Inviato 7 days ago @ 4:34 pm
locodogPRO InfinityModeratorMember since 2013
Keyboards key, custom button, pad page pad....
the gui button reporting logic will be backwards as the the first bit asks var false,
i wrote it that way because our monkey brains prefer "is it off? Turn it on" order of things,

First bit is logic are we turning it on or off,
Turning on triggers a 4 step rsi, each step starts a continuous rsi for each deck to catch the load pulse,
load pulse query compares genre to string if true set bpm,

Oh yeah don't use " pitch 0%" my mistake, use "pitch 100%"

Inviato 7 days ago @ 5:10 pm
spufiHome userMember since 2018
Upon occupying myself with vdjscript over the weekend, I can say that “pitch 128 bpm” does not exist. First it must be a decimal number and then it ignores the bpm and sets the pitch to maximum (1.0 is maximum and 128.0 is even bigger). Then I thought it should be “pitch 128/deck 1 get_bpm absolut” and experimented with setting quotes, double quotes, brackets, param_multiply and so on, but didn’t find the right solution.

Could someone please tell me the right usage of the “debug” command? I hate not to can tell if a code sniplet is doing what it should. I have tried:
param_equal "`deck 1 get_genre`" "Tango" ? deck 1 pitch 90% : deck 1 pitch 110% = WORKS
debug “`deck 1 get_genre`” = Text: `deck 1 get_genre`
debug deck 1 get_genre = Text: deck
debug “deck 1 get_genre” = Text: deck 1 get_genre
debug `deck 1 get_genre` = no param

Another curiosity: I have loaded a song with 120 BPM in deck 1.
deck 1 get_bpm & param_bigger 130 ? set "xxx" 1 : set "xxx" 2 & var_list -> var_list shows up with xxx = 2
deck 1 get_bpm & param_bigger 110 ? set "xxx" 1 : set "xxx" 2 & var_list -> no var_list shows up

Inviato 4 days ago @ 2:46 pm
locodogPRO InfinityModeratorMember since 2013
are you running the early access?

Inviato 4 days ago @ 3:24 pm
spufiHome userMember since 2018
I'm running version 8.2.4291

Inviato 4 days ago @ 7:06 pm
locodogPRO InfinityModeratorMember since 2013
There's the problem, pitch xxx bpm is a 2018 script .

Inviato 4 days ago @ 8:04 pm
spufiHome userMember since 2018
OK, that works.
And how do I use the debug statement correctly?

Inviato 3 days ago @ 9:09 am