快速登录:  

Forum: General Discussion

话题: APC 20 LED Issue

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

A.eXe 1PRO InfinityMember since 2011
I'm currently building a definition file for a AKAI APC20 and all of the buttons, sliders and knob work like they should however I'm having an issue making the LED's stay on after pressed. The only way that the LED will stay on is if I set them to blink during an action but I'd like a solid color on some buttons when both the action is active and when it's not. I've tried min/max values and zero"" with no luck. Here is a line from 1 button

<button note="53" channel="0" name="BUTTON 1-1" deck="" />
<led note="53" channel="0" name="LED BUTTON 1-1 G" value="1" deck="" />
<led note="53" channel="0" name="LED BUTTON 1-1 Y" value="5" deck="" />
<led note="53" channel="0" name="LED BUTTON 1-1 R" value="3" deck="" />

What I'm I missing here?
 

发表时间 Wed 11 Jan 17 @ 2:50 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Reason is because if e.g you want red color, VDJ sends value 3, but at the same time it turns off the other 2, sending 0.
Try ..
<color note="53" channel="0" name="LED BUTTON 1-1" deck="1" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" /> 


and then in mapping something like..
play ? color 'green' : color 'red'


 

发表时间 Thu 12 Jan 17 @ 5:00 am
A.eXe 1PRO InfinityMember since 2011
Thank you for the response djdad that got me closer to the solution unfortunately the led is still turning off when pressed not like on my APC40 which works perfectly. So I've mapped a button 'goto_cue 1 & play_pause' and the led 'has_cue 1 ? color "green" : color "black"' but when I press the button the led will go off and stay off.
 

发表时间 Thu 12 Jan 17 @ 9:42 am
djdadPRO InfinityDevelopment ManagerMember since 2005
Hmm this reminds me the APC40 case where a specific sysex value needs to be sent in order LEDs to be controlled by the software (aka Ableton mode) and not by the Hardware.
Unfortunately , there is no documentation for the APC20 , so we are kind in blind here.
The APC40 requires this sysex to be sent ... (from the definition)
<init sendsysex="F047007360000442010101F7" />
but its definitely not going to work as its probably related to the SYSEX of the unit.

Do this please..
Use Miditrace http://www.virtualdj.com/download/miditrace.exe
When opened, select the APC20 from both the right-bottom and right-top lists.
Click on the Send button at the top.
The unit will probably reply with a large sysex ID.
Compare it with the sysex that the APC40 sends (F07E??060247730019??????????????????????????????????????????????????F7 - ignore the ?? bytes) and change a couple of bytes...
..so something like this may work ..
<init sendsysex="F047007360000442010101F7" /> but the 73 byte (and maybe another one e.g. the ones after the 73) will need to be changed

EDIT
the 73 is coming also from the PID of the APC40 unit , (pid=0x073) so if for example the PID of the APC20 is pid=0x070,, the line in the definition may need to be..
<init sendsysex="F047007060000442010101F7" />


PS. Please post here the first line of the definition (the one with the Hardware Identifiers), plus a couple of lines for the LEDs, to check just in case there is a typo or missed something.
 

发表时间 Thu 12 Jan 17 @ 7:43 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
I found this in a forum
Quote :
To have full control of the LEDs it is necessary to set your APC20 into „Ableton Alternative Mode“, more commonly known as „DUMB MODE“. In order to acces this mode you have to turn your APC20 on, open Ableton Live (or a demo of it) and close it.

You are in DUMB Mode when no button on the APC is lit up.


So indeed there is an "Ableton/Alternative mode". The above is probably a workaround, but if you manage to find the sysex that is required to be sent, there will be no need to open Ableton prior opening VirtualDJ.
 

发表时间 Thu 12 Jan 17 @ 7:58 pm
A.eXe 1PRO InfinityMember since 2011
Progress! Ok now the leds come on properly with LEDS = "play ? color 'green' : color 'red'" BUTTON = 'play_pause' if the deck is started from something else besides that button. If I use the button to play/pause the deck the leds go off and stay off.

<?xml version="1.0" encoding="UTF-8"?>
<device name="AKAIAPC20" author="MACK" type="MIDI" decks="2" >
<init sysexid="F047007B60000442010101F7" />

