快速登录:  

Forum: Old versions

话题: Definition Coding Encoders - Icon iDJ Controller

由于该帖子已年深日久,可能包含陈旧过时或描述错误的信息。

Hi there,

I'm working on creating a definition file for the iCON iDJ, and have the buttons and sliders mapped fine, but am struggling with the encoders, and will certainly run in to the same issue with the jogwheels, since they seem to need the same definitions.

From the definition tutorial:

"- zero: set the cc value that represents zero. For a jog that sends 0x01 for forward movement and 0x7F for rewind, set this to "0" (default). For a jog that sends 0x41 for forward movement and 0x3F for rewind, set this to "0x40"."

I'm confused what values I'd be putting in there and how it would appear. I currently have <encoder cc="0x17" zero="0" max="7F" name="EQ_LOW" deck="1"/> and it just jumps around almost randomly.

When I do a midi trace I get:

B0 17 00 00 (the third figure - 00 - there varies between 00 and 7F)

and also

90 11 00 00 (the third figure - 00 - also appearing as 7F, nothing in between)

Is the 0x11 its center position? or its backwards cc?

Sorry if what I wrote is confusing, I'm really new to this sort of stuff, but basically I need to know an example of how it should be defined.

Thanks
 

发表时间 Mon 11 Mar 13 @ 9:02 pm
heres my definition so far for anyone who wants to see it:

<?xml version="1.0" encoding="UTF-8"?>
<device name="iCON idj V1.01" author="Ang3l" type="MIDI" decks="2" vid="0x1D03" pid="0x0027" drivername="iCON idj V1.01" drivernameout="iCON idj V1.01">
<button note="0x33" channel="0" value="0x7F" name="CUE" deck="1" />
<button note="0x47" channel="0" value="0x7F" name="CUE" deck="2" />
<button note="0x46" channel="0" value="0x7F" name="PLAY" deck="1" />
<button note="0x37" channel="0" value="0x7F" name="PLAY" deck="2" />
<button note="0x65" channel="0" value="0x7F" name="SYNC" deck="1" />
<button note="0x67" channel="0" value="0x7F" name="SYNC" deck="2" />
<button note="0x55" channel="0" value="0x7F" name="BUTTON1" />
<button note="0x58" channel="0" value="0x7F" name="BUTTON2" />
<button note="0x5B" channel="0" value="0x7F" name="BUTTON3" />
<button note="0x4C" channel="0" value="0x7F" name="BUTTON4" />
<button note="0x4E" channel="0" value="0x7F" name="BUTTON5" />
<button note="0x4F" channel="0" value="0x7F" name="BUTTON6" />
<button note="0x52" channel="0" value="0x7F" name="BUTTON7" />
<button note="0x53" channel="0" value="0x7F" name="BUTTON8" />
<slider cc="0x0C" name="VOLUME" deck="1"/>
<slider cc="0x0D" name="VOLUME" deck="2"/>
<slider cc="0x0E" name="PITCH" deck="1"/>
<slider cc="0x0F" name="PITCH" deck="2"/>
<slider cc="0x08" name="CROSSFADER" />
<encoder cc="0x17" zero="0" max="7F" name="EQ_LOW" deck="1"/>
<encoder cc="0x18" zero="0" max="7F" name="EQ_LOW" deck="2"/>
<jog cc="0x107" zero="0x40" name="JOG" channel="0" deck="1" />
<jog cc="0x108" zero="0x40" name="JOG" channel="1" deck="2" />
</device>



