Midi Led Mapping

You have a question or need an advice about how to do something? Ask it here!
Post Reply
Andre Kroon
Posts: 3
Joined: 21 Feb 2023 19:54
Midi Led Mapping

Post by Andre Kroon »

Hello Bernd in the past i manege to map the leds on the Akai Apc Mini and Novation Launchpad in proppFrexx with your help.
Now There is the new Akai Apc Mini Mk2, and i can get it to work.
In Events/Commands i use Escape Command2 with parameter ${cw1cart1isplaying}|Equals(1)|EXEC_SEND_MIDI_SHORTMS 0x90|0|1|31 ( Example )

My Question is where do i place the midi values Note on, Channel, Led behavior, Pad number and Color ?


This information i found on the internet,

The new unit now has full RGB LED control.

The matrix LED note numbers are the same as the original APC MINI but the MIDI channel indicates how bright you want the LED. For full brightness send same note-on number message that the controller sends, but on MIDI channel 7. MIDI channels larger than 7 will create various blink rates.

Color Velocity,

Red 72 (48 Hex)
Green 87
Blue 41
Yellow 74
Cyan 78
Orange 61
Purple 67
Brown 83
Off 0
White 93
Pink 95
Amber 96
Turquoise 33

This is information from the manual,

AKAI PROFESSIONAL APC MINI MK2
COMMUNICATIONS PROTOCOL (v1.0)
APC mini mk2’s pad and button LEDs can be controlled by MIDI Note On messages on Port 0 with 3-byte
messages determining 3 factors: Pad/Button value, Behavior (solid, blink, pulse), and Color (pads = RGB,
buttons = single color LED). You can control individual LEDs or send bulk commands for the entire UI surface.
Example - If I want to solidly light pad 1 red, send the following:
96 00 05
96 = MIDI CH determining LED behavior
00 = Pad/Button Value
05 = RGB Color as velocity
*These values will be in HEX

Pad/Button Values
Byte 2 (green) in the above example message determines which pad/button you are trying to light up. MIDI
message construction changes depending on if it is an RGB LED (matrix pads) or a Single LED (smaller
square buttons).
Use the below guide to determine pad/button values and which type of LED message (RGB or Single) you will
need to send.
Pad Matrix:
UI Buttons:
Button Name Note # Channel LED Port #
Track Button 1 0x64 0 Red 0
Track Button 2 0x65 0 Red 0
Track Button 3 0x66 0 Red 0
Track Button 4 0x67 0 Red 0
Track Button 5 0x68 0 Red 0
Track Button 6 0x69 0 Red 0
Track Button 7 0x6A 0 Red 0
Track Button 8 0x6B 0 Red 0
Scene Launch 1 0x70 0 Green 0
Scene Launch 2 0x71 0 Green 0
Scene Launch 3 0x72 0 Green 0
Scene Launch 4 0x73 0 Green 0
Scene Launch 5 0x74 0 Green 0
Scene Launch 6 0x75 0 Green 0
Scene Launch 7 0x76 0 Green 0
Scene Launch 8 0x77 0 Green 0
3
RGB LED Behavior (Solid, Blink, Pulse)
RGB LEDs can be lit solid at varying brightness and blink/pulse at different rates. This behavior is determined
by what MIDI Channel MIDI note on message is sent on (MIDI CH 00-0F).
Looking at our above example, 96 00 05, we see that a value of 96 on byte 1 is used which instructs the LED
to stay solidly lit at 100% brightness. If we change byte 1 to 97, our LED will pulse red at 1/16 notes synced
with an external clock rate.
MIDI Channel Byte 1 Value Port Function
0 90 0 On 10% brightness
1 91 0 On 25% brightness
2 92 0 On 50% brightness
3 93 0 On 65% brightness
4 94 0 On 75% brightness
5 95 0 On 90% brightness
6 96 0 On 100% brightness
7 97 0 Pulsing 1/16
8 98 0 Pulsing 1/8
9 99 0 Pulsing 1/4
10 9A 0 Pulsing 1/2
11 9B 0 Blinking 1/24
12 9C 0 Blinking 1/16
13 9D 0 Blinking 1/8
14 9E 0 Blinking 1/4
15 9F 0 Blinking 1/2

RGB LED Color
The below table designates 128 RGB values assigned to a velocity value which is represented by byte 3 in the
RGB LED message. This color palette is predetermined and cannot be changed.
Again, taking the above example, 96 00 05, let’s change pad 1 to solid lit orange:
96 00 09
96 = Solid lit at 100%
00 = Pad 1
09 = Velocity 09 = Orange

Greetings, Andre Kroon.
User avatar
radio42
Site Admin
Posts: 8295
Joined: 05 Apr 2012 16:26
Location: Hamburg, Germany
Contact:
Re: Midi Led Mapping

Post by radio42 »

Being honest, I can also not really follow the description above? Aren‘t there any MIDI examples?
Some general info about MIDI messages can be found here:
https://cmtext.indiana.edu/MIDI/chapter ... ssages.php

In ProppFrxx you can directly specify the 3-bytes of a MIDI short message.
So you need to know what MIDI ShortMessages needs to be send to your external MIDI device.
A MIDI ShortMessage is composed out of three parts (bytes):
- a status byte
- a data1 byte
- a data2 byte

The message can directly be specified as a hex value.

Ie. as specified here:
https://www.midi.org/specifications-old ... di-message
Andre Kroon
Posts: 3
Joined: 21 Feb 2023 19:54
Re: Midi Led Mapping

Post by Andre Kroon »

Yes, that are midi basics, i reed that.
But i want to know how to use it in ProppFrexx , i can't find the information i need about that.
I know all the midi values , but i don't get it to work with this command ; Escape Command2 with parameter ${cw1cart1isplaying}|Equals(1)|EXEC_SEND_MIDI_SHORTMS

I like to send 3 midi Midi Note On messages on Port 0

Pad/Button value
Behavior (solid, blink, pulse)
Color

Greetings, Andre.
User avatar
radio42
Site Admin
Posts: 8295
Joined: 05 Apr 2012 16:26
Location: Hamburg, Germany
Contact:
Re: Midi Led Mapping

Post by radio42 »

OKi, if you know the exact values to send, that is fine, sorry. So you are missing the info on how to send multiple commands?
You can do it like this (the 3-bytes of the MIDI short message are just examples here and do not relate to your hardware - you can simply exchange them with correct HEX values, which are known to you, as you said):

Code: Select all

EXEC_COMMAND2 ${cw1cart1isplaying}|Equals(1)|EXEC_SEND_MIDI_SHORTMSG 0x90 0x00 0x71${CRLF}EXEC_SEND_MIDI_SHORTMSG 0x96 0x01 0x05${CRLF}EXEC_SEND_MIDI_SHORTMSG 0x98 0x03 0x09
I.e. you can simply separate multiple commands by ${CRLF}.

The EXEC_SEND_MIDI_SHORTMSG has actually various syntax possibilities for the parameters, which are:
parameter: status|channel|data1|data2
or
parameter: status data1 data2

To denote hexadecimal values preceed them with 0x; else decimal values are assumes. E.g. "0x90" or "144".
NoteOn as an example ranges in the staus byte from 0x90 to 0x9F (where 0 to F denotes the channel; which is probaby what you call a port?).
Andre Kroon
Posts: 3
Joined: 21 Feb 2023 19:54
Re: Midi Led Mapping

Post by Andre Kroon »

Thank you It's working.

Greetings, Andre Kroon.

Post Reply