<button note="53" channel="0" name="BUTTON 1-1" deck="" />
<led note="53" channel="0" name="LED BUTTON 1-1 G" value="1" deck="" />
<led note="53" channel="0" name="LED BUTTON 1-1 Y" value="5" deck="" />
<led note="53" channel="0" name="LED BUTTON 1-1 R" value="3" deck="" />
<color note="53" channel="0" name="LED BUTTON 1-1" deck="" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="54" channel="0" name="BUTTON 1-2" deck="" />
<led note="54" channel="0" name="LED BUTTON 1-2 G" value="1" deck="" />
<led note="54" channel="0" name="LED BUTTON 1-2 Y" value="5" deck="" />
<led note="54" channel="0" name="LED BUTTON 1-2 R" value="3" deck="" />
<color note="54" channel="0" name="LED BUTTON 1-2" deck="" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="55" channel="0" name="BUTTON 1-3" deck="" />
<led note="55" channel="0" name="LED BUTTON 1-3 G" value="1" deck="" />
<led note="55" channel="0" name="LED BUTTON 1-3 Y" value="5" deck="" />
<led note="55" channel="0" name="LED BUTTON 1-3 R" value="3" deck="" />
<color note="55" channel="0" name="LED BUTTON 1-3" deck="" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="56" channel="0" name="BUTTON 1-4" deck="" />
<led note="56" channel="0" name="LED BUTTON 1-4 G" value="1" deck="" />
<led note="56" channel="0" name="LED BUTTON 1-4 Y" value="5" deck="" />
<led note="56" channel="0" name="LED BUTTON 1-4 R" value="3" deck="" />
<color note="56" channel="0" name="LED BUTTON 1-4" deck="" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="57" channel="0" name="BUTTON 1-5" deck="" />
<led note="57" channel="0" name="LED BUTTON 1-5 G" value="1" deck="" />
<led note="57" channel="0" name="LED BUTTON 1-5 Y" value="5" deck="" />
<led note="57" channel="0" name="LED BUTTON 1-5 R" value="3" deck="" />
<color note="57" channel="0" name="LED BUTTON 1-5" deck="" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="52" channel="0" name="BUTTON 1-6" deck="" />
<led note="52" channel="0" name="LED BUTTON 1-6 G" value="1" deck="" />
<led note="52" channel="0" name="LED BUTTON 1-6 Y" value="5" deck="" />
<led note="52" channel="0" name="LED BUTTON 1-6 R" value="3" deck="" />
<color note="52" channel="0" name="LED BUTTON 1-6" deck="" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />


I kept the other lines that identify the other colors separately that I had before this post because I have numerous mapper files that are assigned with those values/identifiers.

 

发表时间 Thu 12 Jan 17 @ 8:34 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
To make sure the unit will be detected properly all times and in all computer (in case you need to share that later), you will need to add vid/pid to the <device> line.

So ..
<device name="AKAIAPC20" author="MACK" description="AKAI APC20" type="MIDI" vid="0x09E8" pid="0x007B" decks="2" >

For the LEDs..
- The fact that you still have the additional lines for the separate colors for the LEds, could be the reason of miss-behavior. Have you tried to remove those and try again ?
- Are you sure its channel="0" for all the LEDs/buttons above ?

Also, If you dont intent to use the deck="x" from definition then better remove the deck="" from all lines. Not sure how this can impact functionality, but i would get rid of them.


EDIT. There is a chance that a slightly different sysex may need to be sent. There is something to do to make sure its the right one. Will post details a bit later.
 

发表时间 Thu 12 Jan 17 @ 8:46 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
In order to make sure that the sent sysex is the correct one (and see/get other valuable info as well), i would suggest to use an additional application, if you have some basic comp/Midi knowledge.

The application is called USBlyzer and offers a 30 days of trial. http://www.usblyzer.com/download.htm
Important ! After installation, restart your computer.

When USBlyzer is opened, scroll through the left-side list and check (select) the AKAI APC20 device.
Then from the top choose "Start Capture"
Open Ableton (any version that supports the unit)
You will then see data listed on the right side.
Notice the hex values (data) sent from Ableton when the unit initializes and other data sent each time a button is pressed.
I am sure a sysex will be there, almost at the beginning (the one we are looking for) and you may notice several other useful things there.