(jogs and encoders aren't functional)
 

发表时间 Mon 11 Mar 13 @ 9:06 pm
I added:

<fullencoder cc="0x17" full=128 name="EQ_LOW" deck="1"/>
<fullencoder cc="0x18" full=128 name="EQ_LOW" deck="2"/>
<fullencoder cc="0x15" full=128 name="EQ_MID" deck="1"/>
<fullencoder cc="0x19" full=128 name="EQ_MID" deck="2"/>
<fullencoder cc="0x14" full=128 name="EQ_HI" deck="1"/>
<fullencoder cc="0x1B" full=128 name="EQ_HI" deck="2"/>

and to the map file:

<map value="EQ_LOW" action="eq_low" />
<map value="EQ_MID" action="eq_mid" />
<map value="EQ_HI" action="eq_hi" />

and it straight up made the controller not even recognised as a device anymore and reverted back to my generic midi mapping :S
 

发表时间 Tue 12 Mar 13 @ 2:03 am
1. If your encoders send 0 for backwards and 7F for forward movement you can leave these parameters out.
Also, how many MIDI channels are used by your unit ?
If it's a single channel unit you should omit the channel="0" parameter from the entire device mapper.
If it's more than one you must include the channel="x" statement on ALL elements

So, try this:

<encoder cc="0x17" channel="0" deck="1" name="EQ_LOW" />
<encoder cc="0x18" channel="0" deck="2" name="EQ_LOW" />
<encoder cc="0x15" channel="0" deck="1" name="EQ_MID" />
<encoder cc="0x19" channel="0" deck="2" name="EQ_MID" />
<encoder cc="0x14" channel="0" deck="1" name="EQ_HI" />
<encoder cc="0x1B" channel="0" deck="2" name="EQ_HI" />

2. Your jog definition contains severe errors:
There can't be a CC value of "107" if it's a decimal value then you must convert it to hex: 0x6B
Also you define the second jog (for deck 2) on a second MIDI channel when all other controls for deck 2 are on the same channel with deck 1...

I don't have the MIDI chart of your device available in front of me but your definition file should look like:

<?xml version="1.0" encoding="UTF-8"?>
<device name="iCON idj V1.01" author="Ang3l" type="MIDI" decks="2" vid="0x1D03" pid="0x0027" drivername="iCON idj V1.01" drivernameout="iCON idj V1.01">
<button note="0x33" deck="1" name="CUE" />
<button note="0x47" deck="2" name="CUE" />
<button note="0x46" deck="1" name="PLAY" />
<button note="0x37" deck="2" name="PLAY" />
<button note="0x65" deck="1" name="SYNC" />
<button note="0x67" deck="2" name="SYNC" />
<button note="0x55" name="BUTTON1" />
<button note="0x58" name="BUTTON2" />
<button note="0x5B" name="BUTTON3" />
<button note="0x4C" name="BUTTON4" />
<button note="0x4E" name="BUTTON5" />
<button note="0x4F" name="BUTTON6" />
<button note="0x52" name="BUTTON7" />
<button note="0x53" name="BUTTON8" />
<slider cc="0x0C" deck="1" name="VOLUME" />
<slider cc="0x0D" deck="2" name="VOLUME" />
<slider cc="0x0E" deck="1" name="PITCH" />
<slider cc="0x0F" deck="2" name="PITCH" />
<slider cc="0x08" name="CROSSFADER" />
<encoder cc="0x17" deck="1" name="EQ_LOW" />
<encoder cc="0x18" deck="2" name="EQ_LOW" />
<encoder cc="0x15" deck="1" name="EQ_MID" />
<encoder cc="0x19" deck="2" name="EQ_MID" />
<encoder cc="0x14" deck="1" name="EQ_HI" />
<encoder cc="0x1B" deck="2" name="EQ_HI" />
<jog cc="0x6B" zero="0x40" deck="1" name="JOG" />
<jog cc="0x6C" zero="0x40" deck="2" name="JOG" />
</device>

Please note that I didn't look at the MIDI chart. I just assume the corrections needed to get you on the right track...
 

发表时间 Tue 12 Mar 13 @ 4:47 am
i'm actually not sure if it's multiple channel. but if that means multiple layers for buttons, then i think as it is it's single channel.

the code you altered for the EQ knobs are recognised, but they jump between far left and far right and don't turn. i'm not sure if it's recognising a backwards/forwards motion, but the furthest left is 00, and furthest right is 7F, so i'm not sure if that needs something else in the code to recognise it sliding from that position to the other.

and the jogwheel code you cleaned up doesn't recognise anything yet. i'm really at a loss when it comes to the wheel, as nothing i do seems to even recognise it.

the midi trace for the wheel seems to come up with two numbers, but it's irrespective of whether its going clockwise or counter clockwise:

90 6B 7F 00
90 6B 00 00
90 3A 7F 00
90 3A 00 00

thats the 4 numbers it comes up with, nothing in between.

any idea why it's not budging based on that?
 

发表时间 Tue 12 Mar 13 @ 11:48 pm
djdisappointing wrote :

the code you altered for the EQ knobs are recognised, but they jump between far left and far right and don't turn. i'm not sure if it's recognising a backwards/forwards motion, but the furthest left is 00, and furthest right is 7F, so i'm not sure if that needs something else in the code to recognise it sliding from that position to the other.

Then you must define them as sliders, not encoders:

<slider cc="0x17" deck="1" name="EQ_LOW" />
<slider cc="0x18" deck="2" name="EQ_LOW" />
<slider cc="0x15" deck="1" name="EQ_MID" />
<slider cc="0x19" deck="2" name="EQ_MID" />
<slider cc="0x14" deck="1" name="EQ_HI" />
<slider cc="0x1B" deck="2" name="EQ_HI" />
djdisappointing wrote :

the midi trace for the wheel seems to come up with two numbers, but it's irrespective of whether its going clockwise or counter clockwise:
90 6B 7F 00
90 6B 00 00
90 3A 7F 00
90 3A 00 00

This is the touch sensor of the jogs turning on/off:

<button note="0x6B" deck="1" name="JOG_TOUCH" />
<button note="0x3A" deck="2" name="JOG_TOUCH" />
 

发表时间 Wed 13 Mar 13 @ 1:17 am
oh, that's perfect re: sliders! thanks!

with the jog, if i put that in the definition, what will they do once they've been turned on? do i need to separately map them as wheels as well as just on/off?

EDIT: oh, i should mention, that midi trace for the jog wheel was just on the left deck

the midi numbers i get if i slightly move the left jogwheel:

90 6B 7F 00
90 6B 00 00
90 3A 7F 00
90 3A 00 00

if i spin it more its just those numbers repeating but with:

90 3B 7F 00
90 3B 00 00

added in the mix. all confusing to me

http://i.imgur.com/RkYvCvY.jpg - how imap defines the values of the jogwheel. but im not sure how that relates to defining it in the definition
 

发表时间 Wed 13 Mar 13 @ 1:46 am


(陈旧帖子或论坛版块会自动关闭)