APC20 + APC40 feedback


Just starting out and learning the ropes. I've got APC20 and APC40 that i want to run through BOME.

Few things i want to implement:


  • Change to "note" mode - check
  • Set initial feedback message for my buttons grid - partly check,
    • i've only managed to do it same color for whole grid. How should i set timer that sets color 1 for example to row 1 of buttons, color 3 to row 2, and example color 5 to row 3. Do i need 3 timers to do this example?
  • Toggle feedback to flash from initial color for buttons - i cannot get it to work.
    • My LEDs just turn off from init color.
  • Set groups: for example only 1 button from whole row should flash/be selected, if something else is selected it resets first/other pressed buttons to init color

APC 40:

  • Change to "42" mode - check
  • Set initial feedback message for my buttons grid - partly check
    • i've only managed to get a bit of a grid to work, probably its issue in calculating of variables and different midi messages than apc20, can i get some help with setting this up?
  • Same as 3rd and 4th bullet
  • Set encoders feedback to additive, so if its all the way to right, whole led ring is lit

Attatching also midi map for both controllers with midi messages.

Thanks for help in advance,

Kind regards,



First of all, I'm not sure why you are going to note mode for APC20 as I think the normal mode would be better especially if you are doing different colors for different rows since in normal mode, the entire row is the same note number but on a different MIDI channel (as with the APC40 as you can see below). With that said, I updated translator 0.7 with two rule to changes the note color for note 42 only. You could either add rules for each note indivitually as I did or set them in ranges.





For the APC40, your rules look wrong as I believe each note has a different note number.  Assuming you have a MK1

Row 1 is note 53 and columns are MIDI CH1 through 8 going across.


So R1C1 should be 90 35 qq where qq is the color. Column 2 would 91 35 qq etc to column 8 (97 35 qq)

(Note decimal 53 is hex 35).

R2 C1 shoul start with 90 36 qq and so on.


Once you sort that out, you can determine the row by the note number and the column by the channel number

See rules in translator 0.8 for column and row calculations


If you put the APCs in Mode 1 instead of Mode 2 , the LED's should locally reflect thier correct state.


This should be enough to get you started. Again, in summary, you could probably put APC20 in mode 1 and duplicate a lot of rules as you did for the APC40.


Here are the rules with comments for translator 0.8


// apc 40 notes are 53-57


// calculate row



// Add offset



// calculate column or MIDI channel


// mod (remainder) function



// create note on on correct channel




// velocity



// if row 5, change to different color


if pp==57 then qq=4


Good luck!


Steve Caldwell
Bome Customer Care

Also available for paid consulting services: bome@sniz.biz

Whoops here is the modified project file.



I've actually managed to get all buttons working with feedback, but i did it manually one by one, it took some time, but now its not bad cuz i can easily update colors if needed :D

How would I set rules up for groupings to work. For example:

Row 1 is whole green, when toggled it flashes green - check

I want whole row to be grouped, so only 1 button that is last pressed is flashing. Each button already have defined variable.

Kind regards,


For only 8 buttons , it is probably best to just send a MIDI stream with all buttons as note off, and then a single note on for the button you pressed. So say first row (53 decimal) you determine the button to turn on by the MIDI channel. Turn all buttons off then turn on just the pressed button.

See attached


Steve Caldwell
Bome Customer Care

Also available for paid consulting services: bome@sniz.biz



Thanks for you reply, i've managed to get it working!

Just curious how do you determine/calculate (in your example) number for pp|oo? I need mine set to 0|oo in note mode

In addition to these rules and settings: how can I add that another press to last pressed button to turn flashing back to original state or set it to toggle?