How do you set parameter so the values read are in either side of 64, it use to do it in VDJ 5 but there are a few things iam trying to do that need the +-64 type parameter but i don't know how to do, so the value go in either positive +64 or negative -64. Something like that i don't know exactly what iam talking about but in old VDJ 5 you could set the parameter to read values like that then set whatever your controller to lowest value 63....
Posted Tue 29 Sep 09 @ 1:19 am
You will need to define this in the definition file for the controller - Please see the encoders section of http://www.virtualdj.com/wiki/ControllerDefinitionMIDI.html for details.
A typical mappnig for an endless encoder is the following:
A typical mappnig for an endless encoder is the following:
<encoder cc="0x01" zero="0x40" name="ENCODER_NAME" />
Posted Tue 29 Sep 09 @ 12:17 pm
Hey i never seen that bit.
Ok.
Ok.
Posted Tue 29 Sep 09 @ 6:29 pm
i really don't think iam going to be able to do this/
Posted Tue 29 Sep 09 @ 11:10 pm
Seriously what do i have to do to get this work.
I need to encode controller 3. I have the XML file set up ready to edit, i havn't named it as it said in the controller definition MIDI that you don't have to name it though it will apply to all controllers, which i only use 1. I have entered CC as 3, left the the rest as described above yet it still does'nt work. I am trying to encode CC 3.
Thanks.
I need to encode controller 3. I have the XML file set up ready to edit, i havn't named it as it said in the controller definition MIDI that you don't have to name it though it will apply to all controllers, which i only use 1. I have entered CC as 3, left the the rest as described above yet it still does'nt work. I am trying to encode CC 3.
Thanks.
Posted Tue 29 Sep 09 @ 11:41 pm
You should ideally use SysEx ID for correct identification if the controller supports it, or at least by its driver name as shown in MIDI trace.
The mapping for encoder 3 would be:
If the knob has min/max stopping points (E.g: Volume knob), it should be mapped as a slider, e.g:
NOTE: Replace ENCODER_NAME or SLIDER_NAME with an appropriate unique name, e.g: VOLUME, SELECT{/b], etc.
The mapping for encoder 3 would be:
<encoder cc="0x03" zero="0x40" name="ENCODER_NAME" />
If the knob has min/max stopping points (E.g: Volume knob), it should be mapped as a slider, e.g:
<slider cc="0x03" name="SLIDER_NAME" />
NOTE: Replace ENCODER_NAME or SLIDER_NAME with an appropriate unique name, e.g: VOLUME, SELECT{/b], etc.
Posted Wed 30 Sep 09 @ 12:18 pm
What is a MIDI trace.
By unique name you mean any name? any name...
Thankx
By unique name you mean any name? any name...
Thankx
Posted Wed 30 Sep 09 @ 6:30 pm
Good luck JP .... you will only get more questions and not answers from Mr. Eather ... want help but won't answer the simple questions.
Posted Wed 30 Sep 09 @ 6:46 pm
It's a utility for tracing the MIDI commands that a MIDI controller sends/receives: http://www.virtualdj.com/download/miditrace.exe - It can also be used to determine the SysEx ID if the controller supports this.
Simply run it, select your controller in BOTH the input and output sections and then click SEND. If it supports SysEx ID, it will respond with a string of values beginning with F0 7E
By unique name, I mean that every button, knob, slider, etc. defined in your definition should have its own unique name, preferably matching its label or function on the controller (E.g: PITCH, VOLUME, PLAY, etc.), so that you can easily identify them and tell them apart when mapping in VirtualDJ.
Simply run it, select your controller in BOTH the input and output sections and then click SEND. If it supports SysEx ID, it will respond with a string of values beginning with F0 7E
By unique name, I mean that every button, knob, slider, etc. defined in your definition should have its own unique name, preferably matching its label or function on the controller (E.g: PITCH, VOLUME, PLAY, etc.), so that you can easily identify them and tell them apart when mapping in VirtualDJ.
Posted Wed 30 Sep 09 @ 6:47 pm
cstoll wrote :
Good luck JP .... you will only get more questions and not answers from Mr. Eather ... want help but won't answer the simple questions.
He seems to help alittle more than actually stopping
and i tried my hardest i had problems.
Posted Thu 01 Oct 09 @ 1:35 am
jpboggis wrote :
It's a utility for tracing the MIDI commands that a MIDI controller sends/receives: http://www.virtualdj.com/download/miditrace.exe - It can also be used to determine the SysEx ID if the controller supports this.
Simply run it, select your controller in BOTH the input and output sections and then click SEND. If it supports SysEx ID, it will respond with a string of values beginning with F0 7E
By unique name, I mean that every button, knob, slider, etc. defined in your definition should have its own unique name, preferably matching its label or function on the controller (E.g: PITCH, VOLUME, PLAY, etc.), so that you can easily identify them and tell them apart when mapping in VirtualDJ.
Simply run it, select your controller in BOTH the input and output sections and then click SEND. If it supports SysEx ID, it will respond with a string of values beginning with F0 7E
By unique name, I mean that every button, knob, slider, etc. defined in your definition should have its own unique name, preferably matching its label or function on the controller (E.g: PITCH, VOLUME, PLAY, etc.), so that you can easily identify them and tell them apart when mapping in VirtualDJ.
Ok so it supports it, how do i do the name? Thank
Posted Thu 01 Oct 09 @ 1:39 am
If it answers to SysEx, you need to include this in the definition, e.g: If it returns:
F0 7E 00 06 02 20 0C 10 03 00 00 F7
And the first line of your definition is currently:
You would need to change it to
The controller should then be automatically detected by VirtualDJ using its SysEx ID.
NOTE: The first two digits after F07E in the response are normally replaced with ?? which means any number.
F0 7E 00 06 02 20 0C 10 03 00 00 F7
And the first line of your definition is currently:
<device name="MY_CONTROLLER" author="Lee Eather" type="MIDI" decks="2">
You would need to change it to
<device name="MY_CONTROLLER" author="Lee Eather" type="MIDI" sysexid="F07E??0602200C10030000F7" decks="2">
The controller should then be automatically detected by VirtualDJ using its SysEx ID.
NOTE: The first two digits after F07E in the response are normally replaced with ?? which means any number.
Posted Thu 01 Oct 09 @ 12:15 pm
I doesn't work but it could be because of this message i get when trying to open the XML file,
" Error message"; The following tags were not closed: device. Error processing resource 'file:///C:/Users/User/Documents/VirtualDJ/Devices/BC...
How do i close it.
" Error message"; The following tags were not closed: device. Error processing resource 'file:///C:/Users/User/Documents/VirtualDJ/Devices/BC...
How do i close it.
Posted Thu 01 Oct 09 @ 10:51 pm
It means that you have not written the XML correctly - E.g: You have missed out a closing tag on one of the lines. Try opening the file with Internet Explorer and it may help point out where the error is.
Basic example of an XML definition:
Example of bad definition:
Faults with the above:
Basic example of an XML definition:
<device name="MY_CONTROLLER" author="Your Name" type="MIDI" sysexid="F07E??0602200C10030000F7" decks="2">
<button note="0x01" name="PLAY" deck="1" />
<button note="0x01" name="PLAY" deck="2" />
<led note="0x01" name="LED_PLAY" default="PLAY" deck="1" />
<led note="0x01" name="LED_PLAY" default="PLAY" deck="2" />
<slider cc="0x02" name="VOLUME" deck="1" />
<slider cc="0x02" name="VOLUME" deck="2" />
<encoder cc="0x03" name="SELECT" deck="1" />
<encoder cc="0x03" name="SELECT" deck="2" />
<jog cc="0x04" zero="0x40" name="JOG" deck="1" />
<jog cc="0x04" zero="0x40" name="JOG" deck="2" />
</device>
Example of bad definition:
<device name="MY_CONTROLLER" author="Your Name" type="MIDI" sysexid="F07E??0602200C10030000F7" decks="2"
<button note="0x01" name="PLAY1" deck="1" />
<button note="0x01" name="PLAY2 deck="2" />
led note="0x01" name="PLAY1" default="PLAY" deck="1" />
<led note="0x01" name="PLAY2" default="PLAY" deck="2" /
Faults with the above:
- Missing closing > from the <device name line.
- Unnecessary naming of PLAY1 and PLAY2 for refering to the PLAY buttons of the two decks. Both should be named PLAY, so that the play_pause action only needs to be mapped once instead of twice, saving time and simplifying the mapping.
NOTE: This doesn't apply to a single deck controller (decks="1") - Missing " after name="PLAY2
- Missing < before led note
- Cloasing </device> tag is missing.
Posted Fri 02 Oct 09 @ 12:42 pm
Yep device tag was missing, far.
Ok so i have loaded VDJ and scanned for devices and selected "simple midi wrapper" and have the device XML in devices folder. The tag reads
<device name="BCR 2000" author="Lee Eather" type="MIDI" sysexid="F07E??7F0601F7" decks="2">
<encoder cc="0x03" zero="0x40" name="nudge back/forward" />
</device>
I have also tried the sysexid without the F07E as you said the '??' replaced it but still nothing and tried the zero=0 instead of zero=0x40 but still nothing, each time i refreshed the controller in VDJ so it would detect the new XML if thats what happens..
There can't be much wrong now? ..
Ok so i have loaded VDJ and scanned for devices and selected "simple midi wrapper" and have the device XML in devices folder. The tag reads
<device name="BCR 2000" author="Lee Eather" type="MIDI" sysexid="F07E??7F0601F7" decks="2">
<encoder cc="0x03" zero="0x40" name="nudge back/forward" />
</device>
I have also tried the sysexid without the F07E as you said the '??' replaced it but still nothing and tried the zero=0 instead of zero=0x40 but still nothing, each time i refreshed the controller in VDJ so it would detect the new XML if thats what happens..
There can't be much wrong now? ..
Posted Fri 02 Oct 09 @ 6:34 pm
You don't need to select simply MIDI wrapper. If it works and the controller is detected, it will appear in the drop-down list along with Keyboard, Simple MIDI Wrapper, etc.
You will of course need to make a mapping to go with it, and put it in the VirtualDJ\Mappers folder, e.g: Based on what you have posted above, you would need something like:
You will of course need to make a mapping to go with it, and put it in the VirtualDJ\Mappers folder, e.g: Based on what you have posted above, you would need something like:
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="BCR 2000" author="Lee Eather" description="BCR 2000" version="600" date="03/10/2009">
<map value="nudge back/forward" action="nudge" />
</mapper>
Posted Sat 03 Oct 09 @ 1:44 pm
Its still not working, what kind of effect is this meant to have. So far it is having no effect, the encoder is set to min value=0 max, value =127
Im not even sure if the MIDI trace is even working. When i open it up it has in the top right pane, ...wavetable synth, BCR 2000. In the bottom it only has BCR 2000 and when i select both ..BCR 2000's it comes up with the same numbers as evident in the syssex ID as what were first present when i loaded and ran the program? hmm.
Im not even sure if the MIDI trace is even working. When i open it up it has in the top right pane, ...wavetable synth, BCR 2000. In the bottom it only has BCR 2000 and when i select both ..BCR 2000's it comes up with the same numbers as evident in the syssex ID as what were first present when i loaded and ran the program? hmm.
Posted Sat 03 Oct 09 @ 6:52 pm
Does the controller get detected with the mapping and definition in place? I.e: You should see BCR 2000 listed in the drop-down list of devices in CONFIG -> Mappers. If not, then there is something wrong with the definition and/or mapping, or you have put the files in the wrong place (Definitions need to go in VirtualDJ\Devices and mappings need to go in VirtualDJ\Mappers)
When using MIDI trace, you need to select the BCR 2000 in both the input and output sections. Click SEND to send the SysEx ID string to it and receive a response that needs to go into the definition file. Also, when you press buttons or turn knobs, they will send values that you can see in MIDI trace.
Some controllers may use different MIDI channel numbers for some buttons, knobs, etc. The second digit in the MIDI data is the channel number. This will usually be 0 on a basic controller and you will not need to specify it. However, if different channels are used (E.g: 0 and 1) then you will need to specify the channel in the device definition, e.g:
91 1A 7F 00 - Would need channel="1" added to the definition.
Does the knob have min/max stopping points (Like a volume knob)? If so, it needs to be defined as a slider:
If it is endless (No stopping points) and sends 0 in one direction and 127 in the other, then it needs to be mapped without the zero= parameter, e.g:
Also, by convention the device name and names of buttons, sliders, knobs, etc. should all be in capitals with no special characters except for _ or - - They should also be named to match what is written on the controller itself, e.g: If a knob is named P1 on the controller itself, it should be named P1 in the definition.
Also, from what I can see, the BCR 2000 is not a dual-deck DJ MIDI controller (It's a MIDI mixing console), so you shouldn't have decks="2".
E.g:
Definition file:
Mapping:
When using MIDI trace, you need to select the BCR 2000 in both the input and output sections. Click SEND to send the SysEx ID string to it and receive a response that needs to go into the definition file. Also, when you press buttons or turn knobs, they will send values that you can see in MIDI trace.
Some controllers may use different MIDI channel numbers for some buttons, knobs, etc. The second digit in the MIDI data is the channel number. This will usually be 0 on a basic controller and you will not need to specify it. However, if different channels are used (E.g: 0 and 1) then you will need to specify the channel in the device definition, e.g:
91 1A 7F 00 - Would need channel="1" added to the definition.
Does the knob have min/max stopping points (Like a volume knob)? If so, it needs to be defined as a slider:
<slider cc="0x03" name="NUDGE" />
If it is endless (No stopping points) and sends 0 in one direction and 127 in the other, then it needs to be mapped without the zero= parameter, e.g:
<encoder cc="0x03" name="NUDGE" />
Also, by convention the device name and names of buttons, sliders, knobs, etc. should all be in capitals with no special characters except for _ or - - They should also be named to match what is written on the controller itself, e.g: If a knob is named P1 on the controller itself, it should be named P1 in the definition.
Also, from what I can see, the BCR 2000 is not a dual-deck DJ MIDI controller (It's a MIDI mixing console), so you shouldn't have decks="2".
E.g:
Definition file:
<device name="BCR2000" author="Lee Eather" type="MIDI" sysexid="F07E??7F0601F7">
<encoder cc="0x03" name="NUDGE" />
</device>
Mapping:
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="BCR2000" author="Lee Eather" description="BCR 2000" version="600" date="03/10/2009">
<map value="NUDGE" action="nudge" />
</mapper>
Posted Sun 04 Oct 09 @ 2:08 pm
jpboggis wrote :
Does the controller get detected with the mapping and definition in place? I.e: You should see BCR 2000 listed in the drop-down list of devices in CONFIG -> Mappers. If not, then there is something wrong with the definition and/or mapping, or you have put the files in the wrong place (Definitions need to go in VirtualDJ\Devices and mappings need to go in VirtualDJ\Mappers)
No. The files are in the right place.
jpboggis wrote :
When using MIDI trace, you need to select the BCR 2000 in both the input and output sections. Click SEND to send the SysEx ID string to it and receive a response that needs to go into the definition file. Also, when you press buttons or turn knobs, they will send values that you can see in MIDI trace.
When i press turn encoders etc numbers appear in vertical order each time a value is sent. When i delete the numbers and try select the BCR again in input and output and click send nothing appears in the sysex ID box. I downloaded the MIDI trace again and still the same..
jpboggis wrote :
Some controllers may use different MIDI channel numbers for some buttons, knobs, etc. The second digit in the MIDI data is the channel number. This will usually be 0 on a basic controller and you will not need to specify it. However, if different channels are used (E.g: 0 and 1) then you will need to specify the channel in the device definition, e.g:
91 1A 7F 00 - Would need channel="1" added to the definition.
Does the knob have min/max stopping points (Like a volume knob)? If so, it needs to be defined as a slider:
If it is endless (No stopping points) and sends 0 in one direction and 127 in the other, then it needs to be mapped without the zero= parameter, e.g:
91 1A 7F 00 - Would need channel="1" added to the definition.
Does the knob have min/max stopping points (Like a volume knob)? If so, it needs to be defined as a slider:
<slider cc="0x03" name="NUDGE" />
If it is endless (No stopping points) and sends 0 in one direction and 127 in the other, then it needs to be mapped without the zero= parameter, e.g:
<encoder cc="0x03" name="NUDGE" />
I think all my controllers are on channel 1, there is no channel zero on my controller.
jpboggis wrote :
Also, by convention the device name and names of buttons, sliders, knobs, etc. should all be in capitals with no special characters except for _ or - - They should also be named to match what is written on the controller itself, e.g: If a knob is named P1 on the controller itself, it should be named P1 in the definition.
WTF. How do i know the names of the controller?
jpboggis wrote :
Also, from what I can see, the BCR 2000 is not a dual-deck DJ MIDI controller (It's a MIDI mixing console), so you shouldn't have decks="2".
Ok i thought that that meant how many decks will you be using, i do actually remember seeing the deck 1, deck 2 code, whatever somewhere.
...As far as i can see fuk.
Posted Sun 04 Oct 09 @ 6:31 pm
We'll we'll
Posted Tue 06 Oct 09 @ 11:11 pm