Sign In:     


Forum: Old versions

Topic: Open Source Controller :: VDJScript Mapping Help

This topic is old and might contain outdated or incorrect information.

(I lost my original post and had to rewrite this message...sigh...)

Im creating an OPEN SOURCE CONTROLLER with the Arduino Micro Controller. My goal is to be able to create a controller that anyone can build using plain buttons, potentiometers (sliders, knobs, crossfaders) and old dead hard drives (jog wheels, scratching)

I initially started my project using VirtualDJ 5.2. I used General Midi as the controller and I was able to send midi signals to Virtual DJ. Virtual DJ 5.2 AutoLearn used to pickup 2 values. The "Control#" and a "Value". I was able to assign the "control#" to a specific action like (play). My problem was with the crossfader. My potentiometer was only able to send values between 0-128. In virtualDJ 5.2 the crossfader wanted values between 0-4096. 2048 would be the middle, 0 would be 100% left deck, and 4096 would be 100% right Deck.

Trying to look for answers, I saw that VirtualDJ 6.0 had a scripting language VDJScript. I thought to myself this would prove to be extremely useful if I can script my values. So I downloaded the trail version and started mapping. I soon realized that the AUTOLEARN doesn't see the values anymore.

All it saw was the "Control Number". Realizing I cannot use the values anymore I decided to change my program to "repeatedly" send the midi signal when moving the crossfader. This proved to be extrmemely redundant, slow, and completely retarded. It kind worked, but slow response, and not accurate at all. I modified both VDJScript and my arduino code to optimize this but forget it, its just not responsive enough and hogs the serial communication.

SO!!! My question is... How Can I get a midi signal with the midi values in VDJScript?

I want to be able to use my "VALUES" which will be anything between 0-128 to set my crossfader position.
0 = 0% or 0.0 (100% left deck1)
64 = 50% or 0.5 (50% right deck, 50% left deck)
128 = 100% or 1.0 (100% right deck)

 

Posted Wed 23 Jun 10 @ 11:12 am
You do not need to directly script the values - This is already taken care of by VirtualDJ itself.

A standard MIDI CC sends values between 0 to 127. In v6, VirtualDJ will automatically convert these to a value between 0% and 100%, allowing the crossfader to work correctly. The same is also true in VirtualDJ v5.x - General MIDI in that older version will convert the 0-127 CC value to an appropriate value between 0 and 4096.

In your hardware, you should implement all knobs and sliders as MIDI CC's and buttons as MIDI notes.
 

WOOHOO!!! I GOT IT WORKING!!!! freakin awesome!!! :)
I didn't quite get what you meant, but I new I was missing something... after reading your last line

"" In your hardware, you should implement all knobs and sliders as MIDI CC's and buttons as MIDI notes. ""


I new I was sending wrong midi messages in my program... To debug my problem I plugged in my Hercule DJ console RMX, and I started reading the messages of it. I noticed VirtualDJ was picking everything up as a CTRL and not a NOTE. Thats when I knew without a doubt I was sending the wrong control messages.

After researching on the net I stumbles across this

CONTINUOUS CONTROLLER (CC for short) :: BX CC 7F
B is the command half for a CONTINUOUS CONTROLLER
X is the midi channel half - range 0-F (0-15 decimal)
CC is the CONTROLLER NUMBER - range 00-7F (0-127 decimal)
VV is the CONTROLLER AMOUNT - range 00-7f (0-127 decimal)


After sending the proper midi signals (B0 - BF = Continuous Control) I was able to work my cross fader correctly.
I need to read up more on Simple Midi Specifications : http://www.midibox.org/dokuwiki/simple_midi_specification

Hopefully this will help some one else in this forum, looks like I will be progressing with my Open Source Controller :)

cheers and thank you so much!!!
 



(Old topics and forums are automatically closed)