PS. For sysex, you may find that some additional 04/05/07 are added from USBlyzer every 4 bytes that need to be filtered out. If you have any issues or questions, paste here the data to help you out with.
 

发表时间 Thu 12 Jan 17 @ 8:58 pm
A.eXe 1PRO InfinityMember since 2011
Will do. After cleaning up the definition file here is what I have

<?xml version="1.0" encoding="UTF-8"?>
<device name="AKAIAPC20" author="MACK" type="MIDI" vid="0x09E8" pid="0x007B" >
<init sysexid="F047007B60000442010101F7" />

<button note="53" channel="0" name="BUTTON 1-1" />
<color note="53" channel="0" name="LED BUTTON 1-1" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="54" channel="0" name="BUTTON 1-2" />
<color note="54" channel="0" name="LED BUTTON 1-2" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="55" channel="0" name="BUTTON 1-3" />
<color note="55" channel="0" name="LED BUTTON 1-3" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="56" channel="0" name="BUTTON 1-4" />
<color note="56" channel="0" name="LED BUTTON 1-4" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="57" channel="0" name="BUTTON 1-5" />
<color note="57" channel="0" name="LED BUTTON 1-5" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
<button note="52" channel="0" name="BUTTON 1-6" />
<color note="52" channel="0" name="LED BUTTON 1-6" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />

Here is what I received from MidiTrace "sysexid="F07E000602477B001900010000007F7F7F7F004B0201020004000205010000060003F7"
and works with the definition file. Unfortunately I'm still getting the same behavior with the leds. I've turned off the APC 20 to reset it and also tried to have the led blink if a deck is playing then go solid when the deck is stopped as a possible work around. The led will blink when playing as it should but will go off when stopped. Thank you for your help djdad.
 

发表时间 Thu 12 Jan 17 @ 9:14 pm
A.eXe 1PRO InfinityMember since 2011
VICTORY!! The leds now work as they're supposed to. The solution was that I had to put the APC 20 in "Ableton/Alternative mode" or Dumb Mode as listed above. Thank you again for your help djdad.
 

发表时间 Thu 12 Jan 17 @ 11:38 pm
A.eXe 1PRO InfinityMember since 2011
Semi-VICTORY!... Ok, so if I put the APC 20 in dumb mode the leds work perfectly as expected until the unit is turned off then it resets. I still can't get the right sysex to keep it in Ableton/Alternative mode. In miditrace I get "F07E000602477B001900010000007F7F7F7F004B0201020004000205010000060003F7". I'm having trouble deciphering the information from USBlyzer. USBlyzer shows "04F07E00070601F7", "04F04700047B6000...", "04F04700047B5000..."
 

发表时间 Sat 14 Jan 17 @ 3:14 pm
i have full working script for apc 80.. If you need help .. I have used it for 5 years..
 

发表时间 Fri 27 Jan 17 @ 5:12 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Ok try this..

<device name="AKAIAPC20" author="MACK" description="AKAI APC20" type="MIDI" vid="0x09E8" pid="0x007B" >

<init sendsysex="F07E000601F7"/>
<init sendsysex="F047007B60000441090701F7"/>
<init sendsysex="F047007B5000100000010E070B040F0000050A00040906F7">

<button note="53" channel="0" name="BUTTON 1-1" />
<color note="53" channel="0" name="LED BUTTON 1-1" values="0x00=black, 0x01=green,0x03=red,0x05=yellow" />
....
...
</device>

The 1st sysex shouldnt be a requirement for the unit to work. Its mostly used to get the sysexid of the unit. But can be useful to get the positions of the faders on init. So if a fader is mapped as volume, the volume fader of VDJ should get the value of the hardware fader on init.
The 2nd sysex should set the unit to the mode where the LEDs can be properly controlled (aka Ableton mode)
Not sure what the 3rd sysex does.
Those are sent by Ableton on init so try to add those in the definition file as above.

Remember , you also need a AKAI APC20 mapping.xml file with

<mapper device="AKAIAPC20" >
...
</mapper>

 

发表时间 Sun 29 Jan 17 @ 1:50 pm
A.eXe 1PRO InfinityMember since 2011
That did it! Thank you for the offer tycoonentertainmentcanada and your time djdad.
 

发表时间 Sun 29 Jan 17 @ 2:42 pm


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