I'm trying to change the mapping for the pitchbend buttons on my Denon MC3000 controller. Currently it's set to the default action which is to PITCHBEND and to seek when shift is pressed. At least this is my understanding. The current/default mapping is (for pitchbend+):
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
What I would LIKE instead is for the shifted functions of the pitchbend buttons to call the adjust_cbg function (for instance adjust_cbg +1, so that I can adjust the beat grid so that the "big tick" is on a downbeat), but the pitchbend portion to stay the same. For example, when I push the arrow buttons (<< or >>) the track would speed up or slow down accordingly and when I push SHIFT and << or >> the beat grid would move forward or backward by 1 beat. I don't really need the seek function at all.
The SHIFT key is defined as such:
set '$shift' 1 while_pressed & wheel_mode "browser" while_pressed
So, could I do something like this for PITCHBEND+:
var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
However, I don't see how VDJ is differentiating the two different sides of the controller.
Anyone have any insight?
Thanks!
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
What I would LIKE instead is for the shifted functions of the pitchbend buttons to call the adjust_cbg function (for instance adjust_cbg +1, so that I can adjust the beat grid so that the "big tick" is on a downbeat), but the pitchbend portion to stay the same. For example, when I push the arrow buttons (<< or >>) the track would speed up or slow down accordingly and when I push SHIFT and << or >> the beat grid would move forward or backward by 1 beat. I don't really need the seek function at all.
The SHIFT key is defined as such:
set '$shift' 1 while_pressed & wheel_mode "browser" while_pressed
So, could I do something like this for PITCHBEND+:
var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
However, I don't see how VDJ is differentiating the two different sides of the controller.
Anyone have any insight?
Thanks!
Inviato Wed 23 May 12 @ 1:17 pm
It doesn't! Nor it needs to.
It will work on the side called from the button.
If you press shift and pitch bend minus on left side of the controller it will adjust the cbg on the left deck. If you press it on the right side it will work on the right deck.
It will work on the side called from the button.
If you press shift and pitch bend minus on left side of the controller it will adjust the cbg on the left deck. If you press it on the right side it will work on the right deck.
Inviato Wed 23 May 12 @ 2:11 pm
PhantomDeejay wrote :
It doesn't! Nor it needs to.
It will work on the side called from the button.
If you press shift and pitch bend minus on left side of the controller it will adjust the cbg on the left deck. If you press it on the right side it will work on the right deck.
It will work on the side called from the button.
If you press shift and pitch bend minus on left side of the controller it will adjust the cbg on the left deck. If you press it on the right side it will work on the right deck.
Ah, good. Thanks for clearing that up.
Does the script I propose seem to be correct to achieve the results I'm looking for? I'm at work at the moment...I'll try it when I get home, just thought that someone with a better understanding of VDJScript might be able to correct me if I'm wrong.
Inviato Wed 23 May 12 @ 2:19 pm
you should change "adjust_cbg +1" to "adjust_cbg +0.25" so you get a bit more control over it... although mine is set to "adjust_cbg +0.125" as I play drum n bass and it usually picks the off beat.
Inviato Wed 23 May 12 @ 3:49 pm
synthet1c wrote :
you should change "adjust_cbg +1" to "adjust_cbg +0.25" so you get a bit more control over it... although mine is set to "adjust_cbg +0.125" as I play drum n bass and it usually picks the off beat.
Interesting idea...I hadn't thought about that. Most of what I play is 4 on the floor EDM and indie/rock remixes so I'm mostly trying to move the 1 marker of the beatgrid to the the actual 1st beat of the phrase so that things sync up easier/better/cleaner and so that my clipbank videos (all of people/cartoons/video game characters dancing) sync up correctly. I hadn't thought about needing to move the beatgrid by portions of a beat, though. If I start seeing problems with the analysis, I'll definitely add this.
Thanks!
Inviato Wed 23 May 12 @ 4:18 pm
Well, my idea above didn't work. In fact I can't call adjust_cbg at all from the pitched buttons, and even without the shift key.
If anyone has any clue, please chime in.
Thanks!
If anyone has any clue, please chime in.
Thanks!
Inviato Thu 24 May 12 @ 9:12 am
Quote :
set '$shift' 1 while_pressed & wheel_mode "browser" while_pressed
var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
this should definately work, did you maybe make a spelling mistakes while entering it? and is the shift called the exact same thing in both scripts as above '$shift'
also try just mapping "adjust_cbg +1" to see if it works
Inviato Thu 24 May 12 @ 9:24 am
synthet1c wrote :
this should definately work, did you maybe make a spelling mistakes while entering it? and is the shift called the exact same thing in both scripts as above '$shift'
also try just mapping "adjust_cbg +1" to see if it works
Quote :
set '$shift' 1 while_pressed & wheel_mode "browser" while_pressed
var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
this should definately work, did you maybe make a spelling mistakes while entering it? and is the shift called the exact same thing in both scripts as above '$shift'
also try just mapping "adjust_cbg +1" to see if it works
I did try adjust_cbg +1 without the shift stuff to make sure it worked and nothing happens when I press the pitch end buttons.
Inviato Thu 24 May 12 @ 10:17 am
adjust_cbg +1 will move the CBG Grid by one entire beat. This means that you should see the BIG SQUARE of the CBG moving. The small squares on your CBG will seem that they are not moving until they turn "big"
PS: You should use the pitch bend buttons on the side you actually want to adjust the cbg.
PS: You should use the pitch bend buttons on the side you actually want to adjust the cbg.
Inviato Thu 24 May 12 @ 11:28 am
Also you may try the following code:
pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
Inviato Thu 24 May 12 @ 11:32 am
PhantomDeejay wrote :
adjust_cbg +1 will move the CBG Grid by one entire beat. This means that you should see the BIG SQUARE of the CBG moving. The small squares on your CBG will seem that they are not moving until they turn "big"
PS: You should use the pitch bend buttons on the side you actually want to adjust the cbg.
PS: You should use the pitch bend buttons on the side you actually want to adjust the cbg.
I understand the CBG thing...that's exactly what I'm trying to accomplish. I've got it mapped to CTRL + left and right arrows on the keyboard, but I'm trying to get as many functions programmed on the controller as possible (that aren't already mapped). Also, when using the keyboard to move the grid you have to be sure to click (oddly a few times) on the deck that you want to adjust first. It would just be easier to do it on the controller. adjust_cbg just isn't being sent (?) by the controller...not sure why. I would imagine it has something to do with the new mapping and device files that were posted a couple of days ago, or rather, something missed when those were updated. This is pretty much what was happening with the original files...I would make changes to the mapper and whatever commands I was trying to send were simply not having any effect on VDJ. I've been hoping that someone from Atomix would pop into this thread.
Inviato Thu 24 May 12 @ 11:37 am
PhantomDeejay wrote :
Also you may try the following code:
pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? adjust_cbg +1 : pitch_bend +2% 500ms
Can you explain this? I don't understand the purpose of starting with pitch_bend, much like the default mapping for these buttons.
Inviato Thu 24 May 12 @ 11:39 am
map it with "play_pause" or something to make sure it works at all.
Inviato Thu 24 May 12 @ 11:48 am
synthet1c wrote :
map it with "play_pause" or something to make sure it works at all.
I'm at work at the moment, so I can't try this, but the pitchbend commands work fine (on the pitch bend buttons), either alone (without variables or shift commands) or nested within other strings, such as the default mapping above or the one that I tried. The buttons work, but adjust_cbg isn't happening. However (and this just occurred to me) I'm not 100% sure that shift is working with the pitchbend buttons since I don't use the shift + pitchbend to seek.
Inviato Thu 24 May 12 @ 11:55 am
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
I have no idea what the red part at the start of the script is trying to achieve, maybe it creates a repeating loop or something... but you shouldn't need it afaik.
I have no idea what the red part at the start of the script is trying to achieve, maybe it creates a repeating loop or something... but you shouldn't need it afaik.
Inviato Thu 24 May 12 @ 12:06 pm
synthet1c wrote :
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
I have no idea what the red part at the start of the script is trying to achieve, maybe it creates a repeating loop or something... but you shouldn't need it afaik.
I have no idea what the red part at the start of the script is trying to achieve, maybe it creates a repeating loop or something... but you shouldn't need it afaik.
I wonder if starting with 'seek' or 'pitch_bend' has something to do with holding the button down, as opposed to clicking it once. So, with the original mapping it is checking/asking if you are in the process of seeking, if so, seek +4 (more or again), if not are you pitch bending? if so continue with the pitch bend command, if not, is the shift key being held down? if so, seek +4. (To account for the fact that you JUST started seeking.)
Maybe I'm full of crap, too! I can't seem to find an explanation anywhere of this. It's a shame that there's not a clear, in-depth manual/wiki/etc for VDJScript. It's super powerful, but I feel like I'm stumped quite often due to lack of documentation. That is, unless I'm just not looking in the right place.
UPDATE: Maybe I'm onto something? This is from the wiki: - queries: all verbs usually can be queried for their 'state' and returns a boolean. But some specific queries that need to return some text or numbers, need to use the keyword "get" before the verb: "get time_ms".
Hence, PhantomDeejay may be right.
Inviato Thu 24 May 12 @ 12:18 pm
The hole point of this command (if I get it right) is to enable seeking independently from the SHIFT button.
If it does what I think it does, is a very smart command but it's irrelevant to why your "adjust_cbg" command doesn't work.
Let me explain:
Command:
var '$shift' ? seek +4 : pitch_bend +2% 500ms
You hold down SHIFT and press PITCHBEND+ button.
The track will start seeking. Now, while you are still pushing the PITCHBEND+ button, if you release the SHIFT button, the track will stop seeking and it will start bending (since SHIFT is not "true" anymore)
In order to "solve" this problem whoever programmed this unit thought of something very smart:
Command:
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
Let's take our above example
Press SHIFT & PITCHBEND+
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and the track starts seeking...
On the next "call" of the button
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and the deck keeps seeking.
Now even if you release the SHIFT button (while you are still pressing the PITCHBEND+ button)
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
will still evaluate as true, and the track will keep seeking while you use ONE finger, ONE button.
On the opposite side:
Press PITCHBEND+
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and track starts bending
on the next "call" of the button
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and the deck keeps bending.
Now even if you press SHIFT button (in order to use it with ANOTHER key to do some task)
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
will evaluate as true and the track will keep bending despite the fact that you have BOTH SHIFT and PITCHBEND+ buttons pressed.
If it does what I think it does, is a very smart command but it's irrelevant to why your "adjust_cbg" command doesn't work.
Let me explain:
Command:
var '$shift' ? seek +4 : pitch_bend +2% 500ms
You hold down SHIFT and press PITCHBEND+ button.
The track will start seeking. Now, while you are still pushing the PITCHBEND+ button, if you release the SHIFT button, the track will stop seeking and it will start bending (since SHIFT is not "true" anymore)
In order to "solve" this problem whoever programmed this unit thought of something very smart:
Command:
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
Let's take our above example
Press SHIFT & PITCHBEND+
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and the track starts seeking...
On the next "call" of the button
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and the deck keeps seeking.
Now even if you release the SHIFT button (while you are still pressing the PITCHBEND+ button)
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
will still evaluate as true, and the track will keep seeking while you use ONE finger, ONE button.
On the opposite side:
Press PITCHBEND+
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and track starts bending
on the next "call" of the button
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
evaluates as true and the deck keeps bending.
Now even if you press SHIFT button (in order to use it with ANOTHER key to do some task)
seek ? seek +4 : pitch_bend ? pitch_bend +2% 500ms : var '$shift' ? seek +4 : pitch_bend +2% 500ms
will evaluate as true and the track will keep bending despite the fact that you have BOTH SHIFT and PITCHBEND+ buttons pressed.
Inviato Thu 24 May 12 @ 1:31 pm
@PhantomDeejay: that all makes perfect sense...thanks for the clarification.
Though it looks like I'm still at a loss for how to get the beatgrid to shift from controller. If adjust_cbg works fine from the keyboard, I can't understand why/how it's not working from the controller if I'm using the same command.
Though it looks like I'm still at a loss for how to get the beatgrid to shift from controller. If adjust_cbg works fine from the keyboard, I can't understand why/how it's not working from the controller if I'm using the same command.
Inviato Thu 24 May 12 @ 1:50 pm
Anybody have any idea of any other resources to try? I would really like this to work. I can't get a straight answer from Denon and I'm really hoping that someone here (or Atomix) might be able to shed some light.
Inviato Wed 30 May 12 @ 11:24 am
Try this:
var_equal '$shift' ? 0 : pitch_bend +2% 500ms : action_deck 1 ? deck 1 adjust_cbg +1 : action_deck 2 ? deck 2 adjust_cbg +1 : action_deck 3 ? deck 3 adjust_cbg +1 : action_deck 4 ? deck 4 adjust_cbg +1 : nothing
If it works then all is good. It it doesn't please try to modify the SHIFT button to "set '$shift' 1 while_pressed" and check again.
If it works the second time (with the modified SHIFT button code) tell me to make some minor adjustments to the PITCH BEND button code so that it does work with your original SHIFT button code.
var_equal '$shift' ? 0 : pitch_bend +2% 500ms : action_deck 1 ? deck 1 adjust_cbg +1 : action_deck 2 ? deck 2 adjust_cbg +1 : action_deck 3 ? deck 3 adjust_cbg +1 : action_deck 4 ? deck 4 adjust_cbg +1 : nothing
If it works then all is good. It it doesn't please try to modify the SHIFT button to "set '$shift' 1 while_pressed" and check again.
If it works the second time (with the modified SHIFT button code) tell me to make some minor adjustments to the PITCH BEND button code so that it does work with your original SHIFT button code.
Inviato Wed 30 May 12 @ 11:52 am