MIDI RX issue with BU16 - midi parameters not working | Intech Studio
💬 general GridRequest

MIDI RX issue with BU16 - midi parameters not working

XtraBonus_Victor
XtraBonus_Victor · · 46 replies

Hello, I've been trying my best to setup a BU16 to use with traktor. My goal is to control the hotcues with a led feedback of the hotcues colors.

I've just spent hours trying to read the midi messages coming from traktor but I'm not able to have any cmd, param1 and param2 values. When I try to print them they just appear nil.

The midi informations are getting to grid so the issues does not come from there.

From the infos I could find the main 4 midi parameters to work with inside of grid should just be usable as soon a you name them in the Local module.
Am I missing something ?
Is it juste a bug that I spent 4 hours trying to solve ?

I also got to say that I'm not the best at writing code out there, but I can find my way through.

Replies (46)

Greg-Orca Greg-Orca ·

Hello

check the Universal MIDIRX profile and follow the profile description.

Let me know if you need more help.

Screenshot_2025-12-17_at_12.11.08.png
XtraBonus_Victor XtraBonus_Victor ·

Hello, thanks for the answer. Sadly it does not work. When using it to midi map ableton (as a test) it juste flashes very fast.

And it’s not what I would like to do. I’d like to be able to use the channel, command, note and velocity (value) of incoming midi messages to control the led. The leds would be independent from the buttons actually.

Is there any way to have access to those parameters ?

Maybe I’m wrong but to keep it simple I was placing the led control blocks inside of the button panel of each element. And activating the leds depending on incoming midi parameters. (But it never worked)

XtraBonus_Victor XtraBonus_Victor ·

here's what I did to control the colors.
With the line on the first if being channel == 1 and message <= 159 and parameter == 0
And then I just got to use the value on the other ifs for each colors

Capture_decran_2025-12-18_a_12.16.10.png
XtraBonus_Victor XtraBonus_Victor ·

I've also been trying with the Basic MIDIRX without much success

Greg-Orca Greg-Orca ·

you can do it like this

Screenshot_2025-12-18_at_12.55.19.png
Greg-Orca Greg-Orca ·

this function will istening the incomming midi rx

Greg-Orca Greg-Orca ·

we currently working on imporvie this with a normal actrion block, but until you need to code

Greg-Orca Greg-Orca ·

function self.midirx_cb(self, event, header) command = event[2] param1 = event[3] value = event[4] if command == 176 and param1 == self:element_index() + 32 then if value == 0 then led_color(self:element_index(), 1, 255, 0, 0, 0) elseif value == 21 then led_color(self:element_index(), 1, 0, 255, 0, 0) elseif value == 42 then led_color(self:element_index(), 1, 0, 0, 255, 0) end end end

Greg-Orca Greg-Orca ·

try it with ableton

Greg-Orca Greg-Orca ·

and i Use CC message as command, so change it in the midid block

Greg-Orca Greg-Orca ·

also put an intensity block

Greg-Orca Greg-Orca ·

to make coloring easyer, you can convert it to code

Screenshot_2025-12-18_at_13.04.26.png
XtraBonus_Victor XtraBonus_Victor ·

It works !! Thank you so much ! I didn't knew that I actually had to load the code into the button section. Having a block for that would definitely make things way easier.

I managed to make it work in the various configurations I needed to.
Except that when I’m pressing the button it overwrites the color, put it green and then on the note off switch the light off. I tried emitting the same midi note with another button and the same thing happened.
The note I’m emitting is actually the same as the one used for the led except that it’s on another channel.
To you have any idea why it could happen ?
My code for the led being :

function self.midirx_cb(self, event, header)
command = event[2]
param1 = event[3]
value = event[4]
if event[2] >= 144 and event[2] <= 159 and event[3] == self:element_index() then
if value == 21 then
led_color(self:element_index(), 1, 0, 120, 255, 0)
elseif value == 42 then
led_color(self:element_index(), 1, 255, 120, 0, 0)
elseif value == 63 then
led_color(self:element_index(), 1, 255, 120, 0, 0)
elseif value == 127 then
led_color(self:element_index(), 1, 0, 255, 0, 0)
elseif value == 84 then
led_color(self:element_index(), 1, 255, 255, 0, 0)
elseif value == 0 then
led_color(self:element_index(), 1, 0, 0, 0, 0)
end
end
end

XtraBonus_Victor XtraBonus_Victor ·

I managed to make it work anyway by using different notes, but I'm afraid another controler could mess it up

XtraBonus_Victor XtraBonus_Victor ·

ok I just found out I forgot to add the midi channel to the code

Greg-Orca Greg-Orca ·

yes , use if event[1] == ch then (here is your code )end

Greg-Orca Greg-Orca ·

ch is your channel (0-15)

Greg-Orca Greg-Orca ·

alos use this in the first line under the functionif header[1] ~= 13 then return end

Greg-Orca Greg-Orca ·

that also filter off the midi messages which is not coming from the DAW

cecilnick cecilnick ·

Is it necessary to listen to RX on the individual elements like this?

cecilnick cecilnick ·

I'm having a very similar issue. Since the last firmware update, the Universal MIDIRX snippet has stopped working on my EN16. Before, I wasn't needing to call RX from the individual elements, having the function on System Setup did everything?

Greg-Orca Greg-Orca ·

you can do it on the system element, I put this to all the buttons assuming the coloring will be different on the buttons

klarts klarts ·

holy snap, i'm not the only one

klarts klarts ·

i spent hours last night trying to get my pbf4 to get midi from ableton

Greg-Orca Greg-Orca ·

universal midirx works perfectly, idk what happening 😄

klarts klarts ·

Qq so lets say i want the led on the button to reflect the status in ableton

klarts klarts ·

like mute/unmute state

klarts klarts ·

so I add the code block to the system or to the button element?

klarts klarts ·
Screenshot_2025-12-18_at_10.18.30_AM.png
klarts klarts ·

in the setup here?

klarts klarts ·

or in the system?

XtraBonus_Victor XtraBonus_Victor ·

Thx I add that !!

klarts klarts ·
Screenshot_2025-12-18_at_10.08.14_AM.png
Greg-Orca Greg-Orca ·

just system element> Setup

klarts klarts ·
Screenshot_2025-12-18_at_10.19.58_AM.png
klarts klarts ·

correct?

Greg-Orca Greg-Orca ·
Screenshot_2025-12-18_at_16.20.33.png
klarts klarts ·

i assume ctrl and value are params 1 and 2?

Greg-Orca Greg-Orca ·

btw one thing, use v *2

Screenshot_2025-12-18_at_16.21.21.png
Greg-Orca Greg-Orca ·

bc leds birghtness is going from 0-256

Greg-Orca Greg-Orca ·

from this FW

klarts klarts ·

my setup btw, not to derail

IMG_7437.webp
XtraBonus_Victor XtraBonus_Victor ·

I got a question about how to implement a line you gave, is it : if header[1] ~= 13 then (my code) return end ?

Greg-Orca Greg-Orca ·

if header[1] ~= 13 then return end

just put this under the function first line

Greg-Orca Greg-Orca ·

this blocks all the messages which is not coming from the DAW

XtraBonus_Victor XtraBonus_Victor ·

ok thanks

Discord

View on Discord

This post is from the Intech Studio Discord community.

Open thread →