Jump to content

Understanding SysEx-handling and EVENT_RECEIVERS


Recommended Posts

Posted (edited)

Hey people,

my controller has 9 OLEDs which I want to address via SysEx, which works good. Here is the code:

EVENT_RECEIVER id=1 type=SysEx stream="0xf0 0x00 0x31 0x00 ^txt" label=&a lcd_pos=1:1:1
EVENT_RECEIVER id=2 type=SysEx stream="0xf0 0x00 0x32 0x00 ^txt" label=&a lcd_pos=2:1:1
etc.

Each OLED has it's own ID (0x31, 0x32, etc.). 

What I now try to change is the stream that the OLEDs listen to. So I set up another set of receivers:

EVENT_RECEIVER id=11 type=SysEx stream="0xf0 0x00 0x41 0x00 ^txt" label=&a lcd_pos=1:1:1
EVENT_RECEIVER id=12 type=SysEx stream="0xf0 0x00 0x42 0x00 ^txt" label=&a lcd_pos=2:1:1
etc.

I use some buttons to "set_active" the different receivers. So the NGR reads:

if ^section == 1
set_active (id)RECEIVER:1   1
set_active (id)RECEIVER:2   1
set_active (id)RECEIVER:11   0
set_active (id)RECEIVER:12   0
exit
endif

if ^section == 2
set_active (id)RECEIVER:1   0
set_active (id)RECEIVER:2   0
set_active (id)RECEIVER:11   1
set_active (id)RECEIVER:12   1
exit
endif

I'd expect that with this code I can change the stream... but I can't. They are listening to all streams at the same time no matter if I "set_active" those receivers or not.

I thought that it might be related to the receivers. So I changed them out with EVENT_LEDs but same here. I can not achieve, to switch between those two SysEx-streams.

I also tried the "set_lock" command.... but that was also not working. I also tried button the receivers in different banks and change the banks with the buttons => no success.

So... what do I overlook? Is there any solution for my problem?

Thanks,
Chris

Edited by FantomXR
Posted (edited)

Hello Chris

Not sure to get it all, but I see your first set of receiver (1 to 9)  print label to oled 0x31 to 0x39 but your second set (11 to 19) don't print to the same oled ID, 0x41 to 0x49 ?

Best

Zam

Edited by Zam
Posted

Thanks for your hint!

But I think you are not right here. The ID doesn't matter because the oled is set with the parameter lcd_pos=1:1:1. This also does not explain the behaviour, that I described above (both displays listen too all streams at the same time instead of only two streams).

 

Posted

Hello

 

Yes you'r right.

Did you try another strategy, like no script(NGR) involved but conditional at NGC according to your flip button

On 21/03/2018 at 5:06 PM, FantomXR said:

EVENT_RECEIVER id=1 type=SysEx stream="0xf0 0x00 0x31 0x00 ^txt" label=&a lcd_pos=1:1:1 if_equal=button:1:0

EVENT_RECEIVER id=2 type=SysEx stream="0xf0 0x00 0x32 0x00 ^txt" label=&a lcd_pos=2:1:1 if_equal=button:1:0

etc...

EVENT_RECEIVER id=11 type=SysEx stream="0xf0 0x00 0x41 0x00 ^txt" label=&a lcd_pos=1:1:1 if_equal=button:1:1

EVENT_RECEIVER id=12 type=SysEx stream="0xf0 0x00 0x42 0x00 ^txt" label=&a lcd_pos=2:1:1 if_equal=button:1:1

etc....

EVENT_BUTTON id=1 range=0:1

I don't have explanation for your issue, but maybe it's linked to label= handling, I mean it's not a midi function/data, so it is forwarded to LCD anyway ??? just an idea...

 

Can you try to set a fwd= to anything from your receiver and check if it effectively forward midi event or not, depending of set_lock or if_equal= status of the event ?

 

Best

Zam

 

Posted

by the way... what is supposed to print &a ?

(sorry i'm not use to label... never really add LCD to my midibox and &a is not in the current user manual at label=)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...