Jump to content

Understanding SysEx-handling and EVENT_RECEIVERS


FantomXR

Recommended Posts

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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).

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...