Hi, I need some help in mapping the "ENDLESS ROTARY ENCODER BUTTONS" to do 2-Functions in the pitch slider to do BPM matching.
1.) To have fine adjustments of the pitch slider when rotating the buttons forward / backward to match the BMP easily in smaller and finer steps.
2.) To have coarse adjustments of the pitch slider when rotating the buttons forward / backward while the buttons is pushed down in order to have big and coarse steps.
DEFINITION FILES:
<button note="0x11" channel="12" name="PITCH_RESET" deck="1" /> (This is the value when the button is PUSH DOWN) (down 127 up-0)
<encoder cc="0x24" channel="12" name="PITCH_SLIDER" deck="1" /> (This is the value when the button is rotated forward /backward) (0-127)
MAPPERS FILES:
<map value="PITCH_RESET" action="pitch_reset 0%" /> (this line is working great)
<map value="PITCH_SLIDER" action="param_greater 0 ? pitch +0.01% : pitch -0.01%" /> (this line is working great with smooth & fine adjustments)
<>>>>>>>>>>>>>>>>>>>> ????????? The 3rd line where i should create a function that when you rotate forward / backward while the button is push down will have coarse and big adjustments of the pitch slider and fine adjustment when you rotate the button forward / backward when it is not pushed down.
This makes me crazy as i have already tried a lot of syntax variation but it does not work. Hope somebody could help me some few syntax to try it out. Thank you so much.
1.) To have fine adjustments of the pitch slider when rotating the buttons forward / backward to match the BMP easily in smaller and finer steps.
2.) To have coarse adjustments of the pitch slider when rotating the buttons forward / backward while the buttons is pushed down in order to have big and coarse steps.
DEFINITION FILES:
<button note="0x11" channel="12" name="PITCH_RESET" deck="1" /> (This is the value when the button is PUSH DOWN) (down 127 up-0)
<encoder cc="0x24" channel="12" name="PITCH_SLIDER" deck="1" /> (This is the value when the button is rotated forward /backward) (0-127)
MAPPERS FILES:
<map value="PITCH_RESET" action="pitch_reset 0%" /> (this line is working great)
<map value="PITCH_SLIDER" action="param_greater 0 ? pitch +0.01% : pitch -0.01%" /> (this line is working great with smooth & fine adjustments)
<>>>>>>>>>>>>>>>>>>>> ????????? The 3rd line where i should create a function that when you rotate forward / backward while the button is push down will have coarse and big adjustments of the pitch slider and fine adjustment when you rotate the button forward / backward when it is not pushed down.
This makes me crazy as i have already tried a lot of syntax variation but it does not work. Hope somebody could help me some few syntax to try it out. Thank you so much.
Posted Thu 10 Nov 11 @ 6:32 pm
you won't be able to make that work as if you push the encoder button down you will be reseting the pitch, you are better off creating a shift button to do that action..
for a shift it works on the same variable principal
var 'shift' ? action if shifted : action if not shifted
so for your example you could use
var 'shift' ? param_greater 0 ? pitch +0.05% : pitch -0.05% : param_greater 0 ? pitch +0.01% : pitch -0.01%"
to make a shift button you just need to use
"set 'shift' while_pressed" on another button
the bold value is only a suggestion, you can make it whatever you like
for a shift it works on the same variable principal
var 'shift' ? action if shifted : action if not shifted
so for your example you could use
var 'shift' ? param_greater 0 ? pitch +0.05% : pitch -0.05% : param_greater 0 ? pitch +0.01% : pitch -0.01%"
to make a shift button you just need to use
"set 'shift' while_pressed" on another button
the bold value is only a suggestion, you can make it whatever you like
Posted Thu 10 Nov 11 @ 8:38 pm
Yes I have already done that before which i have move the PITCH_RESET HAVING SHIFT so that when i push the button it has the shift function to it but it doesn't work. Maybe my definition files is wrong i'll have to try yours and dig it up how it works on the other buttons. Thanks you so much.
Posted Fri 11 Nov 11 @ 2:45 am
I think you are a little confused here...
However, first of all do the following test:
By using a program like MIDI translator monitor your MIDI port.
Check to see if your controller sends any messages when you push down the encoder and you rotate it. If it does that means that your controller is working as it should regarding this matter.
For the definition/mapper:
First of all there are two different things: The MIDI channel that's the channel your MIDI controller transmits/receives messages, and the "address" which is the button/encoder/slider e.t.c. that changed state.
By it's definition the MIDI protocol can transmit hundreds of addresses at the same channel at the same time. Imagine that you use a MIDI keyboard to play a song. Each time you press a note a MIDI message gets transmitted. When you press three notes at the same time to create a chord, THREE midi messages get transmitted (one for each note) at the same time. You keep holding your chord and you manipulate the pitch... Another midi message gets transmitted.
In other words:
When you hold down your encoder the controller transmits (in human language) Note 11 ON on Channel 12
When you release the encoder it transmits Note 11 OFF on Channel 12
When you rotate your encoder it transmits Encoder 24 Change VALUE on Channel 12
There is no need for a midi controller to send a different message when a note is held down. In other words there's no need for the encoder to transmit "Encoder 224 Change Value on Channel 12" when it's moved while held down.
For your case:
Try this (assuming that you have mapped a SHIFT button already on your controller):
<map value="PITCH_RESET" action="var '$SHIFT' ? pitch_reset : set '$PSL' while_pressed" />
<map value="PITCH_SLIDER" action="var '$PSL' ? param_greater 0 ? pitch +1% : var '$PSL' ? param_smaller 0 ? pitch -1% : param_greater 0 ? pitch +0.01% : param_smaller 0 ? pitch -0.01%" />
However, first of all do the following test:
By using a program like MIDI translator monitor your MIDI port.
Check to see if your controller sends any messages when you push down the encoder and you rotate it. If it does that means that your controller is working as it should regarding this matter.
For the definition/mapper:
First of all there are two different things: The MIDI channel that's the channel your MIDI controller transmits/receives messages, and the "address" which is the button/encoder/slider e.t.c. that changed state.
By it's definition the MIDI protocol can transmit hundreds of addresses at the same channel at the same time. Imagine that you use a MIDI keyboard to play a song. Each time you press a note a MIDI message gets transmitted. When you press three notes at the same time to create a chord, THREE midi messages get transmitted (one for each note) at the same time. You keep holding your chord and you manipulate the pitch... Another midi message gets transmitted.
In other words:
When you hold down your encoder the controller transmits (in human language) Note 11 ON on Channel 12
When you release the encoder it transmits Note 11 OFF on Channel 12
When you rotate your encoder it transmits Encoder 24 Change VALUE on Channel 12
There is no need for a midi controller to send a different message when a note is held down. In other words there's no need for the encoder to transmit "Encoder 224 Change Value on Channel 12" when it's moved while held down.
For your case:
Try this (assuming that you have mapped a SHIFT button already on your controller):
<map value="PITCH_RESET" action="var '$SHIFT' ? pitch_reset : set '$PSL' while_pressed" />
<map value="PITCH_SLIDER" action="var '$PSL' ? param_greater 0 ? pitch +1% : var '$PSL' ? param_smaller 0 ? pitch -1% : param_greater 0 ? pitch +0.01% : param_smaller 0 ? pitch -0.01%" />
Posted Fri 11 Nov 11 @ 3:28 am
that is what I was getting at, plus it is hard to press and turn most encoders I have used... I still say he is better off using a seperate shift button for the course pitch adjustment, it woud just be easier to operate..
Posted Fri 11 Nov 11 @ 3:48 am
Thanks PhantomDeejay you got it right now it solve my headache as i don't want to keep my reset button faraway from the pitch button so that i can easily press my reset button in the same place. Thank you guys for your help you are great.
Posted Fri 11 Nov 11 @ 3:56 am
I just want to share the modified syntax that you guys have suggested and combining your ideas are great nice syntax mapping as a result. This is the one that i have used in order to preserve my shift key option as my pitch_reset in my controller.
<map value="PITCH_RESET" action="var '$SHIFT' ? pitch_reset 100% : set '$PSL' while_pressed" />
<map value="PITCH_SLIDER" action="var '$PSL' ? param_greater 0 ? pitch +1% : pitch -1% : param_greater 0 ? pitch +0.01% : pitch -0.01%" deck="1" />
Thank you for your help it is very helpful.
<map value="PITCH_RESET" action="var '$SHIFT' ? pitch_reset 100% : set '$PSL' while_pressed" />
<map value="PITCH_SLIDER" action="var '$PSL' ? param_greater 0 ? pitch +1% : pitch -1% : param_greater 0 ? pitch +0.01% : pitch -0.01%" deck="1" />
Thank you for your help it is very helpful.
Posted Fri 11 Nov 11 @ 7:38 am
Hi Phantom & Synthet1c, Bro, do you have some option of the scripts on getting the above function of Rotary Pitch Slider to works on LED mapping. I want to have the LED lights "ON" if the pitch is above or less than zero and the Rotary Pitch Slider LED lights "OFF" when the pitch is zero. Thank you so much.
Posted Fri 25 Nov 11 @ 1:53 pm
Phantom DJ:
Could you help me whit the script to set an endless rottary button to adjust headphone_volume in VDJ7? Thanks in advance for your support!
Could you help me whit the script to set an endless rottary button to adjust headphone_volume in VDJ7? Thanks in advance for your support!
Posted Fri 02 Dec 11 @ 10:12 am