djfrochocr wrote :
Ok .. i have a similar problem with the jogwheels of the BCD2000 , they just move forward no matter is you turn them backwards, i already tried with the
DO NOT HIJACK THREADS ... you have stated this enough in other areas and tainting this one ... you issue along with everyone else's that has a BCD is being worked on ...
Posted Sun 07 Jun 09 @ 11:09 am
I think his point was that its not just specific to one controller, hense the post, and also hense mine. I think was a relevant point to make in this thread.
Making a definition file is all well and good but very time consuming, certainly something I dont have time for. The previous version on VDJ worked with these controllers out of the box. Things have not been made easy, far from it.
It is very frustrating especially when it worked in previous versions.
Making a definition file is all well and good but very time consuming, certainly something I dont have time for. The previous version on VDJ worked with these controllers out of the box. Things have not been made easy, far from it.
It is very frustrating especially when it worked in previous versions.
Posted Sun 07 Jun 09 @ 12:21 pm
This thread is focused on the DJM700 and/or Allen & Heath Xone 3d and other items there are not definitions for ... that is my point .. and there are other threads on the other topics ... hijacking threads and tainting them with unrelated text like the last four posts only makes it more difficult to get answers for those that started the thread
... last comment and all other posts not on this topic will be leveled from view ...
... last comment and all other posts not on this topic will be leveled from view ...
Posted Sun 07 Jun 09 @ 12:38 pm
cstoll wrote :
DO NOT HIJACK THREADS ... you have stated this enough in other areas and tainting this one ... you issue along with everyone else's that has a BCD is being worked on ...
djfrochocr wrote :
Ok .. i have a similar problem with the jogwheels of the BCD2000 , they just move forward no matter is you turn them backwards, i already tried with the
DO NOT HIJACK THREADS ... you have stated this enough in other areas and tainting this one ... you issue along with everyone else's that has a BCD is being worked on ...
Could yo please tell me where ? i just a post something like this in the spanish forum in a topic that wasnt started by me... but you are telling me that i have stated this enough in other areas, please... tell me where... post the links to the topics then... besides that i have made nothing against the rules...
Thank's for let me know that you are working on this issue, but really... dont make a storm in a glass of water. ;)
Regards !
Posted Sun 07 Jun 09 @ 12:39 pm
Thanks heaps Chris. Running a bit late for work this morning but will do this as soon as I get home tonight. Fully understand this wont be a five min thing to fix and appreciate the offer for another fixture. One bonus is it should be almost the same as DJM800 for all the peeps using them as well. Get back to you soon.
Posted Sun 07 Jun 09 @ 2:16 pm
I dont think this is going to work this way. The djm700 doesnt have a midi in so it isnt going to recognise that its being asked for sysex. Just sits there saying receiving in midi ox.
Posted Mon 08 Jun 09 @ 1:38 am
Here is a vid showing the weird problem with my djm700 mixer in case anyone is interested...
http://www.youtube.com/watch?v=hGhsoK4OKFI
http://www.youtube.com/watch?v=hGhsoK4OKFI
Posted Mon 08 Jun 09 @ 6:14 am
Your right ... it does only have a MIDI Out ... hmmmm ... ok, how did you say the DJM700 is recognized in MIDI OX .. is it USB Audio Device or what is the device name you are selecting in OX ?
Posted Mon 08 Jun 09 @ 7:08 am
Is recognised in midi ox by the usb midi interface. The edirol UM1ex if I use that or the 'usb midi cable' if I use the simple iface.
Posted Mon 08 Jun 09 @ 2:15 pm
Ok, then it sounds like we will be able to possibly right one for when people use that interface with that mixer ... not a big deal ... just if people use a different MIDI interface the definition wont work for them.
Posted Mon 08 Jun 09 @ 2:25 pm
Dont really understand the inner workings, but if the interface is working properly shouldnt it just be sending the messages straight thru without adjustment so any interface would work the same way? The edirol and the usb midi cable seem to do exactly the same thing anyway.
Posted Mon 08 Jun 09 @ 5:25 pm
There are some system that send multiple messages when an item is used ... would share the headache of the VCI-100 ... but that another day.
The only way to 'isolate' the right one that you want to do the action is to take to the next level. With the old General MIDI we simply capture the first thing that came and said that is it ... so you never new that the controller might be sending more .... now with the improved MIDI and HID engines we can not make those assumptions ... we have to look at everything IN and OUT.
It complexes the issue and therefore complexes the support ... and people don't seem to understand that ...
It's only been a week with the new engine and it is hands down better than anything on the market ... if you look at some of the other products and the complexities they are going through to make controllers work it is not even possible with some ... with VirtualDJ we always try to make it possible.
So, this isn't at you directly ... but some people need to have patience and we can make it work, it just isn't going to happen over night and not in the first week after a release .. over 40+ out of the box controllers with any other MIDI or HID controller supportable ... with software distributed in almost every corner of the globe ... a lot of things going on ...
So, I will get it working for ya ... just going to take a bit of effort to make it right.
The only way to 'isolate' the right one that you want to do the action is to take to the next level. With the old General MIDI we simply capture the first thing that came and said that is it ... so you never new that the controller might be sending more .... now with the improved MIDI and HID engines we can not make those assumptions ... we have to look at everything IN and OUT.
It complexes the issue and therefore complexes the support ... and people don't seem to understand that ...
It's only been a week with the new engine and it is hands down better than anything on the market ... if you look at some of the other products and the complexities they are going through to make controllers work it is not even possible with some ... with VirtualDJ we always try to make it possible.
So, this isn't at you directly ... but some people need to have patience and we can make it work, it just isn't going to happen over night and not in the first week after a release .. over 40+ out of the box controllers with any other MIDI or HID controller supportable ... with software distributed in almost every corner of the globe ... a lot of things going on ...
So, I will get it working for ya ... just going to take a bit of effort to make it right.
Posted Mon 08 Jun 09 @ 6:18 pm
Hey thats cool - I deal with this sort of stuff all the time in the day job so I know where you're coming from. Its great being at the leading edge but it has its complexities. If there is anything I can do to help, just let me know.
I fully agree on the new script language being a huge leap forward. Got a load of ideas for commands I want to try and get working with the new script for video effects on my unused sliders once this is sorted. Also got Pioneer looking at this to see if its just my mixer or something they all do.
People, this is no biggie - just reinstall 5.2.1 if you are having difficulties and you still have a perfectly good system. I cannot fault 6 so far except for this problem being caused by my mixer (not the software). There are workarounds too, like setting another button for up until the rotary knob is mapped.
Would be nice to get it all working though ;)
I fully agree on the new script language being a huge leap forward. Got a load of ideas for commands I want to try and get working with the new script for video effects on my unused sliders once this is sorted. Also got Pioneer looking at this to see if its just my mixer or something they all do.
People, this is no biggie - just reinstall 5.2.1 if you are having difficulties and you still have a perfectly good system. I cannot fault 6 so far except for this problem being caused by my mixer (not the software). There are workarounds too, like setting another button for up until the rotary knob is mapped.
Would be nice to get it all working though ;)
Posted Mon 08 Jun 09 @ 8:34 pm
Well you don't have to wait on me ... if you look here - http://www.virtualdj.com/wiki/ControllerDefinitionMIDI.html
This is what we are going to try is to create a definition that can be used with the mixer and instead of calling the mixer by an ID vaule we will do it by a name - which is what I asked you it was called in MIDI OX... my concern is that it is called by the USB MIDI device not the mixer.
So when we are done, if we share the definition; it needs to be clearly stated it will only work with that midi device with that mixer.
So with MIDI OX you can start pushing sliders, buttons, and turning knobs to find the values that are transmitted by each item .. log that information, then we will construct the file. Capturing the information is the most difficult part. Yes you can use documentation from the vendor, but I have found in building a couple of these things is that the documentation is not 100% forth coming in what really is sent.
So if you start doing that ... we can work on this ...
This is what we are going to try is to create a definition that can be used with the mixer and instead of calling the mixer by an ID vaule we will do it by a name - which is what I asked you it was called in MIDI OX... my concern is that it is called by the USB MIDI device not the mixer.
So when we are done, if we share the definition; it needs to be clearly stated it will only work with that midi device with that mixer.
So with MIDI OX you can start pushing sliders, buttons, and turning knobs to find the values that are transmitted by each item .. log that information, then we will construct the file. Capturing the information is the most difficult part. Yes you can use documentation from the vendor, but I have found in building a couple of these things is that the documentation is not 100% forth coming in what really is sent.
So if you start doing that ... we can work on this ...
Posted Mon 08 Jun 09 @ 9:50 pm
OK now I get it. This is what confused me in the wiki and why I thought I had to put jog somewhere in the script. This page is nothing to do with writing the scripts - this is for a separate device file.
Where can I see or download a working device file for another device (preferably a mixer) that works? My install of vdj doesnt have anything in the MyDocs\VirtualDJ\Devices folder which is where I thought they might be.
If I can see one that works, I should be able to put something together (I think) - I'll have a go anyway ;)
Also is there any way to specify more than one 'drivername=' so it would work with more midi devices or would you have to change that line to match your midi interface (as sysex wont work with djm700 or any midi out only device). Could probably write something with a selection of interfaces to change that for people though. Please let me know and I can have a play tomorrow.
Where can I see or download a working device file for another device (preferably a mixer) that works? My install of vdj doesnt have anything in the MyDocs\VirtualDJ\Devices folder which is where I thought they might be.
If I can see one that works, I should be able to put something together (I think) - I'll have a go anyway ;)
Also is there any way to specify more than one 'drivername=' so it would work with more midi devices or would you have to change that line to match your midi interface (as sysex wont work with djm700 or any midi out only device). Could probably write something with a selection of interfaces to change that for people though. Please let me know and I can have a play tomorrow.
Posted Thu 11 Jun 09 @ 2:31 am
Go download the DDM4000 definition/mapper in the Tools&Drivers download area. It's only for the L.E.D.s of the DDM, but it uses the by name reference 'drivername' to access the mixer ... so it's a great example for what we need to do.
Posted Thu 11 Jun 09 @ 6:01 am
Sweet - well on the way now. I will make one with everything standard and then modify it for me for a few things I want to work differently, ie toggle switches and stuff. This is gonna be great.
Quick question number one:
I have a toggle switch which has three positions. The first position sends 00, second sends 40, and third is 7F. The cc is 41. What would my device line be? Is this a button with note messages or something else?
Quick question number one:
I have a toggle switch which has three positions. The first position sends 00, second sends 40, and third is 7F. The cc is 41. What would my device line be? Is this a button with note messages or something else?
Posted Thu 11 Jun 09 @ 6:31 am
You can try the following ..
"If the button sends CC MIDI codes instead of note-on/note-off, you can use a <button> element with the following properties:
- cc: the MIDI cc
- value: the value of the MIDI cc"
<button cc="41" value="00" name="LEFT" />
<button cc="41" value="40" name="CENTER" />
<button cc="41" value="7F" name="RIGHT" />
Obviously give the name parameter more meaningful names :)
Also, make sure you determine if the CC value you are reading from MIDI OX is a Decimal or HEX value. If it's HEX then great the CC is 0x41, else if it is a Decimal representation then CC 41 is 0x29 in HEX. It can make a difference :)
<button cc="0x29" value="0x00" name="LEFT" />
<button cc="0x29" value="0x40" name="CENTER" />
<button cc="0x29" value="0x7F" name="RIGHT" />
But, once you know the rest is cake!!
"If the button sends CC MIDI codes instead of note-on/note-off, you can use a <button> element with the following properties:
- cc: the MIDI cc
- value: the value of the MIDI cc"
<button cc="41" value="00" name="LEFT" />
<button cc="41" value="40" name="CENTER" />
<button cc="41" value="7F" name="RIGHT" />
Obviously give the name parameter more meaningful names :)
Also, make sure you determine if the CC value you are reading from MIDI OX is a Decimal or HEX value. If it's HEX then great the CC is 0x41, else if it is a Decimal representation then CC 41 is 0x29 in HEX. It can make a difference :)
<button cc="0x29" value="0x00" name="LEFT" />
<button cc="0x29" value="0x40" name="CENTER" />
<button cc="0x29" value="0x7F" name="RIGHT" />
But, once you know the rest is cake!!
Posted Thu 11 Jun 09 @ 7:19 am
Nice - thanks heaps.
Mostly sorted I think except the two knobs that send program change messages and the time knob.
How do I load this to test it - I'll have to take out the jog lines in the Effects section - thats just to remind me to fix them.
Will need to be tweaked once I see how it performs but the idea is there ;) What do you think?
<?xml version="1.0" encoding="UTF-8"?>
<device name="USB_Midi_Cable" author="djcheers.com" type="MIDI" >
"MIDI RECEIVE PIONEER DJM700"
"Channel 1"
<slider cc="02" name="CH1_HIGH"/>
<slider cc="03" name="CH1_MID"/>
<slider cc="04" name="CH1_LOW"/>
<button cc="70" toggle name="CH1_CUE"/>
<slider cc="17" name="CH1_FADER" />
<button cc="65" value="00" name="CH1_ASSIGN_LEFT" />
<button cc="65" value="64" name="CH1_ASSIGN_CENTRE" />
<button cc="65" value="127" name="CH1_ASSIGN_RIGHT" />
"Channel 2"
<slider cc="07" name="CH2_HIGH"/>
<slider cc="08" name="CH2_MID"/>
<slider cc="09" name="CH2_LOW"/>
<button cc="71" toggle name="CH2_CUE"/>
<slider cc="18" name="CH2_FADER" />
<button cc="66" value="00" name="CH2_ASSIGN_LEFT" />
<button cc="66" value="64" name="CH2_ASSIGN_CENTRE" />
<button cc="66" value="127" name="CH2_ASSIGN_RIGHT" />
"Channel 3"
<slider cc="14" name="CH3_HIGH"/>
<slider cc="15" name="CH3_MID"/>
<slider cc="21" name="CH3_LOW"/>
<button cc="72" toggle name="CH3_CUE"/>
<slider cc="19" name="CH3_FADER" />
<button cc="67" value="00" name="CH3_ASSIGN_LEFT" />
<button cc="67" value="64" name="CH3_ASSIGN_CENTRE" />
<button cc="67" value="127" name="CH3_ASSIGN_RIGHT" />
"Channel 4"
<slider cc="81" name="CH4_HIGH"/>
<slider cc="92" name="CH4_MID"/>
<slider cc="82" name="CH4_LOW"/>
<button cc="73" toggle name="CH4_CUE"/>
<slider cc="20" name="CH4_FADER" />
<button cc="68" value="00" name="CH4_ASSIGN_LEFT" />
<button cc="68" value="64" name="CH4_ASSIGN_CENTRE" />
<button cc="68" value="127" name="CH4_ASSIGN_RIGHT" />
"Crossfader"
<slider cc="11" name="CROSSFADER"/>
"Fader Curve"
<button cc="94" name="CH_CURVE" />
<button cc="95" name="CROSS_CURVE" />
"Master"
<slider cc="24" name="MASTER_LEVEL" />
<button cc="74" toggle name="MASTER_CUE" />
<slider cc="23" name="BALANCE" />
"Booth"
<slider cc="25" name="BOOTH_MONITOR"/>
"Filter"
<button cc="84" toggle name="FILTER"/>
<slider cc="05" name="FREQUENCY"/>
"Effect"
<button cc="76" name="BEAT_LEFT"/>
<button cc="77" name="BEAT_RIGHT"/>
<button cc="69" toggle name="AUTO_TAP"/>
<button cc="78" name="TAP"/>
<button cc="75" toggle name="EFFECT_CUE"/>
<jog cc="program change???" name="EFFECT_SELECT"/>
<jog cc="program change???" name="CH_SELECT"/>
<jog cc="13???" name="TIME"/>
<slider cc="91" name="LEVEL_DEPTH"/>
<button cc="64" toggle name="EFFECT_OFF_ON"/>
"Mic"
<slider cc="30" name="MIC_HIGH"/>
<slider cc="31" name="MIC_LOW"/>
<button cc="88" toggle name="FADER_START_1"/>
<button cc="89" toggle name="FADER_START_2"/>
<slider cc="27" name="HPHONE_MIX"/>
<slider cc="28" name="HPHONE_LEVEL"/>
"End"
</device>
Mostly sorted I think except the two knobs that send program change messages and the time knob.
How do I load this to test it - I'll have to take out the jog lines in the Effects section - thats just to remind me to fix them.
Will need to be tweaked once I see how it performs but the idea is there ;) What do you think?
<?xml version="1.0" encoding="UTF-8"?>
<device name="USB_Midi_Cable" author="djcheers.com" type="MIDI" >
"MIDI RECEIVE PIONEER DJM700"
"Channel 1"
<slider cc="02" name="CH1_HIGH"/>
<slider cc="03" name="CH1_MID"/>
<slider cc="04" name="CH1_LOW"/>
<button cc="70" toggle name="CH1_CUE"/>
<slider cc="17" name="CH1_FADER" />
<button cc="65" value="00" name="CH1_ASSIGN_LEFT" />
<button cc="65" value="64" name="CH1_ASSIGN_CENTRE" />
<button cc="65" value="127" name="CH1_ASSIGN_RIGHT" />
"Channel 2"
<slider cc="07" name="CH2_HIGH"/>
<slider cc="08" name="CH2_MID"/>
<slider cc="09" name="CH2_LOW"/>
<button cc="71" toggle name="CH2_CUE"/>
<slider cc="18" name="CH2_FADER" />
<button cc="66" value="00" name="CH2_ASSIGN_LEFT" />
<button cc="66" value="64" name="CH2_ASSIGN_CENTRE" />
<button cc="66" value="127" name="CH2_ASSIGN_RIGHT" />
"Channel 3"
<slider cc="14" name="CH3_HIGH"/>
<slider cc="15" name="CH3_MID"/>
<slider cc="21" name="CH3_LOW"/>
<button cc="72" toggle name="CH3_CUE"/>
<slider cc="19" name="CH3_FADER" />
<button cc="67" value="00" name="CH3_ASSIGN_LEFT" />
<button cc="67" value="64" name="CH3_ASSIGN_CENTRE" />
<button cc="67" value="127" name="CH3_ASSIGN_RIGHT" />
"Channel 4"
<slider cc="81" name="CH4_HIGH"/>
<slider cc="92" name="CH4_MID"/>
<slider cc="82" name="CH4_LOW"/>
<button cc="73" toggle name="CH4_CUE"/>
<slider cc="20" name="CH4_FADER" />
<button cc="68" value="00" name="CH4_ASSIGN_LEFT" />
<button cc="68" value="64" name="CH4_ASSIGN_CENTRE" />
<button cc="68" value="127" name="CH4_ASSIGN_RIGHT" />
"Crossfader"
<slider cc="11" name="CROSSFADER"/>
"Fader Curve"
<button cc="94" name="CH_CURVE" />
<button cc="95" name="CROSS_CURVE" />
"Master"
<slider cc="24" name="MASTER_LEVEL" />
<button cc="74" toggle name="MASTER_CUE" />
<slider cc="23" name="BALANCE" />
"Booth"
<slider cc="25" name="BOOTH_MONITOR"/>
"Filter"
<button cc="84" toggle name="FILTER"/>
<slider cc="05" name="FREQUENCY"/>
"Effect"
<button cc="76" name="BEAT_LEFT"/>
<button cc="77" name="BEAT_RIGHT"/>
<button cc="69" toggle name="AUTO_TAP"/>
<button cc="78" name="TAP"/>
<button cc="75" toggle name="EFFECT_CUE"/>
<jog cc="program change???" name="EFFECT_SELECT"/>
<jog cc="program change???" name="CH_SELECT"/>
<jog cc="13???" name="TIME"/>
<slider cc="91" name="LEVEL_DEPTH"/>
<button cc="64" toggle name="EFFECT_OFF_ON"/>
"Mic"
<slider cc="30" name="MIC_HIGH"/>
<slider cc="31" name="MIC_LOW"/>
<button cc="88" toggle name="FADER_START_1"/>
<button cc="89" toggle name="FADER_START_2"/>
<slider cc="27" name="HPHONE_MIX"/>
<slider cc="28" name="HPHONE_LEVEL"/>
"End"
</device>
Posted Thu 11 Jun 09 @ 7:51 am
That's a hell of a good start :)
You might want to research these statements -> <button cc="73" toggle name="CH4_CUE"/>
it should be either <button cc="73" name="CH4_CUE"/> or <toggle cc="73" name="CH4_CUE"/> but not the way you wrote it.
And remove your jog entries ... and they most likely are not jogs but should be <encoder> entries.
Save the file as DJM700 definition.xml and put it in the My Documents/VirtualDJ/Devices folder.
Ok, copy and paste the below into another file and save it as DJM700 mapper.xml and put it in the My Documents/VirtualDJ/Mappers folder.
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="USB_Midi_Cable" author="djcheers.com" description="Pioneer DJM-700" version="600" date="11/06/2009">
</mapper>
Now you should be able to open VirtualDJ, go to the Config -> Mappers and see your DJM700 listed in the devices drop-down, select it, then use the Mapper interface Auto-Learn to add new entries and assign actions to them.
You might want to research these statements -> <button cc="73" toggle name="CH4_CUE"/>
it should be either <button cc="73" name="CH4_CUE"/> or <toggle cc="73" name="CH4_CUE"/> but not the way you wrote it.
And remove your jog entries ... and they most likely are not jogs but should be <encoder> entries.
Save the file as DJM700 definition.xml and put it in the My Documents/VirtualDJ/Devices folder.
Ok, copy and paste the below into another file and save it as DJM700 mapper.xml and put it in the My Documents/VirtualDJ/Mappers folder.
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="USB_Midi_Cable" author="djcheers.com" description="Pioneer DJM-700" version="600" date="11/06/2009">
</mapper>
Now you should be able to open VirtualDJ, go to the Config -> Mappers and see your DJM700 listed in the devices drop-down, select it, then use the Mapper interface Auto-Learn to add new entries and assign actions to them.
Posted Thu 11 Jun 09 @ 8:49 am