Sign In:     


Forum: General Discussion

Topic: Script question - Page: 2

This part of topic is old and might contain outdated or incorrect information

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 ...
 

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.
 

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 ...
 

cstoll wrote :
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 !

 

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.
 

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.
 

 

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 ?
 

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.
 

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.
 

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.
 

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.

 

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 ;)
 

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 ...
 

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.
 

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.
 

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?
 

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!!
 

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>

 

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.
 

77%